`
hongsoft
  • 浏览: 290658 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

shark接口1分析(一)--启动流程

阅读更多

<!----><o:p> </o:p>

Shark流程启动过程<o:p></o:p>

<o:p> </o:p>

1)      定位工作流服务器<o:p></o:p>

      Shark.configure("Shark.conf");<o:p></o:p>

      SharkInterface si= Shark.getInstance();<o:p></o:p>

2) 连接工作流服务器<o:p></o:p>

   SharkConnection sc= si. getSharkConnection();<o:p></o:p>

   sc. connect(username, pwd, engineName, scope);<o:p></o:p>

3) 产生流程<o:p></o:p>

       WfProcess wfp = sc.createProcess(pkgId, pDefId);<o:p></o:p>

       在产生流程时,使用的是SharkConnection的对象,该对象中保存了用户信息,用户信息作为产生的流程的requester;<o:p></o:p>

      然后用两个参数:包定义ID和流程定义ID获取流程管理器的ID;<o:p></o:p>

      最后,用该流程管理器来产生流程<o:p></o:p>

4) 启动流程<o:p></o:p>

      wfp.start();<o:p></o:p>

      经过SHARK的几轮跳转,最后的实现在org.enhydra.shark.WfProcessImpl中,实现代码如下:<o:p></o:p>

      //前面有对异常的判断<o:p></o:p>

      //启动时间在后面要用<o:p></o:p>

      startedTime = System.currentTimeMillis();<o:p></o:p>

      //改变状态<o:p></o:p>

         change_state(t,SharkConstants.STATE_OPEN_RUNNING);<o:p></o:p>

         //激活计时器<o:p></o:p>

     this.activateLimitAgent(t);<o:p></o:p>

     //驱动流程<o:p></o:p>

         run(t, null);  <o:p></o:p>

5)断开连接<o:p></o:p>

      disconnect(sc);<o:p></o:p>

      return wfp.key();<o:p></o:p>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics