
"创建批次
SELECT COUNT(*) FROM marc
WHERE matnr = ls_out-matnr AND werks = lv_plant AND xchar = 'X'.
IF sy-subrc = 0."批次管理
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
nr_range_nr = '01'
object = 'ZMM001'
IMPORTING
number = number.
UNPACK number TO number.
CONCATENATE sy-datum+2(6) number INTO ls_out-charg.
lv_matnr = ls_out-matnr.
lv_batch = ls_out-charg.
CALL FUNCTION 'BAPI_BATCH_CREATE'
EXPORTING
material = lv_matnr
batch = lv_batch
plant = lv_plant
TABLES
return = return.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
REFRESH return.
ENDIF.
"批次特性增强
CLEAR: e_objek,e_obtab,e_klart,e_class.
CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT'
EXPORTING
i_matnr = ls_out-matnr
i_charg = ls_out-charg
i_werks = lv_plant
IMPORTING
e_objek = e_objek
e_obtab = e_obtab
e_klart = e_klart
e_class = e_class.
CHECK e_obtab IS NOT INITIAL.
"获取key值
REFRESH lt_objectkeytable.
CLEAR ls_objectkeytable.
ls_objectkeytable-key_field = 'MATNR'.
ls_objectkeytable-value_int = ls_out-matnr.
APPEND ls_objectkeytable TO lt_objectkeytable.
CLEAR ls_objectkeytable.
ls_objectkeytable-key_field = 'WERKS'.
ls_objectkeytable-value_int = lv_plant.
APPEND ls_objectkeytable TO lt_objectkeytable.
CLEAR ls_objectkeytable.
ls_objectkeytable-key_field = 'CHARG'.
ls_objectkeytable-value_int = ls_out-charg.
APPEND ls_objectkeytable TO lt_objectkeytable.
CLEAR objectkey_conc.
REFRESH lt_return.
CALL FUNCTION 'BAPI_OBJCL_CONCATENATEKEY'
EXPORTING
objecttable = e_obtab
IMPORTING
objectkey_conc = objectkey_conc
TABLES
objectkeytable = lt_objectkeytable
return = lt_return.
LOOP AT lt_return INTO ls_return WHERE type CA 'EAX'.
ENDLOOP.
CHECK sy-subrc <> 0.
"获取特征
REFRESH: lt_allocvaluesnum,lt_allocvalueschar,lt_allocvaluescurr,lt_return.
CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
EXPORTING
objectkey = objectkey_conc
objecttable = e_obtab
classnum = e_class
classtype = e_klart
TABLES
allocvaluesnum = lt_allocvaluesnum
allocvalueschar = lt_allocvalueschar
allocvaluescurr = lt_allocvaluescurr
return = lt_return.
READ TABLE lt_allocvalueschar INTO ls_allocvalueschar WITH KEY charact = 'Z_BATCH_VENDOR1'.
IF sy-subrc = 0.
ls_allocvalueschar-value_char = ls_out-lifnr.
MODIFY lt_allocvalueschar FROM ls_allocvalueschar INDEX sy-tabix.
ELSE.
ls_allocvalueschar-charact = 'Z_BATCH_VENDOR1'.
ls_allocvalueschar-value_char = ls_out-lifnr.
APPEND ls_allocvalueschar TO lt_allocvalueschar.
ENDIF.
"更新特征值
REFRESH lt_return.
CALL FUNCTION 'BAPI_OBJCL_CHANGE'
EXPORTING
objectkey = objectkey_conc
objecttable = e_obtab
classnum = e_class
classtype = e_klart
TABLES
allocvaluesnumnew = lt_allocvaluesnum
allocvaluescharnew = lt_allocvalueschar
allocvaluescurrnew = lt_allocvaluescurr
return = lt_return.
LOOP AT lt_return INTO ls_return WHERE type CA 'EAX'.
ENDLOOP.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
MESSAGE e001(00) WITH ls_return-message.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ENDIF.

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)