4.11. IM-Workflow/Forma/IM-BIS連携¶
IM-Workflow/Forma/IM-BIS連携の仕様について説明します。
4.11.1. IM-Workflow/Forma/IM-BIS連携について¶
IM-BPM for Accel Platformでは、ワークフロー連携として以下の連携機能が存在します。
IM-Workflow連携
コンテンツとしてIM-FormaDesignerを利用していないワークフローを指します。IM-FormaDesigner IM-Workflow連携機能との連携
コンテンツとしてIM-FormaDesignerと連携しているワークフローを指します。IM-BIS連携
それぞれの連携では、起票、および申請の連携が可能です。
4.11.2. 起票による連携¶
起票による連携では、起票タスク (DraftTask)による連携が行われます。
起票タスクの処理の流れは以下の通りです。
起票用パラメータを作成する
プロセスインスタンス側から受け渡されたフローID、ユーザデータID、案件名、案件番号、 起票者コード、優先度等を元に起票用パラメータを作成します。前処理プログラムの指定がある場合には、前処理を実行します。
前処理は、縦配置、横配置等複雑な起票パラメータが必要となる場合に利用します。それぞれ以下のインタフェースを実装する必要があります。
- IM-Workflow: jp.co.intra_mart.activiti.engine.delegate.ImWorkflowDraftPreprocess
- IM-FormaDesigner + IM-Workflow: jp.co.intra_mart.activiti.engine.delegate.ImFormaDraftPreprocess
- IM-BIS: jp.co.intra_mart.activiti.engine.delegate.ImBisDraftPreprocess
ワークフローの起票
タスク情報の登録
ワークフロー連携における状態管理として、タスク情報の登録を行います。タスク情報には、タスクローカルな変数として以下の内容が格納されます。
- systemMatterId: システム案件ID
- matterNumber: 案件番号
- userDataId: ユーザデータID
- matterResultName: 案件結果変数名
- manipulateMatter: タスクキャンセル時の案件操作方法
- flowName_{locale}: ロケール分のフロー名
注意
システム変数の格納方式の設定
システム変数の格納方式の設定(is-system-variable-save-as-object)がtrueの場合は、タスクローカルな変数 “im_bpm_system_variables” オブジェクトの要素として”systemMatterId” , “matterNumber” , “userDataId” , “matterResultName”, “manipulateMatter”, “flowName_{locale}”が格納されます。システム変数の格納方式の設定の詳細については、「 IM-BPM 設定ファイルリファレンス 」-「 システム変数の格納方式の設定 」を参照してください。IM-Workflow側の案件プロパティに連携情報を保存します。
ワークフロー案件終了時に、プロセスインスタンスを処理するため、案件プロパティに以下の内容を登録します。以下の案件プロパティは外部から操作を行わないでください。
- im_bpm_task_id: タスクID
4.11.3. 申請による連携¶
申請による連携では、申請タスク (ApplyTask)による連携が行われます。
申請タスクの処理の流れは以下の通りです。
申請用パラメータを作成する
プロセスインスタンス側から受け渡された以下のパラメータを元に、申請用パラメータを作成します。
- フローID
- ユーザデータID
- 案件番号
- 案件名
- 申請基準日
- 申請実行者コード
- 申請権限者コード
- 権限者会社コード
- 権限者組織セットコード
- 権限者組織コード
- 優先度
- 処理コメント
前処理プログラムの指定がある場合には、前処理を実行します。
前処理は、縦配置、横配置等複雑な起票パラメータが必要となる場合に利用します。それぞれ以下のインタフェースを実装する必要があります。
- IM-Workflow: jp.co.intra_mart.activiti.engine.delegate.ImWorkflowApplyPreprocess
- IM-FormaDesigner + IM-Workflow: jp.co.intra_mart.activiti.engine.delegate.ImFormaApplyPreprocess
- IM-BIS: jp.co.intra_mart.activiti.engine.delegate.ImBisApplyPreprocess
ワークフローの申請
タスク情報の登録
ワークフロー連携における状態管理として、タスク情報の登録を行います。タスク情報には、タスクローカルな変数として以下の内容が格納されます。
- systemMatterId: システム案件ID
- matterNumber: 案件番号
- userDataId: ユーザデータID
- matterResultName: 案件結果変数名
- manipulateMatter: タスクキャンセル時の案件操作方法
- flowName_{locale}: ロケール分のフロー名
注意
システム変数の格納方式の設定
システム変数の格納方式の設定(is-system-variable-save-as-object)がtrueの場合は、タスクローカルな変数 “im_bpm_system_variables” オブジェクトの要素として”systemMatterId” , “matterNumber” , “userDataId” , “matterResultName”, “manipulateMatter”, “flowName_{locale}”が格納されます。システム変数の格納方式の設定の詳細については、「 IM-BPM 設定ファイルリファレンス 」-「 システム変数の格納方式の設定 」を参照してください。IM-Workflow側の案件プロパティに連携情報を保存します。
ワークフロー案件終了時に、プロセスインスタンスを処理するため、案件プロパティに以下の内容を登録します。以下の案件プロパティは外部から操作を行わないでください。
- im_bpm_task_id: タスクID
4.11.4. ワークフロー終了時の連携¶
ワークフローが終了した場合には、IM-BPM側のプロセスが再開されます。
ワークフローが終了する際のパターンは以下の通りです。
- 承認終了: approveend
- 最終承認: mattercomplete
- 否認: deny
- 取りやめ: discontinue
- 案件操作: matterhandle
- 管理者による案件削除: activedelete
- 削除: delete
ワークフロー終了時には、ワークフローの情報がプロセスインスタンスの変数として格納されます。
結果は以下の項目として参照できます。
正常に完了した場合
承認、否認、案件操作の場合を指します。
- locale: ロケール
- processDate: 処理日時
- systemMatterId: システム案件ID
- userDataId: ユーザデータID
- contentsId: コンテンツID
- contentsVersionId: コンテンツバージョンID
- routeId: ルートID
- routeVersionId: ルートバージョンID
- flowId: フローID
- flowVersionId: フローバージョンID
- actFlag: 承認フラグ
- lastAuthUserCd: 最終承認ユーザコード
- lastExecUserCd: 最終実行者コード
- lastNodeType: 最終ノード種別
- lastProcessNodeId: 最終処理ノードID
- lastNodeName: 最終処理ノード名
- lastResultStatus: 案件結果
案件削除が行われた場合
- locale: ロケール
- systemMatterId: システム案件ID
- userDataId: ユーザデータID
- lastResultStatus: 案件結果 (案件削除のため”activedelete”)
BPM側から終了した場合
プロセスマイグレーション等が行われた場合です。
- systemMatterId: システム案件ID
- userDataId: ユーザデータID
- lastResultStatus: 案件結果 (結果が存在しないため null)
起票タスク(DraftTask)、申請タスク(ApplyTask)の属性 結果変数名が指定されている場合には案件プロパティの値を結果変数名を利用してプロセスインスタンスの変数として格納します。
結果変数名が未指定の場合には、プロセスインスタンス変数に案件プロパティの内容がマージされます。
IM-FormaDesignerまたはIM-BISを利用している場合には、Formaデータの内容も変数にマージされます。
案件プロパティとFormaデータ共に同一のキー名が存在した場合にはFormaデータが優先されます。
案件プロパティにおける数値型はLong型、または小数を持つ数値の場合Double型としてプロセスインスタンス変数に格納されます。
4.11.5. トランザクション¶
ワークフロー連携機能は全て IM-BPM for Accel Platformのトランザクション管理内で実行されます。
IM-BPM for Accel Platformでは、IM-Workflowに intra-mart Accel Platform 2016 Summer(Nirvana) より導入されたフロー情報の保存先としてストレージを使用しないモードにおける実行のみサポートします。