Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

Would like restrict Planned Closure Date should not be lesser than Creation Date

Hi Jazzier..

I am using RTC 4.0 and i would like to have validation script for Planned Closure Date should not be lesser than Workitem Creation Date.

For example:  Creation is today " 16-01-2013 ( Time Stamp attribute) and Planned Closure Date is also Mandatory for while saving Workitem. User should get prompt or message notify that , Planned Closure should be greater than equal to Creation Date. But it should not be lesser than Creation Date" ( Planned Closure Date = 16 -01-2013 and above and should not be 15-01-2013)

I am beginner in Dojo / Java, Some can help with scripts. So that i can take forward on this.

Many thanks in advance

MRP

0 votes



One answer

Permanent link
Have you looked at https://jazz.net/wiki/bin/view/Main/AttributeCustomization#API_for_Javascript?

There is also an example showing how to use the timestamp date.

I would also recommend to look at the Enactment Workshop. Below is some JavaScript based validator code that works with dates.

/*******************************************************************************
 * Licensed Materials - Property of IBM
 * (c) Copyright IBM Corporation 2011. All Rights Reserved.
 *
 * Note to U.S. Government Users Restricted Rights:  
 * Use, duplication or disclosure restricted by GSA ADP Schedule 
 * Contract with IBM Corp. 
 *******************************************************************************/
dojo.provide("org.example.DateValidator_28_days_later");

dojo.require("com.ibm.team.workitem.api.common.WorkItemAttributes"); // To access the work item attributes
dojo.require("com.ibm.team.workitem.api.common.Status"); // To create a status object to return
dojo.require("com.ibm.team.workitem.api.common.Severity"); // To create a severity for the status
dojo.require("dojo.date"); // We need the date class from Dojo to compare two dates
dojo.require("dojo.date.stamp"); // We need the stamp class to work with ISO date strings

(function() {
var Severity = com.ibm.team.workitem.api.common.Severity;
var Status = com.ibm.team.workitem.api.common.Status;

var DateValidator = dojo.declare("org.example.DateValidator_28_days_later", null, {

    validate: function(attributeId, workItem, configuration) {
    
        var severity= "ERROR"; 
        var message= "Date must be at least 28 days from now"; 
       
       // Work Item new: not initialized - provides todays date. Once created provides the creation date 
        var beginDate = dojo.date.stamp.fromISOString(workItem.getValue("com.ibm.team.workitem.attribute.creationdate")); 
        // Get the current attribute's value and make a Date object from it
        console.log("I got: ["+workItem.getValue(attributeId)+"]");
        var endDate= dojo.date.stamp.fromISOString(workItem.getValue(attributeId));        
        // Compare the two dates returns negative value due to order
        var compare = -(dojo.date.difference(endDate, beginDate, "day"));
        if (compare>= 28) { // make sure endDate is not earlier than beginDate + 28
            return Status.OK_STATUS;
        } else {
            return new Status(Severity[severity], message + " current value: [" +endDate + "] and difference is " + compare);
        }
    }
});
})();

0 votes

Your answer

Register or log in to post your answer.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details
× 6,118

Question asked: Jan 16 '13, 12:13 a.m.

Question was seen: 3,923 times

Last updated: Jan 16 '13, 9:32 a.m.

Confirmation Cancel Confirm