电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

二开案例.业务流.实现上下游关联

来源:金蝶云社区作者:金蝶2024-09-2311

二开案例.业务流.实现上下游关联

**【应用场景】** 一般的业务单据指定了link实体,如果下推的时候跟link无关,则无法关联。本案例则是先有下游单据,如何跟已有的上游单据进行关联。 **【案例演示】** ``` csharp <1>编写列表插件,代码如下。 using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Util; using System; using System.ComponentModel; using System.Linq; namespace Kingdee.BOS.PlugInTest { /// <summary> /// 【服务插件】二开创建关联关系 /// </summary> [Description("【服务插件】二开创建关联关系"), HotUpdate] public class CreateLink : AbstractOperationServicePlugIn { /// <summary> /// 执行操作事务前事件(事务外) /// </summary> /// <param name="e"></param> public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) { base.BeforeExecuteOperationTransaction(e); // 没有通过校验的数据,则跳过 if (e.SelectedRows == null || e.SelectedRows.Count() == 0) return; var form = this.BusinessInfo.GetForm(); if (form == null) return; var linkSets = this.BusinessInfo.GetForm().LinkSet; if (linkSets == null || linkSets.LinkEntitys == null || linkSets.LinkEntitys.Count == 0) return; // 单据关联配置 var linkEntity = linkSets.LinkEntitys[0]; // 关联的单据体实体 var entity = this.BusinessInfo.GetEntity(linkEntity.ParentEntityKey); // 关联实体 var linkEntry = this.BusinessInfo.GetEntity(linkEntity.Key); foreach (var data in e.SelectedRows) { if (data.DataEntity.Contains(entity.EntryName)) { DynamicObjectCollection entityDatas = data.DataEntity[entity.EntryName] as DynamicObjectCollection; if (entityDatas == null || entityDatas.Count == 0) continue; foreach (var entityData in entityDatas) { if (entityData.DynamicObjectType.Properties.ContainsKey(linkEntity.Key)) { var linkObj = new DynamicObject(linkEntry.DynamicObjectType); bool createFlag = false; DynamicObjectCollection linkDatas = entityData[linkEntity.Key] as DynamicObjectCollection; if (linkDatas == null || linkDatas.Count == 0) { createFlag = true; } else { // 检查是否有对应的关联关系 var linkData = linkDatas.FirstOrDefault(x => "36afc0f8-0baf-4183-a813-0a6f9c7b52b9".EqualsIgnoreCase(x["RuleId"].ToString()) && "T_PUR_ReqEntry".EqualsIgnoreCase(x["STableName"].ToString()) && 213784 == Convert.ToInt64(x["SBillId"]) && 216478 == Convert.ToInt64(

二开案例.业务流.实现上下游关联

**【应用场景】** 一般的业务单据指定了link实体,如果下推的时候跟link无关,则无法关联。本案例则是先有下游单据,如何跟已有的上游...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信