特定の条件を満たすロジックフローを作成したい 

この記事では、シンプルなロジックフローから一歩進んで、条件分岐や繰り返しなどを取り入れたロジックフローを作成する方法を紹介します。

IM-LogicDesignerでは、処理の流れを制御するさまざまな制御要素やタスクを利用できます。制御要素やタスクを組み合わせることで、業務に応じたさまざまな処理をロジックフローとして作成できます。ここでは、条件別にやりたいことから、利用する制御要素や作成例を確認してみましょう。

条件別にロジックフローを作成する

IM-LogicDesignerでは、ロジックフローの処理の流れを制御する「制御要素」と、具体的な処理を実行する「タスク」を組み合わせて、ロジックフローを作成します。

制御要素やタスクにはさまざまな種類があり、目的に応じて使い分けることで、複雑な処理にも対応できます。

指定した条件で分岐するフローを作りたい:「分岐」要素

指定した条件に応じて、次に実行する処理を切り替えたい場合は、「分岐」要素を使用します。「分岐」要素では、条件式の結果がTrueの場合とFalseの場合で、それぞれ異なる処理を設定できます。

<設定手順>

  1. ロジックフロー内の適切な場所に「分岐」要素を配置する
  2. 条件式を設定する
  3. TrueとFalseにそれぞれに、次に実行するエレメントを配置する

<設定例>

ログを出力した後、条件に応じてテキストメールを送信するフローを例に、上記の図と併せて確認してみましょう。「ログ出力」タスクと「テキストメール送信」タスクは、どちらも「汎用タスク」カテゴリに含まれています。

開始

処理1

分岐

分岐条件


処理2-a


処理2-b


終了

「開始」要素を配置する

「ログ出力」タスクを配置する

「分岐」要素を配置する

ロジックフローの入力値に、分岐条件となるフラグを設定する

「テキストメール送信」タスクを配置し、フラグがTrueの場合にメールを送信する

フラグがFalseの場合は、メール送信の処理を設定せず、処理を次に進める

「終了」要素を配置する

作成したフローを実行すると、ログを出力した後、フラグの値に応じてテキストメールを送信するかどうかが切り替わることを確認できます。

「分岐」要素の基本を理解したら、ワークフローを利用した少し複雑なフローの作成例も確認してみましょう。

同じ処理を繰り返し実行するフローを作りたい:「繰り返し」要素

一定の条件を満たすまで、または指定した回数だけ同じ処理を繰り返したい場合は、「繰り返し」要素を使用します。「繰り返し」要素では、繰り返し回数や繰り返し条件、繰り返し対象を設定して、繰り返す処理を制御できます。

繰り返しの設定は、以下のような方法があります。

  • 繰り返し回数:指定した回数をもとに処理を制御する
  • 繰り返し条件:条件式の結果をもとに処理を制御する
  • 繰り返し対象:繰り返し処理の対象を指定し、処理中にその値を利用する

<設定手順>

  1. 繰り返し処理を行うタスクを配置する
  2. 「繰り返し開始」要素と「繰り返し終了」要素で対象のタスクを囲む
  3. 「繰り返し開始」要素、繰り返し回数や繰り返し条件、繰り返し対象などを設定する

<設定例>

ログの出力とテキストメールの送信を3回繰り返すフローを例に、上記の図と併せて確認してみましょう。「ログ出力」タスクと「テキストメール送信」タスクは、どちらも「汎用タスク」カテゴリに含まれています。

開始処理1
  ↓
繰り返し
  ↓
繰り返し条件
  ↓
処理2-1
  ↓
処理2-2
  ↓
繰り返し開始
  ↓
  ↓
繰り返し終了
  ↓
  ↓
終了・処理3

「開始」要素を配置する

「繰り返し」要素を配置する

繰り返し回数を「3」に設定する

「ログ出力」タスクを配置する

「テキストメール送信」タスクを配置する

繰り返し回数が3回未満の場合、処理2を繰り返す

繰り返し回数が3回以上になった場合、繰り返し処理を終了する

「終了」要素を配置する

作成したフローを実行すると、設定した回数に応じて「ログ出力」と「テキストメール送信」が繰り返し実行されることを確認できます。

「繰り返し」要素の基本を理解したら、ジョブを利用してタスクを繰り返し実行するフローの作成例も確認してみましょう。

「分岐」要素と「繰り返し」要素で利用するEL式とは?

「分岐」要素や「繰り返し」要素の条件式には、EL式(Expression Language)を使用できます。IM-LogicDesignerでは、用途に応じて利用できる暗黙的な変数も用意されています。

フロー内から別のフローを呼び出したい:「フロー呼び出し」要素

実行中のロジックフローから別のロジックフローを呼び出したい場合は、「フロー呼び出し」要素を使用します。処理を別のロジックフローに分けることで、共通して利用する処理を再利用したり、ロジックフローを整理したりできます。

<設定手順>

  1. ロジックフロー内の適切な場所に「フロー呼び出し」要素を配置する
  2. 呼び出したいフローのIDを指定する
  3. 呼び出し先のフローに渡す入力値と、呼び出し元に返す出力値を設定する

<設定例>

作成済みの別のフローを呼び出す処理を例に、上記の図と併せて確認してみましょう。

開始処理A-1
   ↓
フロー呼び出し
   ↓
フローIDの設定
   ↓
   ↓
処理A-1から渡す値
   ↓
処理A-2に渡す値
   ↓
   ↓
終了・処理A-2

「開始」要素を配置する

「フロー呼び出し」要素を配置する

呼び出したいフローIDを設定する。処理B-1には「ログ出力」タスクが、処理B-2には「テキストメール送信」タスクがそれぞれ設定されている。

呼び出し先のフローに必要な入力値を設定する

呼び出し先のフローが終了した後、呼び出し元のフローに返す出力値を設定する

「終了」要素を配置する

作成したフローを実行すると、指定したフローが呼び出され、呼び出し先の処理が実行されることを確認できます。

フロー内に共通のエラー処理を設定したい:「エラー処理」要素

フロー内で発生したエラーに対して共通の処理を実行したい場合は、「エラー処理」要素を使用します。「エラー処理」要素を使用すると、複数の処理に対するエラー処理をまとめて設定できます。

<設定手順>

  1. 「エラー処理開始」要素を実行フローとは別の場所に配置する
  2. エラー発生時に実行するタスクを配置する
  3. エラー処理後の動作に応じて、制御要素を配置する

エラー処理後の対応について

  • フローの実行処理を継続したい場合「エラー処理終了」要素を配置
    (例:処理1→エラー処理3→処理2)
  • フローの実行処理をエラー終了したい場合「エラー終了」要素を配置
    (例:処理1→エラー処理3→エラー終了)
  • フローの実行処理を終了したい場合「終了」要素を配置
    (例:処理1→エラー処理3→終了)

<設定例>

二つのタスクのいずれかでエラーが発生した場合に、エラー処理としてメールを送信し、その後、元のフローの実行処理に戻るフローを例に確認してみましょう。

開始
 ↓
処理1
 ↓
処理2
 ↓
エラー処理開始

 ↓
処理3
 ↓
エラー終了処理
 ↓
終了

「開始」要素を配置する

フロー実行処理である一つ目の「ユーザ要素」タスク(task1)を配置する

二つ目の「ユーザ要素」タスク(task2)を配置する

「エラー処理開始」要素を配置する

エラー処理として「テキストメール送信」タスクを配置

「エラー処理終了」要素を配置する

「終了」要素を配置する

作成したフローを実行すると、エラーが発生した場合に、設定したエラー処理フローが実行されることを確認できます。

フロー内で変数を活用したい:「変数操作」要素

フロー内で変数を使用して、処理の途中でデータを保持したり、別のタスクで利用したりしたい場合は、「変数操作」要素を使用します。たとえば、処理1で取得した値を変数に格納しておくことで、処理2でもその値を利用できます。

暗黙的な変数について
IM-LogicDesignerでは、あらかじめ利用できる暗黙的な変数が定義されています。暗黙的な変数とは、ユーザが定義しなくても利用できる変数です。
  ・変数       ・アカウントコンテキスト  ・外部ユーザコンテキスト
  ・セッション情報  ・処理結果情報       ・ユーザコンテキスト

<設定手順>

  1. 「変数設定」画面から変数を定義する
  2. 変数に値を代入するため、「変数操作」要素を配置する
  3. マッピング設定で、変数に代入する値を設定する

<設定例>

ロジックフローの実行ユーザ名を変数に格納し、その値をログに出力するフローを例に、上記の図と併せて確認してみましょう。

開始・処理1
 ↓
変数操作
 ↓
変数定義
 ↓
 ↓
変数設定
 ↓
 ↓
処理2
 ↓
 ↓
終了

「開始」要素を配置する

「変数操作」タスクを配置する

実行ユーザ名を格納する文字列型の変数を作成する

マッピング設定でユーザコンテキストを入力値に追加し、変数に値を代入する

「ログ出力」タスクを配置し、変数の値をログに出力する

「終了」要素を配置する

作成したフローを実行すると、変数に格納した値を後続の処理で利用できることを確認できます。

複数の制御要素を組み合わせた活用例

ここまで紹介してきた制御要素を組み合わせることで、より複雑なロジックフローを作成できます。たとえば、「分岐」「繰り返し」「変数操作」などの制御要素を組み合わせることで、ワークフローの自動承認のような処理を作成できます。

制御要素の基本を理解したら、複数の制御要素を組み合わせたフローの作成例も確認してみましょう。

まとめ

IM-LogicDesignerでは、制御要素やタスクを組み合わせることで、条件分岐や繰り返しなどを含むさまざまなロジックフローを作成できます。まずは「分岐」や「繰り返し」など、目的に応じた制御要素の使い方を理解し、慣れてきたら複数の制御要素やタスクを組み合わせたロジックフローにも挑戦してみましょう。

intra-martでは、IM-LogicDesignerをもっと知っていただくためにマニュアルやコンテンツなどを豊富にご用意しています。IM-LogicDesignerの機能を最大限に発揮させるためにも、ぜひご活用ください。