Hi team,
We identified a strange behaviour when using the logic operators and filters in the Translation Map, here's an example:
The value of contactID==40005685 refers to a customer with a POSTPAID profile, so we expect the translation map to return values only for the msisdnPostpaidArray variable, but we notice that it also publishes values in msisdnPrepaidArray and they are the same values as postpaid.
The same behaviour is observed if the profile is PREPAID when using the contactId==4000568, the prepaid values are observed in the postpaid variable.
Here's the translation map:
{
"translationMap": {
"allObjKeys": "$.allObjKeys[*]",
"totalObjects": "$.totalObjects",
"msisdnPrepaidArray": "$.customers[?(@.characteristic[?(@.name == \"NodeType\" && @.value == \"Billing\")] && @.characteristic[?(@.name == \"SubscriptionType\" && @.value == \"PREPAID\")])].characteristic[?(@.name == \"ServiceName\")].value",
"msisdnPostpaidArray": "$.customers[?(@.characteristic[?(@.name == \"NodeType\" && @.value == \"Service\")])].characteristic[?(@.name == \"ServiceName\")].value",
"accountIdPrepaidArray": "$.customers[?(@.characteristic[?(@.name == \"NodeType\" && @.value == \"Billing\")] && @.characteristic[?(@.name == \"SubscriptionType\" && @.value == \"PREPAID\")])].account[?(@.accountTypeDisplayName == \"Debtor\")].id",
"accountIdPostpaidArray": "$.customers[?(@.characteristic[?(@.name == \"NodeType\" && @.value == \"Billing\")] && @.characteristic[?(@.name == \"SubscriptionType\" && @.value == \"POSTPAID\")])].account[?(@.accountTypeDisplayName == \"Debtor\")].id",
"accountNumberPostpaidArray": "$.customers[?(@.characteristic[?(@.name == \"NodeType\" && @.value == \"Billing\")] && @.characteristic[?(@.name == \"SubscriptionType\" && @.value == \"POSTPAID\")])].account[?(@.accountTypeDisplayName == \"Debtor\")].accountNumber",
"roleArray": "$.customers[?(@.characteristic[?(@.name == \"NodeType\" && @.value == \"Billing\")] )].engagedParty[*].role",
"contactIdArray": "$.customers[?(@.characteristic[?(@.name == 'NodeType' && @.value == 'Billing')] )].engagedParty[*].id"
},
"translationMapDefaults": {
"allObjKeys": "\"UNKNOWN\"",
"totalObjects": "\"UNKNOWN\"",
"msisdnPrepaidArray": "\"UNKNOWN\"",
"msisdnPostpaidArray": "\"UNKNOWN\"",
"accountIdPrepaidArray": "\"UNKNOWN\"",
"accountIdPostpaidArray": "\"UNKNOWN\"",
"accountNumberPostpaidArray": "\"UNKNOWN\"",
"roleArray": "\"UNKNOWN\"",
"contactIdArray": "\"UNKNOWN\""
},
"successTemplate": "{ \"allObjKeys\":${allObjKeys}, \"totalObjects\":${totalObjects}, \"msisdnPrepaidArray\":${msisdnPrepaidArray}, \"msisdnPostpaidArray\":${msisdnPostpaidArray}, \"accountIdPrepaidArray\":${accountIdPrepaidArray}, \"accountIdPostpaidArray\":${accountIdPostpaidArray}, \"accountNumberPostpaidArray\":${accountNumberPostpaidArray}, \"roleArray\":${roleArray}, \"contactIdArray\":${contactIdArray} }"
}
Please find attached an example of CustomerManagement JSON output for both Prepaid and Postpaid.
customerManagement_postpaid.json (60.3 KB)
customerManagement_prepaid.json (36.5 KB)
Regards.
Francisco Alvarez