Ti trovi qui:
InsProductJSONService:updateUserValues
Utilizzare questo servizio per aggiornare il userValues degli attributi specificati nel JSON di un prodotto in base alle modifiche apportate da un utente. È anche possibile utilizzare questo servizio per aggiornare la posizione del nodo JSON nella gerarchia.
Metodo: updateUserValues
Funzionamento
-
Utilizza
inputKeyeattributeValuesper trovare il nodo nel JSON di input con gli attributi da aggiornare. -
Se sono impostati
productCodee/oattributeCode, il servizio filtra il JSON in modo che corrisponda. -
Convalida il nuovo valore dell'attributo rispetto ai possibili valori dell'attributo, se
validate = true. -
Restituisce il JSON del prodotto con gli attributi aggiornati.
Opzioni remote
Opzione |
Descrizione |
|---|---|
|
Chiave utilizzata da questo servizio per trovare la parte del JSON del prodotto con cui lavorare. Il valore predefinito è |
|
Trova gli attributi direttamente associati a questo |
|
Trova l'attributo specificato da questo |
|
Vero/falso Funziona con un valore parziale specificato per atttributeCode per trovare un attributo. Predefinito = |
|
Trova gli attributi associati al prodotto (e ai prodotti secondari) che hanno questo |
|
Vero/falso Convalida i nuovi valori degli attributi rispetto a tutti i valori consentiti per un determinato attributo prima di aggiornare il JSON. Predefinito = |
Input JSON
Questo servizio prende un JSON di prodotto tipico che identifica utilizzando il inputKey e il attributeValues sotto forma di mappa del attributeCode e del nuovo userValues.
Per informazioni sulla struttura dei JSON dei prodotti, vedere Modello di struttura JSON dei prodotti.
Dall'esempio seguente, il valore degli attributi di liveCoverageAmt è 250.000 €. E in "attributeValues" deve essere modificato in $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 di output
Il servizio restituisce un JSON prodotto aggiornato con i nuovi valori dell'attributo sotto la chiave result e informazioni sul valore dell'attributo originale.
Nell'esempio seguente, il valore dell'attributo liveCoverageAmt è stato modificato da 250.000 a 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
}
