Forum Discussion
sarathmattam
7 years agoNew Contributor
I tried to achieve your requirement using the built-in snaps, but couldn’t find a long lived variable that can help to achieve your requirement. However, this little script can do it for you (using script snap).
execute : function () {
this.log.info("Executing Transform Script");
var i = 0;
var costCenter = 'DUMMY';
while (this.input.hasNext()) {
try{
// Read the next document, wrap it in a map and write out the wrapper
var doc = this.input.next();
var wrapper = new java.util.HashMap();
wrapper.put("original", doc);
if (costCenter != doc.CostCenter) {
costCenter = doc.CostCenter;
i = 1;
wrapper.original.put("sequence",i);
}
else {
i = i + 1;
wrapper.original.put("sequence",i);
}
this.output.write(doc, wrapper);
this.log.info("Transform Script finished");
}
catch(err) {
var wrapper = new java.util.HashMap();
wrapper.put("errorMsg", err);
this.log.error(err);
this.error.write(wrapper);
}
}
}
Input:
Output: