K/3 WISE 中MRP计算投放过程中 销售订单自定义字段怎么携带到任务单
背景:K/3 WISE制造系统中,MRP计算 投放时不支持销售订单的自定义字段携带到任务单中,这个问题可以按照下面步骤进行二开进行实现
首先为了简便起见,我们先以销售订单上的系统字段携带为例,假设我们现在需要将销售订单的表头“客户”字段和表头“备注”字段,携带到任务单上。
我们需要单据自定义的界面上对任务单新增需要携带的目的字段。
3.然后分别确认这两个字段的携带关系,并在修改后保存退出单据自定义的界面
客户字段属性如下:
备注字段属性如下:
4.现在来真正处理MRP携带的问题,因为MRP计算的算法是在代码中写死的字段,因此我们必须通过新增触发器来解决携带的问题。当然我们不能直接往任务单的ICMO表中添加触发器,原因是:1:ICMO表中的触发器在MRP计算过程中会被屏蔽 。2:任务单中增加触发器会在普通业务中产生一定的性能问题。 所以我们必须通过其他表来完成此操作,MRP计算后的投放过程中会往ICMrpDestBills表写数据,因此我们可以给ICMrpDestBills表增加一个触发器来达到目的,具体的触发器SQL可以查看本文最后的样例代码。
5.如果想生产任务单套打也能打印出这两个字段,那么请修改生产任务单套打文件,增加这两个字段,至此,一个简单的触发器就可以解决销售订单的系统字段在MRP投放中携带到任务单上的自定义字段了。同样的原理,如果销售订单上的自定义字段需要在MRP投放中携带到任务单上的自定义字段的话,只需要将第三步的属性和第四步的SQL中将来源字段修改为客户自定义字段即可。同样的投放时,任务单携带产品预测单信息以及MPS订单自定义携带到MRP订单也可以按上面的方法实现。
--触发器样例:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
IF EXISTS(select * from sysobjects where name='ICMrpDestBills_Insert_SynFields' and type='TR')
Drop TRIGGER ICMrpDestBills_Insert_SynFields
GO
CREATE TRIGGER [ICMrpDestBills_Insert_SynFields] ON [dbo].[ICMrpDestBills]
FOR INSERT
AS
update v1
set v1.FHeadSelfJ0158 = u2.FBillNo -- FHeadSelfJ0160 产品预测单号
, v1.FHeadSelfJ0159 = u4.FName -- FHeadSelfJ0161 产品预测单表体物料名称
from ICMO v1
left join ICMrpDestBills u1 on v1.FInterID = u1.FDestBillInterID
left outer join PPOrder u2 on v1.FPPOrderInterID = u2.FInterID --产品预测单表头
left outer join PPOrderEntry u3 on u2.FInterID = u3.FInterID --产品预测单表体
left outer join T_ICItem u4 on u3.FItemID = u4.FItemID
where u1.FTranType in (54,85) and u3.FEntryID = v1.FSourceEntryID
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
--MPS订单自定义携带到MRP订单样例:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
IF EXISTS(select * from sysobjects where name='ICMRPResult_Insert' and type='TR')
Drop TRIGGER ICMRPResult_Insert
GO
CREATE TRIGGER [ICMRPResult_Insert] ON [dbo].[ICMRPResult]
FOR INSERT
AS
update v1
set v1.FHeadSelfJ0538 = T3.FHeadSelfJ0538
from ICMRPResult v1
inner join inserted u1 on u1.FInterID = V1.FInterID
inner join (SELECT T1.FInterID,T1.FHeadSelfJ0538 FROM ICMRPResult t1
INNER JOIN inserted T2 ON T2.FSrcPlanOrderInterID = T1.FInterID) T3
ON V1.FSrcPlanOrderInterID = T3.FInterID
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
K/3 WISE 中MRP计算投放过程中 销售订单自定义字段怎么携带到任务单
本文2024-09-22 16:39:31发表“k3wise知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3wise-89353.html