工作流系統之自定義腳本的實現方式


工作流軟件系統包含流程引擎,流程設計器,流程發布運行等監控環境。流程引擎實現業務流程建模以及流程的流轉,流程建模包含流程的基本節點模型,流程的流轉就涉及到流程的提交,以及相關節點的軌跡記錄。

流程引擎是抽象的業務流程的流轉,里面不涉及任何業務部分,業務的實現是在表單中完成的,表單再掛機到流程的節點上。這樣在流程流轉時,相應的節點完成后,節點上的業務也就完成了,並進行到下一步。

在節點上掛機的業務表單中需要能獲取到流程上下文的信息,供表單和流程關聯,表單中涉及的業務數據和流程相關聯。

在流程引擎中,也需要能獲取到業務表單中的信息,供流程引擎的流轉使用,有的如條件節點,需要靠業務數據來指引下一步的流轉。如報銷金額做是否需要多級審批的條件,這個報銷金額就是從用戶填寫的表單中來的。

在流程流轉的時候,節點的執行順序中,還需要提供一些接口,如節點辦理之前事件接口,節點辦理之后事件接口。當流程流轉到節點的時候,自動觸發這些前置后置事件。這些接口事件中也可以完成一些業務處理過程,以補充業務表單中的實現。

無論是引擎中引入的業務數據,還是業務表單中引入的流程上下文信息,都可以以外掛的事件接口的方式提供,表現為流程引擎的擴展性。實現這些事件接口,就可以寫自己的實現了,天馬行空,任意的讀寫表數據都可以。這種對開發人員是很樂意接受的,但是當作為一個工作流軟件產品提供給用戶使用的時候,終端用戶是很犯怵的,就需要提供一個可視化的編輯器讓終端用戶可以自己去設置現實。

為實現可視化的設置功能,界面上需要做好向導式的供用戶配置生成腳本,同時流程引擎中需要引入腳本編輯,動態編譯腳本的功能。在eworkflow工作流軟件產品中,就有做好這方面的功能,界面上可視化的向導式的提供設置界面,然后根據用戶設置生成腳本,流程運行的時候,交給后台動態編譯執行。for dotnet版的,腳本是c#的,for java版的,腳本就是java的語法了。


有了界面設置,再加上腳本編譯器,動態編譯腳本,就能使得工作流軟件產品操作更加方便快捷。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM