K/3 WISE 中MRP计算投放过程中 销售订单自定义字段怎么携带到任务单

栏目:k3wise知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

K/3 WISE 中MRP计算投放过程中 销售订单自定义字段怎么携带到任务单

背景:K/3 WISE制造系统中,MRP计算 投放时不支持销售订单的自定义字段携带到任务单中,这个问题可以按照下面步骤进行二开进行实现

  1. 首先为了简便起见,我们先以销售订单上的系统字段携带为例,假设我们现在需要将销售订单的表头“客户”字段和表头“备注”字段,携带到任务单上。

  2. 我们需要单据自定义的界面上对任务单新增需要携带的目的字段。


    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计算投放过程中 销售订单自定义字段怎么携带到任务单

背景:K/3 WISE制造系统中,MRP计算 投放时不支持销售订单的自定义字段携带到任务单中,这个问题可以按照下面步骤进行二开进行实现首先为...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息