Du er her:
InsProductJSONService:updateUserValues
Bruk denne tjenesten til å oppdatere userValues av angitte attributter i en produkt-JSON, basert på endringer en bruker har gjort. Du kan også bruke denne tjenesten til å oppdatere hvor JSON-noden er i hierarkiet.
Metode: updateUserValues
Slik virker det
-
Bruker
inputKeyogattributeValuestil å finne noden i inndata-JSON-filen med attributtene som skal oppdateres. -
Hvis
productCodeog/ellerattributeCodeer angitt, filtrerer tjenesten JSON-filen for å samsvare. -
Validerer den nye attributtverdien mot mulige attributtverdier, hvis
validate = true. -
Returnerer produkt-JSON-koden med de oppdaterte attributtene.
Eksterne alternativer
Alternativ |
Beskrivelse |
|---|---|
|
Nøkkelen denne tjenesten bruker til å finne den delen av produkt-JSON-koden som den skal arbeide med. Standardverdien er |
|
Finner attributter som er direkte knyttet til dette |
|
Finner attributtet som er angitt av denne |
|
Sann/usann Fungerer med en delvis verdi angitt for atttributeCode for å finne et attributt. Standard = |
|
Finner attributtene som er knyttet til produktet (og de underordnede produktene) som har dette |
|
Sann/usann Validerer nye attributtverdier mot alle tillatte verdier for et gitt attributt før JSON-koden oppdateres. Standard = |
Inndata-JSON
Denne tjenesten tar en typisk produkt-JSON den identifiserer ved bruk av inputKey og attributeValues i form av et kart over attributeCode og den nye userValues.
Hvis du vil vite hvordan produkt-JSON-filer er strukturert, kan du se Produkt-JSON-strukturmodell.
Fra eksemplet nedenfor er attributtverdien for liveCoverageAmt $250 000. Og i "attributeValues" skal den endres til $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"
}
}
Utdata-JSON
Tjenesten returnerer en oppdatert produkt-JSON-fil med de nye attributtverdiene under result og informasjon om den opprinnelige attributtverdien.
I følgende eksempel ble verdien for liveCoverageAmt-attributtet endret fra USD 250 000 til USD 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
}
