3. 概要¶
3.1. IM-LogicDesigner とは¶
IM-LogicDesignerとは、intra-mart Accel Platform上でビジネスロジックを簡単に作成できるアプリケーションです。
IM-LogicDesignerの特徴は以下の通りです。
プログラミングの知識がない方でも、GUI上で処理を簡単に作成できます。
面倒なデータの変換や受け渡しは、IM-LogicDesignerが全て自動で行います。
Web画面上のみで、SQLや独自処理をサーバサイドJavaScriptで作成、定義でき、ビジネスロジックで利用することが可能です。
- IM-LogicDesignerで作成したビジネスロジックは、以下に挙げるアプリケーションなどから呼び出すことできます。
- IM-BIS for Accel Platform
- IM-FormaDesigner for Accel Platform
- ジョブスケジューラ
IM-LogicDesignerから、TERASOLUNA Global Framework、スクリプト開発モデルなどで作成した独自のビジネスロジックを直接呼び出すことができます。 ビジネスロジックはREST APIとして利用できるため、外部から呼び出すことも可能です。また、ビジネスロジック内で、外部のREST APIを呼び出すことも可能です。さらに、REST APIに対しての認可、セキュリティ設定も行うことができるため、API GATEWAY機能として利用することが可能です。
3.2. IM-LogicDesigner の全体像¶
IM-LogicDesignerの全体像は以下の通りです。
3.3. 用語¶
3.3.1. ロジックフロー¶
ビジネスロジックをフロー図形式によって記述した一連の設定を指します。
3.3.2. フローカテゴリ¶
ロジックフローに設定する分類情報を指します。
開発者は作成したロジックフローに対して、その用途や適用範囲を示す情報としてフローカテゴリを設定します。
3.3.4. 制御要素¶
ロジックフローを構成する各処理のうち、ロジックフロー自体の制御を担うものの総称を指します。
制御要素に該当する処理の一例は以下の通りです。
- 開始
- 正常終了
- 異常終了
- ループ
- 条件分岐
- フロー呼び出し
- 変数操作
3.3.5. タスク¶
ロジックフローを構成する各処理のうち、実処理を担うものの総称を指します。
タスクに該当する処理の一例は以下の通りです。
- IMBoxへの投稿
- ストレージ操作
- メール送信
- ジョブの実行
3.3.6. シーケンス¶
ロジックフローを構成するエレメント同士の繋がり(流れ)を表す線を指します。
ロジックフローはシーケンスを用いて、フローの開始から終了までの一連の処理の流れを設定します。
シーケンスには、エレメント同士の繋がり以外にも、条件分岐する際の分岐条件や、有効/無効といった情報を持ちます。
3.3.7. マッピング¶
ロジックフローを流れるデータのインプット・アウトプットの定義を指します。
ロジックフローは呼び出し時に渡されるデータおよび結果として返却するデータ、およびその間のエレメント間でのデータのやり取りにマッピングの定義情報を利用します。
IM-LogicDesignerでは、マッピングで利用可能な関数群を提供します。
開発者はこの関数を利用することで、ロジックフロー上でやり取りするデータをマッピングの中で加工・編集することが可能です。
コラム
マッピングの仕様について
<object>型のマッピングとプリミティブ型のマッピングが混在した場合、マッピングを行った(線を引いた)順に処理が行われるため、一見、同一のマッピングに見えても動作が違うパターンが存在します。
<object>型の配下にプリミティブ型を配置するなど、階層化された値の定義をする際には、<object>型、プリミティブ型の順にマッピングを行う必要があります。
3.3.9. ユーザ定義カテゴリ¶
3.3.10. フロールーティング¶
ロジックフローをREST APIとして利用するために定義する一連の設定情報を指します。
フロールーティングには、呼び出しを行うルート情報や呼び出し時に利用するメソッドといったREST APIに関する設定情報と、iAPの認可や認証方法といったiAPに関する設定情報が含まれます。
3.3.11. フロートリガ¶
特定の操作が行われた際にロジックフローを実行するための一連の設定情報を指します。
フロートリガにはロジックフローを実行する契機となる発生条件、および、ロジックフローの入力値として受け渡されるデータのマッピング定義情報が含まれます。
フロートリガは IM-Propagation を利用して、発生条件に指定された特定の操作が行われた際にデータを受信し、ロジックフローを実行します。