Loading
Försäkring
InsProductJSONService:updateUserValues

InsProductJSONService:updateUserValues

Använd denna tjänst för att uppdatera userValues för specificerade attribut i en produkt-JSON, baserat på ändringar en användare har gjort. Du kan även använda denna tjänst för att uppdatera var JSON-noden är i hierarkin.

Anteckning
Anteckning Denna tjänst kan användas för att uppdatera JSON, men ändrar inte själva produktdefinitionen.

Klass: InsProductJSONService

Metod: updateUserValues

Så här fungerar det

  1. Använder inputKey och attributeValues för att hitta noden i indata-JSON med attributen som ska uppdateras.

  2. Om productCode och/eller attributeCode har angetts filtrerar tjänsten JSON så att den matchar.

  3. Validerar det nya attributvärdet mot möjliga attributvärden, om validate = true.

  4. Returnerar produktens JSON med de uppdaterade attributen.

Fjärralternativ

Alternativ

Beskrivning

inputKey

Nyckeln som denna tjänst använder för att hitta den del av produktens JSON att arbeta med.

Standardvärdet är inputKey.

productCode

Hittar attribut som är direkt associerade med denna productCode.

attributeCode

Hittar attributet som specificeras av denna attributeCode.

patternMatch

Sant/falskt

Fungerar med ett delvis värde som specificerats för atttributeCode för att hitta ett attribut.

Standard = false

instanceKey

Hittar attributen som är associerade med produkten (och de underordnade produkterna) som har denna instanceKey.

validate

Sant/falskt

Validerar nya attributvärden mot alla tillåtna värden för ett givet attribut innan uppdatering av JSON.

Standard = false

Indata-JSON

Denna tjänst tar en typisk produkt-JSON som den identifierar med inputKey och attributeValues i form av en karta över attributeCode och den nya userValues.

Mer information om hur JSON för produkter är strukturerade finns i Strukturmodell för JSON för produkter.

Från exemplet nedan är attributets värde för liveCoverageAmt 250 000 och i "attributeValues" ska det ändras till 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 för utdata

Tjänsten returnerar en uppdaterad produkt-JSON med de nya attributvärdena under result och information om det ursprungliga attributvärdet.

I följande exempel ändrades värdet för attributet liveCoverageAmt från 250 000 till 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
}
 
Laddar
Salesforce Help | Article