LoginSignup
0
0

Workato:Lookup Tables上のデータをSQLで絞り込むには

Last updated at Posted at 2023-12-01

はじめに

Lookup Tableで特定の条件にマッチするレコードを絞り込み出力したい場合、通常はSearch entriesアクションを利用します。

image.png

Search entriesでは、文字列を部分一致させて結果を絞り込み出力することが可能です。

image.png

Search entriesの問題点

Lookup TablesのSearch entriesアクションはあくまでも簡易的な検索(絞り込み)しか行うことができません。また、全てのカラムが文字列型として扱われます。これにより、以下のような制限が発生します。

  • 文字列の部分一致のみによる結果の絞り込みしか対応しておらず、詳細な条件指定ができない
    • 前方一致・後方一致ができない
    • not が指定できない
    • distinct ができない
    • and/or指定ができない(単一キーワードの部分一致しか対応していない)
  • Lookup Tablesは全てのカラムが文字列型であるため、数値や日付を範囲とする条件指定ができない

Lookup Tables上のデータをSQLで絞り込む

以下のようなレシピを実装することで、Lookup Tables上のデータをSQLで絞り込むことが可能となります。

image.png

それぞれのステップについては、以下で説明します。

Step 2

Lookup TablesGet all entriesアクションを使用して、Lookup Tablesの全レコードを取得します。

image.png

image.png

image.png

Step 3

Variables by Workatoを追加し、Create listアクションを使用して、Lookup Tablesの全レコードをセットします。
image.png

image.png

image.png

Variables by Workatoの Create list アクションを使用する理由

Variables by WorkatoCreate listアクションを使用する理由は次の通りです。

1.Lookup Tablesから取得したデータの構造を、2次元のデータ構造(行と列のデータ構造)へ変換

後続の手順に登場するSQL Collectionへは、2次元のデータ構造でデータを渡す必要があります。

Lookup Tablesの出力スキーマは以下のようになっています。の各データは entry というハッシュに格納され、各値は entry 以下に格納されています。見てわかる通り2次元のデータ構造とはなっておらず、そのままSQL Collectionで処理することができません。

image.png

以上によりデータ構造の変換のため、Variables by WorkatoのCreate listを使用しています。

2.各フィールドのデータ型を変換

Lookup Tablesの各フィールドのデータ型はテキスト型となっています。このままですと、例えば数値や日付を範囲とする条件指定(レコードの絞り込み)ができません。

Variables by WorkatoのCreate listにおいて各フィールドの型を設定のうえ、値(データピル)を各フィールドにセットすることで、セットされた値をデータ型に合わせて変換(キャスト)することができます。

Step 4

SQL Collection by Workatoを追加し、Create List アクションを使用して、Step3で作成したリストをList soruceへセットします。

image.png

image.png

image.png

Step 5

SQL Collection by Workatoを追加し、Query Lists アクションを使用して、Step4で作成したリストに対するSQLクエリと出力スキーマ(Output list schemaスキーマ)を定義します。

image.png

image.png

image.png

おわりに

以上の手順でレシピの実装を進めていくことで、Lookup Tables上のデータをSQLを用いて絞り込むことが可能となります。

なお、今回はSQLを用いた絞り込み方法としてSQL Collection by Workatoを紹介しましたが、絞り込み以外の用途にも活用可能です。例えば、SQLを用いたデータの変換や重複排除にも対応可能です。SQLはSQLiteに準拠しており、標準的なSQL文やSQLiteに準拠したSQL文を使用して様々なデータ処理の実現が可能です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0