How to get a calculated value script to store a timestamp into an attribute ?
First time using script based provider. Spent almost a day on it, still couldn't get it to work yet?
We have a small string attribute for date&time in text (validated with a regular expression) with a timestamp attribute as its dependency.
Eventually we will want to convert the text time into a timestamp to store in the TS attribute. But for now, as we kept failing to get it to work, we are just trying to:
- store current date&time, with new Date(), into the TS attribute (which had been tried with ReadOnly too)
- when the txt attribute is modified and the WI get saved.
- With the below Calculated Value script:
dojo.provide("com.acn.dor.scripts.validators.StoreTextTimeAsTimestamp");
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;
var StoreTextTimeAsTimestamp = dojo.declare("com.acn.dor.scripts.StoreTextTimeAsTimestamp", null, {
getValue: function(attributeId, workItem, configuration) {
// var dateTimeString = workItem.getValue(WorkItemAttributes.com.acn.adt2.workitem.attribute.custom1_defect);
var dateTime = dojo.date.stamp.fromISOString(new Date(), {milliseconds:true, zulu:true});
return dateTime;
}
});
})();
One answer
I don't see a description what happens or what does not. Supposing your script is syntactically correct, the one thing you would have to do, is to set the dependency to the attribute that, when changed, would trigger the script and thus setting the calculated attribute (referred to as txt). You can only react on change of the attribute. When the attribute is changed, the calculated value is triggered. Just saving the work item would not trigger the calculated value.
You might want to look into https://jazz.net/library/article/1093 Lab 5 for some more hints on JavaScript.
You might want to look into https://jazz.net/library/article/1093 Lab 5 for some more hints on JavaScript.
Comments
What we'd like to achieve is:
- When any change on the txtAttrib (with a reg exp validator) is made
- It will trigger the Calculated Value script tied with the TSattrib.
- This script will return hence store a timestamp into the TSattrib
Do we make txtAttrib a dependency of TSattrib ? or vice versa ? We had tried both ways actually, neither works.
Nothing get stored in TSattrib.
To trigger the calculated value for TSattrib, you need to add a dependency to txtAttrib to TSattrib. This will trigger the calculated value script when txtAttrib changes.