1.物料主数据
1.1创建/扩展物料主数据:
1.1.1 除分类视图和检验视图的创建和扩展
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = IS_HEADER
CLIENTDATA = IS_MARA
CLIENTDATAX = IS_MARAX
PLANTDATA = IS_MARC
PLANTDATAX = IS_MARCX
STORAGELOCATIONDATA = IS_MARD
STORAGELOCATIONDATAX = IS_MARDX
VALUATIONDATA = IS_MBEW
VALUATIONDATAX = IS_MBEWX
SALESDATA = IS_MVKE
SALESDATAX = IS_MVKEX
IMPORTING
RETURN = OS_RETURN
TABLES
MATERIALDESCRIPTION = IT_MAKT
UNITSOFMEASURE = IT_MARM
UNITSOFMEASUREX = IT_MARMX
MATERIALLONGTEXT = IT_TEXT
TAXCLASSIFICATIONS = IT_MLAN
RETURNMESSAGES = OT_LOG.
1.1.2 分类视图的创建和扩展
CALL FUNCTION 'BAPI_OBJCL_CREATE'
EXPORTING
OBJECTKEYNEW = ZOBJCT
OBJECTTABLENEW = 'MARA'
CLASSNUMNEW = IS_OBJECT-CLASSNUMNEW
CLASSTYPENEW = IS_OBJECT-CLASSTYPENEW
STATUS = '1'
KEYDATE = SY-DATUM
IMPORTING
CLASSIF_STATUS = EP_CLASSIF_STATUS
TABLES
RETURN = TAB_LOG1.
1.1.3 检验视图的创建和扩展
CALL FUNCTION 'BAPI_MATINSPCTRL_SAVEREPLICA'
TABLES
RETURN = TAB_LOG
INSPECTIONCTRL = IT_QMAT.
1.2 显示物料主数据
1.2.1 主要的数据可直接查询表MARA,MARC,MARD,MVKE,MARM,MLAN,MAKT,QMAT,MBEW;
1.2.2 分类视图的显示
CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
EXPORTING
class = 'BATCH'
classtext = 'X'
classtype = '023'
language = sy-langu
object = p_object
objecttable = 'MARA'
key_date = sy-datum
initial_charact = 'X'
TABLES
t_class = et_class
t_objectdata = et_objectdata
EXCEPTIONS
no_classification = 1
no_classtypes = 2
invalid_class_type = 3
OTHERS = 4.
1.2.3 文本的读取
CALL FUNCTION 'READ_TEXT'
1.3 修改物料主数据(除修改分类视图调用的函数不一样外其余相同)
CALL FUNCTION 'BAPI_OBJCL_CHANGE'
EXPORTING
objectkey = zobjct
objecttable = is_object-objecttablenew"'MARA'
classnum = is_object-classnumnew"'BATCH'
classtype = is_object-classtypenew "'023'
status = '1'
keydate = sy-datum
IMPORTING
classif_status = ep_classif_status
TABLES
allocvaluesnumnew = it_allocvaluesnum
allocvaluescharnew = it_allocvalueschar
allocvaluescurrnew = it_allocvaluescurr
return = tab_log1.
1.4 删除、解除删除物料主数据
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = is_mathead
clientdata = is_mara
clientdatax = is_marax
plantdata = is_marc
plantdatax = is_marcx
salesdata = is_mvke
salesdatax = is_mvkex
IMPORTING
return = os_log
TABLES
returnmessages = ot_log.
1.5 物料修改记录的查询
CALL FUNCTION 'CHANGEDOCUMENT_READ'
EXPORTING
objectclass = 'MATERIAL'
objectid = ip_matnr
TABLES
editpos = ot_positions
EXCEPTIONS
no_position_found = 1
wrong_access_to_archive = 2
time_zone_conversion_error = 3
OTHERS = 4.
1.6 修改物料类型:使用BDC即可
1.7 查询物料的诸多单位
1.7.1 主要数据可直接查询表MARA,MARM表
单位相关表
T006 计量单位
T006_OIB 计量单位,附加定义
T006A 分配内部到语言相关单位
(内部单位转换到外部贸易、技术单位用T006A表,比如要显示CAR则把数据库中的KAR在次表中转换)
T006B 贸易分配到内部测量单位
( 外部贸易单位和转换到内部单位就是用T006B表,比如 PC转到ST,CAR转到KAR等)
T006C 外部技术到内部测量单位的分配
T006D 尺寸
T006D_OIB 附加维数
T006E 计量单位系统(组件,映射)
T006EE 计量单位系统(实用程序)
T006ET 计量单位系统(使用程序 -> 文
T006I 计量单位的 ISO 代码
T006J ISO 测量文本单位码
T006M 计量单位组
T006T 维数文本...
1.7.2 单位转换
1.7.2.1转换为外部格式
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
EXPORTING
input =
IMPORTING
output =
1.7.2.1转换为内部格式
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
input =
IMPORTING
output =
1.7.2.2 物料数量不同单位的转换
CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
EXPORTING
I_MATNR = IOMAMO_TAB-MATNR
I_IN_ME = IOMAMO_TAB-ERFME
I_OUT_ME = 'KG'
I_MENGE = IOMAMO_TAB-ERFMG
IMPORTING
E_MENGE = IOMAMO_TAB-ERFMG
EXCEPTIONS
ERROR_IN_APPLICATION = 1
ERROR = 2
OTHERS = 3.
1.7.2.3 物料基本计量单位转换为其他单位
CALL FUNCTION 'MATERIAL_UNIT_CONVERSION'
________________________________________
2 库存需求查询
CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'
EXPORTING
matnr = ip_matnr
werks = ip_werks
IMPORTING
e_mdsta = os_mdsta
TABLES
mdezx = ot_mdezx
EXCEPTIONS
material_plant_not_found = 1
plant_not_found = 2
OTHERS = 3.
________________________________________
3 物料库存查询:通过标准程序RMMMBESTN做 SET PARAMETER ID XXXX FIELD XXXXX在RFC内接GET即可.
________________________________________
4 生产订单
4.1 创建生产订单
CALL FUNCTION 'BAPI_PRODORD_CREATE'
EXPORTING
ORDERDATA = ORDERDATA
IMPORTING
RETURN = RETURN
ORDER_NUMBER = ORDER_NUMBER.
4.2 修改生产订单
CALL FUNCTION 'BAPI_PRODORD_CHANGE' "订单数量和交货数量未判断
EXPORTING
NUMBER = IS_ORDER-AUFNR
ORDERDATA = ORDERDATA
ORDERDATAX = ORDERDATAX
IMPORTING
RETURN = RETURN.
4.3 显示生产订单
CALL FUNCTION 'BAPI_PRODORD_GET_DETAIL' "根据实际情况调整输出信息
EXPORTING
NUMBER = IP_AUFNR
ORDER_OBJECTS = ORDER_OBJECTS
TABLES
HEADER = HEADER
OPERATION = OPERATION
PROD_REL_TOOL = PROD_REL_TOOL.
________________________________________
5.工程更改号
5.1创建、修改、删除工程更改号
CALL FUNCTION 'CCAP_ECN_MAINTAIN' "根据实际情况调整输入信息
EXPORTING
CHANGE_HEADER = CHANGE_HEADER
OBJECT_BOM = OBJECT_BOM
OBJECT_DOC = OBJECT_DOC
OBJECT_TLIST = OBJECT_TLIST
IMPORTING
CHANGE_NO = CHANGE_NO
EXCEPTIONS
CHANGE_NO_ALREADY_EXISTS = 1
ERROR = 2.
5.2 显示工程更改号,查询表 AENR , AENV即可
5.3 工程更改号有效期
CALL FUNCTION 'CC_CHANGE_NUMBER_READ'
EXPORTING
EAENNR = IS_ZRFC_S_PP005-AENNR
IMPORTING
ADATUV = ADATUV_X
EXCEPTIONS
NO_RECORD_FOUND = 1
OTHERS = 2.
________________________________________
6 BOM
6.1 初始化API
CALL FUNCTION 'CALO_INIT_API'.
6.2 创建BOM
CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'
EXPORTING
MATERIAL = IS_ZRFC_S_PP001-MATNR
PLANT = IS_ZRFC_S_PP001-WERKS
BOM_USAGE = IS_ZRFC_S_PP001-STLAN
ALTERNATIVE = IS_ZRFC_S_PP001-STLAL
CHANGE_NO = IS_ZRFC_S_PP001-AENNR
I_STKO = I_STKO
FL_NO_CHANGE_DOC = ' '
FL_COMMIT_AND_WAIT = 'X'
FL_CAD = ' '
FL_BOM_CREATE = 'X'
FL_NEW_ITEM = 'X'
FL_COMPLETE = 'X'
FL_DEFAULT_VALUES = 'X'
FL_IDENTIFY_BY_GUID = ' '
IMPORTING
FL_WARNING = FL_WARNING
O_STKO = O_STKO
TABLES
T_STPO = T_STPO
EXCEPTIONS
ERROR = 1
OTHERS = 2.
6.3 拷贝日志
CALL FUNCTION 'CALO_MSG_APPEND_DB_LOG'
EXCEPTIONS
LOG_OBJECT_NOT_FOUND = 1
LOG_SUBOBJECT_NOT_FOUND = 2
LOG_INTERNAL_ERROR = 3
OTHERS = 4.
6.4 读取日志
CALL FUNCTION 'CALO_LOG_READ_MESSAGES'
TABLES
MESSAGES_AND_PARAMETERS = LT_MESSAGES
EXCEPTIONS
OTHERS = 1.
6.5 修改、删除BOM
"修改时 IS_ZRFC_S_PP003-ITEM_GUID+ IS_ZRFC_S_PP003-ITEM_NO 为项目唯一标示
"文本相关:抬头长文本 OBJECT_ID = '0',可选长文本 OBJECT_ID = '1' 各需添加一行空行;行项目长文本OBJECT_ID = '2',每个行项目文本需添加两行空行
CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'
EXPORTING
MATERIAL = IS_ZRFC_S_PP004-MATNR
PLANT = IS_ZRFC_S_PP004-WERKS
BOM_USAGE = '1'
ALTERNATIVE = '1'
FL_NEW_ITEM = 'X'
CHANGE_NO = IS_ZRFC_S_PP004-AENNR
I_STKO = TSTK1
IMPORTING
FL_WARNING = FLG_WARNING
O_STKO = TSTK2
TABLES
T_STPO = TSTP3
T_LTX_LINE = IS_LTX_LINE
EXCEPTIONS
OTHERS = 1.
6.6 读取BOM(修改时调用)
CALL FUNCTION 'CSAP_MAT_BOM_OPEN'
EXPORTING
MATERIAL = IS_ZRFC_S_PP005-MATNR
PLANT = IS_ZRFC_S_PP005-WERKS
BOM_USAGE = IS_ZRFC_S_PP005-STLAN
ALTERNATIVE = IS_ZRFC_S_PP005-STLAL
VALID_FROM = DATUV
CHANGE_NO = IS_ZRFC_S_PP005-AENNR
IMPORTING
O_STKO = STKO1
TABLES
T_STPO = OT_STPO
EXCEPTIONS
ERROR = 1
OTHERS = 2.
6.7 读取BOM(显示)
CALL FUNCTION 'CSAP_MAT_BOM_READ'
EXPORTING
MATERIAL = IS_ZRFC_S_PP005-MATNR
PLANT = IS_ZRFC_S_PP005-WERKS
BOM_USAGE = IS_ZRFC_S_PP005-STLAN
ALTERNATIVE = IS_ZRFC_S_PP005-STLAL
VALID_FROM = DATUV
CHANGE_NO = IS_ZRFC_S_PP005-AENNR
TABLES
T_STPO = OT_STPO1
T_LTX_LINE = OT_LTX_LINE
EXCEPTIONS
ERROR = 1
OTHERS = 2.
6.8 BOM更改记录
CONCATENATE : SY-MANDT 'M' OT_STKO-BOM_NO INTO OBJECTID.
CALL FUNCTION 'CHANGEDOCUMENT_READ'
EXPORTING
OBJECTCLASS = 'STUE'
OBJECTID = OBJECTID
DATE_UNTIL = '99991231'
TIME_UNTIL = '235959'
TABLES
EDITPOS = OT_EDITPOS
EXCEPTIONS
NO_POSITION_FOUND = 1
WRONG_ACCESS_TO_ARCHIVE = 2
TIME_ZONE_CONVERSION_ERROR = 3
OTHERS = 4.
6.9 BOM多层展开
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
altvo = ' '
aufsw = ' '
auskz = ' '
bagrp = ' '
beikz = ' '
bessl = ' '
brems = ' '
capid = is_zrfc_s_pp008-capid
datuv = is_zrfc_s_pp008-datuv
drldt = ' '
ehndl = '1'
erskz = ' '
erssl = ' '
mtnrv = is_zrfc_s_pp008-matnr
mehrs = 'X' "多层
mmory = '1'
stlal = is_zrfc_s_pp008-stlal
stlan = '1'
werks = is_zrfc_s_pp008-werks
aumgb = 'X'
IMPORTING
topmat = topmat
TABLES
stb = stb
matcat = matcat
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.
6.10 BOM使用位置清单
CALL FUNCTION 'CS_WHERE_USED_MAT'
EXPORTING
DATUB = SY-DATUM
DATUV = SY-DATUM
MATNR = ZIDNRK
WERKS = ZWERKS
IMPORTING
TOPMAT = TOPMAT
TABLES
WULTB = WULTB
EQUICAT = EQUICAT
KNDCAT = KNDCAT
MATCAT = MATCAT
STDCAT = STDCAT
TPLCAT = TPLCAT
PRJCAT = PRJCAT
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.
________________________________________
7 工艺路线
7.1 创建修改工艺路线,使用BDC
7.2 查询物料的工艺路线
CALL FUNCTION 'CP_SE_ALT_READ_BY_MAT'
EXPORTING
kunr_max = ''
kunr_min = ''
lifnr_max = ''
lifnr_min = ''
matnr = is_zrfc_s_pp017-matnr
plnal_max = ''
plnal_min = ''
plnme = ''
plnnr = ''
plnty_max = ''
plnty_min = 'N'
statu = ''
aennr = is_zrfc_s_pp017-aennr
sttag = is_zrfc_s_pp017-sttag
werks_mat = is_zrfc_s_pp017-werks
TABLES
mapl_exp = mapl_exp
plko_exp = plko_exp
EXCEPTIONS
not_found = 1
OTHERS = 2.
CALL FUNCTION 'CARO_ROUTING_READ'
EXPORTING
date_from = date_from
date_to = date_from
plnty = ot_zrfc_s_pp018-plnty
plnnr = ot_zrfc_s_pp018-plnnr
plnal = ot_zrfc_s_pp018-plnal
matnr = is_zrfc_s_pp017-matnr
buffer_del_flg = 'X'
delete_all_cal_flg = 'X'
adapt_flg = 'X'
iv_create_add_change = ' '
TABLES
tsk_tab = tsk_tab
seq_tab = seq_tab
opr_tab = opr_tab
com_tab = com_tab
EXCEPTIONS
not_found = 1
ref_not_exp = 2
not_valid = 3
OTHERS = 4.
1.1创建/扩展物料主数据:
1.1.1 除分类视图和检验视图的创建和扩展
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = IS_HEADER
CLIENTDATA = IS_MARA
CLIENTDATAX = IS_MARAX
PLANTDATA = IS_MARC
PLANTDATAX = IS_MARCX
STORAGELOCATIONDATA = IS_MARD
STORAGELOCATIONDATAX = IS_MARDX
VALUATIONDATA = IS_MBEW
VALUATIONDATAX = IS_MBEWX
SALESDATA = IS_MVKE
SALESDATAX = IS_MVKEX
IMPORTING
RETURN = OS_RETURN
TABLES
MATERIALDESCRIPTION = IT_MAKT
UNITSOFMEASURE = IT_MARM
UNITSOFMEASUREX = IT_MARMX
MATERIALLONGTEXT = IT_TEXT
TAXCLASSIFICATIONS = IT_MLAN
RETURNMESSAGES = OT_LOG.
1.1.2 分类视图的创建和扩展
CALL FUNCTION 'BAPI_OBJCL_CREATE'
EXPORTING
OBJECTKEYNEW = ZOBJCT
OBJECTTABLENEW = 'MARA'
CLASSNUMNEW = IS_OBJECT-CLASSNUMNEW
CLASSTYPENEW = IS_OBJECT-CLASSTYPENEW
STATUS = '1'
KEYDATE = SY-DATUM
IMPORTING
CLASSIF_STATUS = EP_CLASSIF_STATUS
TABLES
RETURN = TAB_LOG1.
1.1.3 检验视图的创建和扩展
CALL FUNCTION 'BAPI_MATINSPCTRL_SAVEREPLICA'
TABLES
RETURN = TAB_LOG
INSPECTIONCTRL = IT_QMAT.
1.2 显示物料主数据
1.2.1 主要的数据可直接查询表MARA,MARC,MARD,MVKE,MARM,MLAN,MAKT,QMAT,MBEW;
1.2.2 分类视图的显示
CALL FUNCTION 'CLAF_CLASSIFICATION_OF_OBJECTS'
EXPORTING
class = 'BATCH'
classtext = 'X'
classtype = '023'
language = sy-langu
object = p_object
objecttable = 'MARA'
key_date = sy-datum
initial_charact = 'X'
TABLES
t_class = et_class
t_objectdata = et_objectdata
EXCEPTIONS
no_classification = 1
no_classtypes = 2
invalid_class_type = 3
OTHERS = 4.
1.2.3 文本的读取
CALL FUNCTION 'READ_TEXT'
1.3 修改物料主数据(除修改分类视图调用的函数不一样外其余相同)
CALL FUNCTION 'BAPI_OBJCL_CHANGE'
EXPORTING
objectkey = zobjct
objecttable = is_object-objecttablenew"'MARA'
classnum = is_object-classnumnew"'BATCH'
classtype = is_object-classtypenew "'023'
status = '1'
keydate = sy-datum
IMPORTING
classif_status = ep_classif_status
TABLES
allocvaluesnumnew = it_allocvaluesnum
allocvaluescharnew = it_allocvalueschar
allocvaluescurrnew = it_allocvaluescurr
return = tab_log1.
1.4 删除、解除删除物料主数据
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = is_mathead
clientdata = is_mara
clientdatax = is_marax
plantdata = is_marc
plantdatax = is_marcx
salesdata = is_mvke
salesdatax = is_mvkex
IMPORTING
return = os_log
TABLES
returnmessages = ot_log.
1.5 物料修改记录的查询
CALL FUNCTION 'CHANGEDOCUMENT_READ'
EXPORTING
objectclass = 'MATERIAL'
objectid = ip_matnr
TABLES
editpos = ot_positions
EXCEPTIONS
no_position_found = 1
wrong_access_to_archive = 2
time_zone_conversion_error = 3
OTHERS = 4.
1.6 修改物料类型:使用BDC即可
1.7 查询物料的诸多单位
1.7.1 主要数据可直接查询表MARA,MARM表
单位相关表
T006 计量单位
T006_OIB 计量单位,附加定义
T006A 分配内部到语言相关单位
(内部单位转换到外部贸易、技术单位用T006A表,比如要显示CAR则把数据库中的KAR在次表中转换)
T006B 贸易分配到内部测量单位
( 外部贸易单位和转换到内部单位就是用T006B表,比如 PC转到ST,CAR转到KAR等)
T006C 外部技术到内部测量单位的分配
T006D 尺寸
T006D_OIB 附加维数
T006E 计量单位系统(组件,映射)
T006EE 计量单位系统(实用程序)
T006ET 计量单位系统(使用程序 -> 文
T006I 计量单位的 ISO 代码
T006J ISO 测量文本单位码
T006M 计量单位组
T006T 维数文本...
1.7.2 单位转换
1.7.2.1转换为外部格式
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
EXPORTING
input =
IMPORTING
output =
1.7.2.1转换为内部格式
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
input =
IMPORTING
output =
1.7.2.2 物料数量不同单位的转换
CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
EXPORTING
I_MATNR = IOMAMO_TAB-MATNR
I_IN_ME = IOMAMO_TAB-ERFME
I_OUT_ME = 'KG'
I_MENGE = IOMAMO_TAB-ERFMG
IMPORTING
E_MENGE = IOMAMO_TAB-ERFMG
EXCEPTIONS
ERROR_IN_APPLICATION = 1
ERROR = 2
OTHERS = 3.
1.7.2.3 物料基本计量单位转换为其他单位
CALL FUNCTION 'MATERIAL_UNIT_CONVERSION'
________________________________________
2 库存需求查询
CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API'
EXPORTING
matnr = ip_matnr
werks = ip_werks
IMPORTING
e_mdsta = os_mdsta
TABLES
mdezx = ot_mdezx
EXCEPTIONS
material_plant_not_found = 1
plant_not_found = 2
OTHERS = 3.
________________________________________
3 物料库存查询:通过标准程序RMMMBESTN做 SET PARAMETER ID XXXX FIELD XXXXX在RFC内接GET即可.
________________________________________
4 生产订单
4.1 创建生产订单
CALL FUNCTION 'BAPI_PRODORD_CREATE'
EXPORTING
ORDERDATA = ORDERDATA
IMPORTING
RETURN = RETURN
ORDER_NUMBER = ORDER_NUMBER.
4.2 修改生产订单
CALL FUNCTION 'BAPI_PRODORD_CHANGE' "订单数量和交货数量未判断
EXPORTING
NUMBER = IS_ORDER-AUFNR
ORDERDATA = ORDERDATA
ORDERDATAX = ORDERDATAX
IMPORTING
RETURN = RETURN.
4.3 显示生产订单
CALL FUNCTION 'BAPI_PRODORD_GET_DETAIL' "根据实际情况调整输出信息
EXPORTING
NUMBER = IP_AUFNR
ORDER_OBJECTS = ORDER_OBJECTS
TABLES
HEADER = HEADER
OPERATION = OPERATION
PROD_REL_TOOL = PROD_REL_TOOL.
________________________________________
5.工程更改号
5.1创建、修改、删除工程更改号
CALL FUNCTION 'CCAP_ECN_MAINTAIN' "根据实际情况调整输入信息
EXPORTING
CHANGE_HEADER = CHANGE_HEADER
OBJECT_BOM = OBJECT_BOM
OBJECT_DOC = OBJECT_DOC
OBJECT_TLIST = OBJECT_TLIST
IMPORTING
CHANGE_NO = CHANGE_NO
EXCEPTIONS
CHANGE_NO_ALREADY_EXISTS = 1
ERROR = 2.
5.2 显示工程更改号,查询表 AENR , AENV即可
5.3 工程更改号有效期
CALL FUNCTION 'CC_CHANGE_NUMBER_READ'
EXPORTING
EAENNR = IS_ZRFC_S_PP005-AENNR
IMPORTING
ADATUV = ADATUV_X
EXCEPTIONS
NO_RECORD_FOUND = 1
OTHERS = 2.
________________________________________
6 BOM
6.1 初始化API
CALL FUNCTION 'CALO_INIT_API'.
6.2 创建BOM
CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'
EXPORTING
MATERIAL = IS_ZRFC_S_PP001-MATNR
PLANT = IS_ZRFC_S_PP001-WERKS
BOM_USAGE = IS_ZRFC_S_PP001-STLAN
ALTERNATIVE = IS_ZRFC_S_PP001-STLAL
CHANGE_NO = IS_ZRFC_S_PP001-AENNR
I_STKO = I_STKO
FL_NO_CHANGE_DOC = ' '
FL_COMMIT_AND_WAIT = 'X'
FL_CAD = ' '
FL_BOM_CREATE = 'X'
FL_NEW_ITEM = 'X'
FL_COMPLETE = 'X'
FL_DEFAULT_VALUES = 'X'
FL_IDENTIFY_BY_GUID = ' '
IMPORTING
FL_WARNING = FL_WARNING
O_STKO = O_STKO
TABLES
T_STPO = T_STPO
EXCEPTIONS
ERROR = 1
OTHERS = 2.
6.3 拷贝日志
CALL FUNCTION 'CALO_MSG_APPEND_DB_LOG'
EXCEPTIONS
LOG_OBJECT_NOT_FOUND = 1
LOG_SUBOBJECT_NOT_FOUND = 2
LOG_INTERNAL_ERROR = 3
OTHERS = 4.
6.4 读取日志
CALL FUNCTION 'CALO_LOG_READ_MESSAGES'
TABLES
MESSAGES_AND_PARAMETERS = LT_MESSAGES
EXCEPTIONS
OTHERS = 1.
6.5 修改、删除BOM
"修改时 IS_ZRFC_S_PP003-ITEM_GUID+ IS_ZRFC_S_PP003-ITEM_NO 为项目唯一标示
"文本相关:抬头长文本 OBJECT_ID = '0',可选长文本 OBJECT_ID = '1' 各需添加一行空行;行项目长文本OBJECT_ID = '2',每个行项目文本需添加两行空行
CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'
EXPORTING
MATERIAL = IS_ZRFC_S_PP004-MATNR
PLANT = IS_ZRFC_S_PP004-WERKS
BOM_USAGE = '1'
ALTERNATIVE = '1'
FL_NEW_ITEM = 'X'
CHANGE_NO = IS_ZRFC_S_PP004-AENNR
I_STKO = TSTK1
IMPORTING
FL_WARNING = FLG_WARNING
O_STKO = TSTK2
TABLES
T_STPO = TSTP3
T_LTX_LINE = IS_LTX_LINE
EXCEPTIONS
OTHERS = 1.
6.6 读取BOM(修改时调用)
CALL FUNCTION 'CSAP_MAT_BOM_OPEN'
EXPORTING
MATERIAL = IS_ZRFC_S_PP005-MATNR
PLANT = IS_ZRFC_S_PP005-WERKS
BOM_USAGE = IS_ZRFC_S_PP005-STLAN
ALTERNATIVE = IS_ZRFC_S_PP005-STLAL
VALID_FROM = DATUV
CHANGE_NO = IS_ZRFC_S_PP005-AENNR
IMPORTING
O_STKO = STKO1
TABLES
T_STPO = OT_STPO
EXCEPTIONS
ERROR = 1
OTHERS = 2.
6.7 读取BOM(显示)
CALL FUNCTION 'CSAP_MAT_BOM_READ'
EXPORTING
MATERIAL = IS_ZRFC_S_PP005-MATNR
PLANT = IS_ZRFC_S_PP005-WERKS
BOM_USAGE = IS_ZRFC_S_PP005-STLAN
ALTERNATIVE = IS_ZRFC_S_PP005-STLAL
VALID_FROM = DATUV
CHANGE_NO = IS_ZRFC_S_PP005-AENNR
TABLES
T_STPO = OT_STPO1
T_LTX_LINE = OT_LTX_LINE
EXCEPTIONS
ERROR = 1
OTHERS = 2.
6.8 BOM更改记录
CONCATENATE : SY-MANDT 'M' OT_STKO-BOM_NO INTO OBJECTID.
CALL FUNCTION 'CHANGEDOCUMENT_READ'
EXPORTING
OBJECTCLASS = 'STUE'
OBJECTID = OBJECTID
DATE_UNTIL = '99991231'
TIME_UNTIL = '235959'
TABLES
EDITPOS = OT_EDITPOS
EXCEPTIONS
NO_POSITION_FOUND = 1
WRONG_ACCESS_TO_ARCHIVE = 2
TIME_ZONE_CONVERSION_ERROR = 3
OTHERS = 4.
6.9 BOM多层展开
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
altvo = ' '
aufsw = ' '
auskz = ' '
bagrp = ' '
beikz = ' '
bessl = ' '
brems = ' '
capid = is_zrfc_s_pp008-capid
datuv = is_zrfc_s_pp008-datuv
drldt = ' '
ehndl = '1'
erskz = ' '
erssl = ' '
mtnrv = is_zrfc_s_pp008-matnr
mehrs = 'X' "多层
mmory = '1'
stlal = is_zrfc_s_pp008-stlal
stlan = '1'
werks = is_zrfc_s_pp008-werks
aumgb = 'X'
IMPORTING
topmat = topmat
TABLES
stb = stb
matcat = matcat
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.
6.10 BOM使用位置清单
CALL FUNCTION 'CS_WHERE_USED_MAT'
EXPORTING
DATUB = SY-DATUM
DATUV = SY-DATUM
MATNR = ZIDNRK
WERKS = ZWERKS
IMPORTING
TOPMAT = TOPMAT
TABLES
WULTB = WULTB
EQUICAT = EQUICAT
KNDCAT = KNDCAT
MATCAT = MATCAT
STDCAT = STDCAT
TPLCAT = TPLCAT
PRJCAT = PRJCAT
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.
________________________________________
7 工艺路线
7.1 创建修改工艺路线,使用BDC
7.2 查询物料的工艺路线
CALL FUNCTION 'CP_SE_ALT_READ_BY_MAT'
EXPORTING
kunr_max = ''
kunr_min = ''
lifnr_max = ''
lifnr_min = ''
matnr = is_zrfc_s_pp017-matnr
plnal_max = ''
plnal_min = ''
plnme = ''
plnnr = ''
plnty_max = ''
plnty_min = 'N'
statu = ''
aennr = is_zrfc_s_pp017-aennr
sttag = is_zrfc_s_pp017-sttag
werks_mat = is_zrfc_s_pp017-werks
TABLES
mapl_exp = mapl_exp
plko_exp = plko_exp
EXCEPTIONS
not_found = 1
OTHERS = 2.
CALL FUNCTION 'CARO_ROUTING_READ'
EXPORTING
date_from = date_from
date_to = date_from
plnty = ot_zrfc_s_pp018-plnty
plnnr = ot_zrfc_s_pp018-plnnr
plnal = ot_zrfc_s_pp018-plnal
matnr = is_zrfc_s_pp017-matnr
buffer_del_flg = 'X'
delete_all_cal_flg = 'X'
adapt_flg = 'X'
iv_create_add_change = ' '
TABLES
tsk_tab = tsk_tab
seq_tab = seq_tab
opr_tab = opr_tab
com_tab = com_tab
EXCEPTIONS
not_found = 1
ref_not_exp = 2
not_valid = 3
OTHERS = 4.