开始干货:
创建 维护供应商(ECC)
前台操作:
最简单的:
XK01
科目 001LIU001 已经建立
删除
Xk02
或者直接xk06
查看库表:
其实创建和删除有两个BAPI
BAPI_VENDOR_CREATE
BAPI_VENDOR_DELETE
但是你一执行就会发现,又跳转到前台了
所以使用的不是bapi
可以考虑的有两个:
调用api维护供应商
CALL METHOD VMD_EI_API=>MAINTAIN_BAPI
或者:
CALL METHOD VMD_EI_API=>MAINTAIN
其实都一样
这里以 CALL METHOD VMD_EI_API=>MAINTAIN 为例
删除
*&---------------------------------------------------------------------*
*& Report ZLM_XK01
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZLM_XK01.
PARAMETERS P_LIFNR TYPE LIFNR."外部给号
PARAMETERS C_DEL AS CHECKBOX. "删除标记
DATA:LV_FLG.
DATA:LS_MAIN TYPE VMDS_EI_MAIN,
LS_MESG TYPE CVIS_MESSAGE,
LT_MSG TYPE BAPIRET2_T,
LS_MSG TYPE BAPIRET2,
LT_VEND TYPE VMDS_EI_EXTERN_T,
LS_VEND TYPE VMDS_EI_EXTERN.
*创建 I 修改 U,不支持删除 D,使用U 打删除标记
IF C_DEL IS INITIAL .
LS_VEND-HEADER-OBJECT_TASK = 'I'.
ELSE.
LS_VEND-HEADER-OBJECT_TASK = 'U'.
ENDIF.
"供应商编码
LS_VEND-HEADER-OBJECT_INSTANCE-LIFNR = P_LIFNR.
"账户组
LS_VEND-CENTRAL_DATA-CENTRAL-DATA-KTOKK = 'K302'.
LS_VEND-CENTRAL_DATA-CENTRAL-DATAX-KTOKK = 'X'.
*&冻结 删除标记
IF C_DEL IS NOT INITIAL.
LS_VEND-CENTRAL_DATA-CENTRAL-DATA-LOEVM = 'X'.
LS_VEND-CENTRAL_DATA-CENTRAL-DATAX-LOEVM = 'X'.
LS_VEND-CENTRAL_DATA-CENTRAL-DATA-NODEL = 'X'.
LS_VEND-CENTRAL_DATA-CENTRAL-DATAX-NODEL = 'X'.
ENDIF.
*&简单起见,只有创建和删除
IF C_DEL IS INITIAL.
*地址数据
LS_VEND-CENTRAL_DATA-ADDRESS-TASK = 'I'.
LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATA-TITLE = '0002'. "先生
LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATA-NAME = 'liumeng先生'. "姓名
LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATA-SORT1 = 'liumeng'. "检索项
LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATA-LANGU = SY-LANGU.
LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATA-COUNTRY = 'CN'.
LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-TITLE = 'X'.
LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-NAME = 'X'.
LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-SORT1 = 'X'.
LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-LANGU = 'X'.
LS_VEND-CENTRAL_DATA-ADDRESS-POSTAL-DATAX-COUNTRY = 'X'.
ENDIF.
APPEND LS_VEND TO LT_VEND.
LS_MAIN-VENDORS = LT_VEND.
*&维护供应商
CALL METHOD VMD_EI_API=>MAINTAIN
EXPORTING
* IV_TEST_RUN = SPACE
IS_MASTER_DATA = LS_MAIN
IMPORTING
ES_ERROR = LS_MESG.
LT_MSG = LS_MESG-MESSAGES.
LOOP AT LT_MSG INTO LS_MSG.
WRITE: / LS_MSG-TYPE,LS_MSG-MESSAGE.
ENDLOOP.
COMMIT WORK AND WAIT.