I have an Object with composition BDM. It includes an object inside an object.
I would like to update a value once the object has a specific string.
I can update the Object with the same value, however, I couldn't get the dynamic value with child object.
This is the Object I have.
$data.timerObjJson;
[
{
"persistenceId": 322,
"persistenceId_string": "322",
"persistenceVersion": 0,
"persistenceVersion_string": "0",
"recommandation": "Recommandation 1",
"timerTask": [
{
"persistenceId": 508,
"persistenceId_string": "508",
"persistenceVersion": 0,
"persistenceVersion_string": "0",
"title": "Task1",
"startdate": "2019-02-13",
"enddate": "2019-02-13",
"statusTask": "decline",
"declineReason": ""
},
{
"persistenceId": 511,
"persistenceId_string": "508",
"persistenceVersion": 0,
"persistenceVersion_string": "0",
"title": "Task1",
"startdate": "2019-02-13",
"enddate": "2019-02-13",
"statusTask": "decline",
"declineReason": ""
}
],
"statusRec": "In process"
},
{
"persistenceId": 323,
"persistenceId_string": "323",
"persistenceVersion": 0,
"persistenceVersion_string": "0",
"recommandation": "Recommandation 2",
"timerTask": [
{
"persistenceId": 509,
"persistenceId_string": "509",
"persistenceVersion": 0,
"persistenceVersion_string": "0",
"title": "Task2",
"startdate": "2019-02-13",
"enddate": "2019-03-02",
"statusTask": "decline",
"declineReason": ""
},
{
"persistenceId": 509,
"persistenceId_string": "509",
"persistenceVersion": 0,
"persistenceVersion_string": "0",
"title": "Task2",
"startdate": "2019-02-13",
"enddate": "2019-03-02",
"statusTask": "decline",
"declineReason": ""
}
],
"statusRec": "In process"
}
]
This is what I tried to get return the statusTask and
$data.getDone:
var obj = [];
for(var i in $data.timerObjJson){
for(var j in $data.timerObjJson[i].timerTask){
var thisObj = {};
thisObj = $data.timerObjJson[i].timerTask[j];
obj.push(thisObj);
}
}
var objArray=[];
for (var i = 0; i < obj.length; i++) {
objArray.push(obj[i].statusTask);
}
function isBelowThreshold(currentValue) {
return currentValue == "done";
}
return objArray.every(isBelowThreshold)
And I tried to update the statusRec using by let as belows
var data = $data.timerObjJson;
var done = $data.getDone; //true or false
let arr = data;
const status = "In process";
if (done == true){
arr.find(v => v.statusRec == status).statusRec = "DONE";
}
return data;
But what I need to update is each statusRec depends on timerTask.statusTask's status.
For example, once all timerTask.statusTask changed "done"
the statusRec should update to "Done".
timerTask.statusTaskmust be done? Or just groups of two?