詳細情報:
InsProductJSONService:updateUserValues
このサービスを使用して、ユーザーが行った変更に基づいて、商品 JSON 内の指定された属性のuserValuesを更新します。このサービスを使用して、JSON ノードが階層内のどこにあるかを更新することもできます。
方法: updateUserValues
操作手順
-
inputKeyとattributeValuesを使用して、属性が更新される入力 JSON 内のノードを検索します。 -
productCodeまたはattributeCodeが設定されている場合、サービスは一致する JSON を絞り込みます。 -
可能な属性値に対して新しい属性値を検証します (
validate = trueの場合)。 -
属性が更新された商品 JSON を返します。
リモートオプション
オプション |
説明 |
|---|---|
|
このサービスが、使用する商品 JSON の部分を見つけるために使用されるキー。 デフォルト値は |
|
この |
|
この |
|
True/false atttributeCode で指定された部分的な値を使用して属性を検索します。 デフォルト = |
|
この |
|
True/false JSON を更新する前に、特定の属性で許可されているすべての値に対して新しい属性値を検証します。 デフォルト = |
Input JSON
このサービスは、inputKeyとattributeValuesを使用して識別する一般的な製品 JSON を、attributeCodeと新しいuserValuesの対応付け形式で取得します。
商品 JSON の構造については、「商品 JSON 構造モデル」を参照してください。
次の例では、liveCoverageAmt の属性値は $250,000 で、"attributeValues" では $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
サービスは、result キーの新しい属性値と元の属性値に関する情報を使用して、更新された商品 JSON を返します。
次の例では、liveCoverageAmt 属性の値が $250,000 から $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
}
