オープンソースワークフローエンジンOsWorkflowに基づく業務システムの実例——休暇承認システム
もっと読む
最近の仕事の中の一つのプロジェクトはワークフロー技術を採用するつもりです.ワークフロー、特にOsWorkflowに対して学習と研究を行いました.プロジェクトグループの他のメンバーにデモンストレーションとさらなる応用を行うために、この小さい業務システムを作りました.今整理して取り出して、OsWorkflowを知りたい友達に少し助けを与えたいです.私は接触の時間も長くないので、どこか問題がありましたら、皆さんにいろいろ教えてもらいたいです.ワークフローの技術を共に向上させます.
この小さい業務システムの主な目的
OsWorkflowに基づいて業務システムを構築する方法をデモします.つまり、元のプログラム内のハードコードの業務過程をどうやって抽出しますか?下のワークフローエンジンに置いて、上の業務モジュールは具体的な業務動作のみを実行します.
本システムのデモの3つの側面:業務処理とOsWorkflowの基本的な「統合」、ワークフローエンジンはワークフローの定義に従って業務処理ロジックを呼び出し、業務データに基づくワークフローのジャンプを行います.
業務用例の説明
コアワークフロー:
1、社員は休暇申請書を記入し、「休暇の原因」と「休暇の日数」を含み、記入してから提出する.
2、部門主管は社員の休暇申請を審査し、社員の休暇申請に同意する.
3、人的資源主管は社員の休暇申請を審査し、社員の休暇申請に同意する.
4、システムがメールを送信し、社員に休暇申請を許可されました.
5、用例終了
代替ワークフロー1:
第一歩において、社員の休暇日数が3日間以下であれば、部門の主管審査が必要でなく、直接第一歩から第三歩までジャンプして、また人的資源の審査が必要である.
代替ワークフロー2:
第二段階で、もし部門の主管が休暇申請に同意しないなら、システムは休暇を取る社員に休暇を申請して通らなかったメール通知を送ります.用例は終わります.
代替ワークフロー3:
第三段階において、もし人的資源主管が休暇申請に同意しないなら、システムは休暇を申請した社員に休暇を申請して通らなかったメール通知を送ります.用例は終わります.
システム運転/開発環境
データベース:ms sqlserver 2000
アプリケーションサーバ:Jboss-4.4.2
開発ツール:Jbuilder 2006
システム構築
1、データベースを作成して、私はOworkflowと名づけました.アプリは、任意の名前としてもいいです.データソースの設定で正しく設定すればいいです.
2、データテーブルを作成し、ユーザーとユーザグループデータを初期化し、添付ファイルのdb_を実行する.leaveAppprove_20070712.sqlでいいです.
3、jbossでデータソースを配置します.私の配置は添付のmssql-ds.xmlのようです.
4、osworkflow及びlogl 4 jのプロファイルleave_apple.xml、osuser.xml、osworkflow.xml、propertyset.xml、workflows.xml、logl 4 j.propertiesをプロジェクトディレクトリsrcの下にコピーします.
添付ファイルのleaveApple.rarを直接プロジェクトに解凍してもいいです.中にはすべてのソースプログラムとリソースパッケージが含まれています.
ワークフロー定義ファイルの説明
本業務のニーズに応じたワークフロー定義ファイルは以下の通りです.
定義には6ステップが含まれています.
step 1は社員の休暇申請のステップであり、本ステップのactionは実行時に業務方法種類のAppplyFunctionにフィードバックし、申請書のデータをデータベースに挿入し、同時に処理結果は休暇申請日数dayCountによって判断し、もし休暇申請日数が3日間以上あるなら、Step 2にジャンプして部門の主管に承認させます.3日間以上でないなら、直接ステップ3にジャンプして人力資源主管に承認させます.
step 2は部門主管の承認であり、もし承認承認があれば(opinion!=2)Step 3にジャンプして人的資源主管に承認されます.もし承認ができないなら(opinion==2)Step 5にジャンプして自動的に「申請が承認されていません」メールでステップを通知します.
step 3は人的資源主管の承認であり、承認承認があればStep 4に進んで自動的に「申請承認」メール通知ステップを送ります.承認ができない場合(opinion==2)はStep 5に進んで自動的に「申請未承認」メール通知ステップを送ります.
Step 4およびStep 5は、自動的にメール通知ステップを送信し、実行後に、空ステップStep 6にジャンプしてワークフローの一例を終了する.
ワークフロー定義ファイル
添付ファイルをダウンロードできます.工事を作成してから実行します.データベースの中に3人のユーザーがいます.employee 1は従業員を表しています.休暇申請を提出してもいいです.manager 1は部門の主管を表します.hr 1はマンパワーの主管を表して、パスワードはすべてtestです. leaveApple.rar(2.7 MB) 説明:プログラムソースファイルと必要なlib ダウンロード回数:13281 databaseAndConfig.rar(2.3 KB) 説明:データベーステーブル作成及びデータ初期化ファイルデータソース構成ファイル ダウンロード回数:5180
最近の仕事の中の一つのプロジェクトはワークフロー技術を採用するつもりです.ワークフロー、特にOsWorkflowに対して学習と研究を行いました.プロジェクトグループの他のメンバーにデモンストレーションとさらなる応用を行うために、この小さい業務システムを作りました.今整理して取り出して、OsWorkflowを知りたい友達に少し助けを与えたいです.私は接触の時間も長くないので、どこか問題がありましたら、皆さんにいろいろ教えてもらいたいです.ワークフローの技術を共に向上させます.
この小さい業務システムの主な目的
OsWorkflowに基づいて業務システムを構築する方法をデモします.つまり、元のプログラム内のハードコードの業務過程をどうやって抽出しますか?下のワークフローエンジンに置いて、上の業務モジュールは具体的な業務動作のみを実行します.
本システムのデモの3つの側面:業務処理とOsWorkflowの基本的な「統合」、ワークフローエンジンはワークフローの定義に従って業務処理ロジックを呼び出し、業務データに基づくワークフローのジャンプを行います.
業務用例の説明
コアワークフロー:
1、社員は休暇申請書を記入し、「休暇の原因」と「休暇の日数」を含み、記入してから提出する.
2、部門主管は社員の休暇申請を審査し、社員の休暇申請に同意する.
3、人的資源主管は社員の休暇申請を審査し、社員の休暇申請に同意する.
4、システムがメールを送信し、社員に休暇申請を許可されました.
5、用例終了
代替ワークフロー1:
第一歩において、社員の休暇日数が3日間以下であれば、部門の主管審査が必要でなく、直接第一歩から第三歩までジャンプして、また人的資源の審査が必要である.
代替ワークフロー2:
第二段階で、もし部門の主管が休暇申請に同意しないなら、システムは休暇を取る社員に休暇を申請して通らなかったメール通知を送ります.用例は終わります.
代替ワークフロー3:
第三段階において、もし人的資源主管が休暇申請に同意しないなら、システムは休暇を申請した社員に休暇を申請して通らなかったメール通知を送ります.用例は終わります.
システム運転/開発環境
データベース:ms sqlserver 2000
アプリケーションサーバ:Jboss-4.4.2
開発ツール:Jbuilder 2006
システム構築
1、データベースを作成して、私はOworkflowと名づけました.アプリは、任意の名前としてもいいです.データソースの設定で正しく設定すればいいです.
2、データテーブルを作成し、ユーザーとユーザグループデータを初期化し、添付ファイルのdb_を実行する.leaveAppprove_20070712.sqlでいいです.
3、jbossでデータソースを配置します.私の配置は添付のmssql-ds.xmlのようです.
4、osworkflow及びlogl 4 jのプロファイルleave_apple.xml、osuser.xml、osworkflow.xml、propertyset.xml、workflows.xml、logl 4 j.propertiesをプロジェクトディレクトリsrcの下にコピーします.
添付ファイルのleaveApple.rarを直接プロジェクトに解凍してもいいです.中にはすべてのソースプログラムとリソースパッケージが含まれています.
ワークフロー定義ファイルの説明
本業務のニーズに応じたワークフロー定義ファイルは以下の通りです.
定義には6ステップが含まれています.
step 1は社員の休暇申請のステップであり、本ステップのactionは実行時に業務方法種類のAppplyFunctionにフィードバックし、申請書のデータをデータベースに挿入し、同時に処理結果は休暇申請日数dayCountによって判断し、もし休暇申請日数が3日間以上あるなら、Step 2にジャンプして部門の主管に承認させます.3日間以上でないなら、直接ステップ3にジャンプして人力資源主管に承認させます.
step 2は部門主管の承認であり、もし承認承認があれば(opinion!=2)Step 3にジャンプして人的資源主管に承認されます.もし承認ができないなら(opinion==2)Step 5にジャンプして自動的に「申請が承認されていません」メールでステップを通知します.
step 3は人的資源主管の承認であり、承認承認があればStep 4に進んで自動的に「申請承認」メール通知ステップを送ります.承認ができない場合(opinion==2)はStep 5に進んで自動的に「申請未承認」メール通知ステップを送ります.
Step 4およびStep 5は、自動的にメール通知ステップを送信し、実行後に、空ステップStep 6にジャンプしてワークフローの一例を終了する.
ワークフロー定義ファイル
com.opensymphony.workflow.util.OSUserGroupCondition
employee
com.qiny.leave.ApplyFunction
propertySet.getInt("dayCount")>3
System.out.println(" 1 ...");
true
com.opensymphony.workflow.util.StatusCondition
Underway
com.opensymphony.workflow.util.OSUserGroupCondition
manager
com.qiny.leave.ApproveFunction
propertySet.getInt("opinion")==2
System.out.println(" 2 ...");
com.qiny.leave.ApproveFunction
propertySet.getInt("opinion")==2
System.out.println(" 4 Send mail $$$$$$$");
System.out.println(" 5 Send mail $$$$$$$");
家に帰って、明日またいくつかのプログラムに対して説明します.添付ファイルをダウンロードできます.工事を作成してから実行します.データベースの中に3人のユーザーがいます.employee 1は従業員を表しています.休暇申請を提出してもいいです.manager 1は部門の主管を表します.hr 1はマンパワーの主管を表して、パスワードはすべてtestです.