开发案例分享-单据转换之生产入库单只下推合格产品
一、问题描述:
如下图,标准系统如果检验单有不合格产品时,生产订单下推生产入库单会拆单成两行,一行为合格品一行为不合格品
二、解决方法:如果想实现只下推合格产品可通过单据转换插件进行处理
2.1、插件代码如下:
using Kingdee.BOS.Core;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.K3.MFG.App.ConvertPlugIn;
using Kingdee.K3.Core.MFG.EntityHelper;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Kingdee.K3.Core.MFG.EnumConst;
using System.ComponentModel;
using Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args;
namespace Dave.ConvertDemo.ServicePlugIn
{
/// <summary>
/// 按顺序输出单据转换-下推过程的插件事件
/// </summary>
[Kingdee.BOS.Util.HotUpdate]
[Description("生产入库单只下推合格的数据行插件")]
public class Mo2InstockConvert : BaseBillConvertServicePlugIn
{
public override void AfterConvert(AfterConvertEventArgs e)
{
base.AfterConvert(e);
ExtendedDataEntity[] objs = e.Result.FindByEntityKey("FBillHead"); //获取单据数据包 FBillHead是单据头标知
foreach (ExtendedDataEntity obj in objs)
{
//找到生产入库单的表体数据
DynamicObjectCollection entryDatas = obj.DataEntity.GetDynamicValue<DynamicObjectCollection>(CONST_PRD_INSTOCK.CONST_FEntity.ENTITY_ORM_Entity);
List<DynamicObject> wEntryDatas = entryDatas.Where(w => w.GetDynamicValue<string>(CONST_PRD_INSTOCK.CONST_FEntity.ORM_InStockType) != "1").ToList();//找到入库单表体分录入库类型不是合格品入库数据
foreach (DynamicObject entryData in wEntryDatas)
{
//循环移除掉
entryDatas.Remove(entryData);
}
}
}
}
}
2.2、将插件注册到单据转换中:
2.3、启用单据转换规则:
2.4、实现效果:
请问下这是什么原因导致的?
开发案例分享-单据转换之生产入库单只下推合格产品
本文2024-09-16 17:20:35发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-15087.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