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 encontrar 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 |
|---|---|
|
La clave que utiliza este servicio para encontrar la pieza del JSON de producto con la que trabajar. El valor predeterminado es |
|
Localiza atributos directamente asociados con este |
|
Busca el atributo especificado por este |
|
Verdadero/falso Funciona con un valor parcial especificado para que atttributeCode busque un atributo. Predeterminado = |
|
Busca los atributos asociados con el producto (y los productos secundarios) que tiene este |
|
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 = |
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
}
