创建采购信息记录之后更改SOURSE LIST 报错 “Info record for supplier ‘LIFNR’ and material 'MATNR' does not exist”.
调查发现是全局内表(SAPLME05)GT_EINA_SINGLE[]由于刚创建采购信息记录导致Purchasing info rec.(INFNR)获取不到导致,可以调用函数清空全局变量。
CALL FUNCTION 'ME_EINA_READ'
EXPORTING
REFRESH_BUFFER = ABAP_TRUE
EXCEPTIONS
NO_RECORDS_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
LW_EORDU-MATNR = C_W_ORGA-MATNR.
LW_EORDU-WERKS = <LW_PLANT_DATA>-WERKS.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = C_W_ORGA-LIFNR
IMPORTING
OUTPUT = LW_EORDU-LIFNR.
LW_EORDU-EKORG = C_W_ORGA-VKORG1.
LW_EORDU-VDATU = CNS_VDATU.
LW_EORDU-BDATU = CNS_ZCPUVT.
LW_EORDU-FLIFN = CNS_FLG_X.
LW_EORDU-KZ = 'I'.
APPEND LW_EORDU TO LIT_EORDU.
CALL FUNCTION 'ME_EINA_READ'
EXPORTING
REFRESH_BUFFER = ABAP_TRUE
EXCEPTIONS
NO_RECORDS_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
CALL FUNCTION 'ME_DIRECT_INPUT_SOURCE_LIST'
EXPORTING
I_MATNR = LW_EORDU-MATNR
I_WERKS = LW_EORDU-WERKS
TABLES
T_EORD = LIT_EORDU
EXCEPTIONS
PLANT_MISSING = 1
MATERIAL_MISSING = 2
ERROR_MESSAGE = 4
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 INTO LV_MESSAGE.
RETURN.
ELSE.
CALL FUNCTION 'ME_POST_SOURCE_LIST_NEW'
EXPORTING
I_MATNR = LW_EORDU-MATNR.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4 INTO LV_MESSAGE.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ENDIF.
ENDIF.
CALL FUNCTION 'ME_EINA_READ'
EXPORTING
REFRESH_BUFFER = ABAP_TRUE
EXCEPTIONS
NO_RECORDS_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.