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 buscar 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

Clave que utiliza este servicio para encontrar la pieza del JSON del producto con la que trabajar.

El valor predeterminado es inputKey.

productCode

Busca atributos asociados directamente con este productCode.

attributeCode

Busca el atributo especificado por este attributeCode.

patternMatch

Verdadero/falso

Funciona con un valor parcial especificado para atttributeCode para buscar un atributo.

Predeterminado = false

instanceKey

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

validate

Verdadero/falso

Valida nuevos valores de atributos con 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 siguiente ejemplo, el valor de atributos de liveCoverageAmt es de 250 000 USD. Y en "attributeValues" se debe cambiar a 500 000 USD.

{
  "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 cambió de 250 000 USD a 500 000 USD.

{
  "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