Loading
Seguro
InsProductJSONService:updateUserValues

InsProductJSONService:updateUserValues

Utilice este servicio para actualizar la userValues de atributos especificados en un JSON de producto, basándose en cambios que realizó un usuario. También puede utilizar este servicio para actualizar dónde está el nodo JSON en la jerarquía.

Nota
Nota Este servicio se puede utilizar para actualizar el JSON, pero no cambiará la definición del producto en sí.

Clase: InsProductJSONService

Método: updateUserValues

Funcionamiento

  1. Utiliza los inputKey y attributeValues para encontrar el nodo en el JSON de entrada con los atributos que se actualizarán.

  2. Si se establecen productCode y/o attributeCode, el servicio filtra el JSON para que coincida.

  3. Valida el nuevo valor de atributo frente a posibles valores de atributo, si es validate = true.

  4. Devuelve el JSON del producto con los atributos actualizados.

Opciones remotas

Opción

Descripción

inputKey

La clave que utiliza este servicio para encontrar la pieza del JSON de producto con la que trabajar.

El valor predeterminado es inputKey.

productCode

Localiza atributos directamente asociados con este productCode.

attributeCode

Busca el atributo especificado por este attributeCode.

patternMatch

Verdadero/falso

Funciona con un valor parcial especificado para que atttributeCode busque un atributo.

Predeterminado = false

instanceKey

Busca los atributos asociados con el producto (y los productos secundarios) que tiene este instanceKey.

validate

Verdadero/falso

Valida los nuevos valores de atributo con respecto a todos los valores permitidos para un atributo concreto antes de actualizar el JSON.

Predeterminado = false

JSON de entrada

Este servicio toma un JSON de producto típico que identifica utilizando el inputKey y el attributeValues en forma de un mapa del attributeCode y el nuevo userValues.

Para obtener información acerca de cómo están estructurados los JSON de productos, consulte Modelo de estructura de JSON de productos.

Desde el ejemplo siguiente, el valor de atributos de liveCoverageAmt es de 250 000 $. Y en "attributeValues" se debe cambiar a 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 salida

El servicio devuelve un JSON de producto actualizado con los nuevos valores de atributo bajo la clave de result e información acerca del valor de atributo original.

En el siguiente ejemplo, el valor del atributo liveCoverageAmt se cambió de 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
}
 
Cargando
Salesforce Help | Article