tool.みなさま、こんにちは。先週のDominohub2022いかがでしたでしょうか。当日の動画は現在配信中ですので、もし登録がされていない方でも、まだ間に合いますので、ぜひお見逃しなく!!今回は先日のDominohub2022のセッションで少し触れておりました内容について、さらに進展することができましたので、紹介致します。弊社では販売管理の期間システムとしてIBMiを利用しております。最近のOSになって、設定すればIBMiとのREST接続が可能になっているようですが、なかなか情報が少なく、うまくいかずに困っておりました。それとは別で、弊社は商社という立場で、お客様から注文を頂き、取引先メーカーにオーダーするという一連の流れが主な収入源になります。前からEDIやメールオーダーといった電子化が急速に進んだ環境にありながら、業務の改善ができていなかったのですが、この度RPA導入という転換点に至り、あわせてETLツールを採用し業務の自動化を図ることとなりました。ちなみにETLツールとはつまり、さまざまなデータを希望する形に変換して、提供するというものになります。xpiという製品を採用しました。xpiの作業内容中心となります点、あらかじめご了承ください。シナリオとしては、DominoVoltで作成した返品申請アプリがあります。こちらがその入力フォームになるのですが、これをすべて間違いなく手入力させるのは至難の業です。そこで元データのあるIBMiから「受注No」をキーに、赤枠部分を呼び出したいというものになります。いくつかフローが右側のソリューションエクスプローラに存在しており、その中のひとつに「返品申請」が見て頂けるかと思います。このフローで使う変数をふたつ定義します。次にIBMiとの接続をリソースとして登録します。サーバー名(IPアドレス)と認証情報だけで接続できます。次に下にある[ライブラリ]をクリックして、IBMiのライブラリを登録します。以上でリソースの登録は完了です。次にVoltのアクセスを受けるHTTPをサービスとして登録します。Webサーバとエイリアスはデフォルトのままで進めます。次にエンドポイントを定義します。今回は**NOというエンドポイントを登録して、引数としても**NOと定義しました。自動でエンドポイントURLが生成され、サンプルHTMLの生成にチェックを入れると、このようにテスト用のHTMLファイルがローカルに作られます。以上で各接続の準備ができましたので、あとは組み上げていくだけです。トリガーとしてHTTPの設定を行います。F.HTML結果で受け取るという設定になります。この設定により、VoltからのHTTPリクエストをこのトリガーが受けて、フローが動作するということになります。それではその動作内容です。xpiのメインツールを設定します。こちらがデータマッパーの画面です。左に送り元、右に送り先を設定していくというものです。送り元となるIBMiのテーブル定義を追加します。こちらはウィザード形式での設定となりますので、画面遷移を続けておきます。どのテーブルを利用するかを選択して(複数選択してあります)、どのフィールドを利用するかを選択します。ここで先の**NOが存在しています。合致したデータのみを取ってくるように設定します。今回のように複数のテーブルを利用する場合は、その結合を定義します。このようにウィザードだけでSQL文を発行してくれます。すると、このようにIBMiから取得するフィールドリストが設定されました。こちらはjsonを設定します。JSONスキーマファイルの指定です。スキーマファイルについてはお手数ですが、詳細はご確認頂くとして、今回の例は以下のような記述になっております。すると、このように送り先のフィールドが設定されました。この両方のフィールドの関連付けを行い、このようなマッピングができあがりました。設定は以上で完了です。それではまずは先に生成したサンプルHTMLを確認してみます。指定されたローカルフォルダに"エンドポイント名.html"ができていますので、こちらを開きます。値を取得することができました。続いてブラウザで試してみます。こちらも先に生成されたURLを使用するのですが、生成されたURLは以下となります。http://サーバー名/Magicxpi4.13/MgWebRequester.dll?appname=IFSIBMi&prgname=HTTP&arguments=-Aサービス名%23エンドポイント名この後ろに先に設定したエンドポイントの引数名を指定します。&引数名=66668560こちらも問題なく取得できました。VoltからはこのURLを利用してアクセスすることになります。xpiの準備が完了しましたので、Voltの設定に移ります。フォームは冒頭に紹介したものになりますので、いきなりですがRESTの接続へ進みます。今回は対象の受注番号を入力することで、そのデータをIBMiから取得するという流れになりますので、受注Noは必ず手入力になります。そこで、この受注NoのonItemChangeイベントに組み込んでいくこととします。受注Noを選択し、「イベント」から「onItemChange」をクリックします。開いたウィンドウで、「サービスの呼び出し」にチェックし、「サービス構成の追加/編集」をクリックします。サービスの選択画面では、「URLを入力」を選択し、URLに先ほどブラウザでテストしたURLを貼り付けます。右側の歯車ボタンを押して、URLパラメーとセグメントの設定を行います。今回は不必要なパラメーターが「割り当て可能」となっていましたので、そちらのチェックを外します。次の入力の設定では、ソースとして先の「受注No」を選択して、ターゲットには先ほど設定したパラメーター「**NO」を選択して関連付けます。出力では、それぞれ呼応するソース項目とVoltのフィールドを関連付けしていきます。そのまま進めていけば、サービスの設定は完了になります。それでは実際の動きを見てください。API化して、DominoVoltで利用するという手順がご理解頂けたのではないでしょうか。ここでひとつ注目して頂きたいのが、今回の作業では一切のコードを書いていないという点です。xpiも同じくローコードツールの部類にも含まれます。学べば、設定やウィザードのみでここまでできる。すばらしいツールの組み合わせかではないでしょうか。Hagihara当ブログの記事は、私個人の経験談を中心とした見解・判断に基づく内容となります。記載内容や、ダウンロードコンテンツ等については、恐れ入りますが利用者様の自己責任でお願い致します。注)外部サイトへのリンク切れについては、先方の都合によるものとなりますので、ご了承ください。