Nodetype task-node 節(jié)點(diǎn)類型 任務(wù)節(jié)點(diǎn)
A task node represents one or more tasks that are to be performed by humans. So when execution arrives in a task node, task instances will be created in the task lists of the workflow participants. After that, the node will behave as a wait state. So when the users perform their task, the task completion will trigger the resuming of the execution. In other words, that leads to a new signal being called on the token.
一個任務(wù)節(jié)點(diǎn)表現(xiàn)為被人所運(yùn)行的一個或多個任務(wù)。所以當(dāng)執(zhí)行到達(dá)一個任務(wù)節(jié)點(diǎn),任務(wù)實(shí)例將被創(chuàng)建在工作流創(chuàng)建者業(yè)務(wù)列表中。畢竟,這個節(jié)點(diǎn)將作為一個等待狀態(tài)。所以當(dāng)用戶運(yùn)行他們的任務(wù),這個任務(wù)完成將觸發(fā)執(zhí)行的恢復(fù)。換言之,那導(dǎo)致一個新的標(biāo)記在那個toke上被呼叫。
7.3.3. Nodetype state 節(jié)點(diǎn)類型 狀態(tài)
A state is a bare-bones wait state. The difference with a task node is that no task instances will be created in any task list. This can be usefull if the process should wait for an external system. E.g. upon entry of the node (via an action on the node-enter event), a message could be sent to the external system. After that, the process will go into a wait state. When the external system send a response message, this can lead to a token.signal(), which triggers resuming of the process execution.
一個狀態(tài)是裸骨等待狀態(tài)。這個不同一個任務(wù)節(jié)點(diǎn)的是沒有任務(wù)實(shí)例將被創(chuàng)建在任務(wù)任務(wù)列表中。這可以是有用的,如果流程應(yīng)當(dāng)為外部系統(tǒng)等待。例如,在節(jié)點(diǎn)實(shí)體之上(依靠在節(jié)點(diǎn)進(jìn)入事件的一個動作),一個消息將被發(fā)送到外部系統(tǒng)。畢竟,這個流程將進(jìn)入等待狀態(tài)。當(dāng)外部系統(tǒng)發(fā)送一個返回信息,這可以導(dǎo)致token.signal(),這將觸發(fā)一個流程執(zhí)行的恢復(fù)。
7.3.4. Nodetype decision 節(jié)點(diǎn)類型 決定
Actually there are 2 ways to model a decision. The distinction between the two is based on *who* is making the decision. Should the decision made by the process (read: specified in the process definition). Or should an external entity provide the result of the decision.
實(shí)際上這里有兩種方法來創(chuàng)建一個決定。兩者的區(qū)別是基誰在做這個決定。 應(yīng)該被流程來決定。(限定在流程定義中)或者應(yīng)該一個外部實(shí)體支持決定的結(jié)果。
When the decision is to be taken by the process, a decision node should be used. There are basically 2 ways to specify the decision criteria. Simplest is by adding condition elements on the transitions. Conditions are beanshell script expressions that return a boolean. At runtime the decision node will loop over its leaving transitions (in the order as specified in the xml), and evaluate each condition. The first transition for which the conditions resolves to 'true' will be taken. Alternatively, an implementation of the DecisionHandler can be specified. Then the decision is calculated in a java class and the selected leaving transition is returned by the decide-method of the DecisionHandler implementation.
當(dāng)這個決定被流程執(zhí)行,一個決定節(jié)點(diǎn)應(yīng)該被使用。這里有兩個基本方法來限定決定標(biāo)準(zhǔn)。最簡單是在躍遷上增加條件因素。條件是Beanshell腳本表達(dá)式返回一個boolean值。在運(yùn)行時這個決定節(jié)點(diǎn)將循環(huán)離開躍遷(順序和xml定義的一樣)。一個DecisionHandler的實(shí)現(xiàn)被定義是可選擇的。那么,決定被計算在java類中并且選擇離開躍遷被DecisionHandler實(shí)現(xiàn)的決定方法返回。
When the decision is taken by an external party (meaning: not part of the process definition), you should use multiple transitions leaving a state or wait state node. Then the leaving transition can be provided in the external trigger that resumes execution after the wait state is finished. E.g. Token.signal(String transitionName) and TaskInstance.end(String transitionName).
當(dāng)這個決定被外部執(zhí)行(意味著:不是流程定義部分),你應(yīng)該使用多躍遷離開一個狀態(tài)或等待節(jié)點(diǎn)。那么這個離開躍遷在外部的除法器可以被支持恢復(fù)執(zhí)行,在等待狀態(tài)完成后。例如,Token.signal(String transitionName) 和TaskInstance.end(String transitionName).
7.3.5. Nodetype fork 節(jié)點(diǎn)類型 叉
A fork splits one path of execution into multiple concurrent paths of execution. The default fork behaviour is to create a child token for each transition that leaves the fork, creating a parent-child relation between the token that arrives in the fork.
一個叉分離一個路徑執(zhí)行到多個并行的執(zhí)行路徑。這個缺省的叉行為是為每個離開叉躍遷創(chuàng)建一個子token,創(chuàng)建一個到達(dá)叉中父-子關(guān)系。
7.3.6. Nodetype join 節(jié)點(diǎn)類型 合并
The default join assumes that all tokens that arrive in the join are children of the same parent. This situation is created when using the fork as mentioned above and when all tokens created by a fork arrive in the same join. A join will end every token that enters the join. Then the join will examine the parent-child relation of the token that enters the join. When all sibling tokens have arrived in the join, the parent token will be propagated over the (unique!) leaving transition. When there are still sibling tokens active, the join will behave as a wait state.
缺省的合并假設(shè)所有的token到達(dá)合并點(diǎn),這些都都是相同父的子。這個情形被創(chuàng)建如我們以上提到的使用叉并且當(dāng)所有被fork創(chuàng)建的所有token到達(dá)相同的join. 一個join將結(jié)束每個進(jìn)入join的token. 那么這個join將檢查進(jìn)入join的token父-子關(guān)系。當(dāng)所有的兄弟姐們tokens激活,這個離開的躍遷join將傳播。當(dāng)這里還有兄弟tokens激活,這個join將作為一個等待狀態(tài)。
7.3.7. Nodetype node 節(jié)點(diǎn)類型 節(jié)點(diǎn)
The type node serves the situation where you want to write your own code in a node. The nodetype node expects one subelement action. The action is executed when the execution arrives in the node. The code you write in the actionhandler can do anything you want but it is also responsible for propagating the execution.
節(jié)點(diǎn)類型服務(wù)在你想寫你自己的代碼在節(jié)點(diǎn)中。這個節(jié)點(diǎn)類型節(jié)點(diǎn)期待一個子元素行為。這個行為被執(zhí)行當(dāng)所有執(zhí)行到達(dá)這個節(jié)點(diǎn)。在actionHandler中你寫的代碼可以做你想做的任何事情,當(dāng)時它是也是一個責(zé)任為執(zhí)行傳播。
This node can be used if you want to use a JavaAPI to implement some functional logic that is important for the business analyst. By using a node, the node is visible in the graphical representation of the process. For comparison, actions --covered next-- will allow you to add code that is invisible in the graphical representation of the process, in case that logic is not important for the business analyst.
這個節(jié)點(diǎn)可以被使用,如果你將使用JavaAPI來實(shí)現(xiàn)一些功能邏輯,對邏輯分析是重要的. 作為使用一個node,node 是可以視的在流程圖形表現(xiàn)中。為對比,actions-convered next--將允許在流程圖形表現(xiàn)中增加不可見的代碼,萬一對你邏輯分析是不重要的