Loading
Insurance
InsProductJSONService:updateUserValues

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.

Remarque
Remarque Ce service peut être utilisé pour mettre à jour le JSON, mais ne changera pas la définition du produit elle-même.

Classe: InsProductJSONService

Méthode : updateUserValues

Fonctionnement

  1. Utilise les inputKey et attributeValues pour rechercher le nœud dans le JSON d'entrée avec les attributs à mettre à jour.

  2. Si productCode et/ou attributeCode sont définis, le service filtre le JSON pour qu'il corresponde.

  3. Valide la nouvelle valeur d'attribut par rapport aux valeurs d'attribut possibles, si validate = true.

  4. Renvoie le JSON produit avec les attributs mis à jour.

Options distantes

Option

Description

inputKey

La clé que ce service utilise pour trouver la pièce du produit JSON avec laquelle travailler.

La valeur par défaut est inputKey.

productCode

Recherche les attributs directement associés à cette productCode.

attributeCode

Recherche l'attribut spécifié par cette attributeCode.

patternMatch

Vrai/faux

Fonctionne avec une valeur partielle spécifiée pour atttributeCode afin de trouver un attribut.

Par défaut = false

instanceKey

Recherche les attributs associés au produit (et aux produits enfants) qui ont cette instanceKey.

validate

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 = false

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
}
 
Chargement
Salesforce Help | Article