jbpm使用要點(diǎn)

作者:gagaghost Email:gagaghost@gmail.com

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、蓮花ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的蓮花網(wǎng)站制作公司

1.流程流轉(zhuǎn)方式:

在一個(gè)流程實(shí)例化后,流程的節(jié)點(diǎn)就會(huì)自動(dòng)進(jìn)入啟動(dòng)節(jié)點(diǎn),如果要離開(kāi)啟動(dòng)節(jié)點(diǎn),必須調(diào)用signal()的方法.調(diào)用該方法后,流程會(huì)進(jìn)入后續(xù)節(jié)點(diǎn),也即進(jìn)入stateOne節(jié)點(diǎn),如果再signal()一次,執(zhí)行的指針將會(huì)指向task1,如過(guò)再signal()一次,執(zhí)行指針就會(huì)離開(kāi)task1節(jié)點(diǎn),移動(dòng)到下一個(gè)節(jié)點(diǎn),而下一個(gè)節(jié)點(diǎn)正好是end節(jié)點(diǎn),流程就會(huì)終止。當(dāng)然在task的AssignmentHandle中用TaskInstance.end()方法也可以的。

特別需要說(shuō)明的是:如果Task Node上沒(méi)有任務(wù),則執(zhí)行指針就會(huì)自動(dòng)經(jīng)過(guò)該節(jié)點(diǎn)執(zhí)行到下一個(gè)節(jié)點(diǎn).如果task1上沒(méi)有任務(wù),則在stateOne上調(diào)用了signal()后,流程就會(huì)結(jié)束.

2.如何取出一個(gè)用戶(hù)的任務(wù)列表?

要取出用戶(hù)的任務(wù)列表,必須保證流程已經(jīng)持久在數(shù)據(jù)庫(kù)中了,就可以用如下的語(yǔ)句進(jìn)行提取了:

JbpmConfiguration config = JbpmConfiguration.getInstance();

JbpmContext jbpmContext = config.createJbpmContext();

TaskMgmtSession session=new TaskMgmtSession(jbpmContext.getSession());

List tasks=session.findTaskInstances("gaga");

3.如何把一個(gè)任務(wù)安排給用戶(hù)?

在Task node上添加Task,并添加AssignmentHandler,在

publicclass TaskAsignMentimplements AssignmentHandler {

publicvoid assign(Assignable assignable, ExecutionContext executionContext)

throws Exception {

assignable.setActorId("gaga");// assignable就是工作項(xiàng)

}

}

4.泳道(Swimlane)如何使用?

泳道就是用來(lái)描述角色的.如果你的某些工作項(xiàng)目是角色來(lái)操作的,就可以使用泳道.泳道有點(diǎn)批處理的意思,如果有多個(gè)節(jié)點(diǎn)是某個(gè)角色的用戶(hù)來(lái)完成的,就需要使用這個(gè)東西了,否則在每一個(gè)任務(wù)上設(shè)置AssignmentHandler會(huì)累死人的^_^!

5.如何將一個(gè)任務(wù)安排給用戶(hù)?

在任務(wù)上設(shè)置一個(gè)AssignmentHandler,在其execute方法中進(jìn)行設(shè)置,和在任務(wù)節(jié)點(diǎn)上設(shè)置用戶(hù)的方法一樣.只不過(guò)這里是泳道而已.

6.如何將流程和要流轉(zhuǎn)的業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)結(jié)構(gòu)關(guān)聯(lián)起來(lái)?

在流程啟動(dòng)的時(shí)候,在流程中放一個(gè)變量,該變量中存放外部數(shù)據(jù)結(jié)構(gòu)的id.當(dāng)用戶(hù)得到工作列表的時(shí)候,就會(huì)取出流程實(shí)例中的id,有了id就可以在業(yè)務(wù)數(shù)據(jù)庫(kù)中取出業(yè)務(wù)數(shù)據(jù)了.

7.如何區(qū)分在一個(gè)任務(wù)列表中不同節(jié)點(diǎn)上的處理界面?

建立一個(gè)節(jié)點(diǎn)和界面對(duì)應(yīng)的表即可,用戶(hù)選定了任務(wù)后,系統(tǒng)根據(jù)用戶(hù)選定任務(wù)的節(jié)點(diǎn)的名稱(chēng)或其他唯一標(biāo)識(shí)符,找出與之對(duì)應(yīng)的界面導(dǎo)航連接后,redirect到該頁(yè)面即可.

8.如何圖形化顯示當(dāng)前流程的狀態(tài)?

寫(xiě)一個(gè)servlet,將圖形顯示出來(lái)就可以了,如:

public class ProcessImageServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

long processDefinitionId = Long.parseLong( request.getParameter( "definitionId" ) );

JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext();

ProcessDefinition processDefinition = jbpmContext.getGraphSession().loadProcessDefinition(processDefinitionId);

byte[] bytes = processDefinition.getFileDefinition().getBytes("processimage.jpg");

OutputStream out = response.getOutputStream();

out.write(bytes);

out.flush();

// leave this in.it is in case we want to set the mime type later.

// get the mime type

// String contentType = URLConnection.getFileNameMap().getContentTypeFor( fileName );

// set the content type (=mime type)

// response.setContentType( contentType );

}

}

在創(chuàng)建數(shù)據(jù)庫(kù)表時(shí)出現(xiàn)的錯(cuò)誤

JbpmConfiguration config = JbpmConfiguration

.parseResource("jbpm.cfg.xml");

config.createSchema();

config.close();

提示語(yǔ)法錯(cuò)誤,更新了hibernate最新版本的就可以。

hibernate-3.1.3,jbpm

9.如何向指定的分支流轉(zhuǎn)?

用TaskInstance的end方法,如下所示:

JbpmConfiguration config = JbpmConfiguration.getInstance();

JbpmContext jbpmContext = config.createJbpmContext();

TaskInstance taskInstance=jbpmContext.getTaskMgmtSession().loadTaskInstance(taskId);

String offshoot="" + param.get(Constant.OFFSHOOT);

//taskInstance.end(offshoot);

taskInstance.end();

jbpmContext.save(taskInstance);

jbpmContext.close();

[@more@]

當(dāng)前文章:jbpm使用要點(diǎn)
鏈接地址:http://muchs.cn/article48/jojeep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、App開(kāi)發(fā)、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)公司、ChatGPT、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司