按生产订单获取材料预留

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

按生产订单获取材料预留

# 如何按生产订单获取材料预留 ## 本文解决的问题 通过生产订单分录获取获取该订单的所有的材料预留关系 ## 需要自行了解的前置知识点 1. 熟悉C#编程,环境版本:.net framework 4.0 2. 熟悉金蝶云星空BOS二次开发流程(开发表单插件,开发操作插件) 3. 生产订单与生产用料清单的逻辑结构 4. 预留关系的逻辑数据结构 ## 问题解决步骤 1.根据生产订单获取对应的用料清单分录集合 2.根据用料清单分录集合构造预留查询参数 3.调用计划模块的预留查询服务 ## 根据生产订单获取对应的用料清单分录集合 ```SQL --参考取数sql -- FMOENTRYID 生产订单分录内码 -- FPPBOMID 用料清单内码 -- FPPBOMENTRYID 用料清单分录内码 -- FMATERIALID 生产订单的生产组织下材料物料的内码,可以额外添加物料表的链接获取对应的物料编码 SELECT T1.FENTRYID AS FMOENTRYID,T2.FID AS FPPBOMID,T3.FENTRYID AS FPPBOMENTRYID,T3.FMATERIALID FROM T_PRD_MOENTRY T1 INNER JOIN T_PRD_PPBOM T2 ON T1.FENTRYID = T2.FMOENTRYID INNER JOIN T_PRD_PPBOMENTRY T3 ON T2.FID = T3.FID ``` ## 根据用料清单分录集合构造预留查询参数 ### 预留查询参数解析 ```csharp //参考代码 List<OriBillInfo> oriBillInfos = new List<OriBillInfo>(); DynamicObjectCollection ppbomlEntrys = GetPPBomEntryDatas();//获取用料清单数据包 foreach (var ppbomEntry in ppbomlEntrys) { OriBillInfo oriBillInfo = new OriBillInfo(MFGFormIdConst.SubSys_PRD.PPBOMBill, ppbomEntry ["FPPBomId"].ToString(), ppbomEntry["FPPBomEntryId"].ToString()); oriBillInfos.Add(oriBillInfo); } IReserveLinkQueryService reserveLinkQueryService = AppServiceContext.GetService<IReserveLinkQueryService>(); DynamicObject[] reserveDatas = reserveLinkQueryService.GetReserveLinkByType(this.Context, oriBillInfos, Enums.PLN_ReserveModel.Enu_ReserveQueryType.KdDemand); ``` #### 参数类OriBillInfo 源单信息参数,构造函数包含3个参数定义 1. **billFormId**:源单的业务对象标识码(BOSIDE可查),这里是生产用料清单,为PRD_PPBOM 2. **billInterId**:源单的单据头内码,样例里是用料清单表头的内码 3. **billEntryId**:源单分录内码,用于查询预留关系所属的分录数据的实体内码,预留关系建在什么实体数据上,就取什么实体数据的内码,比如生产订单的材料预留挂在上用料清单分录上,就取用料清单分录内码。 #### 预留查询服务IReserveLinkQueryService 1. 需引用Kingdee.K3.MFG.App.dll,Kingdee.K3.MFG.Contracts.dll 2. 推荐调用AppServiceContext静态类获取接口实例 #### 接口方法GetReserveLinkByType 用于批量获取预留数据包,包含3个入口参数定义 1. **Context**:上下文 2. **List<OriBillInfo>**:源单信息参数集合 3. **Enums.PLN_ReserveModel.Enu_ReserveQueryType**:查询的预留类型: - Enums.PLN_ReserveModel.Enu_ReserveQueryType.KdDemand:源单信息集合作为预留关系的需求方获取 - Enums.PLN_ReserveModel.Enu_ReserveQueryType.KdSupply:源单作为预留关系的供应单据获取。(如果需要查询的是采购订单被什么需求单预留的,那么OriBillInfo应该以采购订单单据标识,采购订单内码和采购订单分录内码作为构造参数) #### 返回结果集合reserveDatas 元素类型:DynamicObject,对应的业务对象为**PLN_RESERVELINK**,自行在BOS设计器使用查找功能进行查询 ![Image_20210903144904.webp](/download/0100589d0a9df4bd4e2cbd7103b4ecb83dce.webp) 逻辑结构:表头为预留的需求信息,包含源单的单据标识,内码,分录内码,需求数量等,具体业务定义在BOS设计器中自行参考。表体为预留的供应信息,包含该预留关系中所有参与供应的单据以及供应数量。供应数量只有基本单位统计,有业务单位数量转换是需求请自行处理。(相关知识点:获取单位换算率)

按生产订单获取材料预留

# 如何按生产订单获取材料预留## 本文解决的问题通过生产订单分录获取获取该订单的所有的材料预留关系## 需要自行了解的前置知识点1. ...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息