Vous êtes ici :
InsProductJSONService:updateUserValues
Utilisez ce service pour mettre à jour la userValues des attributs spécifiés dans un JSON de produit, en fonction des modifications apportées par un utilisateur. Vous pouvez également utiliser ce service pour mettre à jour la position du nœud JSON dans la hiérarchie.
Méthode : updateUserValues
Fonctionnement
-
Utilise les
inputKeyetattributeValuespour rechercher le nœud dans le JSON d'entrée avec les attributs à mettre à jour. -
Si
productCodeet/ouattributeCodesont définis, le service filtre le JSON pour qu'il corresponde. -
Valide la nouvelle valeur d'attribut par rapport aux valeurs d'attribut possibles, si
validate = true. -
Renvoie le JSON produit avec les attributs mis à jour.
Options distantes
Option |
Description |
|---|---|
|
La clé que ce service utilise pour trouver la pièce du produit JSON avec laquelle travailler. La valeur par défaut est |
|
Recherche les attributs directement associés à cette |
|
Recherche l'attribut spécifié par cette |
|
Vrai/faux Fonctionne avec une valeur partielle spécifiée pour atttributeCode afin de trouver un attribut. Par défaut = |
|
Recherche les attributs associés au produit (et aux produits enfants) qui ont cette |
|
Vrai/faux Valide les nouvelles valeurs d'attribut par rapport à toutes les valeurs autorisées pour un attribut donné avant de mettre à jour le JSON. Par défaut = |
JSON d'entrée
Ce service reprend un JSON produit typique qu'il identifie en utilisant le inputKey et le attributeValues sous la forme d'une carte du attributeCode et du nouveau userValues.
Pour plus d'informations sur la structure des JSON produit, consultez Modèle de structure JSON produit.
Dans l'exemple ci-dessous, la valeur des attributs de liveCoverageAmt est de 250 000 €. Et dans "attributeValues", elle doit être changée en 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 de sortie
Le service renvoie un JSON produit mis à jour avec les nouvelles valeurs d'attribut sous la clé de result et des informations sur la valeur d'attribut d'origine.
Dans l'exemple suivant, la valeur de l'attribut liveCoverageAmt a été modifiée de 250 000 $ à 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
}
