admin 管理员组

文章数量: 1086019


2024年3月27日发(作者:remove用法及搭配)

BOM是MRP计算、生产投料、成本计算等所需的重要的基础资料,产品的BOM

建立的是否正确决定了在计划、生产、成本业务中输出数据的准确性,企业在建

立了物料的基础资料后,就需要建立物料的BOM,这里暂且不谈如何构建BOM的

层次,在一切具备的情况下,然而在建立BOM的过程中,往往由于人的因素,或

者物料数据量极大的影响,产品的BOM出现遗漏的情况,对于这些情况,如何查

缺补漏呢?

一、普通检查规则

在金蝶K/3 产品中,系统提供了BOM的完整性检查,其检查内容主要包括:

1、非生产规划类物料下不允许有生产规划或配置类子项物料;

2、非配置类物料下级不允许存在特征类物料;

3、规划类和特征类的同级子项的百分比之和是否大于100%;

4、子项物料录入的提前期偏置数值为正时不得大于其父项物料的提前期;

5、非生产规划类物料的子项类型不能是特征件;

6、物料的生效日期不能大于失效日期;

7、物料检查时对禁用物料进行检查,不允许存在禁用物料;

7、配置类、规划类物料的有效层次是也只能是为0层;

8、发料仓库必须在仓库相关数据表中存在;

9、外购件(即物料属性为外购的物料)不允许有BOM存在;

10、非外购件(即物料属性为自制、委外加工、虚拟件、规划类、配置类、

特征类的物料)必须有一个呈使用状态的BOM存在。

根据以上检查规则,不难看出,BOM完整性检查主要是检查BOM表中的字段

是否符合规则,以及非外购件是否存在使用状态的BOM,用户如果需要对BOM数

据进行以上规则的检查,则利用BOM的完整性检查即可。

二、按产品检查BOM是否存在

除了上述的检查规则,企业还会存在一种普遍的完整性检查需求,即:能否

检查某个产品的所有半成品、零部件都已经建立BOM。这个需求对于多品种、设

计型、订单型的企业很普遍,产品的多样性决定了需要经常建立BOM,如果其半

成品、零部件的BOM不完整,等到计划、生产、成本环节发现问题,则带来的影

响和成本就高了。

当然,系统不能检查产品、半成品、零部件的BOM是否正确,这个需要人为

检查,但是系统需要提示用户哪些非外购件还没有建立BOM,这时候金蝶K/3 的

BOM多级展开、综合展开、树型查看就派上用场了,可以根据产品层次从高到低

检查物料是否正确,综合数量是否正确,如果非外购物料展开嘎然而止,说明该

物料的BOM没有建立,具体功能介绍就不提了。

此需求再深入一步,客户往往会觉得物料数量不多的时候,利用BOM多级展

开、综合展开、树型查看可以检查,但是产品的子项物料数量达到百量级时,就

要眼花手软了。

1.

首先还是利用BOM多级展开,先将欲检查的产品的多级展开结果进

行引出,示例如下:

物料属

层次

.1

子项物料代码

物料名称

规格型号

自制

1.01.100-0066-000

气缸盖总成

..2

...3

..2

.1

..2

...3

..2

..2

..2

1.01.100-0096-000

阀体

1.01.649-0135-000

1.01.649-0132-000

方螺母2

1.01.100-0067-000

制动器组

1.01.312-0005-000

接板

1.03.0001

钢板 45#

45#

45#

1

45#/镀锌钝化(白

色)

SUS 304

自制

外购

外购

自制

自制

外购

外购

外购

1.01.638-0123-000

调节螺母

1.01.638-0132-020

右侧板

1.01.659-1052-000

锁紧螺杆

LY12/整体本色氧化

外购

2.

在多级展开的结果中,可以发现其中的规律:如果物料存在子项物料,

则其子项物料位于该物料之后,且层次是父项物料的层次+1,即:如

果物料所在行的层次如果小于下一行物料的层次,则说明该物料存在

BOM;

3.

利用Excel强大的公式定义功能,附加一列,把上述规律用公式表达

出来,公式为:

=IF(REPLACE(A7,1,LEN(A7)-1," ")小于 REPLACE

(INDEX($A$7:$A$1000,ROW(A7)-5,COLUMN(A7),1),1,LEN(INDEX($A$7:$

A$1000,ROW(A7)-5,COLUMN(A7),1))-1," "),"t","f")

公式说明:(公式中的汉字“小于”要换成符号,公式粘贴显示不出来小于符号)

(1)

如果是多级展开引出的结果,且行记录在1000行以内,可以直接拷

贝该公式;

(2)

需要根据excel替换的变量为:A7(代表第一个物料的层次所在单

元格),$A$7:$A$1000(层次包括的数据范围),ROW(A7)-5(层次

的数据范围的行位置,即取下一行物料所在的行,一般从2开始)。

上述示例的数据的结果为:

物料属

层次

.1

..2

...3

..2

.1

..2

...3

..2

..2

..2

子项物料代码

物料名称

规格型号

45#

45#

1

自制

自制

外购

外购

自制

自制

外购

1.01.100-0066-000

气缸盖总成

1.01.100-0096-000

阀体

1.01.649-0135-000

1.01.649-0132-000

方螺母2

1.01.100-0067-000

制动器组

1.01.312-0005-000

接板

1.03.0001

钢板 45#

1.01.638-0123-000

调节螺母

1.01.638-0132-020

右侧板

1.01.659-1052-000

锁紧螺杆

存在

BOM

t

t

f

f

t

t

f

f

f

f

45#/镀锌钝化(白色)

外购

LY12/整体本色氧化

外购

SUS 304

外购

4.

利用Excel的筛选功能,如果非外购件的附加字段的值是否为“t”,

则代表存在BOM;如果为“f”,则代表不存在BOM;同时检查最后

一行是否为非外购件,如果是非外购件,那也代表该物料不存在BOM。

以上是利用多级展开的引出以及Excel功能实现检查某产品从顶层到原材

料,其非外购件的BOM是否都已建立,苦于对Excel只知皮毛,相信Excel的

高手会有更好的办法,此方案做抛砖引玉,有其他方案甚是欢迎共同交流。


本文标签: 物料 检查 存在 产品 是否