PLM.二开案例.插件如何调用BOM下推功能
【应用场景】
如果通过插件代码调用标准的BOM下推功能
【注意事项】
本文不涉及下推过程的干预,只演示如何调用标准的下推功能。
BOM下推在多组织和单组织下处理方式稍有不同,请按实际情况开发。
【案例演示】
在BOM批量修改功能中,调用下推功能下推批改的所有BOM。
【实现步骤】
<1>编写表单插件和服务插件,代码如下。
using Kingdee.BOS.Core.DynamicForm; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Orm; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.ServiceHelper; using Kingdee.K3.PLM.Business.PlugIn; using Kingdee.K3.PLM.CFG.Common.BusinessEntity.Manager; using Kingdee.K3.PLM.CFG.Common.BusinessEntity.Metadata; using Kingdee.K3.PLM.Common.BusinessEntity; using Kingdee.K3.PLM.Common.BusinessEntity.Operation; using Kingdee.K3.PLM.Common.Core.Utility; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; namespace ISV.BomPushDown.PlugIn { [Description("调用标准下推示例")] public class BomPushDownDemo: AbstractPLMDynamicFormPlugIn { public override void EntryBarItemClick(BarItemClickEventArgs e) { if (e.BarItemKey.ToUpper() == "TBPUSHDOWN") { var entity = Model.DataObject["BomBulkEditEntity"] as DynamicObjectCollection; //多组织用 --标准下推界面交互 var allBomIds = entity.Select(x => x["BomObject_Id"]).Distinct().ToArray(); DynamicFormShowParameter parameter = new DynamicFormShowParameter(); parameter.FormId = "PLM_CFG_PUSHDOWN"; parameter.PageId = PLMGuid.NewGuidString().ToString(); parameter.ParentPageId = this.View.PageId; parameter.CustomComplexParams.Add("FObjectListId", allBomIds); parameter.CustomComplexParams.Add("OperationCode", "ERPSychronzation"); parameter.OpenStyle.ShowType = ShowType.NonModal; this.View.ShowForm(parameter); //单组织用 -- 直接调下推操作 //理论上多组织可以用(直接默认下推),但是缺少组织维护信息,可能部分业务场景不适用 //var allBomIds = entity.Select(x => Convert.ToInt64(x["BomObject_Id"])).Distinct().ToArray(); //var allBomData = DomainObjectManager.AutoLoad(PLMContext, allBomIds); //var allBomsByCategory = allBomData.GroupBy(x => Convert.ToInt64(x["CategoryId_Id"])).ToDictionary(k => k.Key, V => V.ToArray()); //List<IOperationResult> results = new List<IOperationResult>(); ////不同业务类型不同模型,需要区分开 //foreach (var category in allBomsByCategory.Keys) //{ // var categoryMeta = CategoryMetadataVersionManager.Instance.GetFormMetadata(PLMContext, category, false); // OperateOption option = OperateOption.Create(); // PLMOperationParam param = new PLMOperationParam(); // param.Type = PLMOperationType.Cross; // param.CustomerParams["plm_param_IsCallFormOperation"] = true; // param.CustomerParams["plm_param_PLMContext"] = PLMContext; // option.SetVariableValue("plm_param", param); // results.Add(BusinessDataServiceHelper.DoNothingWithDataEntity(PLMContext.BOSContext, // categoryMeta.BusinessInfo, // allBomsByCategory[category], // "ERPSychronzation", // option)); //} //this.View.ShowOperateResult(OperationResultHelper.MergeResult(results)); } } } }
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展BOM批量修改明细,添加相关按钮,注册表单插件,保存元数据,开发完毕。

【功能验证】

【参考资料】
【汇总】星空PLM二开指南(持续更新) (kingdee.com)
【金蝶云星空BOS二次开发案例演示】
https://vip.kingdee.com/article/94751030918525696
PLM.二开案例.插件如何调用BOM下推功能
【应用场景】如果通过插件代码调用标准的BOM下推功能【注意事项】本文不涉及下推过程的干预,只演示如何调用标准的下推功能。BOM下推在多组...
点击下载文档
本文2024-09-23 03:03:58发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-156464.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf
热门文章