この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

トレードプロモーション管理の変換エンジンワークフロー

ワークフローには、入力 JSON から出力構造への変換を適用する APEX コール可能クラスが含まれています。
ビジネスオブジェクト API ワークフロールールでは、Entities の概念を使用して、データ入力 (入力ペイロード) と出力 (生成されたオブジェクトまたはレコード) の両方のレコードが識別されます。エンジンでサポートされるエンティティは、ビジネスオブジェクト API エンティティオブジェクトで確認できます。管理パッケージで提供されるエンティティを次に示します。
表 1. パラメーターの説明
エンティティ名 場所 説明
Promotion 入力 入力プロモーションを表します。オブジェクトの属性は、このエンティティを使用するワークフロールールで定義されます。
Tactic 入力 入力戦略を表します。オブジェクトの属性は、このエンティティを使用するワークフロールールで定義されます。
ManualInputs 入力 手動入力配列を表します。オブジェクトの属性は、このエンティティを使用するワークフロールールで定義されます。
ProductFilter 入力 商品検索条件構造を表します。オブジェクトの属性は、このエンティティを使用するワークフロールールで定義されます。
TPM_Promotion 出力 すべてのプロモーションデータを含む TPM_Promotion インスタンスを表します。
TPM_Promotion.Promotion 出力 すべてのプロモーション SObject データを含む TPM_Promotion.Record インスタンスを表します。SObject 項目は、ドット表記と共に使用できます。
TPM_Promotion.Tactic 出力 すべての戦略 SObject データを含む TPM_Promotion.TacticRecord インスタンスを表します。SObject 項目は、ドット表記と共に使用できます。
TPM_Promotion.Attachment 出力 すべてのプロモーション添付ファイル SObject データを含む TPM_Promotion.Record インスタンスを表します。SObject 項目は、ドット表記と共に使用できます。
TPM_Promotion.AttachmentLink 出力 すべてのプロモーション添付ファイルリンク SObject データを含む TPM_Promotion.Record インスタンスを表します。SObject 項目は、ドット表記と共に使用できます。
TPM_Promotion.ProductFilter 出力 すべてのプロモーション商品検索条件の情報を含む TPM_ProductFilter インスタンスを表します。
TPM_Promotion.ProductShare 出力 すべてのプロモーション商品共有 SObject データを含む TPM_Promotion.Record インスタンスを表します。SObject 項目は、ドット表記と共に使用できます。
TPM_Promotion.TacticConditionCreationDefinition 出力 すべての戦略条件作成定義 SObject データを含む TPM_Promotion.Record インスタンスを表します。SObject 項目は、ドット表記と共に使用できます。
TPM_Promotion.TacticFund 出力 すべての戦略資金 SObject データを含む TPM_Promotion.Record インスタンスを表します。SObject 項目は、ドット表記と共に使用できます。
TPM_Promotion.TacticProductFilter 出力 すべての戦略商品検索条件の情報を含む TPM_ProductFilter インスタンスを表します。
CustomState 出力 保存中にプロモーション保存プロセスに渡される汎用オブジェクトを表します。
ワークフローステップ SObject
ワークフローステップは、Workflow Step SObject で定義されます。各ステップでは、次の一連の属性が必要です。
表 2. ワークフローステップのパラメーター
オブジェクト 説明 必須か省略可能
Name ビジネスルールの名前。 必須
Entity ルールを適用する必要がある入力のエンティティ。 省略可能
Method コール可能なクラスに渡されるアクションメソッド。 省略可能
Classname 変換を実装している APEX コール可能クラスの名前。 必須
Description ルールで実行される内容の概要。 省略可能
入力構造レコード
すべてのルールには、ルールで要求される入力を反映した入力構造レコードのリストが必要です。各レコードには、次の情報が必要です。
表 3. 入力構造レコード
オブジェクト 説明
Path ルールが値を読み取る入力 JSON のパス。
可能な値は次のとおりです。
  • .TacticTemplate
  • .Categories
Required プロパティが必須であるか、省略可能であるかを示す Boolean。
RecordType プロパティで要求される入力の種別。
可能な値は次のとおりです。
  • Object
  • Array
  • String
  • number
  • Boolean
  • Maximum and Minimum (Numbers)
  • Pattern (String)

入力構造レコードは、JSON スキーマを生成するために使用されます。受け取った入力属性がルールに従っていない場合は、ステップでエラーが報告されます。

メモ

適用される変換ルール
Applied Transformation Rules は、Transformation Configuration Record で設定されます。次の表は、更新が必要なレコード検索条件に関する情報を示しています。
表 4. 適用される変換レコード項目
オブジェクト 説明
Transformation Rule 適用される変換ルール。
Enabled ルールが適用されるかどうかを示します。
Sort ルールは昇順で実行されます (連動関係の作成が可能)。

Transformation Rules APEX クラスは、次の属性を持つコンテキストオブジェクトを受け取ります。

指定された新しい値を使用して Tactic Comment (戦略コメント) 項目を更新する完全なワークフローを新規に作成します。

  1. [Business Object APIs (ビジネスオブジェクト API)] タブに移動して、セールス組織 0001 の Promotion エントリに移動します。存在しない場合は、それらの属性を持つレコードを作成します。
  2. BO API の出力エンティティを設定します。BO API の出力エンティティでは、API で処理されるオブジェクトの種別を定義します。Output Entities 関連リストで、次のエンティティが表示されることを確認します。関連リストにない場合は追加します。
    1. TPM_Promotion (メインのプロモーションオブジェクトラッパー)
    2. TPM_Promotion.Tactic (戦略レコード)
    3. TPM_Promotion.Promotion (プロモーションレコード)
  3. ワークフロータブで、次の属性を持つワークフローを作成します。
    1. 名前: updateTacticComments
    2. 説明: 入力パラメーターを使用して Tactic Comment (戦略コメント) を更新します。
  4. 新しいワークフローレコードに移動します。
  5. 入力レコードを出力レコードに対応付ける方法を設定します。これを行うには、「入力エンティティおよび対応付け」関連リストにエントリを追加します。関連リストで次のレコードを作成します。

    レコード 1

    1. ビジネスオブジェクト API エンティティ: Promotion
    2. 出力エンティティ: TPM_Promotion.Promotion
    3. 入力対応付け項目: Id
    4. 出力対応付け項目: Id、cgcloud__ExternalId__c

    レコード 2

    1. ビジネスオブジェクト API エンティティ: Tactic
    2. 出力エンティティ: TPM_Promotion.Tactic
    3. 入力対応付け項目: Id
    4. 出力対応付け項目: Id、cgcloud__ExternalId__c
  6. ワークフローにステップを追加します。必要なプロモーションデータをすべて読み込むには、管理パッケージで提供されるワークフローステップを再利用します。ワークフローステップ関連リストで、次のレコードを作成します。

    レコード 1

    1. ビジネスオブジェクト API ワークフローステップ: loadPromotionDefaults(update)2
    2. 有効化: チェック済み
    3. 並び替え: 10

    レコード 2

    1. ビジネスオブジェクト API ワークフローステップ: loadTacticDefaults(update)2
    2. 有効化: チェック済み
    3. 並び替え: 20
  7. [ワークフロー] ヘッダーの [スキーマを参照] ボタンをクリックして、この API の入力ペイロード構造を確認します。スキーマは次のようになります。
  8. カスタム動作を追加します。別のワークフローステップを追加するには、入力の入力属性を SObject 項目の Comment__c にコピーする APEX クラスを作成します。組織で次の APEX クラスを作成します。
  9. BO API ワークフローステップレコードを作成します。[Business Object API Workflow Steps (ビジネスオブジェクト API ワークフローステップ)] タブに移動して、新しいレコードを作成します。
    1. ビジネスオブジェクト API ワークフローステップ名: SetCommentValue
    2. クラス名: SetCommentValue (APEX クラスの名前)
    3. 説明: 入力属性からの Tactic (戦略) の Comment Value (コメント値) を設定します。
    4. メソッド: test (メソッドはコール可能なクラスに渡されます。この方法により、さまざまなメソッドを使用して、同じクラスが複数の動作を実装できます。)
    5. エンティティ: Tactic (このステップを各入力戦略で適用したいため)。
    6. セールス組織: 0001
  10. ステップで必要な入力構造を定義します。ワークフローステップのステップ入力構造関連リストのレコードを作成します。ステップ入力構造の属性は、入力に必要なスキーマを決定するために使用されます ([スキーマを参照] ボタン)。入力がスキーマに一致しない場合は、エラーが表示されます。
    1. レコードタイプ: String
    2. 説明: 新しいコメント属性の値
    3. パス: .MyComment
    4. 必須: チェックしない
    5. 最大文字数: 80
  11. ワークフローステップをワークフローレコードに追加します。
    1. ビジネスオブジェクト API ワークフローステップ: SetCommentValue
    2. 有効化: チェック済み
    3. 並び替え: 30
  12. [スキーマを参照] をクリックします。スキーマの構造は、次のようになります。

    スキーマは、新規の MyComment 属性を受け入れます。

    メモ

  13. プロモーション BO API エンドポイントに対して REST コールを実行し、必要なパラメーターを渡して、API をテストします。
  14. 返された importId で要求を参照して、[Business Object API Transaction Logs (ビジネスオブジェクト API トランザクションログ)] タブから実行状況を追跡します。

コーディングのガイドライン

  • Business Rules コードでは、コストが高い操作は避けてください (大規模な JSON シリアライゼーションやデシリアライゼーションなど)。
  • 他のルールが影響を受ける恐れがあるため、データベースからの SObject レコードはキャッシュします。(SimplePromotionCoreBusinessRules.readSObjectById を確認します)
  • モジュール形式および設定可能なアプローチを行えるようにするため、Business Rules では、必ず単一のジョブに焦点を当てます。