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

来源:互联网 发布:网络电商平台介绍 编辑:程序博客网 时间:2024/05/17 03:16

 

Shark流程挂起过程

1)      得到执行管理器接口

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

2)    连接工作流服务器

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

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

   WfProcess wfp = ea.getProcess(processInsKey);

4) 挂起流程

   wfp.suspend();

    下面是挂起操作的具体分析

    //状态不能是已经挂起

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

         throw new AlreadySuspended("The process is already suspended");

      }

    //运行中的流程才能挂起

      if (state(t).startsWith(SharkConstants.STATEPREFIX_OPEN_NOT_RUNNING)) {

         throw new NotRunning("The process is not in the running state");

      }

      try {

    //改变状态

         change_state(t,SharkConstants.STATE_OPEN_NOT_RUNNING_SUSPENDED);

 

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

         while (it.hasNext()) {

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

    //对每个活动都做同样的操作

            if (act.state(t).startsWith(SharkConstants.STATEPREFIX_OPEN)) {

               act.suspend(t);

            }

         }

      }

5) 断开连接

   ea.disconnect();




原创粉丝点击