PLM二开案例.BOM升版时将上层BOM一同升版

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

PLM二开案例.BOM升版时将上层BOM一同升版

【应用场景】

设计BOM库中对BOM升版时,携带上层BOM一同升版


【注意事项】

  1. 二开时请注意严格遵循标准校验逻辑,只增不减。如果强行跳过校验可能会导致数据问题!!

  2. 此方案无法设置上层BOM的具体版本或者跳版本,只能升单个版本


【案例演示】

自定义升版操作,并联动上层BOM一同升版


【实现步骤】

<1>新增一个组件和类,引用组件。


<2>新增一个类,继承标准升版服务插件类UpgradeBigVersion。此案例处理升大版,升小版本则需继承UpgradeSmallVersion插件类。

重写GetAutoUpgradeRelatedObject方法,目的为在相关对象列表中加入反查的BOM对象,以此达到一同升版的目的。 同时可以维护提示信息,供升版确认。


编写代码如下:

using Kingdee.K3.PLM.CFG.App.ServicePlugIn.VersionService;
using Kingdee.K3.PLM.CFG.Common.BusinessEntity.Manager;
using Kingdee.K3.PLM.STD.Common.BusinessEntity.Bom;
using System;
using System.Collections.Generic;
using System.ComponentModel;

namespace ISV.DEMO.Common.BussinessEntity
{
    [Description("二开升大版服务插件")]
    public class CustomUpgradeBigVersion: UpgradeBigVersion
    {
        public override void GetAutoUpgradeRelatedObject(Kingdee.K3.PLM.Common.Core.BOSBridge.PLMContext context, Kingdee.BOS.Orm.DataEntity.DynamicObject upgradeObj, Kingdee.K3.PLM.Common.BusinessEntity.PLMOperationParam param, ref List<Kingdee.BOS.Orm.DataEntity.DynamicObject> updateReObjList, ref string errorMsg)
        {
            base.GetAutoUpgradeRelatedObject(context, upgradeObj, param, ref updateReObjList, ref errorMsg);//标准逻辑先走

            var parentBomIds = BomManager.Instance.GetAncestorBomIds(context, Convert.ToInt64(upgradeObj["id"])); //反查BOM对象
            var bomObjs = DomainObjectManager.AutoLoad(context, parentBomIds);
            string validateMessage = null;
            foreach(var obj in bomObjs)
            {
                if (CheckUpgradeVersionRule(context, obj, param, out validateMessage)) //必须使用标准校验,强行升版可能导致数据问题
                {
                    updateReObjList.Add(obj);
                    errorMsg += string.Format("{0}上层BOM({1})会一同升版。", Environment.NewLine, obj["Code"], validateMessage); // errorMsg会以提示的方式供用户确认,按自身需求
                }
                else
                {
                    //不符合校验的对象可以做提示。
                    errorMsg += string.Format("{0}上层BOM({1})无法升版:{2}", Environment.NewLine, obj["Code"], validateMessage);
                }
            }

        }
    }

}


<3>编译后将组件放至服务器\bin目录下。 重启IIS后登录系统。

<4>在PLM操作列表上注册此操作,并在业务类型BOM上配置对应的操作


<5>更新模型后, 在业务类型授予对应的权限,即可去系统验证功能。



【金蝶云星空BOS二次开发案例演示】

https://vip.kingdee.com/article/94751030918525696


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

https://vip.kingdee.com/article/329914697153905408?productLineId=1&isKnowledge=2


PLM二开案例.BOM升版时将上层BOM一同升版

【应用场景】设计BOM库中对BOM升版时,携带上层BOM一同升版【注意事项】二开时请注意严格遵循标准校验逻辑,只增不减。如果强行跳过校验可...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息