ページビューの合計

2022年12月12日月曜日

#Magic #xpi を介した #DominoVolt ( #DominoLeap ) と #IBMi の連携

In this article, I will describe the configuration of the service that Domino Leap (Volt) uses to reference IBMi data.

The procedure is realized by using Magic xpi, an ETL tool.


みなさま、こんにちは。
さて先週のDominohub2022いかがでしたでしょうか。
当日の動画は現在配信中ですので、もし登録がされていない方でも、まだ間に合いますので、ぜひお見逃しなく!!

今回は先日のDominohub2022のセッションで少し触れておりました内容について、さらに進展することができましたので、紹介致します。


さて弊社では販売管理の期間システムとしてIBMiを利用しております。

最近のOSになって、設定すればIBMiとのREST接続が可能になっているようですが、なかなか情報が少なく、うまくいかずに困っておりました。

それとは別で、弊社は商社という立場で、お客様から注文を頂き、取引先メーカーにオーダーするという一連の流れが主な収入源になります。

しばらく前からEDIやメールオーダーといった電子化が急速に進んだ環境にありながら、業務の改善ができていなかったのですが、この度RPA導入という転換点に至り、あわせてETLツールを採用し業務の自動化を図ることとなりました。

ちなみにETLツールとは


つまり、さまざまなデータを希望する形に変換して、提供するというものになります。

弊社ではMagic xpiという製品を採用しました。

なお今回の記事は、主にMagic xpi を利用して、IBMiのデータをDomino Voltで利用する手順となりますので、Magic xpiの作業内容中心となります点、あらかじめご了承ください。

シナリオとしては、DominoVoltで作成した返品申請アプリがあります。


こちらがその入力フォームになるのですが、これをすべて間違いなく手入力させるのは至難の業です。
そこで元データのあるIBMiから「受注No」をキーに、赤枠部分を呼び出したいというものになります。

さて早速ですが、Magic xpiの画面です。
既にいくつかフローが右側のソリューションエクスプローラに存在しており、その中のひとつに「返品申請」が見て頂けるかと思います。


まずはこのフローで使う変数をふたつ定義します。


F.受注番号:Voltからリクエストされる受注Noを扱う変数
F.HTML結果:Voltへ送信するjsonデータを格納する変数

次にIBMiとの接続をリソースとして登録します。


サーバー名(IPアドレス)と認証情報だけで接続できます。
次に下にある[ライブラリ]をクリックして、IBMiのライブラリを登録します。

以上でリソースの登録は完了です。

次にVoltのアクセスを受けるHTTPをサービスとして登録します。


Webサーバとエイリアスはデフォルトのままで進めます。
次にエンドポイントを定義します。


今回は**NOというエンドポイントを登録して、引数としても**NOと定義しました。
自動でエンドポイントURLが生成され、
サンプルHTMLの生成にチェックを入れると、このようにテスト用のHTMLファイルがローカルに作られます。

以上で各接続の準備ができましたので、あとは組み上げていくだけです。

まずはトリガーとしてHTTPの設定を行います。


プロパティでは先に作成したHTTPのサービスを選択し、
設定したエンドポイント**NOをフロー変数 F.受注番号 にマッピングします。
さらに戻り値もフロー変数 F.HTML結果で受け取るという設定になります。

この設定により、VoltからのHTTPリクエストをこのトリガーが受けて、フローが動作するということになります。

それではその動作内容です。

「データマッパー」と呼ばれるMagic xpiのメインツールを設定します。


こちらがデータマッパーの画面です。
左に送り元、右に送り先を設定していくというものです。

まずは送り元となるIBMiのテーブル定義を追加します。
こちらはウィザード形式での設定となりますので、画面遷移を続けておきます。


どのテーブルを利用するかを選択して(複数選択してあります)、


どのフィールドを利用するかを選択します。
ここで先の**NOが存在しています。


Where句の設定で、フロー変数 F.受注番号 と合致したデータのみを取ってくるように設定します。


今回のように複数のテーブルを利用する場合は、その結合を定義します。


と、このようにウィザードだけでSQL文を発行してくれます。


すると、このようにIBMiから取得するフィールドリストが設定されました。

次は送り先です。
こちらはjsonを設定します。


jsonの設定は、保存する先の変数 F.HTML結果 と、JSONスキーマファイルの指定です。
スキーマファイルについてはお手数ですが、詳細はご確認頂くとして、今回の例は以下のような記述になっております。


すると、



このように送り先のフィールドが設定されました。
この両方のフィールドの関連付けを行い、


このようなマッピングができあがりました。
設定は以上で完了です。

それではまずは先に生成したサンプルHTMLを確認してみます。
指定されたローカルフォルダに"エンドポイント名.html"ができていますので、こちらを開きます。


Valueに存在している受注番号を入力して、[Call Magic xpi]をクリックすると、


無事、受注No.66668560 の値を取得することができました。

続いてブラウザで試してみます。
こちらも先に生成されたURLを使用するのですが、生成されたURLは以下となります。

http://サーバー名/Magicxpi4.13/MgWebRequester.dll?appname=IFSIBMi&prgname=HTTP&arguments=-Aサービス名%23エンドポイント名

この後ろに先に設定したエンドポイントの引数名を指定します。

 &引数名=66668560


こちらも問題なく取得できました。

VoltからはこのURLを利用してアクセスすることになります。

以上でMagic xpiの準備が完了しましたので、Voltの設定に移ります。
フォームは冒頭に紹介したものになりますので、いきなりですがRESTの接続へ進みます。

今回は対象の受注番号を入力することで、そのデータをIBMiから取得するという流れになりますので、受注Noは必ず手入力になります。


そこで、この受注NoのonItemChangeイベントに組み込んでいくこととします。


受注Noを選択し、「イベント」から「onItemChange」をクリックします。



開いたウィンドウで、「サービスの呼び出し」にチェックし、「サービス構成の追加/編集」をクリックします。


サービスの選択画面では、「URLを入力」を選択し、URLに先ほどブラウザでテストしたURLを貼り付けます。
右側の歯車ボタンを押して、URLパラメーとセグメントの設定を行います。


今回は不必要なパラメーターが「割り当て可能」となっていましたので、そちらのチェックを外します。


次の入力の設定では、ソースとして先の「受注No」を選択して、ターゲットには先ほど設定したパラメーター「**NO」を選択して関連付けます。


出力では、それぞれ呼応するソース項目とVoltのフィールドを関連付けしていきます。

そのまま進めていけば、サービスの設定は完了になります。

それでは実際の動きを見てください。
(※便宜上、申請者等のフィールドを非表示にしました)


以上でIBMiにあるデータをMagic xpiでREST API化して、DominoVoltで利用するという手順がご理解頂けたのではないでしょうか。

ここでひとつ注目して頂きたいのが、今回の作業では一切のコードを書いていないという点です。
DominoVoltはもちろんローコードツールとして有名ですが、実はMagic xpiも同じくローコードツールの部類にも含まれます。

少し学べば、設定やウィザードのみでここまでできる。
すばらしいツールの組み合わせかではないでしょうか。


今回は長文になり申し訳ございませんでした!!

0 件のコメント:

コメントを投稿