はじめに
今回はASTERIA Warpでの開発を行いましたが、
初めてのETLツール(データを加工して連携するツール)を使用しての開発となったため、開発時の参考になれば幸いです。
ETLツールとは?
抽出→変換→格納の流れで連携を行うツールです。
抽出(Extract): データベースやファイルなどからデータを取得
変換(Transform): 抽出したデータを、連携先に合わせて加工・整形
格納(Load): 変換後のデータを、連携先に書き込み
別システム間連携などで連携を行う際には、データ形式やフォーマットの変換が必要となります。
例えば、システムAでは、ユーザーIDを6桁で保持しているが、
システムBでは、ユーザーIDが8桁となる場合には、
連携する際に先頭へ「00」を補完する必要があったりします。
システム間の設計の違いを吸収してくれるツールという認識をしています。
開発環境の準備
手順については、公式のものを参照いただければと思いますので、
こちらでは説明をしませんが、開発するには、フローデザイナーから開発を進めます。
視覚的にコンポーネントやマッパー(後ほど説明)を配置して、
矢印に沿って処理が流れていくためRPAに近い感覚で開発ができます。
参考: https://www.asteria.com/jp/warp/feature/flow/
構成について
開発時には、プロジェクトという単位で分割をします。
プロジェクトとは、処理をまとめた単位です。
中には複数のフロー(処理)が入っている、言わば「ワークスペース」みたいなものです。
(インターフェースと言ったりもします。)
プロジェクトの中に、メインフローとサブフローを作成し、
メインフローから適宜サブフローへ処理を映して処理を進めていきます。
メインフローとサブフローとは?
メインフローとサブフローは下記のようなイメージです。
・メインフロー:全体を管理するメインの処理(親フロー)
・サブフロー:メインフローから呼び出される(子フロー)
メインフローから必要なモジュールを呼び出したいときにサブフローを使用するという形で作成を行います。
メインフローにまとめようとすると、膨大となり、管理が大変となりますが、
必要な部品を外に出しておけば、必要な時にサブフローの修正を行ったり、
ほかのプロジェクトでも再利用ができるようになります。
これは他のプログラミングやRPAと同じですね。
コンポーネントとマッパー関数とは?
開発にはコンポーネントとマッピングをメインに行います。
コンポーネント:フローで特定の機能を担うパーツ
例:CSV出力、DB操作、HTTP通信など
マッパー関数:マッピング(次のコンポーネントへつなぐ画面)の際に、入れて使う加工処理のようなもの
例:正規表現、数値計算、日付整形、型変換(文字列→日付)など。
参考:https://help.asteria.com/documentation/warp/ja/2506/flow/designer/index_component.html
開発時
ここからは開発時に気を付けたポイントとなります。
各現場での考え方によるところになるかと思います。
1.DB抽出時のSQLにて変換できるだけ吸収する
開発時に迷ったのが、
ASTERIA Warpには様々なマッパー関数が用意されており、
マッパー関数を使用して変換を行うこともできます。
しかし、データマッピングについては、
項目が増えれば増えるほど、複雑となり、ぱっと見で何をしているかが分かりづらいことがあるため、可能な限り「RDBGet」コンポーネントで抽出する際にSQLで変換をかけておいたほうが良いと考えております。
例:
・NULLの際には別の値を入れるNVLやCOALESEなど
・別テーブルとの結合するJOIN
・CASE文での条件分岐
・演算子など
上記はASTERIA Warpのコンポーネントやマッパー関数で実装することもできますが、
RDBGet時点で吸収しておくとマッピングで複雑にならず、見やすくなります。
2.できるだけ共通パーツを使用する
先ほどサブフローを積極的に使うことで、
メインフローが複雑にならないということを書きました。
「ログ出力」「メール送信」「エラーハンドリング」などは、共通のフォルダを作成し、プロジェクトから呼び出せるようにしておくと便利です。
また、サブフローに加えて、「関数コレクション」というものがあります。
よく使う関数についても共通化しておきましょう。
3.設定ファイルを活用する
開発を行うフローデザイナーでは、テキストファイルを作成しておくことができます。
「メールアドレス」「完了通知・異常通知」「出力先のパス」など、後から変更があるものについては、ファイル内に記載をしておいてフロー内で読み込むことがおすすめです。
私はBizRobo開発時にも同じようなことを意識していたため、
どういう情報を設定ファイルに出しておくかはある程度イメージが付きましたが、
あまりイメージがわかない人は後々に代わる可能性がありそうな個所を探してみるとよいかもしれません。
最後に
今回は、初めての開発を行う際の考慮ポイントについて紹介しました。最初は設定やフロー設計で戸惑うこともありますが、あらゆるシステムを管理する中で、データ連携を行うというのはついて回ると思います。
その中でツールを使って、視覚的にデータ変換を行えるというのは、
開発を助けてくる強力なツールだと思います。
これからASTERIA Warpを始める方にとって、少しでも参考になれば幸いです。
すでに開発されている方は、
どういう使い方をしているかなど教えていただけると大変ありがたいです。
最後まで読んでいただきありがとうございました。