Skip to main content

Integration Procedure を使用して外部データを抽出する

学習の目的

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

  • Flexcard と Omniscript に使用できる外部データソースを挙げる。
  • 外部データを抽出する Integration Procedure 内でのデータの流れをまとめる。
  • API キーを使用して外部データを取得する URL を作成する。
  • 外部データを Integration Procedure に追加する。
メモ

このモジュールでは、管理パッケージランタイムとカスタムオブジェクトを使用する管理パッケージ用 Omnistudio について説明します。標準ランタイムの Omnistudio についての詳細は、Salesforce ヘルプの「Omnistudio」を参照してください。

このバッジが自分に適しているか確かめたい場合は、「Which Version of Omnistudio Do You Have? (所有している Omnistudio のバージョンは?)」を参照してください。

Omnistudio で外部データを使用する

Salesforce 組織外からのデータはすべて外部データです。管理パッケージ用 Omnistudio を使用して Salesforce にはないデータを取得するには、外部データソースを使用します。Flexcard や Omniscript に外部データを表示することは、ほとんどの実装で一般的なニーズです。

外部データソースには次のようなものがあります。

  • 従来のデータソース
  • オンプレミスのデータソース
  • API インテグレーション
  • その他のサードパーティのデータとアプリケーション

気象 API を使用する方法は、練習で Web API を介してデータを取得するのに適しています。多くの業種にとって悪天候は重要な要素であるため、気象については豊富なユースケースがあります。たとえば、保険会社なら天候による住宅への被害、エネルギー業界なら悪天候によるサービスの停止などが挙げられます。

多方面の業種に影響を及ぼすさまざまな種類の深刻な悪天候。保険会社に対する洪水やひょうによる損害、電波塔に対する強風による損害、公益会社での火事の危険性など。

たとえば、この Flexcard には取引先の場所 (請求書の郵便番号に基づく) の現在の天気と天気予報が表示されます。現在の気温と場所は親 Flexcard に表示され、フライアウトに翌 5 日間の予報が表示されます。

Flexcard フライアウトによりモーダルに翌 5 日間の予報として大雪から快晴までさまざまな天気が表示されている様子。

また、この Omniscript の例には、取引先の場所の現在の天気が表示され、危険な気象条件が発生した場合にはアラートが表示されます。

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 に送信する。

Flexcard または Omniscript は AccountId を Integration Procedure に送信します (1)。 

Integration Procedure は AccountId を Data Mapper Extract と共有する。Data Mapper Extract は Salesforce から取引先の郵便番号を抽出して Integration Procedure に返す。

Integration Procedure は AccountId を Data Mapper Extract Action 要素に渡します。この要素は Data Mapper Extract を使用して Salesforce から取引先の郵便番号を抽出し、Integration Procedure に返します (2)。

Set Values 要素は API キーを 2 つの HTTP Action 要素と共有し、Data Mapper Extract 要素が取引先の郵便番号をこの 2 つの要素と共有する。

Integration Procedure は Set Values 要素を使用して API キーを保持します。Set Values 要素は API キーを 2 つの Hypertext Transfer Protocol (HTTP) Action 要素と共有します。Data Mapper Extract Action 要素は取引先の郵便番号を 2 つの HTTP Action 要素と共有します (3)。 

2 つの HTTP Action 要素は取引先の郵便番号と API キーを天気の API サイトに送信し、天気データを受信する。

両方の HTTP Action 要素は取引先の郵便番号 (取引先の場所) と API キーを天気の API サイトに送信します。一方の Action は現在の天気の JavaScript Object Notation (JSON) を受信し、もう一方は 5 日間の天気予報データの JSON を受信します (4)。

天気の JSON が Data Mapper Transform に送信され、選択された JSON のみが返される。

現在の天気と天気予報の両方の JSON は Data Mapper Transform に送信され (5)、トリミングとデータの変換が行われて、選択されたデータのみが返されます。

選択された JSON は Response Action 要素に送信され、そこからさらに Integration Procedure をコールしたツールに返される。

選択された JSON は Response Action 要素に送信され (6)、そこからさらに Integration Procedure をコールした Flexcard または Omniscript に返されます (7)。

うまくできていますね。

メモ

このモジュールでは、受講者が管理パッケージ用 Omnistudio 開発者で、ここに記載の操作を実行する適切な権限を有すると想定しています。ただし、システム管理者でなくても問題ありません。このまま読み進み、本番組織で開発者が手順をどのように実行するのかを学習しましょう。Trailhead Playground でこの手順を実行しないでください。Trailhead Playground では管理パッケージ用 Omnistudio を使用できません。

外部データを抽出する Integration Procedure の設定

天気データを取得する URL を作成する前に、API キーを取得する必要があります。サイトごとに異なるため、URL の設定方法については API ドキュメントを確認してください。

そして、データを抽出する Integration Procedure を設定するときには、この強力な Omnistudio データツールの他の機能も活用します。たとえば、次のような操作が可能です。 

  • Set Values 要素を使用して API キーを保存する。
  • HTTP Action 要素のプロパティを設定して JSON 応答をトリミングする。

API キーは Set Values 要素に保存することをお勧めします。こうすることで、わかりやすくなり、クライアントへのコールが減り、Integration Procedure が保守しやすくなります。API キーを保存する Set Values 要素を追加する方法は次のとおりです。 

Set Values 要素を使用して API キーを保存する。

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 要素の [HTTP Path (HTTP パス)] プロパティと [HTTP Method (HTTP メソッド)] プロパティ。

まず、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 要素のプロパティの [Response JSON Path (応答 JSON パス)] 項目。

これで、HTTP Action 要素が受け取るデータが簡略化されました。次は、この外部データをトリミングと変換によって必要な形式にして、Flexcard または Omniscript に送信する方法について学習します。

リソース

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

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

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