??xml version="1.0" encoding="utf-8" standalone="yes"?>翔田千里一区,自拍自偷一区二区三区,精品性高朝久久久久久久 http://www.aygfsteel.com/swboo/category/23365.htmlzh-cn Tue, 18 Mar 2008 05:52:07 GMT Tue, 18 Mar 2008 05:52:07 GMT 60 JBPM3.2.2表关p,希望高手们能U极大家来讨Z关系的存在原?/title> http://www.aygfsteel.com/swboo/articles/186958.html大博的BLOG 大博的BLOG Tue, 18 Mar 2008 03:13:00 GMT http://www.aygfsteel.com/swboo/articles/186958.html http://www.aygfsteel.com/swboo/comments/186958.html http://www.aygfsteel.com/swboo/articles/186958.html#Feedback 0 http://www.aygfsteel.com/swboo/comments/commentRss/186958.html http://www.aygfsteel.com/swboo/services/trackbacks/186958.html 阅读全文 ]]> 一个完整的ZJBPM3.1.4工作引擎的WEB请假程例子------W二部分发布工作?/title> http://www.aygfsteel.com/swboo/articles/131156.html大博的BLOG 大博的BLOG Wed, 18 Jul 2007 14:18:00 GMT http://www.aygfsteel.com/swboo/articles/131156.html http://www.aygfsteel.com/swboo/comments/131156.html http://www.aygfsteel.com/swboo/articles/131156.html#Feedback 1 http://www.aygfsteel.com/swboo/comments/commentRss/131156.html http://www.aygfsteel.com/swboo/services/trackbacks/131156.html 发布工作很单咯,我们用JUNIT试用例来发?至于如何呢看下面代码?里面注释很清?br> public class ManyShenpiIssue extends TestCase { public void testIssueDefinition() throws FileNotFoundException { //从JBPM.CFG.XML取得JBPM配置 JbpmConfiguration config = JbpmConfiguration.getInstance(); //创徏一个JBPM容器 JbpmContext jbpmContext = config.createJbpmContext(); //由processdefinition.xml生成惛_应的程定义cprocessDefinition InputStream is = new FileInputStream("process/shenpi/processdefinition.xml"); ProcessDefinition processDefinition = ProcessDefinition.parseXmlInputStream(is); //利用容器的方法将程定义数据部v在数据库?/span> jbpmContext.deployProcessDefinition(processDefinition); //关闭jbpmContext jbpmContext.close(); }
} 工作在着q发布完成?很简单对不对呀 现在大家对引擎的概念q是很模p对不对,没事下面的内Ҏ会做详细解释
]]>一个完整的ZJBPM3.1.4工作引擎的WEB请假程例子------W一部分环境准备与工作流定义 http://www.aygfsteel.com/swboo/articles/129958.html大博的BLOG 大博的BLOG Thu, 12 Jul 2007 15:10:00 GMT http://www.aygfsteel.com/swboo/articles/129958.html http://www.aygfsteel.com/swboo/comments/129958.html http://www.aygfsteel.com/swboo/articles/129958.html#Feedback 1 http://www.aygfsteel.com/swboo/comments/commentRss/129958.html http://www.aygfsteel.com/swboo/services/trackbacks/129958.html -----本文原作?孙文?发于http://www.aygfsteel.com/swboo Z让更多h了解如要转蝲误?谢谢大家支持原创. 对于刚开始接触JBPM的朋友来?理解工作引擎着个概忉|说是要费工夫?本h很苯,也是理解了好久才知道引擎的意思的).现在|上大多数的JBPM例子都是使用的是JUNIT来说明问题的,但是对于一些没有从事过JAVA或的刚开始从事JAVA开发的朋友来说,无疑是很有难度的,所以我在这里写一个WEB的例子来教大家JBPM的的使用,以及引擎的含?好了接下来让׃开?1环境准备 至于如何配置QQ环境我就不说了,要是不会请去看陈刚老师的QOQ上面很详细Q?a href="http://www.aygfsteel.com/chengang/category/12967.html">http://www.aygfsteel.com/chengang/category/12967.htmlQ我在这里只做如何将QQ和DQl合h 1.1使用环境 JDK1.5 Tomcat5.5.9 JBPM3.1.4 数据库mssql20001.2创徏一个DQ目Q不说了用过eclipse的h都知道如何创?/strong>1.3创徏一个流E定义,是在web目中添加Process Definition 1.4程定义代码 注明:下面我将程写如程定义文g当中要是想用请删除里面的流E说明部?/span> <?xml version="1.0" encoding="UTF-8"?>
开始结?br><process-definition xmlns="" name="shenpi">程开始结?/span> <start-state name="start"> <task name="startrequest"> <controller> 讄请假人的?/span>E变?/span> <variable name="name"></variable> 讄请假天数的流E变?/span> <variable name="countday"></variable> 讄审批请假角色的流E变?br> <variable name="roles"></variable> </controller> </task> <event type="node-leave"> 当离开开始结点后处理的类 <action name="startleave" class="com.jbpm.handler.StartLeave"></action> </event> <transition name="" to="shenpi"> </transition> </start-state>审批l点 <task-node name="shenpi">审批d <task name="whoshenpi"> <controller>讄是否通过的流E变?/span> <variable name="shifoutongguo"></variable>保存该谁审批的流E变?/span> <variable name="who"></variable> </controller> </task>用来处理q入审批l点的类 <event type="node-enter"> <action name="com.jbpm.handler.ShenpiEnter"></action> </event>用来处理d审批l点的类 <event type="node-leave"> <action name="com.jbpm.handler.ShenpiLeave"></action> </event> <transition name="" to="decision1"></transition> </task-node>讄下一个h审批的结?br> <node name="whocheck">讄下一个审批h的类 <action class="com.jbpm.handler.WhoCheckAction"> </action>讄d此结点的c?/span> <event type="node-leave"> <action name="whocheckleave" class="com.jbpm.handler.WhoCheckLeave"></action> </event>讄q入此结点的c?/span> <event type="node-enter"> <action name="whocheckenter" class="com.jbpm.handler.WhoCheckEnter"></action> </event> <transition name="" to="decision2"></transition> </node>判断是否审批人是否通过的结?/span> <decision name="decision1">判断此业务流E的c?br> <handler class="com.jbpm.decision.IsGoDecisionHandler"/> <transition name="end" to="end">判断程是否通过的类 <action class="com.jbpm.handler.ProcessEnd"></action> </transition> <transition name="go" to="whocheck"></transition> </decision>判断是否审批人是否是最后一个h的结?/span> <decision name="decision2">判断是否通过的类 <handler class="com.jbpm.decision.IsGoDecisionHandler"/> <transition name="end" to="end">判断是够是最后一个h的类 <action class="com.jbpm.handler.ProcessEnd"></action> </transition> <transition name="go" to="shenpi"></transition> </decision> 程l束l点 <end-state name="end"> 判断是否通过的变?/span> <controller> <variable name="shifoutongguo" access="read"></variable> </controller> </end-state> </process-definition>
1.5程说明 本流E定义了一个请假流E其中员工提出申请开始一个请假流E?然后ȝ审批,此例子我讄?个chief来处?只要里面一个不通过程q束了.
(太晚了明天l?2007.7.12
]]> 转蝲蜂l软g分析?JBPM的执行流E?/title> http://www.aygfsteel.com/swboo/articles/129610.html大博的BLOG 大博的BLOG Wed, 11 Jul 2007 06:07:00 GMT http://www.aygfsteel.com/swboo/articles/129610.html http://www.aygfsteel.com/swboo/comments/129610.html http://www.aygfsteel.com/swboo/articles/129610.html#Feedback 0 http://www.aygfsteel.com/swboo/comments/commentRss/129610.html http://www.aygfsteel.com/swboo/services/trackbacks/129610.html ProcessDefinition.parseXmlResource("websale.par/processdefinition.xml"); 1.1 装蝲 指定名字的文件ؓ一个InputStream 1.2 解析q个InputStream中的程定义xml 1.3 包装 InputStream?InputStreamReader 1.4 实例?JPDLReader 1.5 h JPDLReader.readProcessDefinition 1.5.1 创徏程定义的实?processDefinition = ProcessDefinition.createNewProcessDefinition(); 1.5.1.1 实例?ProcessDefinition 1.5.1.2 装蝲 module定义对象 ?程定义对象?module定义?jbpm.default.modules.properties"文g 1.5.2 h SchemaValidationHelper校验 程定义文g是否W合其Schema 1.5.3 解析程定义xml文g的根元素下的各个元素 1.5.3.1 解析 swimlane 1.5.3.1.1 解析每个 swimlane 定义Q针Ҏ?swimlane定义 1.5.3.1.1.1 生成一?swimlane对象 1.5.3.1.1.2 生成 assignment元素?class属性所指定的类的对象(UCؓ 委托对象Q,q放|到 swimlane对象中?br>1.5.3.1.1.3 如果没有assignment元素Qƈ??swimlane 也不?starttask所引用的swimlane,?addWarning?br>1.5.3.1.1.4 swimlaneq加加到 taskMgmtDefinition 的属性中?br>1.5.3.2 解析 actions 1.5.3.2.1 遍历根元素下的每个Action元素 1.5.3.2.2 如果 该action的名字符?l定的类型,则创建ActionQcreateAction 1.5.3.2.2.1 在ActionTypes中找到当前Action的name所对应的class,q实例化该class(即action对象) 1.5.3.2.2.1.1 讄action对象的name 1.5.3.2.2.1.2 在ProcessDefinition对象的actions属性中q加action 1.5.3.2.2.1.2.1 解析 各Action元素的特D属性到 Action对象?br>1.5.3.2.2.1.2.1.1 如果是普通Action元素 1.5.3.2.2.1.2.1.1.1 如果 action元素?ref-name属?不ؓI,?在JpdlXmlReader ?unresolvedActionReferences属性中q加 该action元素和action对象 1.5.3.2.2.1.2.1.1.2 如果 action元素?class 属?不ؓI,? 1.5.3.2.2.1.2.1.1.3 实例?DelegationQ将实例化后的对象作为action对象的属性?br>1.5.3.2.2.1.2.1.1.4 调用Delegaton?readҎQ解析action元素的class、config-type{属性到delegation对象中,q解?元素的content到delegation对象?br>1.5.3.2.2.1.2.1.1.5 Ҏ action元素的accept-propagated-events 属性,军_action对象的isPropagationAllowed属性(该属性决定该actions是否只处理该action所兌的元素发出的事gQ不处理子元素传来的事gQ?br>1.5.3.2.2.1.2.1.2 如果?CancelTimerAction 元素 1.5.3.2.2.1.2.1.2.1 ?#8220;the name of the timer to be cancelled” 攄?CancelTimerAction对象的属性中 1.5.3.2.2.1.2.1.3 如果?CreateTimerAction 元素 1.5.3.2.2.1.2.1.3.1 解析“the name of the timer” 1.5.3.2.2.1.2.1.3.2 解析该元素下单个的Action元素Q可能是 Action或scriptQ?br>1.5.3.2.2.1.2.1.3.3 解析“time period between the creation of the timer and the execution of the timer” 1.5.3.2.2.1.2.1.3.4 解析“duration between repeating timer executions until the node is left” 1.5.3.2.2.1.2.1.3.5 解析 “a transition-name to be taken when the timer executes” 1.5.3.2.2.1.2.1.4 如果?Script 元素 1.5.3.2.2.1.2.1.4.1 如果表辑ּ直接攑֜?script元素?content中,则直接解析该content作ؓ script对象的expression属?br>1.5.3.2.2.1.2.1.4.2 否则Q解析变量定义;解析 expression子元素的内容Q作为script对象的expression属?br> 1.5.3.3 解析 nodes 1.5.3.3.1 遍历所有root元素的子元素Q对于那些元素名U表明其?node 的(通过查询NodeTypes来判定,因ؓNodeTypes中记录了合法的node元素的名UͼQ进行处? 1.5.3.3.2 实例?node 元素所对应的类Q将程定义对象 讄?具体node对象的属性中?br>1.5.3.3.3 解析node元素的公共部?br>1.5.3.3.3.1 在ProcessDefinition 的notes属性中Q追加本元素对应的node具体实现对象Q如果本元素是StartState,则在ProcessDefinition中的startState属性ؓ该元素的实现node 1.5.3.3.3.2 解析node 的子元素 1.5.3.3.3.2.1 解析子元素timer 1.5.3.3.3.2.1.1 解析l定node元素下的所?Timer子元?br>1.5.3.3.3.2.1.2 针对每个timer 子元?br>1.5.3.3.3.2.1.2.1 新徏 “创徏timer”的action,其加入node 的enter事g?br>1.5.3.3.3.2.1.2.2 新徏“取消timer”的action,其加入 node 的leave事g? 1.5.3.3.3.2.2 解析子元?event 1.5.3.3.3.2.2.1 解析l定node元素下的所?event 子元?br>1.5.3.3.3.2.2.2 遍历所有event元素,创徏对应的event Q增加到node?br>1.5.3.3.3.2.2.3 遍历l定event元素下的所有action元素Q创建对应的action,action增加?event? 1.5.3.3.3.2.3 解析子元?execptionHandler 1.5.3.3.3.2.3.1 遍历l定node元素下的所?exception-handler 子元?br>1.5.3.3.3.2.3.2 解析每个 exception-handlerQ设|该处理器所处理的违例的名称Q在node 中,增加该违例处理器Q解析违例处理器下的每个action. 1.5.3.3.3.2.4 该node 保存?未解析转移 的node 的列表中.在JpdlXmlReader的未定转移unresolvedTransitionDestinations属性中Q追加本node元素和本node元素对应的node 实现 1.5.3.3.4 解析node元素的特D部?br>1.5.3.3.4.1 如果?node,?解析 node 中唯一?action元素 1.5.3.3.4.2 如果?decision,?解析 ?handler的delegation,解析引出 transition和transition的条?br>1.5.3.3.4.3 如果?EndState/Join/State,?没有Ҏ部分需要解析?br>1.5.3.3.4.4 如果?fork ,?解析?script子元?br>1.5.3.3.4.5 如果?process-state,?br>1.5.3.3.4.5.1 解析 sub-process元素Q获得子程名称和版本,然后从数据库中提取该程的定义?br>1.5.3.3.4.5.2 解析 variable元素Q获得变量名字、访问别、变量在子流E中映射的名U?br>1.5.3.3.4.6 如果?StartState,?在TaskMgmtDefinition扑ֈ 该元素的swimlane,如果有task子元素,则解析该task,q在TaskMgmtDefinition中设|startTask属性,在task对象中设|startState属?br>1.5.3.3.4.7 如果?superState,?解析 ?superState中的所有node,执行方式?1.5.3.3 1.5.3.3.4.8 如果?taskNode,? 1.5.3.3.4.8.1 解析signal属性(军_多个d中,哪个d能l传递本node的TokenQ?; 1.5.3.3.4.8.2 解析 createTasks属性,军_是否自动创徏task; 1.5.3.3.4.8.3 解析taskNode中的每个task元素 1.5.3.3.4.8.3.1 获得 taskNode的每个task子元素,针对每个task元素q行解析 readTask 1.5.3.3.4.8.3.1.1 实例化taskc,讄processDefinition对象到其属性中Q设|task元素的name 属性到其name属?br>1.5.3.3.4.8.3.1.2 taskMgmtDefinition中的tasks属性中Q追加本task对象 1.5.3.3.4.8.3.1.3 解析每个timer子元?readTaskTimers) 1.5.3.3.4.8.3.1.3.1 实例?CreatTimerAction,解析 timer属性到 该对象中 1.5.3.3.4.8.3.1.3.1.1 解析 timer的name 1.5.3.3.4.8.3.1.3.1.2 解析 timer的action 子元?br>1.5.3.3.4.8.3.1.3.1.3 解析 timer中的 dudate 属性(timer从创建到其执行的持箋旉Q?br>1.5.3.3.4.8.3.1.3.1.4 解析 timer中的 repeat 属?br>1.5.3.3.4.8.3.1.3.1.5 解析 timer中的 transition 属?到期后执行的转移) 1.5.3.3.4.8.3.1.3.2 ?该task 创徏EVENTTYPE_TASK_CREATE 事gQ在该事件中创徏 上面?CreateTimerAction 1.5.3.3.4.8.3.1.3.3 在该Timer元素中找?“cancel-event” 属性,该属性指?哪些事g中取消timerQ可以指定多个事?br>1.5.3.3.4.8.3.1.3.3 在task?创徏 可以取消 timer的事Ӟq在q些事g中指?cancelTimer的Action 1.5.3.3.4.8.3.1.4 解析每个event子元?readEvents),增加 event 以及 event对应的Action到Task中?br>1.5.3.3.4.8.3.1.5 解析q例处理器: readExceptionHandlers。在Task中增加违例处理器Qؓ例处理器中的属性指定了该违例处理器I竟处理哪个q例Q或者所有违例)Qƈ且指定了发生q例时进行处理的Action 1.5.3.3.4.8.3.1.6 讄 Task?"description"?dueDate"?priority" 1.5.3.3.4.8.3.1.7 在TaskNode对象 ?q加?Task对象 1.5.3.3.4.8.3.1.8 讄Task ?"blocking"属性,该属性指出,是否{待本Task完成Ӟ本node 上的Token才能d 1.5.3.3.4.8.3.1.9 处理参与者分?br>1.5.3.3.4.8.3.1.9.1 解析 task?swimlane属性和assignment子元?br>1.5.3.3.4.8.3.1.9.2 如果讄?swimlaneQ在taskMgmtDefinition中找?已经解析q的swimlane的定义,q将其设|到Task 1.5.3.3.4.8.3.1.9.3 如果没有讄 swimlaneQ但讄?"assignment" 子元?br>1.5.3.3.4.8.3.1.9.3.1 解析 "assignment" 的委托类 1.5.3.3.4.8.3.1.9.3.1.1 如果 "assignment"元素 ?expression"属性,?为委托类对象讄程定义对象Q设|表辑ּ分配处理cdUͼ讄表达?br>1.5.3.3.4.8.3.1.9.3.1.2 如果 "assignment"元素 没有"expression"属性,则请 委托c?解析 assignment的定义,包括Q解?class名称、config-type、以?assignment的content 1.5.3.3.4.8.3.1.9.3.2 ?"assignment" 的委托类的对?讄到Task的属性中 1.5.3.3.4.8.3.1.10 解析 “task controller”Q等同于 应用形参Q?br>1.5.3.3.4.8.3.1.10.0 实例?TaskController c?br>1.5.3.3.4.8.3.1.10.1 如果包含 class属性,则解?Z个委托类Q将其添加到taskController对象?br>1.5.3.3.4.8.3.1.10.2 否则Q解析变量访问的讄 1.5.3.3.4.8.3.1.10.2.1 解析每个变量子元素,获得变量名称、访问限制、在 委托c里的映名U? 1.5.3.3.4.8.3.1.10.2.2 所有变量的讄 d?taskController对象? 1.5.3.3.4.8.3.1.11 TaskController 攑ֈ Task 对象属性中 1.5.3.4 解析 eventsQ寻找根元素下的所有Event子元素,在ProcessDefinition中增加event,为event增加其对应的所有Action 1.5.3.5 解析 q例处理器,L根元素下的所有违例处理器子元素,解析其处理的q例Q其采取的action,违例处理器 q加?ProcessDefinition的属性中 1.5.3.6 解析Task,L根元素下的所有task子元素,对其解析Qƈq加?ProcessDefintion的taskMgmtDefintion的属性中 1.5.3.6 解析每个node元素?引出转移Q?resolveTransitionDestinations 1.5.3.6.1 扑ֈ每个node 元素Q以及node cd象,针对每个node 元素 1.5.3.6.1.1 L每个 transition,针对每个Transition 1.5.3.6.1.1.1 实例化Transition,?processDefintion 作ؓ transition 对象的一个属?,讄transiton 的name 1.5.3.6.1.1.2 ?node 的引{U?属性中 增加?transition,该transition 的from属?讄node 1.5.3.6.1.1.3 L 该{Uȝ目标node 的名Uͼq在 当前node 的容器中(可能是processDefinition?superState) 扑ֈ目标node. 1.5.3.6.1.1.4 在目标node 的引入{Ud性中Q则该transition,q将该transition的to 属性设|ؓ该目标node 1.5.3.6.1.1.5 在该转移中,增加cd?#8220;EVENTTYPE_TRANSITIOND”的事Ӟq增加事件的所有Action 1.5.3.6.1.1.6 在该转移中,增加 q例处理?br>1.5.3.7 解析 Action ?Reference.扑ֈ每一?讄?ref-name"属性的action,在processDefinition中,扑ֈ ref-name 的gؓ名称的action.q将该引用的action讄到原action?br>1.5.3.8 校验swimlane和assignment,如果某个 swimlane的assignment委托cMؓI,q且它不是StartTask的swimlaneQ则发出警告 1.5.3.9 如果 解析中生了 U别为Error?problemQ则抛出q例 2.持久化流E定?br>graphSession.saveProcessDefinition(processDefinition); 3.实例化流E实?processInstance = new ProcessInstance(processDefinition); 3.1 记录传进来的程定义 3.2 生成rootToken 3.2.1 记录token开始时?br>3.2.2 记录程实例 3.2.3 记录该流E的StartStateToken的node. 3.2.4 记录该流E是否设|ؓ隐式l止 3.3 记录程开始时?br>3.4 查找所?#8220;可选模?#8221;的定义,记录可选模块的实例。可选模?定义?jbpm.default.modules.properties 中。可选模?构成?JBPM的可插入式架构的机制?br> 3.5 使用配置好的 日志记录模块Q记录流E创Z件?br>3.6 如果当前上下文下 有用于持久化的session,则持久化 程实例 3.7 生成 ExecutionContext 3.8 发布程启动事g 3.8.1 在Log中记录流E启动事?Qlog.debug 3.8.2 在执行环?executionContext ?讄事g?br>3.8.3 发布q传递事?br>3.8.3.1 判断是否需要传递事?如果事g源不是当前对象,则需要传递事? 3.8.3.2 执行事g对应的静态Action,扑ֈ程定义中定义的cd为流E启动的事gQƈ执行定义?该事件的Action. 3.8.3.2.1 扑ֈ程定义时设定的 本流E元素中的给定类型的事g 3.8.3.2.2 执行event对应的actions 3.8.3.2.2.1 遍历所有Action 3.8.3.2.2.2 如果 本action接受其他 程元素传递来的事Ӟ或?q不是一个传递来的事?Q则执行本action 3.8.3.2.2.3 创徏Action log 3.8.3.2.2.4 增加ActionLog日志到 LoggingInstance 中,同时声明 该日志项Q是一个组合日志的W一?br>3.8.3.2.2.5 打印action执行 的log, log.debug 3.8.3.2.2.6 执行action 3.8.3.2.2.6.1 实例?actionHandler 3.8.3.2.2.6.2 调用 actionHandler的executeҎ 3.8.3.2.2.7 如果action执行抛出了违? 3.8.3.2.2.7.1 log.error 3.8.3.2.2.7.2 使用q例处理器来处理q例 3.8.3.2.2.7.2.1 在该程元素中,扑ֈ应该处理 l定 q例 的违例处理器 3.8.3.2.2.7.2.1.1 遍历所有违例处理器Q判断每个违例处理器是否应该处理一个违?br>3.8.3.2.2.7.2.2 h该违例处理器处理q例 3.8.3.2.2.7.2.2.1 执行该违例处理器的所有action 3.8.3.2.2.7.2.3 如果q例处理?没有处理成功Q则h该流E元素的父元素处理该q例Q如果没有父元素Q则抛出一个缺省的委托c违?br>3.8.3.2.2.8 执行Action后,必须要做下面的收ַ?br>3.8.3.2.2.7.1 executionContext中的Action属性置为空 3.8.3.2.2.7.2 标识 l合日志完成 3.8.3.3 执行事g对应的动态Action,动态ActionQؓq行时增加到ProcessInstance中的Q与某个事g对应?br>3.8.3.4 如果?囑օ素的父元素存在,则调用父元素?发布q传递事?ҎQ参见上面的 3.8.3Q?br>3.8.4 在执行环境中 清空事g?br> 4.持久?程实例 5.通过hibernate 从持久层 装蝲4个对象实? processDefinition = graphSession.loadProcessDefinition(processDefinition.getId()); processInstance = graphSession.loadProcessInstance(processInstance.getId()); contextInstance = processInstance.getContextInstance(); taskMgmtInstance = processInstance.getTaskMgmtInstance(); JBPM版本Q?.0 beta1 作者:beehive.cn 版权所有:beehive.cn 查看更多JBPM源码q踪Q请?http://www.beehive.cn/modules/newbb/viewforum.php?forum=14
]]> JBPM3.2初看 http://www.aygfsteel.com/swboo/articles/129154.html大博的BLOG 大博的BLOG Mon, 09 Jul 2007 14:14:00 GMT http://www.aygfsteel.com/swboo/articles/129154.html http://www.aygfsteel.com/swboo/comments/129154.html http://www.aygfsteel.com/swboo/articles/129154.html#Feedback 1 http://www.aygfsteel.com/swboo/comments/commentRss/129154.html http://www.aygfsteel.com/swboo/services/trackbacks/129154.html
Table 18.25.
Name
Type
Multiplicity
Description
expression
attribute
optional
For historical reasons, this attribute expression does not refer to the jPDL expression , but instead, it is an assignment expression for the jBPM identity component. For more information on how to write jBPM identity component expressions, see Section 11.11.2, “Assignment expressions” . Note that this implementation has a dependency on the jbpm identity component.
actor-id
attribute
optional
An actorId. Can be used in conjunction with pooled-actors. The actor-id is resolved as an expression . So you can refer to a fixed actorId like this actor-id="bobthebuilder" . Or you can refer to a property or method that returns a String like this: actor-id="myVar.actorId" , which will invoke the getActorId method on the task instance variable "myVar".
pooled-actors
attribute
optional
A comma separated list of actorIds. Can be used in conjunction with actor-id. A fixed set of pooled actors can be specified like this: pooled-actors="chicagobulls, pointersisters" . The pooled-actors will be resolved as an expression . So you can also refer to a property or method that has to return, a String[], a Collection or a comma separated list of pooled actors.
class
attribute
optional
the fully qualified classname of an implementation of org.jbpm.taskmgmt.def.AssignmentHandler
config-type
attribute
optional
{field |bean |constructor |configuration-property }. Specifies how the assignment-handler-object should be constructed and how the content of this element should be used as configuration information for that assignment-handler-object.
{content}
optional
the content of the assignment-element can be used as configuration information for your AssignmentHandler implementations. This allows the creation of reusable delegation classes. for more about delegation configuration, see Section 18.2.3, “Configuration of delegations” .
]]>
վ֩ģ壺
|
|
|
|
ͺ |
|
|
ũ |
|
ͬ |
|
ˮ |
ӳ |
ʯ |
ɽ |
|
|
|
ǿ |
̫ |
ຣʡ |
Ͳ |
|
ˮ |
|
ٹ |
潭 |
|
|
|
|
ͨ |
̨ |
|
|
ɽ |
|
˴ |
dz |
|
|