二开案例.工作流扩展插件.捕获流程驳回事件

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.工作流扩展插件.捕获流程驳回事件

【应用场景】

捕获流程驳回事件的发生。

上传图片



【案例演示】

二开捕获采购订单的流程驳回事件。



【实现步骤】

<1>编写工作流服务插件,代码如下。


using Kingdee.BOS.App.Data;
using Kingdee.BOS.Log;
using Kingdee.BOS.Util;
using Kingdee.BOS.Workflow.App.Core.PlugIn;
using Kingdee.BOS.Workflow.Models.EnumStatus;
using System;
using System.ComponentModel;
using System.Linq;
namespace Jac.XkDemo.BOS.App.PlugIn
{
    [Description("工作流扩展插件-捕获流程驳回事件"), HotUpdate]
    public class TestWorkflowExtPlugIn : AbstractWorkflowExtPlugIn
    {
        public override void OnAssignUpdate(AssignUpdateEventArgs e)
        {
            base.OnAssignUpdate(e);
            var assignId = e.AssignIds.FirstOrDefault();
            if (assignId.IsEmpty())
            {
                return;
            }
            if (e.AssignStatus == AssignStatus.Completed)
            {
                // 检查当前待办任务是否被驳回
                var sql = string.Format(@"SELECT TOP 1 d.FOBJECTTYPEID ,
        d.FKEYVALUE
FROM    T_WF_ASSIGN a
        JOIN T_WF_APPROVALASSIGN b ON a.FASSIGNID = b.FASSIGNID
        JOIN T_WF_APPROVALITEM c ON b.FAPPROVALASSIGNID = c.FAPPROVALASSIGNID
        JOIN T_WF_PIBIMAP d ON a.FPROCINSTID = d.FPROCINSTID
WHERE   a.FASSIGNID = '{0}'
        AND c.FACTIONRESULTTYPE = 2
ORDER BY c.FCOMPLETEDTIME DESC", assignId);
                var objs = DBUtils.ExecuteDynamicObject(this.Context, sql);
                if (objs.Count > 0)
                {
                    // 当前操作是驳回
                    // TODO
                    var objectTypeId = objs[0][0].ToString();
                    if (objectTypeId == "PUR_PurchaseOrder")
                    {
                        // 采购订单的流程被驳回
                        var ex = new Exception("Assign was rejected:" + assignId);
                        Logger.Error("WorkflowExtPlugIn", ex.Message, ex);
                    }
                }
            }
        }
    }
}


<2>使用管理员账号登录系统,打开参数设置,注册工作流扩展插件。

上传图片


<3>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。


---------------------------------------------------------------------------------------------------------

【参考资料】

【工作流支持通过插件监控待办任务完成状态】https://vip.kingdee.com/article/534734051500997376

【工作流支持通过插件监控流程状态:终止,完成,挂起等】https://vip.kingdee.com/article/534656965310289152




---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696


二开案例.工作流扩展插件.捕获流程驳回事件

【应用场景】捕获流程驳回事件的发生。【案例演示】二开捕获采购订单的流程驳回事件。【实现步骤】<1>编写工作流服务插件,代码如下。using...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息