Usted está aquí:
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.
Método: updateUserValues
Funcionamiento
-
Utiliza los
inputKeyyattributeValuespara buscar el nodo en el JSON de entrada con los atributos que se actualizarán. -
Si se establecen
productCodey/oattributeCode, el servicio filtra el JSON para que coincida. -
Valida el nuevo valor de atributo frente a posibles valores de atributo, si es
validate = true. -
Devuelve el JSON del producto con los atributos actualizados.
Opciones remotas
Opción |
Descripción |
|---|---|
|
Clave que utiliza este servicio para encontrar la pieza del JSON del producto con la que trabajar. El valor predeterminado es |
|
Busca atributos asociados directamente con este |
|
Busca el atributo especificado por este |
|
Verdadero/falso Funciona con un valor parcial especificado para atttributeCode para buscar un atributo. Predeterminado = |
|
Busca los atributos asociados con el producto (y los productos secundarios) que tiene este |
|
Verdadero/falso Valida nuevos valores de atributos con todos los valores permitidos para un atributo concreto antes de actualizar el JSON. Predeterminado = |
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
}
