外部データを変換する
学習の目的
この単元を完了すると、次のことができるようになります。
- DataRaptor Transform を作成する。
- DataRaptor Transform を Integration Procedure に追加する。
DataRaptor Transform を作成する
前の単元では、天気の JavaScript Object Notation (JSON) をトリミングして data ノードのみを共有するようにする方法を学習しました。それは非常に有用ですが、データが FlexCard や OmniScript に送信するのに適した形式でない場合はどうすればよいでしょうか? たとえば、市町村と都道府県が別々の行に表示されていて、多くの人にとっては 1 行にまとめて表示されていた方が便利である場合などです。DataRaptor Transform を使用すると、JSON を共有する前に操作できます。この DataRaptor の各タブがどのように役立つかを見ていきましょう。
[Formulas (数式)] タブでは、DataRaptor の出力にデータを追加したり、データを操作したりする数式を定義します。ほとんどの種類の DataRaptor (Extract、Transform、Load) で数式がサポートされています。
[Formula (数式)] 項目 (1) では、目的のロジックを指定します。この例では、CONCAT 関数を使用して city_name と state_code を連結する数式を作成します。
[Formula Result Path (式の結果パス)] 項目 (2) で数式の結果を保存する JSON ノードを指定します。ここでは、連結された値は Current:city_name
ノードに保存されます。
[Transforms (変換)] タブでは次の 2 つの方法のいずれかでデータを対応付けます。
- [Quick Match (クイックマッチ)] を使用して入力 JSON の値を出力 JSON の値に対応付ける。
- 各対応付けを個別に指定する。
[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 (プレビュー)] タブを使用して、DataRaptor の出力をテストします。
[Input (入力)] ペイン (1) でサンプル入力を指定し、[Execute (実行)] をクリックします。[Response (応答)] ペイン (2) には結果が表示されます。
これで DataRaptor Transform が完成したため、これを Integration Procedure に追加できます。
DataRaptor Transform を Integration Procedure に追加する
Integration Procedure で作業している場合、DataRaptor Transform を追加するには次の 3 つのコンポーネントが必要です。
- データを変換するための DataRaptor Transform。
- Integration Procedure で DataRaptor を使用するための DataRaptor Transform Action 要素。
- 変換されたデータを FlexCard または OmniScript に送信するための Response Action 要素の設定。
DataRaptor Transform Action 要素 (1) を [Available Components (使用可能なコンポーネント)] ペインからドラッグし、新しく作成した DataRaptor Transform に基づいて名前を付けます (2)。
[Additional Input/Output/Failure Response (追加の入出力/障害応答)] セクションで [Send Only Additional Input (追加入力のみを送信)] (1) をオンにします。次に、[Additional Input (追加入力)] (2) に 2 つのキーとその値を追加します。これにより、[HTTPGetCurrentWeather] 要素からの JSON 出力が、Current という名前のノード上の DataRaptor に送信され、[HTTPGetForecastWeather] 要素からの JSON 出力が、Forecast という名前のノード上の DataRaptor に送信されます。
最後に、[Response Action] 要素の [Send JSON Path (送信 JSON パス)] 項目に [DataRaptor Transform] 要素の名前を入力して、DataRaptor Transform が返した JSON を Response Action が送信するようにします。
外部ソースからデータを抽出していて、データを目的の形式に変更する必要がある場合は、Integration Procedure で DataRaptor Transform を使用するということを覚えておいてください。