??xml version="1.0" encoding="utf-8" standalone="yes"?>翔田千里一区,自拍自偷一区二区三区,精品性高朝久久久久久久http://www.aygfsteel.com/swboo/category/23365.htmlzh-cnTue, 18 Mar 2008 05:52:07 GMTTue, 18 Mar 2008 05:52:07 GMT60JBPM3.2.2表关p,希望高手们能U极大家来讨Z关系的存在原?/title><link>http://www.aygfsteel.com/swboo/articles/186958.html</link><dc:creator>大博的BLOG</dc:creator><author>大博的BLOG</author><pubDate>Tue, 18 Mar 2008 03:13:00 GMT</pubDate><guid>http://www.aygfsteel.com/swboo/articles/186958.html</guid><wfw:comment>http://www.aygfsteel.com/swboo/comments/186958.html</wfw:comment><comments>http://www.aygfsteel.com/swboo/articles/186958.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/swboo/comments/commentRss/186958.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/swboo/services/trackbacks/186958.html</trackback:ping><description><![CDATA[     摘要:   JBPM表关p说?1 程配置cL据库表: 1.1 JBPM_PROCESSDEFINITIONQ流E模版表 关系? 外键存在? ...  <a href='http://www.aygfsteel.com/swboo/articles/186958.html'>阅读全文</a><img src ="http://www.aygfsteel.com/swboo/aggbug/186958.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/swboo/" target="_blank">大博的BLOG</a> 2008-03-18 11:13 <a href="http://www.aygfsteel.com/swboo/articles/186958.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个完整的ZJBPM3.1.4工作引擎的WEB请假程例子------W二部分发布工作?/title><link>http://www.aygfsteel.com/swboo/articles/131156.html</link><dc:creator>大博的BLOG</dc:creator><author>大博的BLOG</author><pubDate>Wed, 18 Jul 2007 14:18:00 GMT</pubDate><guid>http://www.aygfsteel.com/swboo/articles/131156.html</guid><wfw:comment>http://www.aygfsteel.com/swboo/comments/131156.html</wfw:comment><comments>http://www.aygfsteel.com/swboo/articles/131156.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/swboo/comments/commentRss/131156.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/swboo/services/trackbacks/131156.html</trackback:ping><description><![CDATA[<p> 发布工作很单咯,我们用JUNIT试用例来发?至于如何呢看下面代码?里面注释很清?br><br>public class ManyShenpiIssue extends TestCase {<br> public void testIssueDefinition() throws FileNotFoundException<br> {<br><span style="COLOR: #339966">  //从JBPM.CFG.XML取得JBPM配置</span><br>  JbpmConfiguration config = JbpmConfiguration.getInstance();<br><span style="COLOR: #339966">  //创徏一个JBPM容器</span><br>  JbpmContext jbpmContext = config.createJbpmContext();<br><span style="COLOR: #339966">  //由processdefinition.xml生成惛_应的程定义cprocessDefinition</span><br>  InputStream is = new FileInputStream("process/shenpi/processdefinition.xml");<br>  ProcessDefinition processDefinition = ProcessDefinition.parseXmlInputStream(is);<br><span style="COLOR: #339966">  //利用容器的方法将程定义数据部v在数据库?/span><br>  jbpmContext.deployProcessDefinition(processDefinition);<br> <span style="COLOR: #339966"> //关闭jbpmContext</span><br>  jbpmContext.close();<br>  <br> }</p> <p>}<br>工作在着q发布完成?很简单对不对呀<br>现在大家对引擎的概念q是很模p对不对,没事下面的内Ҏ会做详细解释</p> <img src ="http://www.aygfsteel.com/swboo/aggbug/131156.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/swboo/" target="_blank">大博的BLOG</a> 2007-07-18 22:18 <a href="http://www.aygfsteel.com/swboo/articles/131156.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个完整的ZJBPM3.1.4工作引擎的WEB请假程例子------W一部分环境准备与工作流定义http://www.aygfsteel.com/swboo/articles/129958.html大博的BLOG大博的BLOGThu, 12 Jul 2007 15:10:00 GMThttp://www.aygfsteel.com/swboo/articles/129958.htmlhttp://www.aygfsteel.com/swboo/comments/129958.htmlhttp://www.aygfsteel.com/swboo/articles/129958.html#Feedback1http://www.aygfsteel.com/swboo/comments/commentRss/129958.htmlhttp://www.aygfsteel.com/swboo/services/trackbacks/129958.html-----本文原作?孙文?发于http://www.aygfsteel.com/swbooZ让更多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
数据库mssql2000

1.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

大博的BLOG 2007-07-12 23:10 发表评论
]]>
转蝲蜂l软g分析?JBPM的执行流E?/title><link>http://www.aygfsteel.com/swboo/articles/129610.html</link><dc:creator>大博的BLOG</dc:creator><author>大博的BLOG</author><pubDate>Wed, 11 Jul 2007 06:07:00 GMT</pubDate><guid>http://www.aygfsteel.com/swboo/articles/129610.html</guid><wfw:comment>http://www.aygfsteel.com/swboo/comments/129610.html</wfw:comment><comments>http://www.aygfsteel.com/swboo/articles/129610.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/swboo/comments/commentRss/129610.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/swboo/services/trackbacks/129610.html</trackback:ping><description><![CDATA[1.实例化流E定义类Q可选的方式包括Q?br>ProcessDefinition.parseXmlResource("websale.par/processdefinition.xml");<br>1.1 装蝲 指定名字的文件ؓ一个InputStream<br>1.2 解析q个InputStream中的程定义xml<br>1.3 包装 InputStream?InputStreamReader<br>1.4 实例?JPDLReader<br>1.5 h JPDLReader.readProcessDefinition<br>1.5.1 创徏程定义的实?processDefinition = ProcessDefinition.createNewProcessDefinition();<br>1.5.1.1 实例?ProcessDefinition<br>1.5.1.2 装蝲 module定义对象 ?程定义对象?module定义?jbpm.default.modules.properties"文g<br>1.5.2 h SchemaValidationHelper校验 程定义文g是否W合其Schema<br>1.5.3 解析程定义xml文g的根元素下的各个元素<br>1.5.3.1 解析 swimlane<br>1.5.3.1.1 解析每个 swimlane 定义Q针Ҏ?swimlane定义<br>1.5.3.1.1.1 生成一?swimlane对象<br>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<br>1.5.3.2.1 遍历根元素下的每个Action元素<br>1.5.3.2.2 如果 该action的名字符?l定的类型,则创建ActionQcreateAction<br>1.5.3.2.2.1 在ActionTypes中找到当前Action的name所对应的class,q实例化该class(即action对象)<br>1.5.3.2.2.1.1 讄action对象的name<br>1.5.3.2.2.1.2 在ProcessDefinition对象的actions属性中q加action<br>1.5.3.2.2.1.2.1 解析 各Action元素的特D属性到 Action对象?br>1.5.3.2.2.1.2.1.1 如果是普通Action元素<br>1.5.3.2.2.1.2.1.1.1 如果 action元素?ref-name属?不ؓI,?在JpdlXmlReader ?unresolvedActionReferences属性中q加 该action元素和action对象<br>1.5.3.2.2.1.2.1.1.2 如果 action元素?class 属?不ؓI,?<br>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 元素<br>1.5.3.2.2.1.2.1.2.1 ?#8220;the name of the timer to be cancelled” 攄?CancelTimerAction对象的属性中<br>1.5.3.2.2.1.2.1.3 如果?CreateTimerAction 元素<br>1.5.3.2.2.1.2.1.3.1 解析“the name of the timer”<br>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”<br>1.5.3.2.2.1.2.1.3.4 解析“duration between repeating timer executions until the node is left”<br>1.5.3.2.2.1.2.1.3.5 解析 “a transition-name to be taken when the timer executes”<br>1.5.3.2.2.1.2.1.4 如果?Script 元素<br>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><br><br>1.5.3.3 解析 nodes<br>1.5.3.3.1 遍历所有root元素的子元素Q对于那些元素名U表明其?node 的(通过查询NodeTypes来判定,因ؓNodeTypes中记录了合法的node元素的名UͼQ进行处?<br>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<br>1.5.3.3.3.2 解析node 的子元素<br>1.5.3.3.3.2.1 解析子元素timer<br>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?<br>1.5.3.3.3.2.2 解析子元?event<br>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?<br>1.5.3.3.3.2.3 解析子元?execptionHandler<br>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. <br>1.5.3.3.3.2.4 该node 保存?未解析转移 的node 的列表中.在JpdlXmlReader的未定转移unresolvedTransitionDestinations属性中Q追加本node元素和本node元素对应的node 实现<br>1.5.3.3.4 解析node元素的特D部?br>1.5.3.3.4.1 如果?node,?解析 node 中唯一?action元素<br>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 <br>1.5.3.3.4.8 如果?taskNode,?<br>1.5.3.3.4.8.1 解析signal属性(军_多个d中,哪个d能l传递本node的TokenQ?;<br>1.5.3.3.4.8.2 解析 createTasks属性,军_是否自动创徏task;<br>1.5.3.3.4.8.3 解析taskNode中的每个task元素<br>1.5.3.3.4.8.3.1 获得 taskNode的每个task子元素,针对每个task元素q行解析 readTask<br>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对象<br>1.5.3.3.4.8.3.1.3 解析每个timer子元?readTaskTimers)<br>1.5.3.3.4.8.3.1.3.1 实例?CreatTimerAction,解析 timer属性到 该对象中<br>1.5.3.3.4.8.3.1.3.1.1 解析 timer的name<br>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 属?到期后执行的转移)<br>1.5.3.3.4.8.3.1.3.2 ?该task 创徏EVENTTYPE_TASK_CREATE 事gQ在该事件中创徏 上面?CreateTimerAction<br>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<br>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<br>1.5.3.3.4.8.3.1.6 讄 Task?"description"?dueDate"?priority"<br>1.5.3.3.4.8.3.1.7 在TaskNode对象 ?q加?Task对象<br>1.5.3.3.4.8.3.1.8 讄Task ?"blocking"属性,该属性指出,是否{待本Task完成Ӟ本node 上的Token才能d<br>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<br>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" 的委托类<br>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<br>1.5.3.3.4.8.3.1.9.3.2 ?"assignment" 的委托类的对?讄到Task的属性中<br>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解析变量访问的讄<br>1.5.3.3.4.8.3.1.10.2.1 解析每个变量子元素,获得变量名称、访问限制、在 委托c里的映名U?<br>1.5.3.3.4.8.3.1.10.2.2 所有变量的讄 d?taskController对象?<br>1.5.3.3.4.8.3.1.11 TaskController 攑ֈ Task 对象属性中<br><br>1.5.3.4 解析 eventsQ寻找根元素下的所有Event子元素,在ProcessDefinition中增加event,为event增加其对应的所有Action<br>1.5.3.5 解析 q例处理器,L根元素下的所有违例处理器子元素,解析其处理的q例Q其采取的action,违例处理器 q加?ProcessDefinition的属性中<br>1.5.3.6 解析Task,L根元素下的所有task子元素,对其解析Qƈq加?ProcessDefintion的taskMgmtDefintion的属性中<br>1.5.3.6 解析每个node元素?引出转移Q?resolveTransitionDestinations<br>1.5.3.6.1 扑ֈ每个node 元素Q以及node cd象,针对每个node 元素<br>1.5.3.6.1.1 L每个 transition,针对每个Transition<br>1.5.3.6.1.1.1 实例化Transition,?processDefintion 作ؓ transition 对象的一个属?,讄transiton 的name<br>1.5.3.6.1.1.2 ?node 的引{U?属性中 增加?transition,该transition 的from属?讄node<br>1.5.3.6.1.1.3 L 该{Uȝ目标node 的名Uͼq在 当前node 的容器中(可能是processDefinition?superState) 扑ֈ目标node.<br>1.5.3.6.1.1.4 在目标node 的引入{Ud性中Q则该transition,q将该transition的to 属性设|ؓ该目标node<br>1.5.3.6.1.1.5 在该转移中,增加cd?#8220;EVENTTYPE_TRANSITIOND”的事Ӟq增加事件的所有Action<br>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则发出警告<br>1.5.3.9 如果 解析中生了 U别为Error?problemQ则抛出q例<br><br><br>2.持久化流E定?br>graphSession.saveProcessDefinition(processDefinition);<br>3.实例化流E实?processInstance = new ProcessInstance(processDefinition); <br><br>3.1 记录传进来的程定义<br>3.2 生成rootToken<br>3.2.1 记录token开始时?br>3.2.2 记录程实例<br>3.2.3 记录该流E的StartStateToken的node.<br>3.2.4 记录该流E是否设|ؓ隐式l止 <br><br>3.3 记录程开始时?br>3.4 查找所?#8220;可选模?#8221;的定义,记录可选模块的实例。可选模?定义?jbpm.default.modules.properties 中。可选模?构成?JBPM的可插入式架构的机制?br><br>3.5 使用配置好的 日志记录模块Q记录流E创Z件?br>3.6 如果当前上下文下 有用于持久化的session,则持久化 程实例<br>3.7 生成 ExecutionContext<br>3.8 发布程启动事g<br>3.8.1 在Log中记录流E启动事?Qlog.debug<br>3.8.2 在执行环?executionContext ?讄事g?br>3.8.3 发布q传递事?br>3.8.3.1 判断是否需要传递事?如果事g源不是当前对象,则需要传递事?<br>3.8.3.2 执行事g对应的静态Action,扑ֈ程定义中定义的cd为流E启动的事gQƈ执行定义?该事件的Action.<br>3.8.3.2.1 扑ֈ程定义时设定的 本流E元素中的给定类型的事g<br>3.8.3.2.2 执行event对应的actions<br>3.8.3.2.2.1 遍历所有Action<br>3.8.3.2.2.2 如果 本action接受其他 程元素传递来的事Ӟ或?q不是一个传递来的事?Q则执行本action<br>3.8.3.2.2.3 创徏Action log<br>3.8.3.2.2.4 增加ActionLog日志到 LoggingInstance 中,同时声明 该日志项Q是一个组合日志的W一?br>3.8.3.2.2.5 打印action执行 的log, log.debug<br>3.8.3.2.2.6 执行action<br>3.8.3.2.2.6.1 实例?actionHandler<br>3.8.3.2.2.6.2 调用 actionHandler的executeҎ<br>3.8.3.2.2.7 如果action执行抛出了违?<br>3.8.3.2.2.7.1 log.error<br>3.8.3.2.2.7.2 使用q例处理器来处理q例<br>3.8.3.2.2.7.2.1 在该程元素中,扑ֈ应该处理 l定 q例 的违例处理器<br>3.8.3.2.2.7.2.1.1 遍历所有违例处理器Q判断每个违例处理器是否应该处理一个违?br>3.8.3.2.2.7.2.2 h该违例处理器处理q例<br>3.8.3.2.2.7.2.2.1 执行该违例处理器的所有action<br>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属性置为空<br>3.8.3.2.2.7.2 标识 l合日志完成 <br><br>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><br><br><br><br><br>4.持久?程实例<br>5.通过hibernate 从持久层 装蝲4个对象实?<br>processDefinition = graphSession.loadProcessDefinition(processDefinition.getId());<br>processInstance = graphSession.loadProcessInstance(processInstance.getId());<br>contextInstance = processInstance.getContextInstance();<br>taskMgmtInstance = processInstance.getTaskMgmtInstance();<br><br>JBPM版本Q?.0 beta1<br>作者:beehive.cn<br>版权所有:beehive.cn<br>查看更多JBPM源码q踪Q请?<a target=_blank><font color=#749b1a>http://www.beehive.cn/modules/newbb/viewforum.php?forum=14</font></a><br> <img src ="http://www.aygfsteel.com/swboo/aggbug/129610.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/swboo/" target="_blank">大博的BLOG</a> 2007-07-11 14:07 <a href="http://www.aygfsteel.com/swboo/articles/129610.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBPM3.2初看http://www.aygfsteel.com/swboo/articles/129154.html大博的BLOG大博的BLOGMon, 09 Jul 2007 14:14:00 GMThttp://www.aygfsteel.com/swboo/articles/129154.htmlhttp://www.aygfsteel.com/swboo/comments/129154.htmlhttp://www.aygfsteel.com/swboo/articles/129154.html#Feedback1http://www.aygfsteel.com/swboo/comments/commentRss/129154.htmlhttp://www.aygfsteel.com/swboo/services/trackbacks/129154.html

18.4.26. assignment

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”.


大博的BLOG 2007-07-09 22:14 发表评论
]]>
վ֩ģ壺 | | | | ͺ| | | ũ| | ͬ| | ˮ| ӳ| ʯ| ɽ| | | | ǿ| ̫| ຣʡ| Ͳ| | ˮ| | ٹ| | | | | | ͨ| ̨| | | ɽ| | ˴| dz| | |