アクション設定でビジネスロジックと連携したい
この記事では、アクション設定におけるビジネスロジックとの連携方法について紹介します。
IM-BloomMakerでは、エレメントにアクションを設定するだけで、intra-martの各ツールや機能と簡単に連携できます。IM-LogicDesignerで作成したビジネスロジックと連携すると、業務データの取得や書き込みなどを行う画面を構築できます。IM-BloomMakerとIM-LogicDesignerでそれぞれ設定が必要となるため、その操作方法について確認してみましょう。
- 1. ビジネスロジックを呼び出すアクション
- 1.1. 「IM-LogicDesigner フロールーティング〇にリクエストを送信する」
- 1.2. 「URL〇にリクエストを送信する」
- 2. 画面とビジネスロジックの連携方法(操作手順)
- 2.1.  IM-LogicDesignerの操作
- 2.1.1. ビジネスロジックの作成と入出力値の設定
- 2.1.2. フロールーティング定義情報を設定する
- 2.1.3. フロールーティングの認可設定を行う
- 2.2.  IM-BloomMakerの操作
- 2.2.1. 基本情報を設定し、画面コンテンツを作成する
- 2.2.2. REST APIに関する変数を設定する
- 2.2.3. リクエスト送信に関するアクションを設定する
- 3. 画面とビジネスロジックの連携例
- 4. まとめ
ビジネスロジックを呼び出すアクション
IM-BloomMakerには、REST APIを利用してIM-LogicDesignerで作成したビジネスロジックを呼び出すための2種類のアクションが用意されています。
- 「IM-LogicDesigner フロールーティング〇にリクエストを送信する」
- 「URL〇にリクエストを送信する」
「IM-LogicDesigner フロールーティング〇にリクエストを送信する」はIM-LogicDesigner専用で、作成したロジックフローに対してリクエストを送信するために使用します。「URL〇にリクエストを送信する」は、IM-LogicDesigner以外のAPIも含め、汎用的にリクエストを送信することが可能です。
ここでは、それぞれのアクションについて、クライアントサイドとサーバーサイドの動作を含めて詳しく紹介していきます。
「IM-LogicDesigner フロールーティング〇にリクエストを送信する」
「IM-LogicDesigner フロールーティング〇にリクエストを送信する」は、IM-LogicDesignerで作成したビジネスロジックを呼び出すときのみに使用するアクションです。「アクション」タブでは、「IM-LogicDesigner」部品に含まれています。
サーバーサイドでは、IM-LogicDesignerで呼び出したいロジックフローにルーティング定義情報(ルーティング・メソッド・認可URIなど)を設定します。ここで選択できるメソッドは、GET:データの取得、POST:データの送信(新規作成や登録など)、PUT:データの送信(更新)、DELETE:データの削除の4種類です。
クライアントサイドでは、IM-BloomMaterで「IM-LogicDesigner フロールーティング〇にリクエストを送信する」というアクションを配置し、呼び出したいロジックフローのルーティングを指定します。すでにIM-LogicDesignerでルーティング定義情報を設定しているため、IM-BloomMakerのアクション設定ではメソッドを設定する必要がありません。また、IM-LogicDesignerからの出力値を受け取るため、IM-BloomMakerに変数を設定します。
フロールーティングのリクエスト送信に関する仕様
「IM-LogicDesigner フロールーティング〇にリクエストを送信する」というアクションの仕様やパラメータについて確認できます。
「URL〇にリクエストを送信する」
「URL〇にリクエストを送信する」は、IM-LogicDesignerで作成したロジックフローのルーティング(URL)を指定するだけでなく、intra-martのツールであるWeb API Makerで作成した独自のURLや外部に公開されている任意のURLなどを指定するときにも使用できるアクションです。「アクション」タブでは、「標準」部品に含まれています。
サーバーサイドでは、IM-LogicDesignerのロジックフローを呼び出すためのルーティング定義情報の設定のほか、Web API Makerで作成した独自のAPIや外部に公開されている任意のAPIを準備します。ここで設定できるメソッドについては、各APIの仕様を確認してください。
クライアントサイドでは、IM-BloomMakerで「URL〇にリクエストを送信する」というアクションを配置し、REST APIに渡す値となるURLを変数で指定します。また、REST APIからの戻り値を格納する変数も指定します。アクション設定で選択できるメソッドは、GET:データの取得、POST:データの送信(新規作成や登録など)、PUT:データの送信(更新)、DELETE:データの削除、HEAD:データのヘッダの取得の5種類です。サーバーサイドで設定したメソッドと同じメソッドを選択します。
IM-LogicDesignerで作成したロジックフローを呼び出したい場合、「URL〇にリクエストを送信する」というアクションでも同じように設定ができますが、「IM-LogicDesignerフロールーティング〇にリクエストを送信する」というアクションを使用することで、設定項目が少なくなるため、より簡単に設定できます。
URLのリクエスト送信に関する仕様
「URL〇にリクエストを送信する」というアクションの仕様やパラメータについて確認できます。
intra-mart上で使用できるWeb APIを作成する
Web APIとは、HTTPを介してデータをやり取りするためのAPIです。intra-mart Accel Platform 上で使用できるWeb APIを作成するには、Web API Maker を利用します。このツールでは、Javaの知識が必要となります。
画面とビジネスロジックの連携方法(操作手順)
ここでは、「IM-LogicDesigner フロールーティング〇にリクエストを送信する」というアクションを使用して、IM-BloomMakerで作成した画面とIM-LogicDesignerで作成したビジネスロジックを連携する方法について紹介します。
IM-LogicDesignerの操作
IM-LogicDesignerで作成したロジックフローをREST APIから呼び出すため、URLなどのルーティング定義情報を設定します。ルーティング定義情報を設定した後、アプリケーションの利用者となるユーザ権限でビジネスロジックが実行できるように認可設定を行います。
ビジネスロジックの作成と入出力値の設定
画面と連携させるビジネスロジックを準備します。新規でロジックフローを作成する場合でも、既存のロジックフローを使用する場合でも、連携は可能です。入出力値の設定は、IM-BloomMakerの変数設定と関連があるため、この時点でデータ構造を整理しておくことをおすすめします。
[1] ビジネスロジックの作成と入出力値の設定例
チュートリアルガイドでは、具体的なアプリケーションを例に、画面とビジネスロジックを連携させる一連の手順を確認できます。[1] では、IM-LogicDesignerを使ったビジネスロジックの作成方法や入出力値の設定などについて説明しています。入出力値はIM-BloomMakerの変数設定に影響するため、事前に確認しておきましょう。
フロールーティング定義情報を設定する
作成したロジックフローをREST APIから呼び出すため、URLなどのルーティング定義情報を設定します。ルーティング定義情報では、ルーティングを呼び出す際に必要なURLやHTTPメソッド、ルーティングの認証方法、IM-Authzによる認可判断を行うための認可URI、ルーティングを実行した際に必要なレスポンスに関する設定などをそれぞれ入力します。
ここで設定したHTTPメソッドやルーティングの認証方法によっては、IM-BloomMakerのアクション設定で正しいリクエストパラメータを設定するなどの注意が必要となります。
[2] ルーティング定義情報の設定例
チュートリアルガイドでは、作成したビジネスロジックを外部から利用できるようにするため、URLを設定する手順について説明しています。
フロールーティングの認可設定を行う
ビジネスロジックが適切に動作するように、フロールーティングの認可設定を行います。フロールーティングの認可設定は、ルーティング定義情報に登録したURLに対するアクセス権限を制御し、許可または禁止するために設定します。
[3] フロールーティングの認可設定例
チュートリアルガイドでは、URLを設定したビジネスロジックを動作させるため、認可設定を行う手順について説明しています。
❑ 操作に関連した資料
上記で説明したルーティング定義情報の設定手順について、詳しくはIM-LogicDesignerのユーザ操作ガイドと仕様書でそれぞれ確認できます。ユーザ操作ガイドでフロールーティング定義の各設定項目についての概要を確認し、さらに仕様書で各設定項目の詳細を照らし合わせながら確認することで理解が深まります。
フロールーティング定義の設定方法
IM-LogicDesignerで作成したロジックフローについて、ルーティング定義の設定方法を説明しています。ルーティングの新規登録や編集(更新・削除)、認可設定について、それぞれの手順を確認しておきましょう。
フロールーティングの構成要素と動作仕様
IM-BloomMakerのアクション設定からフロールーティングの定義に一致するリクエストを受信した場合、IM-LogicDesigner側で行われる一連の処理について説明しています。REST API実行時にエラーが発生した際のレスポンスについても把握し、適切な設定を行うようにしましょう。
IM-BloomMakerの操作
IM-BloomMakerでアプリケーション画面を作成し、IM-LogicDesignerでルーティング定義を設定したビジネスロジックとデータの受け渡しをするために、変数やアクションを設定します。
基本情報を設定し、画面コンテンツを作成する
ビジネスロジックと連携させる画面コンテンツを準備します。新規で画面を作成する場合でも、既存の画面を使用する場合でも、連携は可能です。
[4] 画面コンテンツの作成例
チュートリアルガイドでは、URLを設定したビジネスロジックと連携させる前に画面コンテンツを作成する手順について説明しています。
REST APIに関する変数を設定する
アプリケーション画面からREST APIを通してビジネスロジックを呼び出す際は、データを識別できるように一意(ユニーク)な情報を保持するための変数を設定します。クライアントサイドからリクエストを送信する際は、パラメータやデータを変数として指定します。これらの変数はサーバーサイドで処理され、レスポンスが返却される際にも同様に変数としてデータを受け取ります。IM-BloomMakerでは、このようなデータの受け渡しを考慮して、適切に変数を設定することが大切です。
リクエスト送信時のデータを変数として設定する
クライアントサイドからリクエストを送信するデータを変数として設定します。クライアントサイドとサーバーサイド間のデータの整合性を保つために、IM-BloomMakerの変数をIM-LogicDesignerの入力値と同じ構造にし、データ型や配列の次元数を揃えます。変数と入力値のデータ構造が一致していないと、エラーが発生する可能性があります。
レスポンス返却時のデータを変数として設定する
サーバーサイドから返却されるデータを変数として設定します。クライアントサイドとサーバーサイド間のデータの整合性を保つために、IM-BloomMakerの変数をIM-LogicDesigner からの出力値と同じ構造にし、データ型や配列の次元数を揃えます。変数と出力値のデータ構造が一致していないと、データの欠損やエラーが発生する可能性があります。
[5] 変数の設定例
チュートリアルガイドでは、画面で使用する変数の設定手順について説明しています。リクエスト送信時のデータにはenqueteInfoという変数を作成し、レスポンス返却時のデータにはresponseDataという変数を作成しています。
❑ 操作に関連した資料
上記で説明した変数の設定手順について、詳しくはIM-BloomMakerのユーザ操作ガイドで確認できます。IM-BloomMakerでは、JSONエディタを用いて、まとめて変数を作成できます。その際には、入力に応じて、自動で型変換が行われます。また、外部のAPIなどとのやり取りについても、自動で型変換が行われる場合があります。意図しないデータ型に変換されていないかを確認してください。
変数の設定方法
IM-BloomMakerで作成した画面について、変数の設定方法を説明しています。REST APIでデータの受け渡しで重要となる値の型や配列の次元数・要素数などの設定項目についても確認しておきましょう。
変数のデータ型の自動変換
JSONエディタ上における型変換の対応表を確認できます。REST APIでデータの受け渡しをする場合は、高精度小数や日付・時刻の変数の変換について注意してください。
リクエスト送信に関するアクションを設定する
変数の準備ができたら、画面にアクションを設定します。ここでは、ルーティング定義情報を設定したビジネスロジックと連携させるため、「IM-LogicDesigner フロールーティング〇にリクエストを送信する」というアクションを使用します。〇には、ルーティング定義情報で設定したルーティング(URL)を選択します。
リクエスト送信時の変数を設定する
リクエスト送信時に使用する変数をリクエストパラメータとして設定します。これにより、クライアントサイドからサーバーサイドにあるロジックフローに入力データが送信されます。IM-BloomMakerの変数は、IM-LogicDesignerの入力値と同じ構造にしているため、ロジックフローの実行に必要な入力データを問題なく受け取ることができます。
[6] アクションの設定例(リクエスト送信)
チュートリアルガイドでは、リクエスト送信時のデータに対応するenqueteInfoという変数をリクエストパラメータに設定しています。
❑ 操作に関連した資料
上記で説明したIM-BloomMaker側の変数設定に関連して、IM-LogicDesigner側でどのような処理が行われるかを仕様書で確認することをおすすめします。IM-BloomMakerとIM-LogicDesignerの両方の仕様を理解しておくことで、REST API実行時のエラー発生を防ぐことができます。
ロジックフローに送信される入力データ
入力データの情報がロジックフローではどのような形式で表現されるのかを確認できます。入力データの元となる情報の格納先はJSONとリクエストパラメータです。リクエストパラメータの制約についても確認しておきましょう。
レスポンス返却時の変数を設定する
レスポンス返却時に格納する変数をレスポンスデータとして設定します。これにより、サーバサイドにあるロジックフローからクライアントサイドに対して出力値が返却されます。IM-BloomMakerの変数は、IM-LogicDesignerの出力値と同じ構造にしているため、ロジックフローの実行後の出力データを問題なく受け取ることができます。
[7] アクションの設定例(レスポンス返却)
チュートリアルガイドでは、レスポンス返却時のデータに対応するresponseData
という変数をレスポンスデータに設定しています。
❑ 操作に関連した資料
上記で説明したIM-BloomMaker側の変数設定に関連して、IM-LogicDesigner側でどのような処理が行われるかを仕様書で確認することをおすすめします。IM-BloomMakerとIM-LogicDesignerの両方の仕様を理解しておくことで、REST API実行時のエラー発生を防ぐことができます。
ロジックフローから返却される出力データ
ロジックフローを実行した後、出力データがどのような形式で返却されるのかを確認できます。出力データに含まれる値を適した形式で返却します。Contents-Typeで返却する場合は、ルーティング定義情報のレスポンスヘッダに指定することも可能です。
画面とビジネスロジックの連携例
画面とビジネスロジックの連携について基本的な流れを理解したところで、実際にアプリケーションを作成してみましょう。
ここでは、「IM-LogicDesigner フロールーティング〇にリクエストを送信する」というアクションを使用した連携例について、いくつか紹介します。CookBookを見ながら、画面とビジネスロジックの操作の流れを一通り確認できます。
(1) ファイルをダウンロードする
画面からPDFをダウンロードするアプリケーションを作成してみましょう。PDFをパブリックストレージに配置した後、IM-LogicDesignerではPDFをダウンロードするロジックフローを作成し、IM-BloomMakerではダウンロード画面を作成します。この場合、REST APIでの値の受け渡しがないため、入出力値や変数を設定する必要はありません。また、「URL〇にリクエストを送信する」というアクションを使用した方法についても説明しています。二つの異なるアクションについて、手順の違いについても併せて確認してみましょう。
(2) 入力内容をもとにファイルをダウンロードする
画面に入力した請求書の内容をExcel形式でダウンロードするアプリケーションを作成してみましょう。請求書のテンプレートをパブリックストレージに配置した後、IM-LogicDesignerではExcelを作成・ダウンロードするロジックフローを作成し、IM-BloomMakerでは入力・ダウンロード画面を作成します。入出力値や変数について意識しながら取り組んでみましょう。
(3) アップロードしたファイルをダウンロードする
登録画面からアップロードしたファイルを、一覧画面からダウンロードするアプリケーションを作成してみましょう。アプリケーションのデータを保存するため、データベースに新規テーブルを作成した後、IM-LogicDesignerでは登録・一覧処理に関するロジックフローを作成し、IM-BloomMakerでは登録・一覧画面を作成します。SQLを使用した操作についても確認してみましょう。
まとめ
IM-BloomMakerでは、エレメントにアクションを設定するだけで、intra-martの各種ツールや機能と簡単に連携できます。REST APIの利用にあたっては、クライアントサイドのIM-BloomMakerで作成した画面と、サーバーサイドのIM-LogicDesignerで作成したビジネスロジックの間で、どのようなデータのやり取りが行われるのかを理解しておくことをおすすめします。
intra-martでは、IM-BloomMakerをもっと知っていただくために、マニュアルやコンテンツなどを豊富にご用意しています。IM-BloomMakerの機能を最大限に発揮させるためにも、ぜひご活用ください。