shark接口1分析(三)--resume流程

原创 2004年06月28日 13:59:00

Shark流程resume过程

1) 得到执行管理器接口

ExecutionAdministration ea= Shark.getInstance().getAdminInterface()..getExecutionAdministration();

2) 连接工作流服务器

 ea.connect(username, password, enginename, scope);

3) 用流程实例号获取流程

 WfProcess wfp = ea.getProcess(processInsKey);

4) resume流程

 wfp.resume();

 下面是resume操作的具体分析

 //没有挂起的流程不能resume

 if (!state(t).equals(SharkConstants.STATE_OPEN_NOT_RUNNING_SUSPENDED)) {

 throw new NotSuspended("The process is not suspended");

 }

 //源代码中的说明: if this is a subflow process of suspended activity, and it is executed as SYNCHRONOUS, do not allow process to resume

 WfRequesterInternal requester=getRequester(t);

 if (requester!=null && (requester instanceof WfActivityInternal)) {

 WfActivityInternal waImpl=(WfActivityInternal)requester;

 if (waImpl.state(t).equals(SharkConstants.STATE_OPEN_NOT_RUNNING_SUSPENDED)) {

 // Determine subflow type

 if (XPDLUtilities.isSubflowSynchronous(SharkUtilities.getActivityDefinition(t,waImpl,getProcessDefinition(t)))) {

 SharkEngineManager.getInstance().getCallbackUtilities().error("Process"+toString()+" - Cannot resume because the requester activity is suspended");

 throw new CannotResume("Cannot resume - The requester activity is suspended");

 }

 }

 }

 //改变状态

 change_state(t, SharkConstants.STATE_OPEN_RUNNING);

 //把所有的活动都resume

 Iterator it=getActiveActivities(t).iterator();

 while (it.hasNext()) {

 WfActivityInternal act=(WfActivityInternal)it.next();

if (act.state(t).equals(SharkConstants.STATE_OPEN_NOT_RUNNING_SUSPENDED)) {

 act.resume(t);

 }

 }

5) 断开连接

 ea.disconnect();

版权声明:本文为博主原创文章,未经博主允许不得转载。

shark接口1分析(三)--resume流程

Shark流程resume过程 1) 得到执行管理器接口 ExecutionAdministration ea= Shark.getInstance().getAdminInterface()....
  • techcrunch
  • techcrunch
  • 2008年04月09日 02:02
  • 167

shark接口1分析(二)--suspend流程

  Shark流程挂起过程 1)      得到执行管理器接口 ExecutionAdministration ea= Shark.getInstance().getAdminInterface(...
  • techcrunch
  • techcrunch
  • 2008年04月09日 02:02
  • 179

shark接口1分析(二)--suspend流程

  Shark流程挂起过程 1)      得到执行管理器接口 ExecutionAdministration ea= Shark.getInstance().getAdminInterface()....
  • hongbo781202
  • hongbo781202
  • 2004年06月28日 12:15
  • 3866

开源工作流引擎Shark入门1——安装与配置

    Enhydra Shark是一个开源的工作流引擎框架,使用Java进行开发,遵守LGPL协议。Shark遵守WfMC、OMG规范,以XPDL(XML Process Definition La...
  • tsun7263
  • tsun7263
  • 2009年09月02日 17:32
  • 3467

shark工作流源代码学习(三)

怎么使用Shark 前面写了两篇Shark源代码分析的文章,但有很多同行来信讨论的是怎么使用Shark,所以这篇先用Shark的源代码来讨论怎么使用Shark的问题。 Shark的使用有两种方式:作为...
  • hongbo781202
  • hongbo781202
  • 2004年06月01日 16:08
  • 4555

Jawe工作流建模及Shark工作流引擎的实例说明(三)

Jawe工作流建模及Shark工作流引擎的实例说明http://www.lbfood.com二、下面对刚建好的工作流建模过程进行配置2.1       加载建模文件启动Shark服务及管理端程序,登入...
  • 00081168
  • 00081168
  • 2005年05月26日 22:10
  • 2501

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

  Shark流程启动过程   1)      定位工作流服务器       Shark.configure("Shark.conf");       SharkInterface si= Sha...
  • techcrunch
  • techcrunch
  • 2008年04月09日 02:02
  • 237

Shark流程跳转的设计

本文只是一个笔记,是我在论坛中的回复的原版复制,所以没多大价值。没事干的话可以看看。在Shark中连接两个活动之间的带箭头的线叫做Transition(转移),他有几个关键属性fromActivity...
  • cm4ever
  • cm4ever
  • 2005年12月06日 09:56
  • 2627

shark工作流学习(三)

Shark特征 Shark1.0是一款简洁、实用的完全符合WFMC规范的工作流引擎。它具备以下几个特点: 1   在使用过程中,把流程名字尝试改成中文,但是对流程的驱动有一些影响,表明shark1.0...
  • hongbo781202
  • hongbo781202
  • 2004年05月31日 16:50
  • 4480

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

  Shark流程启动过程   1)      定位工作流服务器       Shark.configure("Shark.conf");       SharkInterface si= Shark...
  • hongbo781202
  • hongbo781202
  • 2004年06月28日 11:04
  • 5603
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shark接口1分析(三)--resume流程
举报原因:
原因补充:

(最多只允许输入30个字)