iDempiere(アイデンピエレ)のワークフロー管理
オープンソースのERP iDempiere(アイデンピエレ)には、とても強力なワークフローエンジンを搭載しています。トランザクションデータだけでなく、マスタデータを含むiDempiere内のほとんどのデータに対してワークフローを構築する事ができます。ここでは、iDempiereのワークフローの機能について調査及び研究し、その成果をまとめています。
iDempiereのワークフローは、画面の操作順序を示す「一般ワークフロー(General Workflow)」と伝票ステータス更新(Document Action)の際に呼び出される「ドキュメントプロセスワークフロー(Document Process Workflow)」、そしてデータの保存処理時にあらかじめ設定してある条件に合致した場合に呼び出される「ドキュメントバリューワークフロー(Document Value Workflow)」の3種類があります。
「一般ワークフロー」では、iDempiereの画面の操作順序をフローとしてビジュアルに表示する事ができます。複数の画面をまたがって行う業務処理において、「一般ワークフロー」を構築しておくことで、ユーザーが画面の操作順序を間違えないようにサポートする事ができます。
「ドキュメントプロセスワークフロー」は「伝票ステータス更新(Document Action)」処理の際に呼び出され、いわゆる承認ワークフローとして使用する事ができます。しかし、ドキュメントプロセスワークフローの活用方法は承認ワークフローだけではありません。ドキュメントプロセスワークフローは、伝票ステータス更新の際に、プロセス(バッチ処理)を実行したり、伝票のあるフィールド(項目)に値を自動で設定したり、メールを送信するなど、色々な処理を一連のワークフローとして行う事ができます。ドキュメントプロセスワークフローの仕様をすべて理解するのは大変ですが、理解できれば複雑なワークフローもノンプログラミングで構築できるようになります。
「ドキュメントバリューワークフロー」はデータがあらかじめ設定してある条件に合致した時に呼び出されるワークフローです。「ドキュメントプロセスワークフロー」が伝票ステータス更新の際に呼び出されるのに対して、ドキュメントバリューワークフローはデータの保存処理時に呼び出されます。呼出のタイミングの違い以外は、同じワークフローエンジンで処理されますので、ドキュメントプロセスワークフローとほぼ同じ事ができます。
「ドキュメントプロセスワークフロー」は、基本的に「伝票(Document)」で使用する事を想定したワークフローですが、「ドキュメントバリューワークフロー」は伝票(トランザクションデータ)はもちろんのこと、マスタデータなどでも使用する事ができるワークフローです。「ドキュメントバリューワークフロー」はその名前に”ドキュメント”と入っていますが、その利用範囲はトランザクションデータにとどまりません。マスタデータの承認ワークフローとして利用したり、データの状態を監視し、アラート(警告)メールを送信したりするなどアイディア次第でその利用範囲は広がります。
ワークフローのデータと業務データの一元管理
ワークフロー専用のシステムではできない、業務データとワークフローのデータを一元管理できる事がiDempiereのワークフローの大きな魅力であり、特長の1つです。
ワークフローの中に業務プロセスを組み込む事ができる
iDempiereのワークフローはいわゆる承認ワークフローにとどまらず、途中でプロセス(バッチ処理)を実行したり、あるカラム(項目)に値を代入するなどの業務プロセスを組み込む事ができます。
iDempiere内のほとんどのデータにワークフローを構築する事ができる
iDempiereのワークフローエンジンはモデルクラスがあればワークフローを構築する事ができるので、ほとんどのデータに対してワークフローを構築する事ができます。
アイディアと工夫次第で広がる利用範囲
ドキュメントバリューワークフローは、データの更新処理完了後(モデルクラスのafterSave()メソッドの終了後)に、更新されたデータがあらかじめ設定している条件に合致するかどうか確認し、条件に合致すればワークフローが呼び出されます。例えば異常なデータが登録された場合にメールで通知するなどアラート機能としても使用する事ができます。
アイディアと工夫次第でiDempiereのワークフローは幅広く活用する事ができます。
ワークフロー管理は主に以下のメニューから構成されています。
ワークフロー管理(Workflow)
未処理WFアクティビティ(Workflow Activities)
全てのWFアクティビティ(Workflow Activities(all))
ワークフロー設定
ワークフロー設定(Workflow) ※非公開コンテンツ
ワークフロー責任者(Workflow Responsible) ※非公開コンテンツ
システムクライアントでカスタマイズしたWF設定を現在のクライアントに反映(Workflow to Client)
※このメニューはiDempiereに設定されているベースメニューをわかりやすいように再構成しています。