生产齐套分析二次开发下推调拨单/生产领料单
齐套分析单二开下推直接调拨单
问题背景:齐套分析单的调拨业务是金蝶云星空/生产制造的一个业务场景,旨在完成生产订单齐套分析场景之后,自动对接生产订单中调拨材料的调拨流程。由于齐套分析单与直接调拨单的上游单据生产用料清单并没有直接的上下有关系,这是一个通过冗余上游数据进行代码下推指定单据的实现案例。
生产模块对接直接调拨单的相关单据上下游关系图
实现概要
获取齐套分析子项明细
齐套分析单子项明细为生产齐套分析单经过齐套分析生成的运算结果数据。由于生产齐套分析单并没有控制参与分析的订单数量,单次生成的运算结果会超出树形单据体的承载能力。为了降低生产齐套分析单的单据加载速度,以及提供更为便捷的子项明细过滤查询功能,齐套分析子项明细被设计为独立的单据类数据,通过FID与生产齐套分析单进行关联。仅在生产齐套分析单的单据插件/操作插件内获取数据包并不会包含子项明细的数据,需要通过分析单的单据头内码进行二次取数才能取到分析后的子项明细数据。
QueryBuilderParemeter qp = new QueryBuilderParemeter
{
FormId = "PRD_MATCHDETAIL",
SelectItems = SelectorItemInfo.CreateItems(
"FPPBomEntryId",
"FPPBomId",
"FBaseWillTransQty",
"FWillTransQty"),
FilterClauseWihtKey = "FID=@maid and FBaseWillTransQty > 0",
};
qp.ExtJoinTables.Add(new ExtJoinTableDescription
{
TableName = StringUtils.GetSqlWithCardinality(moids.Count, "@moids", 1, true),
TableNameAs = "ts",
FieldName = "FID",
ScourceKey = "FMoIdSub"});
List<SqlParam> p = new List<SqlParam>{
new SqlParam("@moids",KDDbType.udt_inttable,moids.ToArray()),
new SqlParam("@maid",KDDbType.Int64,maid)
};
var ret = AppServiceContext.QueryService.GetDynamicObjectCollection(ctx, qp, p);
构造用料清单单据选择集合
齐套分析单子项明细存在用料清单内码的冗余FPPBOMID,FPPBOMENTRYID,通过获取相应的齐套分析单子项明细可以关联获取到对应的用料清单子项,以及构造用料清单的选单集合(List<ListSelectedRow>)。
转换插件干预下推结果的生成
这点参考已有的文章:使用代码实现单据下推
参考案例
条件允许的话,详细实现可以通过反编译标准组件Kingdee.K3.MFG.PRD.App.Core.dll阅读源码,对应实现类:Kingdee.K3.MFG.PRD.App.Core.Preparation.Match.PushTranferDirect.TransferDirectBuilder
生产模块对接生产领料单的相关单据上下游关系图
实现概要
获取齐套分析子项明细
与下推直接调拨单实现雷同,区别于下推填充的数量为本次领料数,本文不再赘述。
生产齐套分析二次开发下推调拨单/生产领料单
本文2024-09-23 03:23:12发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-158526.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