转自 http://blog.****.net/u012369651/article/details/19190939
一、最终结果预览。
二、创建过程。
使用到的事务码
CS01 创建BOM
CS02 修改BOM
CS03 显示BOM
CC01 创建工程变更号CC02 修改工程变更号CC03显示工程变更号
MM01 创建物料 MM02 修改物料 MM03 显示物料
使用到的物料(使用MM01创建)
销售整车11000601工厂3000
装箱整车14000575 工厂3000
底盘车 13005666 工厂5813
零配件 CZTEST01工厂5813
CZTEST02 工厂5813
CZTEST03 工厂5813
1、CS01创建BOM,工厂3000,BOM用途5,默认可选BOM为1。
2、输入下层组件14000575,数量为2,有效期2014-02-17;回车保存,则创建成功。
3、同理,创建14000575的BOM,工厂3000,BOM用途1。下层为13005666,有效期2014-02-17。
4、输入下层组件13005666,数量为2,有效期2014-02-17;回车保存,则创建成功。
5、创建13005666的BOM,工厂5813,BOM用途1。下层为CZTEST01、CZTEST02、CZTEST03,有效期2014-02-17。
6、CS12展开多层BOM,输入11000601。
仔细观察会注意到,展开的物料中没有CZTEST01、CZTEST02、CZTEST03,这是由于13*物料维护下层的是5813工厂,不是3000工厂。
注意事项:
1、最上层物料创建BOM的工厂为3000,因为所有物料必须在维护3000工厂数据。
2、CS15可以查询上层。
3、创建的BOM可以在MAST查看。根据BOM号可以在STKO中查看BOM表头,里面有删除标识。
有关BOM的函数介绍:
1、展开BOM函数‘CS_BOM_EXPL_MAT_V2’
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2' EXPORTING
capid = 'PP01'
datuv = sy-datum
mtnrv = pi_bom-matnr
stlal = pi_bom-stlal”如果不输入该参数,默认会选择有效的最小的可选BOM,
* 但是如果第一个是有删除标识的,则会出错.STKO可查看删除标识。
stlan = pi_bom-stlan
werks = pi_bom-werks
mehrs = ''”为空时BOM展开一层;为‘X’时全展开(只有所有数据在一个工厂才能全部都展开)
TABLES
stb = pi_stb“展开的下层数据信息,IDNRK为物料名
matcat = lt_cscmat”需要展开的物料信息
EXCEPTIONS
alt_not_found = 1
call_invalid = 2
material_not_found = 3
missing_authorization = 4
no_bom_found = 5
no_plant_data = 6
no_suitable_bom_found = 7
conversion_error = 8
OTHERS = 9.
IF sy-subrc <> 0.
* CONCATENATE pi_bom-matnr 'BOM展开出错!' INTO l_msg.
* MESSAGE l_msg TYPE 'S' DISPLAY LIKE 'E'.
* STOP.
ENDIF.
2、查看上层物料函数‘CS_WHERE_USED_MAT’。只能向上查看一层
CALL FUNCTION 'CS_WHERE_USED_MAT'
EXPORTING
datub = sy-datum
datuv = sy-datum
matnr = pi_bom-matnr
* POSTP = ' '
* RETCODE_ONLY = ' '
stlan = pi_bom-stlan
werks = pi_bom-werks
* IMPORTING
* TOPMAT =
TABLES
wultb = lt_ltb
equicat = lt_equicat
kndcat = lt_kndcat
matcat = pi_matcat“
stdcat = lt_stdcat
tplcat = lt_tplcat
EXCEPTIONS
call_invalid = 1
material_not_found = 2
no_where_used_rec_found = 3
no_where_used_rec_selected = 4
no_where_used_rec_valid = 5
OTHERS = 6.
IF sy-subrc <> 0.
ENDIF.
注意:数据一般在wultb和matcat两个表中查看。