freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

jbpm開(kāi)發(fā)手冊(cè)(編輯修改稿)

2024-11-29 08:11 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 ransition to=distribute document / /start state name=distribute document / start name=plan transition to=make planning / /start state name=make planning / /group /process 下面的場(chǎng)景將在有足夠的時(shí)間的時(shí)候執(zhí)行: MapString, Object variables = new HashMapString, Object()。 (time, plenty)。 ProcessInstance pi = executionService .startProcessInstanceByKey(GroupMultipleEntries, variables)。 assertNotNull((distribute document))。 下面的場(chǎng)景將在沒(méi)有足夠的時(shí)間的時(shí)候執(zhí)行: MapString, Object variables = new HashMapString, Object()。 (time, running out)。 ProcessInstance pi = executionService .startProcessInstanceByKey(GroupMultipleEntries, variables)。 assertNotNull((make planning))。 . group同步 這個(gè)場(chǎng)景演示了,一個(gè) group 如何用來(lái)創(chuàng)建同步流程。 當(dāng)一個(gè)流程到達(dá)一個(gè)group,每個(gè)沒(méi)有進(jìn)入轉(zhuǎn)移的活動(dòng)都會(huì)被啟動(dòng)。 所以第一個(gè)活動(dòng)不一定是開(kāi)始活動(dòng)。 group 會(huì)通過(guò)默認(rèn)轉(zhuǎn)移退出, 當(dāng)所有包含的工作都已經(jīng)完成的時(shí)候。 圖 . group 同步實(shí)例流程 process name=GroupConcurrency xmlns= start transition to=evaluate project / /start group name=evaluate project start transition to=distribute document / /start state name=distribute document transition to=collect feedback / /state state name=collect feedback transition to=document finished / /state end name=document finished / start transition to=make planning / /start state name=make planning transition to=estimate budget / /state state name=estimate budget transition to=planning finished / /state end name=planning finished / transition to=public project announcement / /group state name=public project announcement / /process 下面的場(chǎng)景會(huì)演示的是, 所有的等待 state 活動(dòng)通過(guò)一種隨機(jī)次序被 signal, 直到所有所有的工作都完成: ProcessInstance pi = executionService .startProcessInstanceByKey(GroupConcurrency)。 String documentExecutionId = pi .findActiveExecutionIn(distribute document).getId()。 String planningExecutionId = pi .findActiveExecutionIn(make planning).getId()。 pi = (documentExecutionId)。 assertNotNull((collect feedback))。 assertNotNull((make planning))。 pi = (planningExecutionId)。 assertNotNull((collect feedback))。 assertNotNull((estimate budget))。 pi = (planningExecutionId)。 assertNotNull((collect feedback))。 pi = (documentExecutionId)。 assertNotNull((public project announcement))。 . group秘密 group 也可以讓你在 group 邊界創(chuàng)建轉(zhuǎn)移。 所以有可能讓一個(gè)轉(zhuǎn)移從一個(gè) group外部的活動(dòng) 直接連接到 group 內(nèi)部, 不用使用 group 邊界上的開(kāi)始活動(dòng)。 也可以讓 group 內(nèi)部的活動(dòng)直接連接到 group 外部的活動(dòng)。 但是 shhhhhhhhh。 不要告訴任何人,因?yàn)檫@是不符合 BPMN 的。 . 規(guī)則發(fā)布器 規(guī)則發(fā)布器是一個(gè) jBPM 和 Drools 之間方便的集成方式。它創(chuàng)建了一個(gè)KownledgeBase 基于所有的 .drl 文件, 包含在業(yè)務(wù)歸檔部署文件里。KnowledgeBase 會(huì)被保存在資源緩存里。 所以一個(gè) KnowledgeBase 是被維護(hù)正在內(nèi)存的 processenginecontext 中。 像是 rules decision 活動(dòng)需要 依賴(lài)這個(gè) KnowledgeBase。 . java 活動(dòng) java 活動(dòng)的目標(biāo)一般是用來(lái)調(diào)用一個(gè) java 方法, 就像在用戶(hù)手冊(cè)里說(shuō)的那樣。開(kāi)發(fā)指南里的這一章 特別介紹如何使 用 java 活動(dòng) 調(diào)用 ejb 會(huì)話 bean。 特別對(duì)于這個(gè)目的,可能要使用到 ejbjndiname 屬性。 它的名字對(duì)應(yīng)的屬性指定了 ejb 的 jndi 名稱(chēng), 這是需要調(diào)用方法的 ejb。參考下面的 ejb: package 。 import 。 @Stateless public class CalculatorBean implements CalculatorRemote, CalculatorLocal { public Integer add(Integer x, Integer y) { return x + y。 } public Integer subtract(Integer x, Integer y) { return x y。 } } 和下面的流程定義: 圖 . The ejb method invocation example process process name=EJB start transition to=calculate / /start java name=calculate ejbjndiname=CalculatorBean/local method=add var=answer argint value=25//arg argint value=38//arg transition to=wait / /java state name=wait / /process 如你所期待的,執(zhí)行這個(gè)節(jié)點(diǎn)會(huì)調(diào)用 ejb 的 add 方法, ejb 對(duì)應(yīng)在CalculatorBean/local 這個(gè) jndi 名稱(chēng)下。結(jié)果會(huì)被保存在 變量 answer 中。 實(shí)例在下面的測(cè)試代碼中。 public void testEjbInvocation() throws Exception { String executionId = executionService .startProcessInstanceByKey(EJB) .getProcessInstance() .getId()。 assertEquals(63, (executionId, answer))。 } . rulesdecision 活動(dòng) rulesdecision 是一個(gè)自動(dòng)活動(dòng),它會(huì)選擇一個(gè)外向轉(zhuǎn)移, 基于規(guī)則的執(zhí)行。 rulesdecision 的規(guī)則會(huì)被作為業(yè)務(wù)歸檔的一部分進(jìn)行發(fā)布。 那些規(guī)則可以在規(guī)則定義中使用所有流程變量作為全局變量。 ruledecision 活動(dòng)會(huì)使用無(wú)狀態(tài)的知識(shí)會(huì)話 在 knowledgebase 之上。 execution 到達(dá) rulesdecision 就會(huì)運(yùn)行在無(wú)狀態(tài)的 drools 知識(shí)會(huì)話之上。 讓我們參考下一個(gè)例子,了解實(shí)際中它是如何工作的。 我們會(huì)啟動(dòng)這個(gè)RulesDecision 流程。 圖 . 規(guī)則決策示例流程 process name=RulesDecision start transition to=isImportant / /start rulesdecision name=isImportant transition name=dunno to=analyseManually / transition name=important to=processWithPriority / transition name=irrelevant to=processWhenResourcesAvailable / /rulesdecision state name=analyseManually / state name=processWithPriority / state name=processWhenResourcesAvailable / /process 下面的 會(huì)被包含在 業(yè)務(wù)歸檔發(fā)布包中。 global amount。 global product。 global oute。 rule LessThen3IsIrrelevant when eval(amount 3) then (irrelevant)。 end rule MoreThen24IsImportant when eval(amount 24) then (important)。 end rule TwelveTempranillosIsImportant when eval(product == Tempranillo) eval(amount 12) then (important)。 end 首先你看到 amount 和 product 都已經(jīng)定義為全局變量。 那些會(huì)被rulesdecision 處理, 使用期待的名稱(chēng)獲取流程變量。 oute 是一個(gè)特殊的全局變量, 它用來(lái)確定最終會(huì)使用哪個(gè)轉(zhuǎn)移。 而且,如果規(guī)則沒(méi)有指定 oute,就會(huì)使用默認(rèn)的轉(zhuǎn)移。 所以,讓我們啟動(dòng)一個(gè)新流程實(shí)例,然后設(shè)置兩個(gè)變量 product 和 amount,使用指定的值 shoe 和 32: MapString, Object variables = new HashMapString, Object()。 (amount, 32)。 (product, shoe)。 ProcessInstance processInstance = (RulesDecision, variables)。 在啟動(dòng)流程實(shí)例方法返回之后, 流程實(shí)例會(huì)到達(dá) processWithPriority 簡(jiǎn)單來(lái)說(shuō),一個(gè)新的 RulesDecision 流程實(shí)例
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1