示例#1
0
 /// <summary>节点实例监听器</summary>
 public override void onNodeInstanceEventFired(NodeInstanceEvent e)
 {
     //同步器节点的监听器触发条件,是在离开这个节点的时候
     if (e.EventType == NodeInstanceEventEnum.NODEINSTANCE_LEAVING)
     {
         ISynchronizerInstance syncInst           = (ISynchronizerInstance)e.getSource();
         IPersistenceService   persistenceService = this.RuntimeContext.PersistenceService;
         //删除同步器节点的token
         persistenceService.DeleteTokensForNode(e.Token.ProcessInstanceId, syncInst.Synchronizer.Id);
     }
     //如果节点实例结束,就触发
     if (e.EventType == NodeInstanceEventEnum.NODEINSTANCE_COMPLETED)
     {
         // 执行ProcessInstance的complete操作
         IToken          tk = e.Token;
         ProcessInstance currentProcessInstance = (ProcessInstance)tk.ProcessInstance;
         currentProcessInstance.complete();
     }
 }