Loading
Assicurazioni
InsProductJSONService:updateUserValues

InsProductJSONService:updateUserValues

Utilizzare questo servizio per aggiornare il userValues degli attributi specificati nel JSON di un prodotto in base alle modifiche apportate da un utente. È anche possibile utilizzare questo servizio per aggiornare la posizione del nodo JSON nella gerarchia.

Nota
Nota Questo servizio può essere utilizzato per aggiornare il JSON, ma non modificherà la definizione del prodotto.

Classe: InsProductJSONService

Metodo: updateUserValues

Funzionamento

  1. Utilizza inputKey e attributeValues per trovare il nodo nel JSON di input con gli attributi da aggiornare.

  2. Se sono impostati productCode e/o attributeCode, il servizio filtra il JSON in modo che corrisponda.

  3. Convalida il nuovo valore dell'attributo rispetto ai possibili valori dell'attributo, se validate = true.

  4. Restituisce il JSON del prodotto con gli attributi aggiornati.

Opzioni remote

Opzione

Descrizione

inputKey

Chiave utilizzata da questo servizio per trovare la parte del JSON del prodotto con cui lavorare.

Il valore predefinito è inputKey.

productCode

Trova gli attributi direttamente associati a questo productCode.

attributeCode

Trova l'attributo specificato da questo attributeCode.

patternMatch

Vero/falso

Funziona con un valore parziale specificato per atttributeCode per trovare un attributo.

Predefinito = false

instanceKey

Trova gli attributi associati al prodotto (e ai prodotti secondari) che hanno questo instanceKey.

validate

Vero/falso

Convalida i nuovi valori degli attributi rispetto a tutti i valori consentiti per un determinato attributo prima di aggiornare il JSON.

Predefinito = false

Input JSON

Questo servizio prende un JSON di prodotto tipico che identifica utilizzando il inputKey e il attributeValues sotto forma di mappa del attributeCode e del nuovo userValues.

Per informazioni sulla struttura dei JSON dei prodotti, vedere Modello di struttura JSON dei prodotti.

Dall'esempio seguente, il valore degli attributi di liveCoverageAmt è 250.000 €. E in "attributeValues" deve essere modificato in $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 di output

Il servizio restituisce un JSON prodotto aggiornato con i nuovi valori dell'attributo sotto la chiave result e informazioni sul valore dell'attributo originale.

Nell'esempio seguente, il valore dell'attributo liveCoverageAmt è stato modificato da 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
}
 
Caricamento
Salesforce Help | Article