オープンソースワークフローエンジン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にジャンプしてワークフローの一例を終了する.
ワークフロー定義ファイル



	
		
			
				
			
		
	
	
		
			
				
					
						
							
								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です.
  • leaveApple.rar(2.7 MB)
  • 説明:プログラムソースファイルと必要なlib
  • ダウンロード回数:13281
  • databaseAndConfig.rar(2.3 KB)
  • 説明:データベーステーブル作成及びデータ初期化ファイルデータソース構成ファイル
  • ダウンロード回数:5180