PLM二开.设计BOM.BOM通过流程归档后,修改人改成最后检入人

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

PLM二开.设计BOM.BOM通过流程归档后,修改人改成最后检入人

【应用场景】

如果通过流程方式归档BOM后,BOM的修改人为归档节点的审批人而非实际的修改人,想要控制流程归档后修改人为醉最后检入人。


【注意事项】

此方案使用PLM二开接口插件模式实现,插件方式请先阅读:

二次开发扩展程序开发之插件模式 (kingdee.com)


【实现步骤】

<1>新增一个组件,实现标准接口IControlStageSwitch,干预EBOM归档时的对象数据。实现代码如下

using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using Kingdee.K3.PLM.CFG.Common.Interface.CategoryStatus;
using Kingdee.K3.PLM.CFG.Common.Interface.EventArgument;
using Kingdee.K3.PLM.CFG.Common.Interface.Switchers;
using Kingdee.K3.PLM.Common.Core.BOSBridge;
using Kingdee.K3.PLM.Common.Core.ServiceHelper;
using System;
using System.Linq;

namespace ISV.StageSwitchDemo.Common.BusinessEntity
{
    [StageSwitcher(CategoryId1 = (long)StandardCategoryType.EBOM, Stage = ControlStage.Archived)]
    public class EBOMArchivedSwitch : IControlStageSwitcher
    {
        public void AfterEnterStatus(PLMContext ctx, DynamicObject obj, ControlStageChangeEventArgs e)
        {
            long lastModifier = 0;
            if (obj.Contains("LastCheckin_Id") && Convert.ToInt64(obj["LastCheckin_Id"]) > 0)
            {
                lastModifier = Convert.ToInt64(obj["LastCheckin_Id"]);
            }
            if (lastModifier > 0 && e.WfActivityInstanc.Count() > 0) //按需根据流程实例信息做业务判断
            {
                obj["ModifierId_Id"] = lastModifier;
            }
        }

        public void AfterLeaveStatus(PLMContext ctx, DynamicObject obj, ControlStageChangeEventArgs e)
        {
            //缺省
        }
    }
}

 

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



【功能验证】

流程审批信息:

归档后对象信息:


【参考资料】

二次开发扩展程序开发之插件模式 (kingdee.com)

PLM二开:扩展程序开发之插件模式中的相关扩展接口说明-阶段转换接口 (kingdee.com)



【金蝶云星空PLM二次开发】

【汇总】星空PLM二开指南(持续更新) (kingdee.com)


PLM二开.设计BOM.BOM通过流程归档后,修改人改成最后检入人

【应用场景】如果通过流程方式归档BOM后,BOM的修改人为归档节点的审批人而非实际的修改人,想要控制流程归档后修改人为醉最后检入人。【注...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息