IM-BIS for Accel Platform OpenRules for IM-BIS 連携ガイド 第9版 2019-04-01

11.4. 動的処理対象者設定時に利用できるキーワード

動的処理対象者のルールの設定時に利用するキーワードです。
動的処理対象者設定と画面での値の受け渡しなどの連携の設定で差異がある部分を中心にまとめてありますので、記載のない要素は該当のテーブルタイプの説明などを参照してください。

【動的処理者設定】条件評価(DecisionTable)

Decision に基づいて、Excelのシートで上から書いてある順に条件を評価します。
条件が合致したら、合致した行の Conclusion のSetting IDの値に基づく処理対象者を返却します。

利用できる OpenRules のタイプ

タイプ 利用可否
Rule Engine
Rule Solver ×

テーブルの基本構造

メインヘッダ部は、構成する列分のセルを結合する必要があります。
サブヘッダ部は、条件や評価(処理)単位でセルを結合します。
../../_images/wf_dt_structure.png

(1) メインヘッダの記述方法

メインヘッダは、1セルに結合し、以下のいずれかの方法で記述します。
  • DecisionTable %テーブル名%
  • DT %テーブル名%
  • DecisionTableSingleHit %テーブル名%
  • RuleFamily %テーブル名%
    • 各キーワードの後に、半角スペースを入れてテーブル名を記述します。

(2) サブヘッダに利用できるキーワード

動的承認者設定のサブヘッダには、DecisionTable と同様の「条件」を設定できますが、「結果」には、 Conclusion と組み合わせて「Setting IDs」に値を設定するようにしてください。
  1. 条件に利用できるキーワード
キーワード 利用可否
Condition
ConditionBetween
ConditionVarOperValue
ConditionIntOperInt
ConditionRealOperReal
ConditionDateOperDate
ConditionAny
ConditionMap ×
If

コラム

条件のセルの条件値を記入しない場合、 OpenRules では無条件と判断されます。
すべての条件に合致しない場合の処理を記述する際などに利用します。
  1. 結果に利用できるキーワード

(3) 明細

(2)サブヘッダのキーワードに合わせて記述します。
処理対象者を設定する場合は、結果 Conclusion と組み合わせて、 【動的処理者設定】処理対象者プラグイン設定一覧(Data IMDynamicUser) のIDの値を記述してください。

【動的処理者設定】処理対象者プラグイン設定一覧(Data IMDynamicUser)

IM-BIS のワークフローの動的承認・縦配置・横配置ノードの処理対象者設定を、 OpenRules の結果に基づいて決定するための処理対象者プラグインの種類と種類に応じた設定値をまとめた一覧です。
この一覧のIDを 【動的処理者設定】条件評価(DecisionTable) の結果にセットします。

利用できる OpenRules のタイプ

タイプ 利用可否
Rule Engine
Rule Solver ×

テーブルの基本構造

メインヘッダ部は、構成する列分のセルを結合する必要があります。
結合するセルの単位が同じであれば、 Data/Variable と同様に列・行を入れ替えて記述することもできます。
../../_images/imdynamicuser_structure.png

(1) メインヘッダの記述方法

メインヘッダは、1セルに結合し、以下の方法で記述します。
  • Data IMDynamicUser settings
    • 動的承認者設定の場合には、このメインヘッダの記述方法は固定です。
    • Data/Variable と異なり、Variableをキーワードとして使うことはできません。

(2) サブヘッダに利用できるキーワード

このテーブルのサブヘッダは、「IMDynamicUser」の定義に合わせて設定します。
「IMDynamicUser」については、「 IM-BIS 仕様書 」の「 動的処理対象者設定に関する仕様 」を参照してください。

上段が設定項目の物理名、下段が設定項目の論理名です。

(3) 明細の記述方法

このテーブルの明細には、 【動的処理者設定】条件評価(DecisionTable) の結果に設定したい すべての処理対象者プラグインと設定値 を記述します。

(a) 対象者ID

【動的処理者設定】条件評価(DecisionTable) の結果として返却する「Setting ID」や ResponseObject で定義するSetting IDsの初期値などに設定するときの処理対象者を表す識別IDです。
動的処理対象者設定が実行されたときに、このIDに紐づく処理対象者プラグインの種類やプラグインに合わせた組織コードなどの情報をワークフローに受け渡します。

この対象者IDは、以下の図の通り DecisionTableData/VariableDecisionObject の3つのテーブルで関連付けが必要です。
漏れなく設定してください。
../../_images/imdynamicuser_id.png

(b) 処理設定No

横配置・縦配置に処理対象者を設定する場合に、展開したノードの何番目に設定するかを設定します。
動的承認ノードには、1を指定します。
横配置・縦配置ノードで複数のノードに展開する場合、1つのノードに対して番号に抜けがないようにしてください。

以下は、DecisionTable のSetting IDsに複数の処理対象者を設定した例です。
../../_images/imdynamicuser_process_set.png
  1. 縦配置ノード・横配置ノードでは、処理設定No(processSetNo)の設定値がワークフローの処理画面の処理対象者設定画面の「No.」に対応しています。
  2. 上の例では、処理設定Noの2に対して、2種類の処理対象者(ユーザの原田浩二、生田一哉)が設定されています。
    この場合、処理対象者設定の2番目のノードとして、2種類の処理対象者をそのまま設定します。

(c) 判定用コード

返却する処理対象者プラグインの種類を表します。
  • 1:ユーザ
  • 2:組織
  • 3:パブリックグループ
  • 4:役職
  • 5:役割
  • 6:組織+役職
  • 7:パブリックグループ+役割

(d) 会社・組織関連の項目

判定用コードの「2」(組織)、「4」(役職)、「6」(組織+役職)を選択したときの設定項目です。

(e) ユーザ関連の項目

判定用コードの「1」(ユーザ)を選択したときの設定項目です。

(f) 比較演算子

組織やパブリックグループとの比較方法を指定します。
以下の3種類の演算子のみが利用できます。
  • ge
    「~以上」を表します。
  • eq
    「~に等しい」を表します。
  • le
    「~以下」を表します。

(g) パブリックグループ関連の項目

判定用コードの「3」(パブリックグループ)、「5」(役割)、「7」(パブリックグループ+役割)を選択したときの設定項目です。

【動的処理者設定】返却する処理対象者の設定 ResponseObject(Datatype / Variable)

DatatypeData/Variable で、ワークフローに返却する処理対象者の設定を「ResponseObject」として定義します。
この定義については、 IM-BIS の動的処理者設定の仕様に基づく内容となるため、そのまま利用してください。

利用できる OpenRules のタイプ

タイプ 利用可否
Rule Engine
Rule Solver ×

テーブルの基本構造

メインヘッダ部は、構成する列分のセルを結合する必要があります。
  • Datatypeの定義

    ../../_images/res_datatype_structure.png
  • Variableの定義

    ../../_images/res_variable_structure.png

(1) メインヘッダの記述方法

メインヘッダは、1セルに結合し、以下の方法で記述します。
  • Datatype ResponseObject
  • Variable ResponseObject responseObj

(2) サブヘッダに利用できるキーワード

Datatypeには、サブヘッダはありません。
Variableで定義するサブヘッダは、処理対象者の設定値を格納する項目の物理名「ids」、論理名「Setting IDs」です。

(3) 明細の記述方法

Datatype

Datatypeは、テーブルの基本構造の通りのデータ型・項目で設定します。
データ型「IMDynamicUser」は、 Environment で参照している「IntramartTemplate.xls」で定義しているため、別途定義しないようにしてください。

Variable

Variableの明細の値は、 【動的処理者設定】処理対象者プラグイン設定一覧(Data IMDynamicUser) に記載しているIDを入力します。
値の個数(セルの数)については、 【動的処理者設定】オブジェクトのインスタンスの設定(DecisionObject) のResponseObjectを初期化するための式の2番目のパラメータと一致させてください。
../../_images/res_variable.png

【動的処理者設定】オブジェクトのインスタンスの設定(DecisionObject)

Glossary で定義したオブジェクト(Business Concept)と IM-BIS (データマッパー)との値のマッピングを行います。
動的処理者設定では、返却するオブジェクトは ResponseObject です。

利用できる OpenRules のタイプ

タイプ 利用可否
Rule Engine
Rule Solver ×

テーブルの基本構造

メインヘッダ部は、構成する列分のセルを結合する必要があります。
../../_images/wf_decisionobject_structure.png

(1) メインヘッダの記述方法

メインヘッダは、1セルに結合し、以下の方法で記述します。
  • DecisionObject decisionObjects
  • メインヘッダは、必ず上記のように記載してください。
    名前が異なる等定義に誤りがある場合には、エラーが発生します。

(2) サブヘッダに利用できるキーワード

DecisionObjectのサブヘッダには、「Business Concept」と「Business Object」を記述します。
Glossary と同様にヘッダの内容は、漢字を含めてわかりやすい名称に変更することができます。

(3) 明細の記述方法

明細の左の列は、 Glossary でグループ(Business Concept)として定義した名称を記述します。
明細の右の列は、値の受け渡し方法に応じて式を記述します。
処理対象者の設定内容を受け渡し式は、記述例の通りに設定してください。
  • IM-BIS (データマッパー)から入力値を受け取る場合

    画面上の値の受け渡しと同様に設定できます。
    := ({Business Conceptの型})getInputData(decision, {Business Conceptのインスタンス名})
    
    記述例
    :=  (RequestObject) getInputData(decision, requestObj)
    
  • 動的承認ノードなどの絞込設定や処理対象者の自動設定の場合

    := initializeDynamicUserList(返却するオブジェクトのインスタンス名, 処理対象者設定のIDを格納する変数と初期値, 処理対象者設定の設定内容を格納する配列名)
    
    記述例
    := initializeDynamicUserList(responseObj, "ids:1,2,3", settings)
    

【動的処理者設定】処理順の設定(Decision)

DataMapperとの値の入出力、実行するDecisionTableの順序などを設定します。
動的処理対象者設定の場合には、返却するオブジェクトへの式の記述方法が変わります。

利用できる OpenRules のタイプ

タイプ 利用可否
Rule Engine
Rule Solver ×

テーブルの基本構造

メインヘッダ部は、構成する列分のセルを結合する必要があります。
サブヘッダ部は、条件や評価(処理)単位でセルを結合します。
../../_images/wf_decision_structure.png

(1) メインヘッダの記述方法

メインヘッダは、1セルに結合し、以下のいずれかの方法で記述します。
  • Decision %テーブル名%
    • 「Decision」の後に、半角スペースを入れてテーブル名を記述します。

(2) サブヘッダに利用できるキーワード

サブヘッダは、「ActionPrint」、「ActionExecute」が必須です。
その他のキーワードは任意です。
明細部はサブヘッダのキーワードに合わせて記述します。
  1. 条件に利用できるキーワード
  1. 結果に利用できるキーワード
結果では、最後に処理対象者を設定するメソッド(resultantDynamicUsers())を実行してください。
キーワード 利用可否
Conclusion
ConclusionVarOperValue
ActionAny
ActionMap ×
Action
ActionPrint
Then
ActionExecute
Message
ActionRulesOnArray ×

(3) 明細の記述方法

明細の左の列は、 Decision を参考にして、コンソールなどに出力する内容を記述します。
明細の右の列のうち、 ResponseObject に結果を渡すための式については、動的処理者設定向けの記述方法に従ってください。
  • Sub-Decisionや DecisionTable の実行

    Decision を参照してください。
  • ResponseObject に評価結果として処理対象者の情報を受け渡す場合

    := initializeDynamicUserList(返却するオブジェクトの型名, resultantDynamicUsers(返却するオブジェクトのインスタンス名, 返却する処理対象者の対象IDを格納する項目の物理名, settings))
    
    記述例
    := decision.put("ResponseObject", resultantDynamicUsers(responseObj, "ids", settings))