Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


Valence アプリ間通信機能の利用方法

Valence6.0 20211111.0バージョンではApp Builderアプリ間でアプリ変数の値を受け渡しする機能が追加されました。アプリ間通信機能を利用することで、作成したApp Builderアプリの再利用性が向上します。記事では、アプリ間通信機能の使用方法についてご紹介します。

アプリ間通信機能とは?

Valence6.0 20211111.0バージョンから App Builderアプリ間でアプリ変数の受け渡しを行う機能が追加されました。アプリ間通信は「イベント受信側」のアプリに”EventListner”(イベントリスナーの追加) というイベント受信の設定を行い、「イベント送信側」のアプリに”FireEvent”(イベントの発動)というイベント送信の設定をすることで実現ができます。

アプリ間通信を利用することで、App Builderアプリを別のApp Builderアプリから使いまわすことができます。

アプリ間通信時利用の例

例えば、「商品検索アプリ」を作成した場合、商品の売り上げを参照する「売上照会アプリ」から「商品検索アプリ」を呼び出して利用することができます。また、 商品在庫を参照する「在庫照会アプリ」から 「商品検索アプリ」 を呼び出して利用することもできます。

様々なアプリから呼び出すことができるため、作成したアプリの再利用が可能となります。

イベント送信側 FireEvent

イベントの発動 FireEvent

イベント送信側のアプリでは、アプリ間で受け渡すアプリ変数の定義を行い、FireEvent(イベントの発動)を定義します。FireEventが実行されると、イベント受信側のEventListnerに処理が返却されます。

イベント受信側 EventListner

イベント受信側 EventListner

EventListner(イベントリスナーの追加)はイベント受信側に設定します。イベント送信側のFireEvent(イベントの発動)処理が実行された際に、イベント送信側のアプリ変数を受け取り、フィルターウィジェットやスクリプトの実行など、様々な処理を行うことができます。

アプリ間通信の設定例

アプリ間通信の設定例

アプリ間通信の例として、以下のような処理を実装する方法をご紹介します。

  1. 受信側アプリ Formウィジェットのボタンクリックで送信側アプリを表示
  2. 送信側アプリ Gridウィジェットのレコードを選択
  3. 受信側アプリ 送信側アプリで選択されたレコードの値によって、Formウィジェットの値を書き換える

イベント送信側設定

アプリ間通信では、最初にイベント送信側を設定する必要があります。
イベント送信側では、イベント送信時にイベント受信側アプリで受け取るためのアプリ変数を定義してください。

アプリ間通信 送信側アプリのアプリ変数設定

例では、アプリ変数はイベント受信側で受け取る為、商品コード(SHSHCD)、商品名(SHSHNM)、商品単価 (SHSHTN) の3つを定義しています。

アプリ間通信 レコード選択時、送信側アプリのアプリ変数設定

Gridのレコード選択時(行クリック)にFireEvent(イベントの発動)を実行します。「イベントの発動」を設定する前に、「アプリ変数の設定」から受け渡すアプリ変数を設定します。

アプリ変数を設定後、「イベントの発動」が実行されるように定義します。
「イベントの発動」では、イベント名と説明を入力して「保存」ボタンをクリックして登録してください。以上で、イベント送信側アプリの設定は終了です。

イベント受信側設定

イベント受信側では、イベント送信側で設定したイベントをEventListnerで受け取ります。例の受信側アプリでは、Formウィジェットのフィールドにイベントから返却されたアプリ変数を設定しています。

アプリ間通信 受信側アプリ アプリ変数設定

Formウィジェットのフィールドに値を設定するには、アプリ変数の設定が必要です。イベント受信側でもアプリ変数を設定してください。例では、3つのアプリ変数を受け取るため、PARM01~PARM03を定義しています。

アプリ間通信 受信側アプリFormウィジェットの値設定

Formウィジェットの歯車アイコンをクリックすると、Formウィジェットの設定画面が左側ペインに表示されます。「アプリ変数にリンク」のボタンをクリックすると、Formウィジェットの設定とアプリ変数を連携することができます。

アプリ間通信 受信側アプリFormウィジェットの値設定(フィールドの値を設定)

「アプリ変数にリンク」画面では「フィールドの値を設定」を選択して、定義したアプリ変数PARM01~PARM03をそれぞれ、Formウィジェットの商品コード(F1_CRSHCD) : PARM01 、商品名(F1_CRSHNM) : PARM02 、商品単価(F1_CRSHTN) : PARM03 のように設定します。

これで、Formウィジェットのフィールドと、アプリ変数の連携が設定できました。

次に、イベントを受信する設定を追加します。
アプリ編集画面の「動作内容」にて、Applicationセクションに記述されている「Event Listeners」横にある三点アイコンをクリックすると、「イベントリスナーの追加」が選択できます。

「イベントリスナーの追加」では、Valenceで登録しているイベントの一覧が表示されます。イベント送信側で設定したイベントをクリックで選択してください。

イベントを選択後、イベントの横の三点アイコンをクリックすると「フィルターウィジェット」 ~「イベントの発動」などのメニューが表示されます。例では、Formウィジェットに設定したアプリ変数PARM01~PARM03に値を設定する必要があるため、アプリ変数の設定を選択しています。

EventListner処理での設定では、イベント送信側のアプリ変数を利用することができます。アプリ変数の設定では、PARM01の値を設定する際にEvent Parametersのプルダウンが表示されて、イベント送信側のアプリ変数を設定できます。

アプリ変数を変更することで、Formウィジェットの値を動的に変更することができます。

アプリ間通信を利用すると、作成したAppBuilderアプリの再利用が可能となりますので是非ご活用ください。