[closed] how to show the difference between current date and due date through script based calculated value?
Don Yang (7.7k●21●114●139)
| asked Jul 27 '12, 5:03 a.m.
closed Jun 30 '15, 3:24 a.m. by Ralph Schoon (63.5k●3●36●46)
I am using RTC3013 and want to show the difference between current date and due date in the task.
I followed the instruction in the below article to set the ccm/admin first. Then create script as below dojo.provide("ibm.example.workitems.providers.CalculatedValueSkeleton"); dojo.require("com.ibm.team.workitem.api.common.WorkItemAttributes"); dojo.require("dojo.date"); dojo.require("dojo.date.stamp"); (function() { var WorkItemAttributes= com.ibm.team.workitem.api.common.WorkItemAttributes; dojo.declare("ibm.example.workitems.providers.CalculatedValueSkeleton", null, { getValue: function(attributeId, workItem, configuration) { var dueDate= dojo.date.stamp.fromISOString(workItem.getValue(WorkItemAttributes.DUE_DATE)); var currentDate= new Date(); var dayDiff= dojo.date.difference(dueDate,currentDate, "day"); var result = 0; if (dayDiff > 0) result=dayDiff; } return result; } }); })(); In Eclipse client, add new calculated value to customized attribute and point to the above js file Create a new attribute and use the new created calculated value and set it as dependent on duedate. Add the new attribute to task presentation. When I create a new task, I can see the new attribute is there, but after I select a due date and save the WI, nothing happens to the attribute(blank) I am wondering how I can achieve that: whether something is wrong in my script or I missed anything? Would appreciate if anyone can comment on what's wrong. Thank you very much. |
The question has been closed for the following reason: "The question is answered, right answer was accepted" by rschoon Jun 30 '15, 3:24 a.m.
Accepted answer
Dinesh Kumar B (4.1k●4●13)
| answered Jul 27 '12, 10:48 a.m.
JAZZ DEVELOPER edited Jul 27 '12, 10:49 a.m.
everything from your script looks good except for the extra "}" just after the if statement.
below is the code which worked for me dojo.declare("org.scripts.datediff", null, { Ralph Schoon selected this answer as the correct answer
Comments
Don Yang
commented Jul 29 '12, 8:16 p.m.
Thanks Dinesh for pointing out the problem. I tried to remove } and it does work for me now.
Pavithra Kasturirangan
commented Aug 04 '12, 6:55 a.m.
Hi, I tried the sample code above, I have made the field read-only, But even after the script automatically populates the field, it keeps the save button always enabled. Could you help to to fix this ? The code has a problem and it is not working, because it does not convert the date back to something RTC can understand. You have to use fromISOString to get the date format and you have to use toISOString for the format to be converted to return it. See https://jazz.net/wiki/bin/view/Main/AttributeCustomization#API_for_Javascript |
One other answer
Hi,
We were working on the defect age and got this code to calculate the age diff . And i wrote the code as below with reference to above code to calculate the diff of creation date and date now. And i have created an attribute of small sting and added dependency as creation date ,attached the script.But the code is not working for me. Could you please review and guide me where it went wrong. dojo.provide("example.calculated.defectAgeValueProviderfix3"); dojo.require("com.ibm.team.workitem.api.common.WorkItemAttributes"); dojo.require("dojo.date.stamp"); (function() { var WorkItemAttributes = com.ibm.team.workitem.api.common.WorkItemAttributes; var fromISOString = dojo.date.stamp.fromISOString; dojo.declare("example.calculated.defectAgeValueProviderfix3", null, { getValue: function(attribute, workItem, configuration) { var creationDate = dojo.date.stamp.fromISOString(workItem.getValue(WorkItemAttributes.CREATION_DATE)); console.log("status enter"); console.log(creationDate); var currentDate = new Date(); var dayDiff= dojo.date.difference(creationDate,currentDate, "day"); var result = 0; if (dayDiff > 0) result=dayDiff; return result; } }); })(); |