シンプルな Integration Procedure 作成する
学習の目的
この単元を完了すると、次のことができるようになります。
- データフロー内の Integration Procedure の配置を説明する。
- OmniScript のデータを取得するシンプルな Integration Procedure を作成する。
- 更新されたデータを Salesforce に保存するシンプルな Integration Procedure を作成する。
データフロー内の Integration Procedures の配置
前の単元では、シナリオに基づいて Integration Procedure をいくつか設計しました。この単元では、取引先オブジェクトから Edit Account OmniScript にデータを渡す Integration Procedure を作成します。さらに、OmniScript で追加または変更されたこのデータを元の取引先オブジェクトに保存する別の Integration Procedure を作成します。
まず、Integration Procedure がこのシナリオのデータフローのどこに配置されるのかを見てみましょう。
- FlexCard のアクションから Edit Account OmniScript が起動されると、JSON ノードから取引先の RecordId (この場合は「AccountId」) が Data Mapper Extract に渡されます。
- Edit Account OmniScript は、この RecordId を ContextId という変数に保存します。「AccountId」は RecordId の任意の名前です。RecordId にはどのような名前でも付けることができますが、要素と Salesforce の間で適切にデータが流れるようにするには、各要素で同じ名前を使用する必要があります。ContexID にはどのような ID であるかがわかる表示ラベルを付けることをベストプラクティスとしてお勧めします。
- OmniScript は AccountId という変数を Integration Procedure に渡し、Integration Procedure は AccountId を Data Mapper Extract に渡します。
- Data Mapperr Extract は Salesforce Object Query Language (SOQL) で AccountId を使用して Salesforce からデータを取得します。これには、AccountId だけではなく、取引先レコードのデータも含まれます。このデータは、JavaScript Object Notation (JSON) 形式で Data Mapper Extract から Integration Procedure に送信され、さらに OmniScript に送信されます。
- ユーザーと他の OmniScript アクションによってデータが操作されます。
- AccountId を含む更新されたデータ JSON が Integration Procedure に渡され、Integration Procedure から Data Mapper Load に渡されます。
- Data Mapper Load は AccountId を使用して元の取引先レコードを識別し、Salesforce 内のデータを更新します。
データを取得する Integration Procedure を作成する
前の単元のシナリオ 1 では、Edit Account OmniScript のデータを取得する Integration Procedure を設計しました。Salesforce から取引先データを取得する Data Mapper Turbo Extract をコールするために、Data Mapper Turbo Extract Action を選択しました。次に、Integration Procedure から Edit Account OmniScript にデータを返す Response Action を選択しました。このプロセスは次のようになります。
これらすべてを Integration Procedure で設定するにはどうしたらよいでしょうか?
- [AVAILABLE COMPONENTS (コンポーネント)] パネルから [STRUCTURE (構造)] パネルに Data Mapper Turbo Action (1) をドラッグします。
- 目的を説明する名前を付けます (
DRGetAccountDetails
など)。
- Data Mapper Turbo Action の [PROPERTIES (プロパティ)] パネルで、[Data Mapper Interface (Data Mapper インターフェース)] (1) 項目から使用する Data Mapper Turbo Extract を選択します。
- [INPUT PARAMETERS (入力パラメーター)] (2) で、[Data Source (データソース)] と [Filter Value (条件値)] の両方に「AccountId」と入力します。前述したように、「AccountId」は RecordId の任意の名前ですが、要素と Salesforce の間で適切にデータが流れるようにするには、各要素で同じ名前を使用する必要があります。
- Response Action (1) を設定し、Edit Account OmniScript にどのデータを返すべきかを Integration Procedure に指示します。データをトリミングして OmniScript で必要とされる部分のみを返すようにするには、[Send JSON Path (送信 JSON パス)] 項目 (2) に
DRGetAccountDetails
と入力します。
これで Integration Procedure を設定できましたが、機能するかどうかをテストする必要があります。このテストには取引先の RecordId が必要です。ここで、RecordId とは何かと、RecordId を調べる方法を説明しておきます。
Salesforce 内のすべてのレコードには一意の RecordId があります。取引先の RecordId は、組織で取引先レコードを開き、URL から RecordId をコピーするだけで簡単に取得できます。
これで AccountId を取得できたため、テストを実施できます。
Integration Procedure の [PREVIEW (プレビュー)] タブで、[Input Parameters (入力パラメーター)] パネル (1) にキーと値のペア (たとえば [Key (キー)] に AccountId、[Value (値)] に取引先の RecordId) を入力します。
[Execute (実行)] (2) をクリックして Integration Procedure を実行します。データが正しく抽出されていることを確認するために [Response (応答)] (3) ペインに結果が返されます。
[PREVEW (プレビュー)] タブには Debug Log (デバッグログ) (1) が含まれています。このログを確認して、Integration Procedure の各要素の出力と入力に関する問題を特定できます。Data Mapper が Integration Procedure に確実に接続されるように、[DRGetAccountDetails] (2) を選択し、表示される取引先情報を確認してください。
[Debug Log (デバッグログ)] ドロップダウンでは、[Original Input (元の入力)] が Integration Procedure に渡されることを想定しています。デバッグログには、要素ごとに 2 つのエントリが含まれています。NAME には出力が表示され、NAMEDebug にはステップの入力が表示されます。予想される出力が表示されない場合は、デバッグエントリを確認して、入力データの何が問題なのかを特定できます。
すべてが正しく、問題がなければ、Integration Procedure のこのバージョンを有効にできます。
Procedure Configuration (1) 要素の [PROPERTIES (プロパティ)] で、[Activate Version (バージョンを有効化)] (2) をクリックします。
Integration Procedure が Edit Account OmniScript で機能することと、Integration Procedure が (有効化されている場合) OmniScript で使用できることを確認するために最終テストを実施します。
Edit Account OmniScript には、Integration Procedure と OmniScript がリンクするように設定できる Integration Procedure Action が含まれています。
IPGetAccountDetails Integration Procedure Action (1) には、[Integration Procedure] 項目 (2) で選択された team_getAccountDetails が表示されています。
Edit Account OmniScript の [PREVIEW (プレビュー)] タブから、[Context ID (コンテキスト ID)] 項目に RecordId を入力します。プレビューには、Integration Procedure によって取得されたデータが表示されます。
これで OmniScript のデータを取得する Integration Procedure を作成する方法がわかりました。
表示される Web サイトのデータは www.acme4.com のものですが、これを www.acme.com に変更するにはどうすればよいでしょうか? 次は、OmniScript からのデータを保存する Integration Procedure を見てみましょう。
データを保存する Integration Procedure を作成する
このシナリオの Integration Procedure を設計したときに、Edit Account OmniScript で更新されたデータを Salesforce に保存する Data Mapper Post Action 要素を選択しました。フローは次のようになります。
では設定してみましょう。
- [AVAILABLE COMPONENTS (コンポーネント)] パネルから [STRUCTURE (構造)] パネルに Data Mapper Post Action (1) をドラッグします。
- 目的を説明する名前を付けます (
DRSaveAccountDetails
(2) など)。
Data Mapper Post Action の [PROPERTIES (プロパティ)] パネルで、[Data Mapper Interface (Data Mapper インターフェース)] 項目から使用する Data Mapper Load を選択します。
次は、この Integration Procedure を有効にして、Edit Account OmniScript で使用できるようにする必要があります。
Integration Procedure が Edit Account OmniScript で機能するかどうかをテストします。
- Edit Account OmniScript で、IPSaveAccountDetails Integration Procedure Action (1) を Integration Procedure にリンクします。この場合は team_saveAccountDetails (2) にリンクします。
- Edit Account OmniScript の [PREVIEW (プレビュー)] タブから、[Context ID (コンテキスト ID)] 項目に RecordId を入力します。プレビューには、最初に作成した Integration Procedure によって取得されたデータが表示されます。
- 2 つ目の Integration Procedure が機能するかどうかをテストするには、データに変更を加えます。www.acme4.com という Web サイトを
www.acme.com
(1) に変更し、[Next (次へ)] (2) をクリックします。
- 取引先レコードを開き、データが更新されたことを確認します。
Integration Procedure のスキルについて自信がついたのではないでしょうか? バックグラウンドでデータを取得、保存、操作する必要がある場合に最初に検討すべきツールが Integration Procedure であることを覚えておいてください。