/// <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(); } }