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

【ViewCreator】検索にヒットした件数を取得する関数の作り方。

このCookBookでは、ViewCreatorで検索にヒットした件数を取得する関数の作り方についてご紹介します。 ユーザ定義関数についての詳細は下記のドキュメントを参照してください。 ViewCre …

no image

IM-LogicDesignerで、Redmineカスタムクエリのチケット一覧を取得する方法

このCookBookでは、IM-LogicDesignerを使用してRedmineのチケット (issues) 一覧を取得する方法を紹介します。 Redmineは、外部からチケット一覧を取得するための …

no image

IM-BISで作成したコンテンツ画面の内容をIM-PDF DesignerでPDFとして出力する方法

このCookBookでは、IM-BISで作成したコンテンツ画面の内容をIM-PDF DesignerでPDFとして出力する方法を紹介しています。 単票および表形式の帳票出力を行います。 完成イメージ …

no image

ライブラリのバージョン監視に応用可能なロジックフローの作り方

このCookBookでは、IM-LogicDesignerを利用して、指定したURLのHTMLから正規表現を利用して任意の文字列を取得する方法を紹介します。 JavaScript定義とREST定義を作 …

no image

申請画面で設定した特定の期日までは承認が行えないフローの作成方法

このCookbookでは、申請画面で設定した特定の期日までは承認が行えないフローの作成方法を紹介します。 アクション設定の表示モード変換を使用し、承認可能日の前後で承認ボタンの表示有無が切り替わる画面 …

まだデータがありません。

RSSRSSRSSRSS