Você está aqui:
InsProductJSONService:updateUserValues
Use esse serviço para atualizar a userValues de atributos especificados em um JSON de produto com base em alterações feitas por um usuário. Você também pode usar esse serviço para atualizar onde o nó JSON está na hierarquia.
Método: updateUserValues
Como funciona
-
Usa
inputKeyeattributeValuespara localizar o nó no JSON de entrada com os atributos a serem atualizados. -
Se
productCodee/ouattributeCodeestiverem definidos, o serviço filtrará o JSON para corresponder. -
Valida o novo valor de atributo em relação a possíveis valores de atributo, se
validate = true. -
Retorna o JSON do produto com os atributos atualizados.
Opções remotas
Opção |
Descrição |
|---|---|
|
A chave que esse serviço usa para localizar a parte do JSON do produto com a qual trabalhar. O valor padrão é |
|
Localiza atributos diretamente associados a essa |
|
Localiza o atributo especificado por essa |
|
Verdadeiro/falso Trabalha com um valor parcial especificado para atttributeCode para localizar um atributo. Padrão = |
|
Localiza os atributos associados ao produto (e aos produtos filhos) que tem essa |
|
Verdadeiro/falso Valida novos valores de atributo em relação a todos os valores permitidos para um determinado atributo antes de atualizar o JSON. Padrão = |
JSON de entrada
Este serviço leva um JSON de produto típico que identifica usando os inputKey e attributeValues na forma de um mapa do attributeCode e do novo userValues.
Para aprender como os JSONs de produto são estruturados, consulte Modelo de estrutura de JSON de produto.
No exemplo abaixo, o valor de atributo de liveCoverageAmt é US$ 250.000 e, em "attributeValues", ele deve ser alterado para US$ 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 saída
O serviço retorna um JSON de produto atualizado com os novos valores de atributo sob a chave de result e informações sobre o valor de atributo original.
No exemplo a seguir, o valor do atributo liveCoverageAmt mudou de US$ 250.000 para US$ 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
}

