當前位置:編程學習大全網 - 源碼下載 - activiti在線設計-Activiti6.0中如何設計和關聯表單?

activiti在線設計-Activiti6.0中如何設計和關聯表單?

activiti6的流程編輯器怎麽整合進自己的項目中

建議妳可以看壹下咖啡兔的相關技術博文:

網頁鏈接

,

activiti6和activiti5整合方式壹致

1.為什麽要整合

Activiti5.10版本把原本獨立的ActivitiModeler模塊整合到了ActivitiExplorer中,兩者相結合使用起來很方便,通過Modeler設計的流程模型可以直接部署到引擎,也可以把已經部署的流程轉換為Model從而在Modeler中編輯。

在實際應用中也有這樣的需求,把Modeler整合到業務系統中可以供管理員使用,或者作為BPM平臺的壹部分存在,很遺憾官方沒有給出如何整合Modeler的文檔。

2.整合工作

2.1下載源碼

首先需要從Github下載源碼:

2.2復制文件

復制的所有文件均在activiti-webapp-explorer2目錄中。

src/main/resources中的、、到項目源碼的源碼根目錄,保證編譯之後在classes根目錄

src/main/webapp中的api、editor、explorer、libs到項目的webapp目錄(與WEB-INF目錄同級)

2.3添加依賴

123456789101112131415161718192021222324

<dependency>__<groupid></groupid>__<artifactid>activiti-explorer</artifactid>__<version>5.14</version>__<exclusions>____<exclusion>______<artifactid>vaadin</artifactid>______<groupid></groupid>____</exclusion>____<exclusion>______<artifactid>dcharts-widget</artifactid>______<groupid></groupid>____</exclusion>____<exclusion>______<artifactid>activiti-simple-workflow</artifactid>______<groupid></groupid>____</exclusion>__</exclusions></dependency><dependency>__<groupid></groupid>__<artifactid>activiti-modeler</artifactid>__<version>5.14</version></dependency>

2.4添加Java類

添加壹個類保存到項目中,註冊了壹些REST路由。

1234567891011121314151617181920212223242526272829

package;

import;import;import;import;import;import;

publicclassExplorerRestApplicationextendsActivitiRestApplication{

publicExplorerRestApplication(){__super();_}_/**_*CreatesarootRestletthatwillreceiveallincomingcalls._*/_@Override_publicsynchronizedRestletcreateInboundRoot(){__Routerrouter=newRouter(getContext());__();__(router);__(router);__JsonpFilterjsonpFilter=newJsonpFilter(getContext());__(router);__returnjsonpFilter;_}

}

2.5配置

在文件中添加如下配置:

12345678910111213141516

<!--Restletadapter,usedtoexposemodelerfunctionalitythroughREST--><servlet>__<servlet-name>RestletServlet</servlet-name>__<servlet-class></servlet-class>__<init-param>____<!--Applicationclassname-->____<param-name></param-name>____<param-value></param-value>__</init-param></servlet>

<!--Catchallservicerequests--><servlet-mapping>__<servlet-name>RestletServlet</servlet-name>__<url-pattern>/service/*</url-pattern></servlet-mapping>

2.6控制器

使用SpringMVC做了壹個簡單的封裝,也可以使用其他的MVC實現。

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163

package;

import;import;

import;import;

import;import;import;import;import;import;import;import;import;import;import;import;import;import;import;import;import;import;import;import;import;

/***流程模型控制器**@authorhenryyan*/@Controller@RequestMapping(value="/workflow/model")publicclassModelController{

protectedLoggerlogger=(getClass());

@Autowired_RepositoryServicerepositoryService;

/**_*模型列表_*/_@RequestMapping(value="list")_publicModelAndViewmodelList(){__ModelAndViewmav=newModelAndView("workflow/model-list");__List<model>list=().list();__("list",list);__returnmav;_}

/**_*創建模型_*/_@RequestMapping(value="create")_publicvoidcreate(@RequestParam("name")Stringname,@RequestParam("key")Stringkey,@RequestParam("description")Stringdescription,_____HttpServletRequestrequest,HttpServletResponseresponse){__try{___ObjectMapperobjectMapper=newObjectMapper();___ObjectNodeeditorNode=();___("id","canvas");___("resourceId","canvas");___ObjectNodestencilSetNode=();___("namespace","#");___("stencilset",stencilSetNode);___ModelmodelData=();

ObjectNodemodelObjectNode=();___(_NAME,name);___(_REVISION,1);___description=(description);___(_DESCRIPTION,description);___(());___(name);___((key));

(modelData);___((),().getBytes("utf-8"));

(()+"/service/editor?id="+());__}catch(Exceptione){___("創建模型失敗:",e);__}_}

/**_*根據Model部署流程_*/_@RequestMapping(value="deploy/{modelId}")_publicStringdeploy(@PathVariable("modelId")StringmodelId,RedirectAttributesredirectAttributes){__try{___ModelmodelData=(modelId);___ObjectNodemodelNode=(ObjectNode)newObjectMapper().readTree((()));___byte[]bpmnBytes=null;

BpmnModelmodel=newBpmnJsonConverter().convertToBpmnModel(modelNode);___bpmnBytes=newBpmnXMLConverter().convertToXML(model);

StringprocessName=()+".";___Deploymentdeployment=().name(()).addString(processName,newString(bpmnBytes)).deploy();___("message","部署成功,部署ID="+());__}catch(Exceptione){___("根據模型部署流程失敗:modelId={}",modelId,e);__}__return"redirect:/workflow/model/list";_}

/**_*導出model的xml文件_*/_@RequestMapping(value="export/{modelId}")_publicvoidexport(@PathVariable("modelId")StringmodelId,HttpServletResponseresponse){__try{___ModelmodelData=(modelId);___BpmnJsonConverterjsonConverter=newBpmnJsonConverter();___JsonNodeeditorNode=newObjectMapper().readTree((()));___BpmnModelbpmnModel=(editorNode);___BpmnXMLConverterxmlConverter=newBpmnXMLConverter();___byte[]bpmnBytes=(bpmnModel);

ByteArrayInputStreamin=newByteArrayInputStream(bpmnBytes);___(in,());___Stringfilename=().getId()+".";___("Content-Disposition","attachment;filename="+filename);___();__}catch(Exceptione){___("導出model的xml文件失敗:modelId={}",modelId,e);__}_}

}</pre>

###2.7註意事項

如果使用Spring代理引擎,並且在項目中同時有文件(不管在main/resources還是test/resources目錄),在裏面的引擎中添加下面的配置參數,否則會導致打開Modeler的編輯頁面時讀取數據返回**204**狀態碼。

<preclass="brush:xml"><propertyname="processEngineName"value="test"></property></pre>

引擎默認名稱為default,()查詢時會先檢索main/resources,然後再檢索test/resources的和文件,所以當main/resources監測不到指定文件時就會導致該引擎被當做web應用的引擎對象,這樣會導致有兩個引擎,所以把引擎的名稱改為非默認的“default”。

##3.中文亂碼問題解決辦法

在JVM參數中添加參數:

>-=UTF-8-=UTF-8

**參考**:[在ActivitiModeler中設計的流程包含奇數個中文時不能部署問題](

##4.效果截圖

在最新的kft-activiti-demo版本(1.7.0)中已經集成了ActivitiModeler,可以在線訪問,也可以下載源碼學習如何配置。

登錄[

![kft-activiti-demo中的效果截圖](/files/2013/03/)![kft-activiti-demo中的效果截圖](/files/2013/03/)</model>

Activiti6.0中如何設計和關聯表單?

新增了環節用戶任務,這時緊跟著新增壹個表單即可,以及腳本、樣式、WebAPI;刪除了環節用戶任務,這時可以不用管,為顧及舊版本的流程定義,其對應的表單還需要保留,並不能刪除;修改了環節用戶任務,比如在A環節新增了兩個字段,同時在B環節減少了兩個字段,這時就要為A、B兩個環節各自重新創建表單、重新創建腳本、樣式、以及重新創建WebAPI,因為表單變了,那麽業務也就變了,SQL(表)也都跟著變了。

《Activiti實戰》epub下載在線閱讀全文,求百度網盤雲資源

《Activiti實戰》(閆洪磊)電子書網盤下載免費在線閱讀

鏈接:

提取碼:xdni

書名:Activiti實戰

豆瓣評分:7.2

作者:閆洪磊

出版社:_倒ひ黨靄嬪

出版年:2015-1-1

頁數:508

內容簡介:

《Activiti實戰》立足於實踐,不僅讓讀者知其然,全面掌握Activiti架構、功能、用法、技巧和最佳實踐,廣度足夠;而且讓讀者知其所以然,深入理解Activiti的源代碼實現、設計模式和PVM,深度也足夠。

《Activiti實戰》壹***四個部分:準備篇(1~2章)介紹了Activiti的概念、特點、應用、體系結構,以及開發環境的搭建和配置;基礎篇(3~4章)首先講解了ActivitiModeler、ActivitiDesigner兩種流程設計工具的詳細使用,然後詳細講解了BPMN2.0規範;實戰篇(5~14章)系統講解了Activiti的用法、技巧和最佳實踐,包含流程定義、流程實例、任務、子流程、多實例、事件以及監聽器等;高級篇(15~21)通過集成WebService、規則引擎、JPA、ESB等各種服務和中間件來闡述了Activiti不僅僅是引擎,實際上是壹個BPM平臺,最後還通過源代碼對它的設計模式及PVM進行了分析。

作者簡介:

閆洪磊(咖啡兔)資深軟件開發工程師和架構師,為Activiti貢獻了大量代碼,為Activiti在中國的推廣與普及做了大量的工作,在社群中有很高的威望和知名度,被稱為中國Activiti領域的第壹人。多年來壹直從事OA、ERP等系統的開發與架構設計工作,持續關註並深入研究工作流引擎,目前就職於小馬購車,擔任架構師壹職,並負責公司內部工作流平臺的建設工作。

  • 上一篇:微信群管家怎麽用的?如何管理微信群?
  • 下一篇:有什麽好句子推薦嗎?
  • copyright 2024編程學習大全網