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

IM-FormaDesignerで作成したフォーム内でIME入力モードを制御する方法【IE・EDGE】

注意事項     Microsoft Edge 41 より ime-mode 属性は利用できなくなりました。 このCookbookでは、IM-FormaDesignerで作成したフォーム内の 画面アイ …

no image

Payara で Java のリモートデバッグを行う

この CookBook では、Payara のリモートデバッグを行う手順について紹介しています。 レシピ Payara を設定する e Builder を設定する リモートデバッグを行う 1. Pay …

「イベント」ボタン・「一覧へ戻る」ボタンを使用し任意の遷移先を設定する

このCookBookでは、IM-FormaDesignerの画面アイテム・ボタンを使用し、任意の画面に遷移する方法について紹介しています。 設定方法は下記の2パターンです。 「イベント」ボタンを使用す …

IM-BloomMaker 数値入力(フォーマット)の独自のプロパティの紹介

2022 Winter にリリースした「数値入力(フォーマット)」エレメントは、数値ボックスを表示するエレメントです。3桁区切りや0埋めのフォーマットを利用できます。この CookBook では、「数 …

no image

変数のkey, valueを取り出して配列にするアクション、式表現の利用方法

このCookBookでは、2022 Spring で新しく追加された以下のアクションと式表現について紹介します。 アクション変数○に○の各キー名を配列にして代入する変数○に○の各要素の値を配列にして代 …