Loading
メールアドレスがデフォルトのログイン方式となります 続きを読む
Insurance
InsProductService:repriceProduct

InsProductService:repriceProduct

このサービスを使用して、その商品に添付されている評価手順を使用して 1 つの商品の価格を設定します。通常、このサービスはユーザーが商品を選択し、その対象範囲をカスタマイズするときにコールされます。

クラス: InsProductService

方法: repriceProduct

サービスは、入力 JSON で 1 つの商品オブジェクトを取得し、合計価格と合計保険金額を含む商品を返します。また、評価手順から完全な結果 JSON を返します。

このサービスは 1 人以上の被保険者 (保険契約商品でカバーされる人) と 1 人以上の被保険者項目 (自動車保険契約の複数の車など) で機能します。

このサービスでは、見積を変更するときに [対象資格]、[必須]、[デフォルトの補償範囲] オプションルールは実行されません。

操作手順

  1. サービスは、選択したプロダクトキーの入力 JSON を検索し、その値を取得します。このオブジェクトには 1 つの商品オブジェクトが含まれます。

  2. 商品データを使用して Salesforce を検索し、サービスが商品を見つけて評価手順を取得します。

  3. このサービスは、商品 JSON 構造を使用して商品を評価します。

  4. このサービスは、合計金額と合計保険金額を含む商品オブジェクトを返します。出力 JSON には、評価手順の解析結果 JSON が CalculatedPriceData の値として含まれます。商品で数式が設定されている場合は、価格とtotalSumInsuredも設定されます。

リモートオプション

オプション

説明

aggByKey

PRODUCT.instanceKey

aggByKey を設定すると、aggregationResult が空でない場合、その値が計算手順のaggregationResultに含まれます。(通常、aggregationResultは計算手順に集計ステップが設定されている場合に入力されます)。

たとえば、自動車保険の見積または保険契約には、各被保険者自動車保険に複数の運転者が関連付けられています。自動車保険の被保険者には、Auto+Driver インスタンスごとに個別のinstanceKeyがあります。aggByKeyは車両のすべてのinstanceKeysを取得し、instanceKeyごとの補償保険料の配列を作成して、保険料を正しく計算できるように計算手順に渡します。

alwaysCreateInstance

階層の特定のレベルに複数の子仕様があり、孫仕様がなく、ルートレベルで評価手順が 1 つのみの製品に対して、このオプションを [true] に設定します。

これらの条件をすべて満たしていない商品については、このオプションを省略します。

この種別の商品のuserInputsを書式設定するには、「One Rating Procedure per Product for repriceProduct (repriceProduct の商品ごとの 1 つの評価手順)」を参照してください。

effectiveDate

“YYYY-MM-DD HH:MM:SS”

または

%OmniScriptDataElement%

デフォルトは今日の日付です。

evalOptionalCoverageRelationship

true または false

このオプションが true の場合、サービスはupdateOptionalCovIsSelectedField 最初にコールしてから、repriceProduct をコールします。

getDataDRBundleName

このサービスでポリシー (アセット) 情報を取得するために使用する OmniStudio データマッパーの名前。

Salesforce FSC を使用している場合は、このオプションまたはgetDataCustomClassNameを指定する必要があります。

getDataCustomClassName

このサービスがポリシー (納入商品) 情報を取得するために使用するカスタムクラスの名前。

Salesforce FSC を使用している場合は、このオプションまたはgetDataDRBundleNameを指定する必要があります。

includeInputKeys

サービスが計算手順に渡す、または計算手順から渡すキー/値ペアのカンマ区切り文字列。

これらのキー/値のペアは、CalculatedPriceData オブジェクト内の出力商品オブジェクトに含まれます。これは、計算結果を解析するのに役立ちます。

結果に値が含まれるのは、計算手順で使用される入力キーのみです。

includeRawCalculationResult

true または false

デフォルトは false です。

計算手順の結果全体をRawPriceDataキーに含めます。

validateCoverageSelection

true または false

省略可能な補償範囲入力規則を使用する場合は、[true] に設定します。このオプションを [true] に設定すると、サービスは再価格をコールする前にInsuranceSelectValidationServiceをコールします。

calculateTaxesAndFees

省略可能

true または false

対象商品の税金と手数料を計算するには、true に設定します。

Salesforce FSC を使用していて、このオプションを true に設定した場合は、[getDataDRBundleName] または [getDataCustomClassName] オプションも指定する必要があります。

jurisdictionIds

ID の文字列リスト

calculateTaxesAndFees オプションと組み合わせて使用します。

指定された管轄区域に関連する税金と手数料のみを計算します。

taxAndFeeEffectiveDate

このサービスが税金と手数料の計算に使用する発効日。このオプションは、製品の価格設定に使用される effectiveDate オプションとは異なります。

値を指定した場合、サービスはその値を使用します。

値が指定されておらず、商品 JSON がポリシーではない場合、サービスはデフォルトで今日の日付に設定されます。

値が指定されておらず、商品 JSON がポリシーの場合、サービスは元のポリシーバージョンの発効日を使用します。

withTaxFeeRounding

省略可能

true の場合、計算された税金と手数料の金額は、半偶数丸め方法を使用して小数点以下 2 桁に丸められます。withTaxFeeRounding は、 calculateTaxesAndFees オプションも true の場合にのみ有効です 。false の場合、丸めは無効になります。

デフォルト値は false です。

Input JSON

InsProductService: repriceProduct は、入力 JSON の selectedProduct キーで商品オブジェクトを検索します。このオブジェクトには、関連付けられた補償範囲仕様、保険項目仕様、被保険者仕様、評価結果仕様など、商品の属性に対応付けられた評価手順に必要な入力が含まれます。このオブジェクトは、getRatedProducts などの他のサービスによって作成できます。ルート商品、子商品、孫商品が含まれます。サービスは商品構造を解析し、データを式セットまたは計算手順に渡します。評価に対応付けられた属性がオブジェクトに含まれていない場合、サービスでは商品管理者が設定したデフォルトが使用されます。

このサービスでは、入力 JSON 内のuserInputsキーも検索されるため、selectedProductノードに含まれていない評価要素も検出できます。商品定義と評価設定に応じて適切なuserInputs形式を使用します。このサービスでは、一度に 1 つのタイプのuserInputs形式のみを使用できます。

出力 JSON

サービスは、更新された価格設定情報を使用して、selectedProduct ノードと同じ JSON 構造を返します。このオブジェクトの内容と構造についての詳細は、「Product JSON Structure Model (製品 JSON 構造モデル)」を参照してください。

メモ
メモ

税金および手数料サービスを使用している場合、getRatedProductsが JSON に書き込む方法と同様に、JSON 出力が JSON レコードに保持されます。

商品ごとに、評価手順の計算からの出力 JSON が CaculatedPriceData キーを使用して商品に追加されます。商品で価格設定数式が設定されている場合、price の値はその計算値に設定されます。商品で保険金額合計数式が設定されている場合、TotalInsured の値はその計算値に設定されます。

CalculatedPriceData中の構造。インスタンスのサポートが含まれます。価格指標はインスタンスレベルでグループ化されます。

出力 JSON には、インスタンスレベルの価格を合計するルートレベルのpriceDiffノードが含まれます。また、ルートレベルの totalPremiumForTermDiff フィールドも含まれます。この値は、期間の元の保険料合計と、新しい保険契約バージョンの期間の保険料合計と古い保険契約バージョンの期間の更新された保険料との差です。

この例では、商品に価格設定数式が設定されていますが、合計保険金額は設定されていません。サービスは、評価手順の結果にCalculatedPriceDataを追加します。このサービスは数式に基づいて価格を計算します。合計保険数式は商品に設定されず、データにも表示されません (TotalInsuredもされません)。

"totalSize": null,
"records": [{
    "displaySequence": -1,
    "rootProductId": "01t1I000002fuBoQAI",
    "rootProductCode": "AUTOROOT",
    "timestamp": 1533948385704,
    "hasInstanceKeys": true,
    "childProductsCount": 8,
    "instanceKeyChildren": 2,
    "pathFromChild": "[0]",
    "pathFromRoot": "[0]",
    "Price": 80,
    "productId": "01t1I000002fuBoQAI",
    "Term__c": "Semi-Annual",
    "PricingFormula__c": "SUM(AutoPremium__autoPremium + rentalTotal + medicalTotal + roadsideTotal + dedWaiverTotal + uninsuredMotoristPDTotal + uninsuredMotoristBITotal)",
    "IsConfigurable__c": true,
    "RecordTypeName__c": "Product",
    "IsRecommended__c": false,
    "ProductCode": "AUTOROOT",
    "Name": "Auto Root",
    "Id": "01t1I000002fuBoQAI",
    "RawPriceData": [{
        "calculationResults": [{
          "DRIVER.LN": null,
          "DRIVER.FN": null,
          "AUTO.instanceKey": "2015 Lexus LX250",
          "uninsuredMotoristBITotal": 100,
          "uninsuredMotoristPDTotal": 0,
          "dedWaiverTotal": 10,
          "roadsideTotal": 10,
          "medicalTotal": 10,
          "rentalTotal": 40,
          "comprehensiveTotal": 500,
          "ID": "0"
        }],
        "aggregationResults": {}
      },
      {
        "calculationResults": [{
          "DRIVER.LN": null,
          "DRIVER.FN": null,
          "AUTO.instanceKey": "2006 Honda Odyssey",
          "uninsuredMotoristBITotal": 100,
          "uninsuredMotoristPDTotal": 0,
          "dedWaiverTotal": 10,
          "roadsideTotal": 10,
          "medicalTotal": 10,
          "rentalTotal": 40,
          "comprehensiveTotal": 500,
          "ID": "1"
        }],
        "aggregationResults": {}
      }
    ],
    "CalculatedPriceData": {
      "2015 Lexus LX250": {
        "DRIVER.LN": null,
        "DRIVER.FN": null,
        "AUTO.instanceKey": "2015 Lexus LX250",
        "uninsuredMotoristBITotal": 100,
        "uninsuredMotoristPDTotal": 0,
        "dedWaiverTotal": 10,
        "roadsideTotal": 10,
        "medicalTotal": 10,
        "rentalTotal": 40,
        "comprehensiveTotal": 500,
        "ID": "0"
      },
      "2006 Honda Odyssey": {
        "DRIVER.LN": null,
        "DRIVER.FN": null,
        "AUTO.instanceKey": "2006 Honda Odyssey",
        "uninsuredMotoristBITotal": 100,
        "uninsuredMotoristPDTotal": 0,
        "dedWaiverTotal": 10,
        "roadsideTotal": 10,
        "medicalTotal": 10,
        "rentalTotal": 40,
        "comprehensiveTotal": 500,
        "ID": "1"
      }
    },
    "priceDiff": 0,
    "totalPremiumForTermDiff": 0,
    "attributeCategories": {
      "totalSize": 1,
      "records": [{
        "displaySequence": 5,
        "id": "a1V1I0000007xJSUAY",
        "Name": "Alan Health Attributes",
        "Code__c": "AHA",
        "productAttributes": {
          "totalSize": 1,
          "records": [{
            "code": "ALANDEDUCTIBLE",
            "dataType": "text",
            "inputType": "text",
            "required": false,
            "readonly": false,
            "disabled": false,
            "filterable": true,
            "attributeId": "a1W1I000000Bu1jUAC",
            "label": "Deductible",
            "displaySequence": 2,
            "hasRules": false,
            "hidden": false,
            "values": [{
              "readonly": false,
              "disabled": false
            }],
            "userValues": "test",
            "parentProductId": "01t1I000002fuBoQAI",
            "parentProductCode": "AUTOROOT",
            "pathFromChild": "attributeCategories.records[0].productAttributes.records[0]",
            "pathFromRoot": "attributeCategories.records[0].productAttributes.records[0]"
          }]
        }
      }]
    },
    "childProducts": {
      ...
    }
 
読み込み中
Salesforce Help | Article