ユースケース:Salesforce Quote Calculator プラグインを使用して、 CPQ から Salesforce の見積もりと見積明細にデータを統合する

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:4分
  • CPQ Extension for Salesforce CPQ パッケージバージョン 1.7 以前では、Salesforce 見積もり算出プラグインを使用して構成から拡張情報を解析し、カスタムフィールドにマップします。

    注:
    この記事は、Salesforce CPQ パッケージバージョン 1.7 以前の CPQ 拡張機能に適用されます。バージョンが 1.8 以降の場合は、「 ユースケース:構成品目から見積品目へのフロー」を参照してください。

    Salesforce 見積もり算出プラグイン (QCP) で CPQ ProductList オブジェクトの拡張情報を使用すると、データを CPQ から Salesforce に渡し、見積もりと見積明細行の両方の情報を操作するために使用されます。

    ProductList.extended には、ここに示すように、詳細な製品アクションのみを入力できます。

    詳細機能コード

    ProductList.extended オブジェクトは JSON オブジェクトの形式を取り、キーと値のペアを受け入れます。上記の例では、ダミー テキスト文字列 "QCP Test Value" を newValue キーを使用して渡します。ProductList.extended は、フィールド値と JSON オブジェクトの配列を保持できます。

    この製品が部品表 (BOM) に追加されると、構成可能な製品の見積明細に保持されているカスタムオブジェクト「BOM データ」で関連情報を表示できます。

    コード

    この拡張情報を活用するには、 見積もり算出プラグインを使用する必要があります。まず、Salesforce の [カスタムスクリプト] アイテムに移動します。

    パフォーマンス

    ここでは、 CPQ からの拡張情報を活用し、それを使用して SFDC のフィールドを操作するスクリプトを記述できます。次のスクリプトは、このインスタンスで使用されるサンプルスクリプトです。

    export function onBeforeCalculate(quote, lines) {
    	var result;
    	var resultValue;
    	var product_code = "headlessItem3";
    	if (lines != null) {
    		lines.forEach(function (line) { //Parsing all quote lines to find BOM Data object
    			if(line.record["LGK__BomData__c"] != null){                        
    				var configJson = JSON.parse(line.record["LGK__BomData__c"]);
    				var itemsJson = configJson["items"]; //Create JSON object containing all items in BOM data
    				itemsJson.forEach(function(itemsLine){ //For each item in the BOM Data
    					if(itemsLine["productCode"] == product_code){ //Checking for item "headlessItem3"
    						result = itemsLine["extended"]; //Parses extended information to find "newValue"
    						resultValue = result["newValue"]; //Assigning keyed value of "newValue"
    					}
    				});
    			}
    		});
    		lines.forEach(function (line) { //For each line in the quote
    			if (line.record["SBQQ__ProductCode__c"] == product_code){ //Checking for the line item "headlessItem3"
    				line.record["Test_Text__c"] = resultValue; //Setting the quote line field "Test Text" with the value of resultValue
    			}
    		});
        }
        return Promise.resolve();
    }; 

    カスタムスクリプトによって参照される見積フィールドまたは見積明細フィールドは、カスタムスクリプトレコードの適切な入力で明示的に定義する必要があります。サンプルスクリプトは、LGK_BomData c、SBQQ_ProductCode c、および Test_Text c の 3 つの見積明細フィールドを参照しています。

    スクリプトを作成したら、Salesforce CPQ 設定で定義します。次の手順を実行します。

    1. [セットアップ] で、クイック フィードを使用して「インストール済みパッケージ」を検索します。
    2. [Salesforce CPQ] の横にある [構成] をクリックします。
    3. [価格設定と計算] タブを選択します。
    4. 必要に応じて、[従来の算出を使用] の選択を解除します。
    5. [プラグイン] タブを選択します。
    6. 見積もり算出プラグインでカスタムスクリプトを定義し、[ 保存] をクリックします。

    パフォーマンスグラフ

    見積に移動し、SFDC で計算を実行するアクション ([計算] をクリックするなど) をトリガーすると、見積算出プラグインが実行され、指定されたとおりにフィールドが変更されます。