CPQ フィールド、システムフィールド、およびパートナーフィールド

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:6分
  • CPQ の 3 つのタイプのフィールド (CPQ、システムフィールド、パートナーフィールド) について説明します。各タイプが構成内でデータをどのように保存、取得、表示するか、およびシームレスなデータ統合のために Salesforce およびパートナーシステムとどのようにやり取りするかを理解します。

    CPQ環境には、CPQフィールド、システムフィールド、パートナーフィールドの 3 つのカテゴリのフィールドがあります。

    CPQ フィールド

    CPQフィールドは、CPQ環境に合わせてカスタマイズされたユーザー定義フィールドです。そのタイプは、数値、テキスト、ピックリスト、セット、または製品ピッカーです。ユーザーが CPQ でフィールドを作成するときに、フィールド定義にデフォルト値を手動で割り当てるか、決定アクションを使用して値を設定できます。

    次の例は、ユーザーが [構成/再構成時] 拡張で CPQ フィールドを設定する方法を示しています。

    cfgRequest.testField.set("value", "Hello World"); 

    CPQフィールドの詳細については、「フィールドを構成」を参照してください。

    注:
    CPQへの起動ポイントとして Salesforce を使用しない組織では、API 呼び出しですべてのフィールドを初期化する必要があります。

    システムフィールド

    システムフィールド

    システムフィールドは事前定義されています。システムフィールドは SFDC 製品キャッシュ (または現在の日付と時刻) を利用して値を生成するため、デフォルト値を割り当てることはできません。

    次の例は、ユーザーが [構成/再構成] 拡張でシステムフィールドを呼び出す方法を示しています。

    let pC = {"input2":cfgRequest.sys.productCode.value};

    システムフィールドは、任意のレイアウトに直接追加できます。事前定義されたデータが含まれているかどうかにかかわらず、問題なく表示できます。

    レイアウトエディターで、次の操作を行います。

    レイアウトエディター

    Configurator UI で、次の操作を行います。

    レイアウトエディター画面

    この例では SFDC で定義されていないため、測定単位は空白です。

    これらの各システムフィールドとそれぞれのSFDCオブジェクトのマッピングは、以下のとおりです。フィールド API 名は括弧内にあります。

    • sys.productUOM > 製品:数量測定単位 (QuantityUnitOfMeasure)
    • sys.productName >製品:製品名 (Name)
    • sys.productFamily >製品: 製品ファミリー (ファミリ)
    • sys.productDescription > 製品: 製品の説明 (description)
    • sys.productCode >製品:製品コード (ProductCode)
    • sys.enableValidation:値のデフォルトは true です
    • sys.currentDate:簡易時間 API 呼び出し、UTC の日付を返します
    • sys.actionContext >見積品目:アクションコンテキスト (LGK ActionContext c)
    • sys.productPrice > 価格ブックエントリ:表示価格 (単価)
    • sys.productId:値はアドミン設定によって異なります

      sys.productId は、 CPQ 環境設定で定義されているものに変更されます。たとえば、[Product Id] フィールドが [Product Code] に設定されている場合、結果のデータは [Product Code] になり、[sys.productCode] フィールドと同じになります。

    製品コード

    代わりに [Product Id (製品 ID)] フィールドが [Partner Id (パートナー ID)] に設定されている場合、データは SFDC フィールド Product2 Id (フィールド API 名としての ID) からプルされます。

    システムフィールド画面

    パートナーフィールド

    パートナーフィールド

    パートナーフィールドは、POST 呼び出しを使用して API を介して構成を初期化するフィールドです。パートナーフィールドは、パートナーのデータセットを活用してフィールド値を生成します。

    これらの各パートナーフィールドとそれぞれの SFDC オブジェクトのマッピングは次のとおりです。フィールド API 名は括弧内にあります。

    • partner.quote.id 見積もり>レコード ID (ID)
    • partner.quote.lineId 見積依頼明細行>レコード ID (ID)
    • partner.quote.pricebookId 見積もり > 価格ブック ID (SBQQPricebookIdc)
    • partner.quote.currencyIsoCode 見積もり > CurrencyIsoCode

      組織の Salesforce 組織で複数通貨が有効になっていない場合、partner.quote.currencyIsoCode のデフォルトは USD です。複数通貨を有効にするには、Salesforce の記事「 複数通貨を有効にする」の手順に従います。

    これらのフィールドを使用する場合、製品の初回構成時に一部のデータに値 (null) が含まれていない場合があることに注意してください。初期化エラーがないことを確認するには、パートナーフィールドを使用するルールまたはスクリプトに null チェックを含めます。

    これらのフィールドは、システムフィールドのようにレイアウトに直接追加することはできません。代わりに、 CPQ フィールドを使用して、初期化拡張を介してパートナーフィールドにデータを入力できます。

    次の初期化拡張の例では、パートナーフィールドの値をコンフィギュレーターに入力します。

    let quoteId = cfgRequest.partner.quote.id.value;
    let lineID = cfgRequest.partner.quote.lineId.value;
    let currencyISO = cfgRequest.partner.quote.currencyIsoCode.value;
    let priceBookID = cfgRequest.partner.quote.pricebookId.value;
    
    if (quoteId != null) {
    	cfgRequest.quoteIDTest.set("value", quoteId);
    }
    if (lineID != null) {
    	cfgRequest.lineIDTest.set("value", lineID);
    }
    if (currencyISO != null) {
    	cfgRequest.currencyISOCodeTest.set("value", currencyISO);
    }
    if (priceBookID != null) {
    	cfgRequest.pricebookIDTest.set("value", priceBookID);
    }
    return cfgRequest;

    初期構成:

    初期設定画面。

    再構成:

    パートナーフィールド

    明細行 ID が入力されました。

    パートナーフィールドとシステムフィールドの使用方法はユーザー次第です。コンフィギュレーターでエンドユーザーにこの情報を表示すると便利な組織もあれば、ルールのバックグラウンドでこの情報を使用して価格設定条件を推進する組織もあります。