4.3.18.3. IM-LogicDesignerタスクを利用してOpenRulesを使用する¶
このチュートリアルでは、「OpenRules」と連携した「IM-LogicDesigner」のタスクを使用するプロセス定義を解説します。
- 「OpenRules」を使用することにより、プログラムに詳しくない人でも処理の分岐やビジネスロジックを設定・修正できます。
- 「IM-LogicDesignerタスク」は、タスク中に設定された情報からIM-LogicDesignerで定義されたロジックフローの処理を行います。
「OpenRules」の詳細については、「Product File Downloadサイト」の「OPENRULES ユーザ・マニュアル」参照してください。「IM-LogicDesignerタスク」の基本的な使用方法については「IM-LogicDesignerタスクを利用してユーザ情報を取得する」を参照してください。図 : 概要「OpenRules」には、「ルールを定義するEXCELファイル」と「処理を実行するEXCELファイル」の2種類が必要です。「ルールを定義するEXCELファイル」はユーザモジュールに内包しているものを使用します。このチュートリアルでは、使用するルールの定義に沿った「処理を実行するEXCELファイル」の説明を行いますが、作成手順の解説は行いません。「処理を実行するEXCELファイル」は以下をダウンロードして使用してください。プロセスを進めていく中で、「IM-LogicDesigner」のロジックフローと「IM-FormaDesigner for Accel Platform」で作成したFormaアプリケーションを使用します。チュートリアルを開始する前に以下の資材をインポートしてください。
コラム
コラム
- ロジックフロー: 「IM-LogicDesigner ユーザ操作ガイド」-「インポート/エクスポート」
- 「IM-FormaDesigner」で作成したアプリケーション : 「IM-FormaDesigner 作成者操作ガイド」-「インポート・エクスポートを利用した IM-FormaDesigner のアプリケーションやデータソース定義の移行」
4.3.18.3.1. 環境構築を行う¶
「IM-LogicDesigner」で「OpenRules」を使用するためには、専用の「ユーザモジュール」を追加する必要があります。以下の手順のとおりに、環境構築をおこなってください。
- モジュールを取得します。「Product File Downloadサイト」から、プロダクトファイルダウンロード画面を開きます。
OpenRules用のライセンスキーを入力し、ファイル一覧取得 (Get FileList)をクリックします。
以下のユーザモジュールをダウンロードしてください。
- openrules_modules_6.4.2.zipopenrules_modules_6.4.2.zipを解凍し、 jp.co.intra_mart.oss_linkage.openrules-8.0.3.imm を取得します。
- im_logic_openrules-8.0.0.imm上記のバージョンを選択してください。
- 「IM-Juggling」を起動し、プロジェクトの新規作成を行います。「モジュールの選択」を行うところまで作業を進めてください。プロジェクトの作成とモジュールの選択の方法については、「intra-mart Accel Platform セットアップガイド」-「プロジェクトの作成とモジュールの選択」を参照してください。
注意
ご利用になるバージョンによっては、対応していないことがあります。このチュートリアルでは「intra-mart Accel Platform 2018 Summer(Tiffany) 」を使用しています。 - 「ユーザモジュール」タブの右上の「」をクリックします。上記でダウンロードした、以下のモジュールを追加してください。
- 通常と同じ手順でセットアップを行ってください。手順については「intra-mart Accel Platform セットアップガイド」を参照してください。
4.3.18.3.2. EXCELファイルを確認・配置する¶
「OpenRules」で使用する「処理を実行するEXCELファイル」を確認・配置します。このチュートリアルでは、「IM-FormaDesigner」のFormaアプリケーションに入力された値をもとに、「出張手当」を算出するビジネスロジックが作成されています。
- 2枚目のシートの「Glossary」を確認します。図 : 「openrules_excel-logicdesigner_task_openrules_usage-allowance_rule.xls」 - 「Glossary」シート
- Glossaryテーブル
- 「ルールを定義するEXCELファイル」で利用している「項目の名称(論理名と物理名)」をマッピングしています。「IM-BPM」の「開始イベント」で呼び出した「IM-FormaDesigner」のFormaアプリケーションに入力された値を「OpenRules」で計算し、結果を返します。
- Glossary glossary
- 「OpenRules」 で利用する全ての項目をここで定義しています。
図 : 「Glossary」シート - 「Glossary glossary」
- Data テーブル
- データを保持しているテーブルです。使用する「グループ(Business Concept)」と、「物理名(Attribute)」を設定します。
- Data BusinessTripCondition businessTripCondition
- 「IM-FormaDesigner」のFormaアプリケーションに入力され、「IM-LogicDesigner」から渡される値です。
- Data Allowance allowance
- 「DecisionTable」シートで算出し、「IM-LogicDesigner」を通して「IM-FormaDesigner」のFormaアプリケーションへ返却される表示結果の値です。
図 : 「Glossary」シート - 「Data」テーブル
- Datatypeテーブル
- 「Glossary」テーブルで設定した「グループ(Business Concept)」のデータ型を指定しています。このテーブルは、グループ(Business Concept)単位に作成されています。
- Datatype BusinessTripCondition
- 「IM-LogicDesigner」から受け取る値のデータ型を指定しています。
- Datatype Allowance
- 「IM-LogicDesigner」に返却する値のデータ型を指定しています。
図 : 「Glossary」シート - 「Datatype」テーブル
- 3枚目のシートの「DecisionTable」を確認します。図 : 「openrules_excel-logicdesigner_task_openrules_usage-allowance_rule.xls」 - 「DecisionTable」シート
- DecisionTableテーブル
- 実行の条件と設定する値が定義されているテーブルです。
- DecisionTable DetermineAllowance
- 入力された「距離」を評価し、「日当」を決定します。
入力された値が「20Km」未満(<)なら、日当は「1000」
入力された値が「120Km」未満(<)なら、日当は「2000」
入力された値が「120Km」以上(>=)なら、日当は「5000」
図 : 「DecisionTable」テーブル - 「DetermineAllowance」- DecisionTable DetermineMealcost
- 入力された勤務時間を評価し、「食事代補助」を決定します。
入力された値が「20km」以上(>=)なら、食事代補助は「500」
入力された値が上記の条件に当てはまらないなら、食事代補助は「0」
図 : 「DecisionTable」テーブル - 「DetermineMealcost」- DecisionTable DetermineHotelcharge
- ラジオボタンで設定された「宿泊の有無」を判定し、宿泊費を決定します。
ラジオボタンが宿泊あり(TRUE)になっていた場合、宿泊費は「1000」
上記の条件に当てはまらなかった場合、宿泊費は「0」
図 : 「DecisionTable」テーブル - 「DetermineHotelcharge」
- DecisionTable2テーブル
- 実行の条件と設定する値が定義されているテーブルです。
- DecisionTable2 DetermineTotalamount
- このチュートリアルでは、列「Condition」が作成されていないため、列「Conclusion」の式すべてが実行されます。
- 列「Conclusion」
- 上記3つの「DecisionTable」テーブルで決定した値を使用して「合計」を算出しています。
図 : 「DecisionTable2」テーブル - 「DetermineTotalamount」
- 1枚目のシートの「Main」を確認します。図 : 「openrules_excel-logicdesigner_task_openrules_usage-allowance_rule.xls」 - 「Main」シート
- Decision テーブル
- 「DecisionTable」シートに定義されているテーブルの実行条件や順番を設定します。実行結果を出力(返却)項目のグループ(オブジェクト)に設定します。
- Decision AllowanceRules
- ここで、評価に使用する「DecisionTable」を設定します。ここで設定した順番で「DecisionTable」が実行されます。
- 列「Decisions」
- 「DecisionTable」テーブルを使用するため、名前を付けます。自由に命名できます。
- 列「Execute Decision Tables」
- 「DecisionTable」シートで定義した「DecisionTable」テーブルの名前です。
DetermineAllowance : 距離に対応した「日当」の判定
DetermineMealcost : 勤務時間に対応した、「食事代補助」の判定
DetermineHotelcharge : 宿泊の有無による「宿泊費」の判定
DetermineTotalamount : 上記の「合計」の算出
図 : 「Decision」テーブル - 「AllowanceRules」
- DecisionObject テーブル
- ルールで利用する項目を、一定のグループ(オブジェクト)単位に受け渡しを行います。
- DecisionObject decisionObjects
- 「IM-LogicDesigner」から渡される「BusinessTripCondition<object> 」と、計算結果を返却する「Allowance<object>」を、Glossaryで定義しているオブジェクト(Business Concept)とマッピングします。
- 列「Business Concept」
- 「DecisionTable」シートで定義した「DecisionTable」テーブルの名前です。
- 列「Business Object」
- 「Business Concept」に対する、値の入出力の式を定義するための列です。
図 : 「DecisionObject」テーブル - 「decisionObjects」
4枚目のシート「Env」を確認します。
- EXCELファイルの確認が終わったら、ファイルを「パブリックストレージ直下」に配置します。
4.3.18.3.3. ロジックフローを確認する¶
- チュートリアル開始前にインポートしたロジックフローを確認します。「サイトマップ」→「IM-LogicDesigner」→「フロー定義一覧」→「ロジックフロー定義一覧」画面を表示します。
- 左ペインのツリーから「OpenRules」カテゴリの開閉アイコンをクリックしカテゴリ配下を情報を表示します。フロー定義「【チュートリアル】Allowance Rule Logic Flow」を選択し編集ボタンをクリックし、「ロジックフロー定義編集」画面を開きます。
- 「allowance_rule_logicflow」の「ロジックフロー定義編集」画面が表示されます。メニューバーの「入出力設定」をクリックし、「入力設定」を表示します。
- 設定されている「入出力値」を確認します。以下の値が登録されているのを確認します。
- 入力「IM-FormaDesigner」のFormaアプリケーション「allowance_input」で入力され、「IM-BPM」から渡ってきた値
キー名 型 distance <integer> stay <boolean> workinghours <integer> - 出力「IM-FormaDesigner」のFormaアプリケーション「allowance_confirm」で表示するため、「IM-BPM」に返却する値図 : 「入出力設定」
- 「OpenRules」に対する設定の確認をします。「出張手当計算(allowance1)」タスクの「ユーザ定義編集」をクリックし、「OpenRules ルール定義編集」ダイアログを表示します。
- 「OpenRulesルール定義編集」が表示されます。以下のとおりに項目が設定されていることを確認してください。
- ユーザ定義共通設定
ユーザ定義名 : 出張手当計算
ユーザカテゴリ : 任意
ソート番号:任意
- 入力値
キー名 型 BusinessTripCondition <object> distance <integer> stay <boolean> workinghours <integer>
- 返却値
キー名 型 Allowance <object> allowance <integer> hotelcharge <integer> mealcost <integer> totalamount <integer>
- ルール定義
- ファイルパス: openrules_excel-logicdesigner_task_openrules_usage-allowance_rule.xls
- メソッド名 : AllowanceRules
図 : 「OpenRulesルール定義編集」
コラム
「ルール定義」の「メソッド名」は、「処理を実行するEXCELファイル」の「Main」シート - 「Decision」テーブルに紐づいています。 - 「OpenRules」を使用するタスク「出張手当計算(allowance1)」のマッピング設定を確認します。「出張手当計算(allowance1)」タスクをクリックしてください。
- 左右で以下の値が登録・マッピングされていることを確認します。
- 「終了」タスクの「マッピング設定」画面を表示します。「終了」タスクをクリックしてください。
- 左右で以下の値が登録・マッピングされていることを確認します。
4.3.18.3.4. プロセス定義を作成する¶
- 「開始イベント」を設置します。
- プロセス全体に対する設定を行います。「開始イベント」ではない場所をクリックし、「プロパティ」をプロセス全体に切り替えます。
- 「プロセス」タブから、処理対象ユーザを「青柳辰巳(ユーザコード: aoyagi )に設定します。
- 「開始イベント」に、インポートした「IM-FormaDesigner」のアプリケーションを設定します。「開始イベント」を選択し、「メインコンフィグ」タブの「フォームキー」に以下の値を設定します。
- 「OpenRules」を利用するために、「IM-LogicDesigner」を呼び出します。パレットの「Intra-mart」から「IM-LogicDesignerタスク」を選択し、配置します。
- 「実行モード」の設定を行います。「基本情報」タブの「 実行モード」で、「非同期」を選択してください。
- 「フローID」を設定します。「メインコンフィグ」タブの「フローID」から、「フロー定義検索」をクリックしてください。
- チュートリアル開始前にインポートしたものを使用します。「ロジックフロー定義検索」画面でフロー定義ID「allowance_rule_logicflow」を選択し、「決定」をクリックします。
- 「IM-FormaDesigner」のFormaアプリケーションに入力した値を「IM-LogicDesigner」の入力値に紐づける際に使用するデータを設定します。「メインコンフィグ」タブから、「入力データ」の「追加」をクリックします。
- 以下のとおりに項目の値を設定してください。
- 出力値を変数に格納する設定を行います。「メインコンフィグ」タブから、「結果変数を格納する」を有効にします。
- ユーザタスク「出張手当確認」を配置します。
- ユーザタスク「出張手当確認」に、インポートした「IM-FormaDesigner」のアプリケーションを設定します。「メインコンフィグ」タブで、以下のように項目を設定してください。
終了イベントを設置します。
メニューバー左上、「ファイル」 から「名前を付けて保存」を選択し、保存します。
4.3.18.3.5. 実行結果を確認する¶
このチュートリアルで作成した「プロセス定義」を実行環境にデプロイし、実行結果の確認を行います。
- 「サイトマップ」→「BPM」→「プロセス開始一覧」画面を表示します。
「出張手当計算プロセス」の「」をクリックし、プロセスを開始します。
- 開始イベントに設定したFormaアプリケーション「allowance_input」に遷移します。適当に入力し、「確認」をクリックします。
「サイトマップ」→「BPM」→「タスク一覧」画面を表示します。
- 「タスク一覧」画面の「個人タスク」を確認します。タスク名「出張手当確認」の「」をクリックします。
結果が表示されます。