I have a array as shown below which is an output of the filter condition. It has fields like documentItemName1,documentItemName2,documentItemName3 at the min it can have on and max of 3.
It's like for each contentVersion documentItemToSigner has no of number objects based on no of documentItemName{n} present in it
payload:
[
{
"contentVersion": "068DQ000000lK0iYAE",
"documentName": "ESRA with Exhibit_A",
"documentItemName1": "Signature001",
"typeCd1": "Signature",
"typeCd2": null,
"typeCd3": null,
"subtypeCd1": "CAPTURE",
"subtypeCd2": null,
"subtypeCd3": null
},
{
"contentVersion": "068DQ000000kK0OYAU",
"documentName": "Agreement 1",
"documentItemName1": "Signature001",
"documentItemName2": "Signature002",
"typeCd1": "Signature",
"typeCd2": "Signature",
"typeCd3": null,
"subtypeCd1": "CAPTURE",
"subtypeCd2": "LABEL",
"subtypeCd3": null
},
{
"contentVersion": "068DQ000000lK0OYAU",
"documentName": "Agreement 2",
"documentItemName1": "Signature001",
"documentItemName2": "Signature002",
"documentItemName3": "Signature003",
"typeCd1": "Signature",
"typeCd2": "Signature",
"typeCd3": "Signature",
"subtypeCd1": "CAPTURE",
"subtypeCd2": "CAPTURE",
"subtypeCd3": "CAPTURE"
}
]
I have tried below script but not sure how to create objects based on no of documentItemName{no} in it.
For ex: From the payload I am filtering to this contentVersion = "068DQ000000lK0OYAU" which has documentItemName1,documentItemName2,documentItemName3. So, documentItemToSigner array should have 3 objects which maps like this
"documentItemToSigner": [{
documentItemName: documentItemName1,
"typeCd": typeCd1,
"subtypeCd": subtypeCd1
},
{
documentItemName: documentItemName2,
"typeCd": typeCd2,
"subtypeCd": subtypeCd3
},
{
documentItemName: documentItemName3,
"typeCd": typeCd3,
"subtypeCd": subtypeCd3
}]
For ex2: From the payload, If I am filtering to this contentVersion = "068DQ000000lK0iYAE" which has only documentItemName1. So, documentItemToSigner array should have 1 object which maps like this
"documentItemToSigner": [{
documentItemName: documentItemName1,
"typeCd": typeCd1,
"subtypeCd": subtypeCd1
}]
"documentItemToSigner": (payload filter ((g, index) -> g.contentVersion == "068DQ000000lK0OYAU")) map ((item, index) -> {
"typeCd": item."typeCd{n}",
"subtypeCd": item."subtypeCd{n}",
"eSignLiveExtension": {
"extractInd": true
},
"documentItemName": item."documentItemName{n}"
})
expected output:
{
"documentItemToSigner": [
{
"typeCd": "Signature",
"subtypeCd": "CAPTURE",
"eSignLiveExtension": {
"extractInd": true
},
"documentItemName": "Signature001"
},
{
"typeCd": "Signature",
"subtypeCd": "LABEL",
"documentItemName": "Signature002",
"eSignLiveExtension": {
"extractInd": false
}
},
{
"typeCd": "Signature",
"subtypeCd": "CAPTURE",
"eSignLiveExtension": {
"extractInd": true
},
"documentItemName": "Signature003"
}
]
}
dSignerbut it is not defined. Be sure that you provide a minimal reproducible example and actual output.068DQ000000kK0OYAU. Is that expected?