« Redmineのビューをカスタマイズするプラグインのメモ | トップページ | UMLの概念モデルで法律を理解するアイデア »

2015/07/20

Redmineにワークフローエンジンとして必要な機能~ワークフローに組織マスタの情報を持たせる

Redmineにワークフローエンジンとして必要な機能が一つ漏れていたのでメモ。
ラフなメモ書き。

【参考】
Redmineは事務処理の申請承認ワークフローに使えるか?: プログラマの思索

RedmineをBPMツールとして使うアイデア: プログラマの思索

【1】Redmineを申請承認フローのような汎用的なワークフローシステムとして使う時、色んな留意点があるが、一番重要な指摘を忘れていた。
それは、ワークフローのステータス遷移のフック処理がRedmineに無いこと。

例えば、稟議書の申請書を書いたら普通は、申請ボタンを押せば次の承認者へ回される。
しかし、Redmineでは、チケットに申請書の内容を記載した後、承認者を指定して、ステータスを承認待ちへ変更して、更新ボタンを押す必要がある。
つまり、逐一、次のステータスへ遷移する情報を手作業で設定しなければならない手間がかかる。

すると、次の担当者やステータスを間違えると、本来の申請承認フローに乗らない危険がある。
こういう誤操作は起きやすい。

本来の申請承認フローのワークフローエンジンとしては、申請ボタンを押せば、自動で次の承認者が背後で決定され、ステータスも承認へ変更して欲しい。

【2】このようなワークフローエンジンの機能をRedmineで実現する場合、どんな設計方式が必要なのか?

【2-1】一つは、申請書を次のステータスへ遷移する時は、ステータスの遷移先を1個に絞っておけばいい。
つまり、申請→課長承認→部長承認→経理承認→完了のように、ステータス遷移を厳格に設定する。
一時保存の場合は、ステータスを変更しなくて良い。

【2-2】もう一つは、次の担当者を設定しなくても良いように、ステータスごとに担当者を設定する機能が必要になる。
一般に、ワークフローシステムでは、ステータスごとに組織のロールが設定されていて、申請者に属する組織のロールを経由して申請承認が回るような仕組みを作っている。

例えば、ある組織に、部長・課長・ヒラ社員のようなロールを作る。
そして、組織には複数の部署がある場合、部署Aでヒラ社員が申請書を起票したら、部署Aの課長に相当するA1さんに課長承認前ステータスが設定されるようにすればいい。

すなわち、組織マスタを別途作成し、部署や職制上のロールを細かく登録しておき、それをワークフローに紐付ける必要がある。

一般に、申請書の種類ごとに、申請承認フローに相当する組織マスタの情報を設定しておく。
例えば、休日出金申請ならば、申請→課長承認→総務承認のステータスとワークフローを作り、各ステータスに社員→課長→総務職員という組織のロールを割り当てておく。

あるいは、経費申請ならば、申請→課長承認→部長承認→経理承認→完了のステータスとワークフローを作り、各ステータスに社員→課長→部長→経理担当者という組織のロールを割り当てる。

そして、ステータスを指定したら、申請者の部署に属するロールを指定し、そのロールに該当するユーザを自動で設定するように、フック処理を実行すればいい。

つまり、ワークフローごとにロールなどの組織マスタの情報を保持し、ステータスを指定したらそのロールに紐付くユーザをセットするフック処理が必要になる。

普通のワークフローシステムでは、ワークフローごとにステータスと組織のロールを持たせるマスタを保持しているので、一括登録すればマスタを整備できる。
また、ステータス遷移後のユーザ指定のフック処理は、redmine_custom_workflowsプラグインを使えばいいだろう。

Redmineのワークフロー管理機能に分岐やロジックを追加するプラグインredmine_custom_workflows: プログラマの思索

【2-3】但し、この手法の注意点は、組織マスタの情報がきちんと整備されているか否か、にかかっていること。

会社の業務の運用フローをヒヤリングしてみると、実は、ワークフローが組織のロールではなく、特定の個人に依存したワークフローがあったりする。
実際、僻地の営業所、工場内の業務、子会社との事務のやり取りなど、イレギュラーな運用は意外に多い。

すると、そのワークフローに紐づく組織マスタにはロールではなくユーザ情報を持たせるようになってしまい、人事異動があるたびに組織マスタを保守する手間がかかるようになる。

だから、組織マスタには特定のユーザIDを登録するのではなく、非公式なロールをいくらでも作れるような仕組みが必要。
すなわち、組織マスタには公式な職制だけではなく、特定の業務の運用に即したロールも設定する必要があるから、組織マスタでは、一人のユーザは複数のロールを持っているような仕組みが必要になる。

しかし、組織マスタのようなマスタの整備は、一から作るのはとても大変。
今後の運用を見据えた組織マスタの整備はきちんと考えた方がいい。
そんなことを考えると、ワークフローシステムはERPと同じく、マスタの整備が非常に重要ということがよく分かる。

|

« Redmineのビューをカスタマイズするプラグインのメモ | トップページ | UMLの概念モデルで法律を理解するアイデア »

Redmine」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« Redmineのビューをカスタマイズするプラグインのメモ | トップページ | UMLの概念モデルで法律を理解するアイデア »