1. 程式人生 > >Activiti學習文件(三)之畫流程圖並部署流程

Activiti學習文件(三)之畫流程圖並部署流程

上一節我們把 Activiti 的基礎環境給搭建好了,接下來的話就要使用到 Activiti 進行開發功能。當然了,在開發 Activiti 的時候,需要 :

       a)先畫好流程圖;

       b)部署流程;

  這一節的話,我們就來講解這兩個步驟:

      1,畫流程圖:

              開啟Eclipse,File--->New--->Other---->Activiti----->Activiti Diagram

     

                之後的話,點選 Next  ----->直到    “完成”   就可以了!

                然後在 WebRoot / WebContent 上右鍵新建一個資料夾,例:bpmn資料夾;

                第一次畫流程圖的時候需要注意到一些事情,一些引數的設定:

                        a)  Properties----->General------>Name------->XXXX( 例:提交申請 )

                         

                       b)  各個流程的審批人員設定: 在提交申請的這個階段的時候,可以用一個EL表示式來定義操作人員,例如:${inputUser}


              當然,在接下來的經紀人審批和老總審批的審批處理人員選擇,可以直接使用之前寫好的類:(  Listeners----->New------>Select class  )[http://download.csdn.net/detail/samile6899/9763943]


                     c )  各個流程之間需要資料傳遞,當然這個在之前的 Action 方法中也有寫到,這邊也直接使用就可以了……(  每個階段的話,都需要寫一下  )


                    d ) 流程定義的Key,注意建議這裡需要和domain包中的實體名一致,因為後面提交流程的時候,需要用到這個流程定義的Key,如果不一致會導致流程提交失敗;(  點選空白處就可以編輯了 )



                   當然了,最後一點。在專案中,工作流可能是多條件的,很少是那種單一的順序,直接執行完。在那種多條件的情況下,就要設定變量了;



               當流程圖畫好之後的話,就會看到新建的bpmn資料夾多了兩個檔案:     xxx.bpmn  和   xxx.png

                            

            然後,把這兩個檔案COPY出去,通過壓縮軟體壓縮成 ZIP / RAR 檔案。至此,第一階段就完了……

   2,部署ZIP流程圖:

           1, 繪製相應的JSP頁面和相應的Action類;( 具體的JSP頁面和Action類就不在此細說了,直接上傳資源,大家下載就可以了…… )

                                      

                                        

        2,釋出流程的相應方法:

            WorkflowAction.java :                      

	/**
	 * 釋出流程
	 * @return
	 */
	public String newdeploy(){
		//獲取頁面傳遞的值
		//1:獲取頁面上傳遞的zip格式的檔案,格式是File型別
		File file = workflowBean.getFile();
		//檔名稱
		String filename = workflowBean.getFilename();
		//完成部署
		workflowService.saveNewDeploye(file,filename);
		return "list";
	}

                 WorkflowServiceImpl.java :     
	/**部署流程定義*/
	@Override
	public void saveNewDeploye(File file, String filename) {
		try {
			//2:將File型別的檔案轉化成ZipInputStream流
			ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(file));
			repositoryService.createDeployment()//建立部署物件
							.name(filename)//新增部署名稱
							.addZipInputStream(zipInputStream)//
							.deploy();//完成部署
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

**************************************************************************************************