Ejemplo n.º 1
0
        /// <summary>
        /// 自动完成结束节点
        /// </summary>
        /// <param name="processInstance"></param>
        /// <param name="fromActivityInstance"></param>
        /// <param name="activityResource"></param>
        /// <param name="wfLinqDataContext"></param>
        public GatewayExecutedResult CompleteAutomaticlly(ProcessInstanceEntity processInstance,
                                                          TransitionEntity fromToTransition,
                                                          ActivityInstanceEntity fromActivityInstance,
                                                          ActivityResource activityResource,
                                                          ISession session)
        {
            GatewayExecutedResult result = null;
            var toActivityInstance       = base.CreateActivityInstanceObject(processInstance, activityResource.LogonUser);

            base.InsertActivityInstance(toActivityInstance,
                                        session);

            base.CompleteActivityInstance(toActivityInstance.ActivityInstanceGUID,
                                          activityResource,
                                          session);

            //写节点转移实例数据
            base.InsertTransitionInstance(processInstance,
                                          fromToTransition,
                                          fromActivityInstance,
                                          toActivityInstance,
                                          TransitionTypeEnum.Forward,
                                          activityResource.LogonUser,
                                          session);

            //设置流程完成
            ProcessInstanceManager pim = new ProcessInstanceManager();

            pim.Complete(processInstance.ProcessInstanceGUID, activityResource.LogonUser, session);

            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 节点内部业务逻辑执行
        /// </summary>
        internal override void ExecuteWorkItem()
        {
            //执行前Action列表
            OnBeforeExecuteWorkItem();

            //设置流程完成
            ProcessInstanceManager pim = new ProcessInstanceManager();
            var processInstance        = pim.Complete(ActivityForwardContext.ProcessInstance.ID,
                                                      ActivityForwardContext.ActivityResource.AppRunner,
                                                      Session);

            //如果当前流程是子流程,则子流程完成,主流程流转到下一节点
            if (pim.IsSubProcess(processInstance) == true)
            {
                ContinueMainProcessRunning(processInstance, this.Session);
            }

            //执行后Action列表
            OnAfterExecuteWorkItem();

            //调用流程结束事件
            DelegateExecutor.InvokeExternalDelegate(Session,
                                                    EventFireTypeEnum.OnProcessCompleted,
                                                    ActivityForwardContext.ActivityResource.AppRunner.DelegateEventList,
                                                    ActivityForwardContext.ProcessInstance.ID);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 自动完成结束节点
        /// </summary>
        /// <param name="processInstance"></param>
        /// <param name="fromActivityInstance"></param>
        /// <param name="activityResource"></param>
        /// <param name="wfLinqDataContext"></param>
        public GatewayExecutedResult CompleteAutomaticlly(ProcessInstanceEntity processInstance,
                                                          string transitionGUID,
                                                          ActivityInstanceEntity fromActivityInstance,
                                                          ActivityResource activityResource,
                                                          IDbSession session)
        {
            GatewayExecutedResult result = null;
            var toActivityInstance       = base.CreateActivityInstanceObject(base.Linker.ToActivity,
                                                                             processInstance, activityResource.AppRunner);

            base.ActivityInstanceManager.Insert(toActivityInstance, session);

            base.ActivityInstanceManager.Complete(toActivityInstance.ID,
                                                  activityResource.AppRunner,
                                                  session);

            //写节点转移实例数据
            base.InsertTransitionInstance(processInstance,
                                          transitionGUID,
                                          fromActivityInstance,
                                          toActivityInstance,
                                          TransitionTypeEnum.Forward,
                                          TransitionFlyingTypeEnum.NotFlying,
                                          activityResource.AppRunner,
                                          session);

            //设置流程完成
            ProcessInstanceManager pim = new ProcessInstanceManager();

            pim.Complete(processInstance.ID, activityResource.AppRunner, session);

            //发送流程结束消息给流程启动人

            return(result);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 节点内部业务逻辑执行
        /// </summary>
        internal override void ExecuteWorkItem()
        {
            //设置流程完成
            ProcessInstanceManager pim = new ProcessInstanceManager();

            pim.Complete(ActivityForwardContext.ProcessInstance.ID,
                         ActivityForwardContext.ActivityResource.AppRunner,
                         Session);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 节点内部业务逻辑执行
        /// </summary>
        internal override void ExecuteWorkItem()
        {
            //执行Action列表
            //ExecteActionList(Linker.ToActivity.ActionList,
            //    ActivityForwardContext.ActivityResource.AppRunner.ActionMethodParameters);

            //设置流程完成
            ProcessInstanceManager pim = new ProcessInstanceManager(_serviceProvider);

            pim.Complete(ActivityForwardContext.ProcessInstance.Fid, AppRunner.BillUid);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 节点内部业务逻辑执行
        /// </summary>
        internal override void ExecuteWorkItem()
        {
            //执行Action列表
            ExecteActionList(Linker.ToActivity.ActionList,
                             ActivityForwardContext.ActivityResource.AppRunner.ActionMethodParameters);

            //设置流程完成
            ProcessInstanceManager pim = new ProcessInstanceManager();

            pim.Complete(ActivityForwardContext.ProcessInstance.ID,
                         ActivityForwardContext.ActivityResource.AppRunner,
                         Session);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 节点内部业务逻辑执行
        /// </summary>
        internal override void ExecuteWorkItem()
        {
            //执行前Action列表
            OnBeforeExecuteWorkItem();

            //设置流程完成
            ProcessInstanceManager pim = new ProcessInstanceManager();
            var processInstance        = pim.Complete(ActivityForwardContext.ProcessInstance.ID,
                                                      ActivityForwardContext.ActivityResource.AppRunner,
                                                      Session);

            //如果当前流程是子流程,则子流程完成,主流程流转到下一节点
            if (pim.IsSubProcess(processInstance) == true)
            {
                ContinueMainProcessRunning(processInstance, this.Session);
            }

            //执行后Action列表
            OnAfterExecuteWorkItem();
        }