Integration Procedure を使用して外部データを抽出する
学習の目的
この単元を完了すると、次のことができるようになります。
- Flexcard と Omniscript に使用できる外部データソースを挙げる。
- 外部データを抽出する Integration Procedure 内でのデータの流れをまとめる。
- API キーを使用して外部データを取得する URL を作成する。
- 外部データを Integration Procedure に追加する。
Omnistudio で外部データを使用する
Salesforce 組織外からのデータはすべて外部データです。管理パッケージ用 Omnistudio を使用して Salesforce にはないデータを取得するには、外部データソースを使用します。Flexcard や Omniscript に外部データを表示することは、ほとんどの実装で一般的なニーズです。
外部データソースには次のようなものがあります。
- 従来のデータソース
- オンプレミスのデータソース
- API インテグレーション
- その他のサードパーティのデータとアプリケーション
気象 API を使用する方法は、練習で Web API を介してデータを取得するのに適しています。多くの業種にとって悪天候は重要な要素であるため、気象については豊富なユースケースがあります。たとえば、保険会社なら天候による住宅への被害、エネルギー業界なら悪天候によるサービスの停止などが挙げられます。
たとえば、この Flexcard には取引先の場所 (請求書の郵便番号に基づく) の現在の天気と天気予報が表示されます。現在の気温と場所は親 Flexcard に表示され、フライアウトに翌 5 日間の予報が表示されます。
また、この Omniscript の例には、取引先の場所の現在の天気が表示され、危険な気象条件が発生した場合にはアラートが表示されます。
何がすごいのかわかりますか? 実は、この Flexcard と Omniscript の例では同じ Integration Procedure が使用されているのです。さらに、同じ Integration Procedure によって Flexcard と Omniscript 用の内部データと外部データの両方が取得されています。
Integration Procedure を使用してデータを取得することがベストプラクティスである理由の 1 つは、複数のソースからデータを抽出できるという点です。たとえば、1 つの Integration Procedure 要素で Salesforce 組織からデータを抽出し、別の Integration Procedure 要素で外部ソースからデータを抽出することができます。
外部ソースからデータを抽出する場合は、API キーを使用してデータを取得し、Integration Procedure をコールしたツール (Flexcard または Omniscript) に返す前にデータを変換します。天気の例では、取引先の郵便番号を取得し、それを API に送信して現在の天気と予報のデータの両方を要求し、そのデータに対して編集とトリミングを行います。
外部データ抽出のデータフロー
この仕組みを確認しましょう。まず、Flexcard や Omniscript から Integration Procedure へデータがどのように渡されるかを確認します。次に、そのデータが Integration Procedure 内をどのように移動して、Flexcard や Omniscript に戻るかを確認しましょう。
Flexcard または Omniscript は AccountId を Integration Procedure に送信します (1)。
Integration Procedure は AccountId を Data Mapper Extract Action 要素に渡します。この要素は Data Mapper Extract を使用して Salesforce から取引先の郵便番号を抽出し、Integration Procedure に返します (2)。
Integration Procedure は Set Values 要素を使用して API キーを保持します。Set Values 要素は API キーを 2 つの Hypertext Transfer Protocol (HTTP) Action 要素と共有します。Data Mapper Extract Action 要素は取引先の郵便番号を 2 つの HTTP Action 要素と共有します (3)。
両方の HTTP Action 要素は取引先の郵便番号 (取引先の場所) と API キーを天気の API サイトに送信します。一方の Action は現在の天気の JavaScript Object Notation (JSON) を受信し、もう一方は 5 日間の天気予報データの JSON を受信します (4)。
現在の天気と天気予報の両方の JSON は Data Mapper Transform に送信され (5)、トリミングとデータの変換が行われて、選択されたデータのみが返されます。
選択された JSON は Response Action 要素に送信され (6)、そこからさらに Integration Procedure をコールした Flexcard または Omniscript に返されます (7)。
うまくできていますね。
外部データを抽出する Integration Procedure の設定
天気データを取得する URL を作成する前に、API キーを取得する必要があります。サイトごとに異なるため、URL の設定方法については API ドキュメントを確認してください。
そして、データを抽出する Integration Procedure を設定するときには、この強力な Omnistudio データツールの他の機能も活用します。たとえば、次のような操作が可能です。
- Set Values 要素を使用して API キーを保存する。
- HTTP Action 要素のプロパティを設定して JSON 応答をトリミングする。
API キーは Set Values 要素に保存することをお勧めします。こうすることで、わかりやすくなり、クライアントへのコールが減り、Integration Procedure が保守しやすくなります。API キーを保存する Set Values 要素を追加する方法は次のとおりです。
Integration Procedure の [STRUCTURE (構造)] パネルに Set Values 要素 (1) を追加します。次に、[Element Value Map (要素値マップ)] セクションを使用して API キーを保存します (2)。
ここにキーを保存したら、HTTP Action 要素の実際の API キーを、コンポーネント名とそのコンポーネントの要素名である %SVWeather:APIKey%
に置き換えてください。
このように、API キーが変更された場合には、Set Values 要素を編集するだけですみます。そのため、Integration Procedure が保守しやすくなります。
より簡単にすると言えば、API から送信される JSON 応答全体を渡す必要がないということをご存知でしたか? そうです。HTTP Action 要素のプロパティを使用することで、データ応答をトリミングできるのです。
まず、HTTP Action 要素 (1) を [STRUCTURE (構造)] パネルにドラッグします。次に、[HTTP Path (HTTP パス)] 項目 (2) に外部データを取得するために作成した要求 URL を追加し、[HTTP Method (HTTP メソッド)] 項目 (3) に「GET」
と入力します。
HTTP パスと HTTP メソッドを定義した後に、[Response JSON Path (応答 JSON パス)] 項目を使用して JSON 応答をトリミングし、data
ノードのみを共有するようにします。なぜでしょうか? 応答 JSON を絞り込み、data
ノード内の情報のみを [STRUCTURE (構造)] パネル内の次の要素に送信できるためです。
これで、HTTP Action 要素が受け取るデータが簡略化されました。次は、この外部データをトリミングと変換によって必要な形式にして、Flexcard または Omniscript に送信する方法について学習します。
リソース
- Salesforce ヘルプ: Integration Procedure (管理パッケージ用 Omnistudio)
- Salesforce ヘルプ: Integration Procedure の値の設定 (管理パッケージ用 Omnistudio)
- Salesforce ヘルプ: Integration Procedure の Omnistudio Data Mapper Extract Action (管理パッケージ用 Omnistudio)
- Salesforce ヘルプ: Integration Procedure の HTTP Action (管理パッケージ用 Omnistudio)
- Salesforce ヘルプ: Integration Procedure の Omnistudio Data Mapper Transform Action (管理パッケージ用 Omnistudio)
- Salesforce ヘルプ: Integration Procedure の Response Action (管理パッケージ用 Omnistudio)