外部データを変換する
学習の目的
この単元を完了すると、次のことができるようになります。
- Data Mapper Transform を作成する。
- Data Mapper Transform を Integration Procedure に追加する。
Data Mapper Transform を作成する
前の単元では、天気の JSON をトリミングして data ノードのみを共有するようにする方法を学習しました。それは非常に有用ですが、データが Flexcard や Omniscript に送信するのに適した形式でない場合はどうすればよいでしょうか? たとえば、市町村と都道府県が別々の行に表示されていて、多くの人にとっては 1 行にまとめて表示されていた方が便利である場合などです。
Data Mapper Transform を使用すると、JSON を共有する前に操作できます。この Data Mapper の各タブがどのように役立つかを見ていきましょう。
[Formulas (数式)] タブでは、Data Mapper の出力にデータを追加したり、データを操作したりする数式を定義します。多くの種類の Data Mapper (Extract、Transform、Load) では数式がサポートされています。
![数式を作成し、保存場所を指定するには [Formulas (数式)] タブを使用する。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/omnistudio-data-tools-and-external-data/transform-external-data/images/ja-JP/285a1b3a7b9f371203f46b4039f672d6_kix.ertqldgrp7h8.png)
[Formula (数式)] 項目 (1) では、目的のロジックを指定します。この例では、CONCAT 関数を使用して city_name と state_code を連結する数式を作成します。
[Formula Result Path (式の結果パス)] 項目 (2) で数式の結果を保存する JSON ノードを指定します。ここでは、連結された値は Current:city_name ノードに保存されます。
[Transforms (変換)] タブでは次の 2 つの方法のいずれかでデータを対応付けます。
- [Quick Match (クイックマッチ)] を使用して入力 JSON の値を出力 JSON の値に対応付ける。
- 各対応付けを個別に指定する。
![Data Mapper Transform の [Transforms (変換)] タブ。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/omnistudio-data-tools-and-external-data/transform-external-data/images/ja-JP/1901b2bbf493b368c77069d4d16816a6_kix.mh3ulzc93tk.png)
[Input JSON Path (入力 JSON パス)] 項目 (1) で入力パスを指定し、[Output JSON Path (出力 JSON パス)] 項目 (2) で目的の出力パスを指定します。どちらの項目でも、サブノードを作成するにはコロンを使用します。たとえば、Current:Condition と Current:TempF を使用すると、Condition と TempF が Current ノードに配置されますが、CurrentIcon はルートに配置されます。
[Expected JSON Output (期待される JSON 出力)] (3) を出力パスと一致させ、[Input JSON (入力 JSON)] (4) を入力パスと一致させます。
[PREVIEW (プレビュー)] タブを使用して、Data Mapper の出力をテストします。
![[Preview (プレビュー)] タブの [Input (入力)] ペインと [Response (応答)] ペイン。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/omnistudio-data-tools-and-external-data/transform-external-data/images/ja-JP/a19eebec4ca7dcfbf49bd43aed0d3e3b_kix.tprhk2u2ohbu.png)
[Input (入力)] ペイン (1) でサンプル入力を指定し、[Execute (実行)] を選択します。[Response (応答)] ペイン (2) には結果が表示されます。
これで Data Mapper Transform が完成したため、これを Integration Procedure に追加できます。
Data Mapper Transform を Integration Procedure に追加する
Integration Procedure で作業している場合、Data Mapper Transform を追加するには次の 3 つのコンポーネントが必要です。
- データを変換するための Data Mapper。
- Integration Procedure で Data Mapper を使用するための Data Mapper Transform Action 要素。
- 変換されたデータを Flexcard または Omniscript に送信するための Response Action 要素。
Data Mapper Transform Action 要素を [Available Components (使用可能なコンポーネント)] ペインからドラッグし、新しく作成した Data Mapper Transform に基づいて名前を付けます。
![[Additional Input/Output/Failure Response (追加の入出力/障害応答)] セクション。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/omnistudio-data-tools-and-external-data/transform-external-data/images/ja-JP/f1da28116d82f1040f7fa30dfbc5d87d_kix.xt7k85e77xho.png)
[Additional Input/Output/Failure Response (追加の入出力/障害応答)] セクションで [Send Only Additional Input (追加入力のみを送信)] (1) をオンにします。次に、[Additional Input (追加入力)] (2) に 2 つのキーとその値を追加します。このスクリーンショットの設定例では、HTTPGetCurrentWeather 要素からの JSON を Current というノードの Data Mapper に送信しています。また、HTTPGetForecastWeather 要素からの JSON は Forecast というノードの Data Mapper に送信しています。
最後に、Response Action で Data Mapper Transform が返す JSON を送信するようにします。そのためには、Response Action 要素の [Send JSON Path (送信 JSON パス)] 項目に Data Mapper Transform 要素の名前を入力します。
外部ソースからデータを取得し、それを別の形式に変換する必要がある場合は、Data Mapper Transform が最適なツールです。その場合は、Integration Procedure 内で使用してください。
ここで学んだ内容をもとに、管理パッケージ用 Omnistudio で実際に試してみましょう。詳細は、「リソース」セクションを参照してください。
リソース
- Salesforce ヘルプ: Integration Procedure (管理パッケージ用 Omnistudio)
- Salesforce ヘルプ: Omnistudio Data Mapper Transform の概要 (管理パッケージ用 Omnistudio)
- Salesforce ヘルプ: Integration Procedure の Omnistudio Data Mapper Transform Action (管理パッケージ用 Omnistudio)
- Salesforce ヘルプ: Integration Procedure の値の設定 (管理パッケージ用 Omnistudio)
- Salesforce ヘルプ: Integration Procedure の Omnistudio Data Mapper Extract Action (管理パッケージ用 Omnistudio)
- Salesforce ヘルプ: Integration Procedure の HTTP Action (管理パッケージ用 Omnistudio)
- Salesforce ヘルプ: Integration Procedure の Response Action (管理パッケージ用 Omnistudio)