Du är här:
InsProductJSONService:updateUserValues
Använd denna tjänst för att uppdatera userValues för specificerade attribut i en produkt-JSON, baserat på ändringar en användare har gjort. Du kan även använda denna tjänst för att uppdatera var JSON-noden är i hierarkin.
Metod: updateUserValues
Så här fungerar det
-
Använder
inputKeyochattributeValuesför att hitta noden i indata-JSON med attributen som ska uppdateras. -
Om
productCodeoch/ellerattributeCodehar angetts filtrerar tjänsten JSON så att den matchar. -
Validerar det nya attributvärdet mot möjliga attributvärden, om
validate = true. -
Returnerar produktens JSON med de uppdaterade attributen.
Fjärralternativ
Alternativ |
Beskrivning |
|---|---|
|
Nyckeln som denna tjänst använder för att hitta den del av produktens JSON att arbeta med. Standardvärdet är |
|
Hittar attribut som är direkt associerade med denna |
|
Hittar attributet som specificeras av denna |
|
Sant/falskt Fungerar med ett delvis värde som specificerats för atttributeCode för att hitta ett attribut. Standard = |
|
Hittar attributen som är associerade med produkten (och de underordnade produkterna) som har denna |
|
Sant/falskt Validerar nya attributvärden mot alla tillåtna värden för ett givet attribut innan uppdatering av JSON. Standard = |
Indata-JSON
Denna tjänst tar en typisk produkt-JSON som den identifierar med inputKey och attributeValues i form av en karta över attributeCode och den nya userValues.
Mer information om hur JSON för produkter är strukturerade finns i Strukturmodell för JSON för produkter.
Från exemplet nedan är attributets värde för liveCoverageAmt 250 000 och i "attributeValues" ska det ändras till 500 000.
{
"inputKey": {
"totalSize": 1,
"records": [
{
"Name": "Product1",
"ProductCode": "Product1",
"attributeCategories": {
"totalSize": 1,
"records": [
{
"displaySequence": 449,
"id": "a0O6A000001XFIPUA4",
"Name": "Life Terms",
"Code__c": "LIFETERMS",
"productAttributes": {
"totalSize": 1,
"records": [
{
"code": "lifeCoverageAmt",
"dataType": "text",
"inputType": "dropdown",
"multiselect": false,
"required": false,
"readonly": false,
"disabled": false,
"filterable": true,
"attributeId": "a0P6A0000032HllUAE",
"label": "Coverage Amount",
"displaySequence": 1,
"hasRules": false,
"hidden": false,
"values": [
{
"id": "0",
"label": "$250,000",
"readonly": false,
"disabled": false,
"value": "250000"
},
{
"id": "1",
"label": "$500,000",
"readonly": false,
"disabled": false,
"value": "500000"
},
{
"id": "2",
"label": "$1,000,000",
"readonly": false,
"disabled": false,
"value": "1000000"
}
],
"userValues": "250000",
"parentProductId": "a2mf4000000kYR7AAM",
"parentProductCode": "InsLife",
"originalAttributeIndex": 0,
"originalCategoryIndex": 1,
"originalProductIndex": 1,
"pathFromChild": "attributeCategories.records[1].productAttributes.records[0]",
"pathFromRoot": "\"pathFromRoot\": \"childProducts.records[1].attributeCategories.records[1].productAttributes.records[0]\""
}
]
}
}
]
}
}
]
},
"attributeValues": {
"lifeCoverageAmt": "500000"
}
}
JSON för utdata
Tjänsten returnerar en uppdaterad produkt-JSON med de nya attributvärdena under result och information om det ursprungliga attributvärdet.
I följande exempel ändrades värdet för attributet liveCoverageAmt från 250 000 till 500 000.
{
"records": [
{
"attributeCategories": {
"records": [
{
"productAttributes": {
"records": [
{
"pathFromRoot": "\"pathFromRoot\": \"childProducts.records[1].attributeCategories.records[1].productAttributes.records[0]\"",
"pathFromChild": "attributeCategories.records[1].productAttributes.records[0]",
"originalProductIndex": 1,
"originalCategoryIndex": 1,
"originalAttributeIndex": 0,
"parentProductCode": "InsLife",
"parentProductId": "a2mf4000000kYR7AAM",
"userValues": "500000",
"values": [
{
"value": "250000",
"disabled": false,
"readonly": false,
"label": "$250,000",
"id": "0"
},
{
"value": "500000",
"disabled": false,
"readonly": false,
"label": "$500,000",
"id": "1"
},
{
"value": "1000000",
"disabled": false,
"readonly": false,
"label": "$1,000,000",
"id": "2"
}
],
"hidden": false,
"hasRules": false,
"displaySequence": 1,
"label": "Coverage Amount",
"attributeId": "a0P6A0000032HllUAE",
"filterable": true,
"disabled": false,
"readonly": false,
"required": false,
"multiselect": false,
"inputType": "dropdown",
"dataType": "text",
"code": "lifeCoverageAmt"
}
],
"totalSize": 1
},
"Code__c": "LIFETERMS",
"Name": "Life Terms",
"id": "a0O6A000001XFIPUA4",
"displaySequence": 449
}
],
"totalSize": 1
},
"ProductCode": "Product1",
"Name": "Product1",
"displaySequence": -1
}
],
"totalSize": 1
}
