应用场景:BOM反审核权限关闭,只能通过工程变更实现BOM的修改,有些公司需要对自制件进行灵活生产(如组件不足,又不想走组件工单装配入库,需要将组件维护成跳层,投料时自动分解到下级物料,省去了将组件入库的步骤),需要计划根据实际情况去调整物料BOM的跳层属性,现开发一个单独的控制开关,用于计划在已审核的BOM单更改BOM的跳层属性。
实现方式:在BOM维护打开需要调整的BOM单,在左上角加了一个BOM跳层开关,如果需要跳层,就输入Y后保存,就可以改成跳层;如果需要取消跳层,不用输入任何数据,直接点保存即可。系统后台通过判断输入值去执行反写动作,以实现跳层属性的修改。
开发步骤如下:
1、使用BOS集成开发工具在BOM单表头增加一个字段,设置成审核后可修改,显示可见性的话只勾选审核可见,其余页面不可见,避免其他操作影响该字段;
2、在数据库icbom中增加一个触发器,语句见跳层触发器SQL:
USE [AIS20140104204141]--数据库名称
GO
/****** 对象: Trigger [dbo].[TR_BOM_tiaoceng] 脚本日期: 09/14/2017 19:45:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create TRIGGER [dbo].[TR_BOM_tiaoceng] ON [dbo].[ICBOM]
INSTEAD OF UPDATE
AS
BEGIN
BEGIN TRANSACTION
SET NOCOUNT ON
BEGIN
UPDATE t1 set t1.fbomskip = (case when t2.fheadselfz0134='Y' then 1058 else 1059 end) from--fheadselfz0134为BOM表头新增的跳层开关字段
icbom t1
INNER JOIN Inserted t2 ON t1.FInterID=t2.FInterID
END
IF (@@error <> 0)
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
END
3、验证:打开一张审核的BOM单,输入Y保存,退出后重新打开BOM,可以发现跳层属性已经更改为是。
附上金蝶对于跳层属性的解释:
(1)在BOM中设置跳层后,生产任务单确认后生成投料单时,直接展开到跳层的物料的子项,碰到自制件如果不跳层就不再往下展开。生产领料时直接领用下级最明细的物料。
(2)生产任务单生成下级生产任务单时,遇到自制件或委外件如果不跳层,且有需求数量则会生成下级生产任务单,如果跳层则不生成下级生产任务单。
(3)模拟发料时,设置为跳层的物料在模拟发料表中直接显示其子项的数据。
(4)非虚拟件的物料进行MPS/MRP运算时,如果跳层BOM的物料是独立需求,MPS/MRP运算后,生成计划订单并且计划订单可以投放生产任务单;如果跳层BOM的物料是相关需求,MPS/MRP运算后,不生成计划订单;虚拟件的物料不管是独立需求还是相关需求,都只会产生子项的计划订单。