PP 创建BOM

时间:2024-11-15 10:37:01

转自 http://blog.****.net/u012369651/article/details/19190939

一、最终结果预览。

PP 创建BOM

二、创建过程。

使用到的事务码

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。

PP 创建BOM

2、输入下层组件14000575,数量为2,有效期2014-02-17;回车保存,则创建成功。

PP 创建BOM

3、同理,创建14000575的BOM,工厂3000,BOM用途1。下层为13005666,有效期2014-02-17。

PP 创建BOM

4、输入下层组件13005666,数量为2,有效期2014-02-17;回车保存,则创建成功。

PP 创建BOM

5、创建13005666的BOM,工厂5813,BOM用途1。下层为CZTEST01、CZTEST02、CZTEST03,有效期2014-02-17。

PP 创建BOM

6、CS12展开多层BOM,输入11000601。

仔细观察会注意到,展开的物料中没有CZTEST01、CZTEST02、CZTEST03,这是由于13*物料维护下层的是5813工厂,不是3000工厂。

PP 创建BOM

注意事项:

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两个表中查看。