日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

制作bpmn html,BPMN 2.0规范详解

發布時間:2024/4/13 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 制作bpmn html,BPMN 2.0规范详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

3.10.?完全的實例(包括控制臺任務表單)

前提條件:為了運行實例,我們假設 已經在JBoss server中安裝了jBPM控制臺。如果沒有, 請先執行'demo.setup.jboss'安裝腳本。

我們實現的業務流程實現起來像下面這樣:

你可能已經看過這個例子了,因為我們也在發布包中的 實例中使用jPDL實現過它了。

業務流程很簡單:一個員工可以啟動一個新流程, 申請一定時間的假期。在請求任務完成之后, 經理會在任務列表中看到審核任務。 經理可以決定批準或駁回這個申請。 根據outcome(那是外向順序流上的小菱形 - 這意味著在順序流上有條件表達式), 會發送一個駁回信息或者流程結束。注意,實際上我們這里使用了簡寫: 不是在'verify request'任務的外向順序流上設置表達式, 我們可以在用戶任務之后使用一個唯一網關來控制流程的流向。 也要注意,因為我們還沒有實現泳道(可能在下一個版本會實現), 所以很難看到誰在業務流程中。

流程的XML版本看起來像下面這樣:

sourceRef="start" targetRef="requestVacation" />

implementation="other">

user

org/jbpm/examples/bpmn/usertask/taskform/request_vacation.ftl

name="fromRequestVacationToVerifyRequest" sourceRef="requestVacation"

targetRef="verifyRequest" />

implementation="other">

manager

org/jbpm/examples/bpmn/usertask/taskform/verify_request.ftl

sourceRef="verifyRequest" targetRef="theEnd">

${verificationResult == 'OK'}

name="fromVerifyRequestToSendRejectionMessage" sourceRef="verifyRequest"

targetRef="sendRejectionMessage">

${verificationResult == 'Not OK'}

scriptLanguage="bsh">

name="fromSendRejectionMessageToEnd" sourceRef="sendRejectionMessage"

targetRef="theEnd" />

注意:當你在安裝demo時,自己都已經安裝了。 也要注意,我們這里使用了腳本任務,為了快速的編寫一些輸出, 而不是發送真實的信息(圖形顯示了一個service task)。 也要注意,我們這里在任務分配中做了一些簡略 (會在下一個版本進行修復)。

在這個實現使用的結構中覆蓋了之前章節中的所有內容。 也要注意我們這里使用了任務表單功能, 這是一個自定義jBPM擴展, 可以為用戶任務渲染元素。

implementation="other">

user

org/jbpm/examples/bpmn/usertask/taskform/verify_request.ftl

BPMN 2.0里任務表單的機制與jPDL里完全一樣。 表單自身是一個Freemarker模板文件, 需要放在發布中。比如,這個 'verify_request.ftl' 看起來像下面這樣:

Your employee, ${employee_name} would like to go on vacation

Number of days: ${number_of_days}


In case you reject, please provide a reason:

注意,流程變量可以使用 ${my_process_variable}來訪問。也要注意輸入控件的名稱。 (比如,輸入文本框,提交表單)可以用來?定義新流程變量。 比如,下面的輸入文本會被保存為 流程變量'reason'。

注意這里有兩個提交按鈕(這是當然的,如果你看到'OK'和'Not OK'兩個順序流 從'request vacation'任務里出去了。通過點擊其中一個按鈕, 流程變量'verificationResult'會被保存起來。 它可以用來執行外出的順序流:

sourceRef="verifyRequest" targetRef="theEnd">

${verificationResult == 'OK'}

流程現在可以發布了。你可以使用ant的發布任務來做這些事情(參考實例), 或者你可以指定你的jBPM配置到控制臺的數據庫。 為了用編程的方式發布你的流程,你需要把任務表單添加到你的發布中:NewDeployment deployment = repositoryService.createDeployment();

deployment.addResourceFromClasspath("org/jbpm/examples/bpmn/usertask/taskform/vacationrequest.bpmn.xml");

deployment.addResourceFromClasspath("org/jbpm/examples/bpmn/usertask/taskform/request_vacation.ftl");

deployment.addResourceFromClasspath("org/jbpm/examples/bpmn/usertask/taskform/verify_request.ftl");

deployment.deploy();

你現在可以嵌入(或在單獨的服務器中)這個業務流程,使用熟悉的jBPM API操作。 比如,流程實例現在可以使用 key來啟動(比如,BPMN 2.0的流程id):ProcessInstance pi = executionService.startProcessInstanceByKey("vacationRequestProcess");

任務列表可以這樣獲得:Task requestTasktask = taskService.createTaskQuery().candidate("peter").uniqueResult();

當像jBPM控制器數據庫發布時,你應該看到我們的新業務流程了。

在你啟動一個新流程后,一個新任務應該在員工的任務列表中了。 當點擊'view'以后,任務表單會被顯示出來, 在這里填寫未來會在流程中使用的變量。

在任務結束之后,經理會在他的任務列表中看到新的審核任務。 他現在可以通過或駁回請假申請,基于員工的輸入。

因為數據庫表結構沒有變化,我們只是把BPMN 2.0添加到了jBPM PVM上面, 所有已存的報表都可以用于我們的新BPMN 2.0流程中。

總結

以上是生活随笔為你收集整理的制作bpmn html,BPMN 2.0规范详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。