Skip to main content

条件付き Data Mapper Load を使用して Integration Procedure を構築する

学習の目的

この単元を完了すると、次のことができるようになります。

  • 分岐機能を使用して Integration Procedure を構築する。
  • Data Mapper Load を Integration Procedure に追加する。

分岐機能を使用して Integration Procedure を構築する

Update Account Primary Contact OmniScript は、3 方向に分岐しています。ということは、更新されたデータを処理するために、Integration Procedure を 3 つ構築しなければならないのでしょうか? それでも構いませんが、別の解決法があります。分岐機能を使用して Integration Procedure を構築することです。 

OmniScript の分岐ロジックに対応させるために、Integration Procedure にレコードの 3 通りの更新方法を設定します。どの Data Mapper Load を実行するかは、この Integration Procedure が条件付きアクションを使用して判断します。 

メモ

3 つの異なる Integration Procedure や Data Mapper Load を直接 OmniScript に追加することも可能ですが、そうすると OmniScript が一層複雑になります。OmniScript に余分なロジックがあると実行に時間がかかるため、通常は Integration Procedure で上記の処理を行うことがベストプラクティスです。

Integration Procedure の [Structure (構造)] パネルの 3 つの Data Mapper Post Action

Integration Procedure の [Structure (構造)] パネルに、3 つの Data Mapper Load (2) のそれぞれの Data Mapper Post Action (1) が示されます。このアクション名が、主取引先責任者の更新、変更、作成という目的を表しています。

特定の Data Mapper をいつ実行するかは、OmniScript の StepContacts 要素にある RadioPriContact でどのオプションを選択したかによって決まります。Integration Procedure で Data Mapper Post Action ごとに、StepContacts 要素のオプションに一致する条件を設定します。 

アクションのプロパティに [Execution Conditional Formula (実行条件式)] 項目があり、ここでアクションをいつ実行するかを指定します。この例の [DRUpdatePriContact] アクション (1) は、[Execution Conditional Formula (実行条件式)] (3) が [RadioPriContact=="Update"] になった場合に、[teamUpdatePriContact] Data Mapper (2) が実行されるように設定されています。

DRUpdatePriContact の条件式

Data Mapper Post Action の式は次のとおりです。 

Element Name (要素名)

DRUpdatePriContact 

RadioPriContact=="Update"

DRChangePriContact 

RadioPriContact=="Change"

DRCreatePriContact 

RadioPriContact=="Create"

Data Mapper Load を作成して Integration Procedure に追加する

各 Data Mapper Load を作成する場合に必要となるのは、Integration Procedure の [Preview (プレビュー)] に貼り付けた JSON の一部のみで、具体的には配列の特定のノードと AccountId があれば作成できます。以下は、各 Data Mapper Post Action の Send/Response Transformations (送信/応答変換) プロパティと Additional Input (追加入力) プロパティを示しています。 

Element Name (要素名)

Data Mapper Post Action のプロパティ

DRUpdatePriContact 

Send JSON Path = StepContacts:BlkUpdatePriContact

DRChangePriContact 

Send JSON Path = StepContacts:BlkChangePriContact:TAChangeContact-Block

Additional Input Key/Value Pair = AccountId/ %AccountId%

DRCreatePriContact 

Send JSON Path = StepContacts:BlkCreatePriContact

Additional Input Key/Value Pair = AccountId/ %AccountId%

Data Mapper Load を作成する場合は、Data Mapper Designer の次のタブを使用して、Data Mapper Load で実行する処理を指定します。

  • [Objects (オブジェクト)] タブ
  • [Fields (項目)] タブ
  • [Preview (プレビュー)] タブ

Data Mapper Load ごとに用途が異なるため、それぞれのタブの使用法を見ていきましょう。 

[Objects (オブジェクト)] タブ

[Objects (オブジェクト)] タブでは、更新する Salesforce オブジェクトを指定します。 

1.Update Primary Contact Data Mapper では、オブジェクトに [Contact (取引先責任者)] を選択します。更新された主取引先責任者データを元の取引先責任者オブジェクトに保存するためです。

Data Mapper Load の [Objects (オブジェクト)] タブで取引先責任者オブジェクトを選択

2.他の Data Mapper では、2 つ目のオブジェクトに [Account (取引先)] を選択します。この選択によって、取引先の新しい主取引先責任者が元の取引先オブジェクトに保存されます。

Data Mapper Load の [Objects (オブジェクト)] タブで取引先責任者オブジェクトと取引先オブジェクトを選択

3.取引先オブジェクトを取引先責任者オブジェクトに結び付けます。[+ Add Link (リンクを追加)] (1) をクリックし、[Domain Object Field (ドメインオブジェクト項目)] (2) で主取引先責任者カスタム項目を選択してから、[Linked Object (リンクされたオブジェクト)] の 2 つのドロップダウン (3) で [1-Contact (1-取引先責任者)] と [Id (ID)] を選択します。

これは Data Mapper の能力を示すよい例です。ここでは、先ほど作成または変更した取引先責任者の RecordId を使用して、取引先の [Primary Contact (主取引先責任者)] 項目の値を更新します。Data Mapper はまず取引先責任者を作成し、次にその新しく作成されたレコードのデータを使用して、取引先責任者にリンクされている他のレコード (この例では取引先) に入力します。

[Fields (項目)] タブ

[Fields (項目)] タブでは、更新する Salesforce オブジェクトの項目に入力データを対応付けます。 

[Fields (項目)] タブの [Input JSON Path] と [Domain Object Field (ドメインオブジェクト項目)] の対応付け

[INPUT JSON PATH (入力 JSON パス)] (1) で Salesforce オブジェクトに書き込むデータを含む JSON ノードのキーを指定します。[Domain Object Field (ドメインオブジェクト項目)] (2) では、更新する Salesforce オブジェクトの項目を指定します。JSON を [Input JSON] パネル (3) に貼り付けて入力対応付けを作成してから、[Quick Match (クイックマッチ)] ボタン (4) を使用して入力対応付けをオブジェクトの項目に結び付けます。

この処理はどの Data Mapper Load でも同じです。異なる点は [Input JSON] パネルに貼り付ける JSON で、この JSON によってどの対応付けを結び付ける必要があるかが決まります。 

Data Mapper Load は、既存のデータを上書きするか、データがまだ存在しない場合は新しいレコードを作成するという方法で、更新されたデータを Salesforce のレコードに保存します。この「更新/挿入」プロセスは 2 つの設定で管理されます。 

項目の対応付けの [Upsert Key (更新/挿入キー)] 設定と [Is Required For Upsert (更新/挿入に必要)] 設定

項目の [Upsert Key (更新/挿入キー)] チェックボックス (1) をオンにした場合は、Salesforce の一意のレコードと一致している必要があります。既存の取引先レコードを更新するためには、更新/挿入キーを追加する必要があります。

新しい取引先責任者レコードを作成するように Data Mapper Load を設定する場合、次の 2 つの要件があります。

  • すでに取引先責任者が存在する場合は、新しい取引先責任者を作成しない。取引先責任者の姓や名などの項目を選択して、取引先責任者が存在しないことを確認します。
  • Data Mapper のそのレコードタイプの必須項目をすべて含める。Salesforce の取引先責任者レコードの必須項目は [姓] のみです。[Is Required For Upsert (更新/挿入に必要)] チェックボックス (2) をオンにすると、その項目にデータがあることが確認されます。データがない場合は、Data Mapper がそのレコードを更新/挿入しません。

[Preview (プレビュー)] タブ

[Preview (プレビュー)] タブでは、Data Mapper の出力をテストします。 

[Preview (プレビュー)] タブの [Input (入力)] と作成されたオブジェクト

  1. JSON を Integration Procedure から [Input (入力)] パネル (1) に貼り付けます。
  2. [Execute (実行)] ボタン (2) をクリックします。
  3. [Objects Created (作成されたオブジェクト)] パネル (3) に作成されたオブジェクトがリストされ、永久保存されます。

これで条件付きの Data Mapper Load を使用して Integration Procedure を構築する方法がわかりました。

OmniStudio のツールを併用すれば、高度な処理を実施できることを実感しつつあるのではないでしょうか? 次の単元では、OmniStudio のツールを、OmniStudio の UI レイヤーにある FlexCard というもう 1 つのコンポーネントと連動させる方法を学習します。 

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む