BAPI_PO_CREATE
用于创建分类视图
在调用之前首先在表KLAH中查看是否已创建对应分类的类型和分类
这个BAPI比较简单 只需要传入MATNR、KLART、CLASS字段就行
注意:传入的MATNR须转换为18位长度的
可以使用以下FUNCTION进行转换
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = LV_MATNR
IMPORTING
OUTPUT = LV_MATNR
EXCEPTIONS
LENGTH_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
该BAPI一次只能传入一条数据,即每条数据都需要调用一次改BAPI。
数据定义
DATA: LT_NUM TYPE TABLE OF BAPI1003_ALLOC_VALUES_NUM,
LT_CHAR TYPE TABLE OF BAPI1003_ALLOC_VALUES_CHAR,
LT_CURR TYPE TABLE OF BAPI1003_ALLOC_VALUES_CURR,
LT_RETN TYPE TABLE OF BAPIRET2,
LV_MAT TYPE BAPI1003_KEY-OBJECT.
转换物料号类型
LV_MAT = LV_MATNR.
调用BAPI
CALL FUNCTION 'BAPI_OBJCL_CREATE'
EXPORTING
OBJECTKEYNEW = LV_MAT
OBJECTTABLENEW = 'MARA'
CLASSNUMNEW = LV_CLASS
CLASSTYPENEW = LV_KLART
* STATUS = '1'
STANDARDCLASS = 'X'
* CHANGENUMBER =
* KEYDATE = SY-DATUM
* NO_DEFAULT_VALUES = ' '
* OBJECTKEYNEW_LONG =
* IMPORTING
* CLASSIF_STATUS =
TABLES
ALLOCVALUESNUM = LT_NUM
ALLOCVALUESCHAR = LT_CHAR
ALLOCVALUESCURR = LT_CURR
RETURN = LT_RETN.
LOOP AT LT_RETN INTO DATA(LS_RETN) WHERE TYPE CA 'AEX'.
SY-SUBRC = 0.
ENDLOOP.
IF SY-SUBRC = 0.
* 回滚
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
* 提交数据
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ENDIF.