CookBook

IM-LogicDesigner「繰り返し」「分岐」EL式の定義例

投稿日:2016-07-22 更新日:

このCookBookでは、IM-LogicDesignerの「条件分岐」「繰り返し」制御要素の条件で利用するEL式について定義例を紹介しています。
ここでは主に「 IM-LogicDesigner上で取り扱う値を条件に用いる場合 」の指定方法を説明します。
EL式の基本的な定義方法については説明しません。

ロジックフローサンプルデータ

以下のロジックフローサンプルデータをダウンロードし、実際の動作確認などにご活用ください。

IM-LogicDesignerサンプルデータ: im_logicdesigner-data_113665

定義例

  1. フローの入力値を条件に利用する。
  2. 定数値を条件に利用する。
  3. 変数値を条件に利用する。
  4. 暗黙的な変数(セッションプロパティ/アカウントコンテキスト/ユーザコンテキスト)を条件に利用する。
  5. 他のタスクの出力値を条件に利用する。
  6. 繰り返しを行う要素/繰り返し回数(item/index)を利用する。

各定義例について、それぞれ紹介していきます。

1. フローの入力値を条件に利用する。

1-1. 定義方法

ロジックフローに入力値として定義した値を条件(EL式)に利用する場合、以下の形式で定義を行います。

$inputはIM-LogicDesignerが初めから定義しているフローの入力値の親(root)となる暗黙的な変数となります。
XXXの部分には、ロジックフローの入力値から実際に利用したい値の名称を指定します。

1-2. 定義例

実際の定義例をサンプルのフローとともに確認します。

フロー
input_flow_thumb.png (6.2 kB)

今回のフローでは「入力値に定義された文字列が"IM-LD"で始まっている場合にのみ」入力されたメッセージをログとして出力します。
この「入力値に定義された文字列が"IM-LD"で始まっている場合にのみ」を表す条件(EL式)の定義は以下のとおりになります。

この定義は具体的には以下のような構成になっています。

input_syntax.png (2.1 kB)

  1. 入力値の親(root)を表す暗黙的な変数
  2. 対象とする入力値
  3. 条件となる構文(真偽値を返却)

2. 定数値を条件に利用する。

2-1. 定義方法

ロジックフローに定数値として定義した値を条件(EL式)に利用する場合、以下の形式で定義を行います。

$constはIM-LogicDesignerが初めから定義しているフローの定数値の親(root)となる暗黙的な変数となります。
XXXの部分には、ロジックフローの定数値に定義された値の中から実際に利用したい定数値の名称を指定します。

2-2. 定義例

実際の定義例をサンプルのフローとともに確認します。

フロー(入力値で利用したフローと同じもの)
input_flow_thumb.png (6.2 kB)

今回のフローでは「入力値に定義された文字列の中に、定数値(TARGET_WORD)が含まれている場合にのみ」入力されたメッセージをログとして出力します。

この「入力値に定義された文字列の中に、定数値(TARGET_WORD)が含まれている場合にのみ」を表す条件(EL式)の定義は以下のとおりになります。

この定義は具体的には以下のような構成になっています。

constant_syntax.png (2.6 kB)

  1. 定数値の親(root)を表す暗黙的な変数
  2. 対象とする定数値
  3. 条件となる構文(真偽値を返却)

3. 変数値を条件に利用する。

3-1. 定義方法

ロジックフローの変数値を条件に利用する場合、以下の形式で定義を行います。

$variableはIM-LogicDesignerが初めから定義しているフローの変数値の親(root)となる暗黙的な変数となります。
XXXの部分には、実際のロジックフローの変数値として定義された値の名称を指定します。

3-2. 定義例

実際の定義例をサンプルのフローとともに確認します。

フロー

variable_flow_thumb.png (8.8 kB)

今回のフローでは、「2. 定数値を条件に利用する。」で実装した内容と同等の処理を、変数を用いて行っています。
変更が加わった箇所は、定数値で定義された文字列を事前に変数に代入する処理を行っている点です。
EL式の定義は以下のとおりになります。

この定義は具体的には以下のような構成になっています。

variable_syntax.png (2.6 kB)

  1. 変数値の親(root)を表す暗黙的な変数
  2. 対象とする変数値
  3. 条件となる構文(真偽値を返却)

4. 暗黙的な変数(セッションプロパティ/アカウントコンテキスト/ユーザコンテキスト)を条件に利用する。

4-1. 定義方法

ロジックフローでセッションプロパティ/アカウントコンテキスト/ユーザコンテキストといったIM-LogicDesignerが提供している暗黙的な変数を条件に利用する場合、以下の形式で定義を行います。

  • セッションプロパティ

  • アカウントコンテキスト

  • ユーザコンテキスト

$session_properties/$account_context/$user_contextはIM-LogicDesignerが初めから定義している暗黙的な変数値の親(root)となる暗黙的な変数となります。
XXXの部分には、暗黙的な変数値が保持している値の名称を指定します。

4-2. 定義例

実際の定義例をサンプルのフローとともに確認します。

フロー例

implicit_flow_thumb.png (9.0 kB)

今回のフローでは「ユーザコンテキストから取得されるユーザコードが aoyagi だった場合」その旨を表すログメッセージを出力します。
(ユーザコンテキストから取得できる値を可変とするため、予め入力で与えられたユーザコードでユーザ切り替えを行うタスクを配置しています)

この「ユーザコンテキストから取得されるユーザコードが aoyagi だった場合」を表す条件(EL式)の定義は以下のとおりになります。

この定義は具体的には以下のような構成になっています。

implicit_usercontext_syntax.png (2.5 kB)

  1. 暗黙的な変数値(ユーザコンテキスト)の親(root)を表す変数
  2. 対象とする変数値
  3. 条件となる構文(真偽値を返却)

5. 他のエレメントの出力値を条件に利用する。

5-1. 定義方法

他のエレメントの出力値を条件に利用する場合、以下の形式で定義を行います。

(element_ailias)は利用したいエレメントに定義したエイリアスを指定します。
エレメントのエイリアスには他の変数とは異なり、$ が先頭につかないことに注意してください。
XXXの部分には、対象とするエレメントの出力値として定義された値の名称を指定します。

5-2. 定義例

実際の定義例をサンプルのフローとともに確認します。

element_flow_thumb.png (11.6 kB)

今回のフローでは「アカウント情報を取得し、そこから取得されるユーザコードが ueda だった場合」その旨を表すログメッセージを出力します。

この「アカウント情報を取得し、そこから取得されるユーザコードが ueda だった場合」を表す条件(EL式)の定義は以下のとおりになります。

この定義は具体的には以下のような構成になっています。

element_alias_syntax.png (2.2 kB)

  1. 利用したいエレメントに定義したエイリアス
  2. 対象とする変数値
  3. 条件となる構文(真偽値を返却)

このEL式では ueda のアカウント情報を取得するエレメントのエイリアスを指定しています。
これをもう片方の aoyagi のアカウント情報を取得するエレメントのエイリアス(以下参照)に変更した場合を考えます。

この変更によって、参照するエレメントが変更され、ログの出力が行われなくなります。

6. 繰り返しを行う要素/繰り返し回数(item/index)を利用する。

6-1. 定義方法

繰り返しを行う要素(item)を条件に利用する場合、以下の形式で定義を行います。

また、繰り返し回数(index)場合は以下の形式で定義を行います。
(なお、繰り返し回数(index)から取得できる値は1から始まる(1-indexed)ことに留意してください)

6-2. 定義例

実際の定義例をサンプルのフローとともに確認します。

フロー例

loop_flow_thumb.png (7.4 kB)

今回のフローでは「繰り返し回数が5回未満、かつ、対象要素の文字列の長さが3である場合」繰り返し処理を継続すると条件づけています。

この「繰り返し回数が5回未満、かつ、対象要素の文字列の長さが3である場合」を表す条件(EL式)の定義は以下のとおりになります。

この定義は具体的には以下のような構成になっています。
loop_flow_syntax.png (4.2 kB)

  1. 利用する「繰り返し」制御要素に定義したエイリアス
  2. 対象とする値
    a. 現在の繰り返しの要素番号
    b. 現在の繰り返しの要素
  3. 条件となる構文 (真偽値を返却)
    a. 要素番号が5未満の場合
    b. 要素(文字列)の長さが3である場合

おわりに

これまでの説明で、以下の要素を利用すること簡単に目的のEL式を定義することが分かりました。

  • IM-LogicDesignerではロジックフロー内のエレメントの持つ値を簡単にEL式に利用出来ます。
  • $input$constのような事前に定義された便利な変数が存在します。

最後に、intra-mart Accel Platform 2016 Summer(Nirvana)ではこうしたEL式の定義をサポートするための機能を提供予定です。より使いやすくなるIM-LogicDesignerにご期待ください。

-CookBook
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

AWS 上に Accel Platform を構築する方法

  この CookBook では、AWS の仮想マシン機能(Amazon EC2)を用いて、スタンドアローンで intra-mart Accel Platform を構築する方法について紹介 …

no image

ラジオボタンの値やフォーカスによってアイテムの色を変更するには

このCookbookでは、カスタムスクリプトによるフィールドスタイルの変更方法を説明します。 アクション設定とカスタムスクリプトの組み合わせにより、入力値やフォーカスイベントに合わせてアイテムのスタイ …

no image

【IM-BloomMaker】マークダウンエレメントに任意のデザインを追加する方法

このCookBookでは、BloomMaker のマークダウンエレメントに、CSS エディタを使用して任意のデザインを追加する方法についてご紹介いたします。 完成サンプル 以下の完成サンプルをダウンロ …

IM-BloomMaker のアクション「複数選択組織検索ダイアログを表示する」の使い方

このCookBookでは、「複数選択組織検索ダイアログを表示する」アクションの使用方法について紹介します。 「複数選択組織検索ダイアログを表示する」アクションは、共通マスタから取得した組織情報をダイア …

no image

外部システムから IM-Notice に通知を送る方法

この CookBook では、intra-mart Accel Platform 8.0.14 2016 Summer から導入された IM-Notice への通知タスクを利用して、外部システムから …