PO 구매오더를 대량으로 수정해야할 경우 흔히들 LSMW, MEMASSPO 를 통해 할 수 있다.
흔히들 수량 변경과 같은 일반적인 데이터를 변경하는 것은 위의 두 가지를 통해서 할 수 있다.
그러나 Condtion Type을 변경하는 것은 생각보다 쉽지 않았다.
MEMASSPO에서는 해당하는 필드가 없었고, LSMW 에서 레코딩을 해서 하기에도 아무래도 오류가 발생할 일이 있을 것 같다.
하여 엑셀 업로드 방식으로 CBO로 간단히 개발했다.(BAPI활용)
그중 가장 필요한 BAPI부분에 대하여 남긴다.
BAPI_PO_CHANGE 펑션을 불러 사용할 때,
CONDITION 관련 테이블은 COND가 아닌 POCOND와 POCONDX를 사용해야 한다.
(X로 끝나는 테이블은 업데이트와 관련된 것)
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
PURCHASEORDER = LV_EBELN
TABLES
RETURN = LT_RETURN
POCOND = LS_COND
POCONDX = LS_CONDX.
아래는 위 펑션을 포함한 LOOP문 전체
LOOP AT GT_DATA INTO GS_LINE WHERE CHECK = 'X'
AND ICON NE ICON_LED_GREEN.
CLEAR : LT_RETURN , LS_COND , LS_CONDX , LV_EBELN , LT_MSG.
REFRESH : LT_RETURN , LS_COND , LS_CONDX , LT_MSG .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = GS_LINE-EBELN
IMPORTING
OUTPUT = LV_EBELN.
LS_COND-ITM_NUMBER = GS_LINE-EBELP.
LS_CONDX-ITM_NUMBER = GS_LINE-EBELP.
LS_COND-COND_TYPE = GS_LINE-KSCHL.
LS_CONDX-COND_TYPE = GS_LINE-KSCHL.
LS_COND-COND_VALUE = GS_LINE-KBETR.
LS_CONDX-COND_VALUE = 'X'.
LS_COND-CHANGE_ID = 'U'.
LS_CONDX-CHANGE_ID = 'X'.
APPEND LS_COND.
APPEND LS_CONDX.
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
PURCHASEORDER = LV_EBELN
TABLES
RETURN = LT_RETURN
POCOND = LS_COND
POCONDX = LS_CONDX.
READ TABLE LT_RETURN WITH KEY TYPE = 'E'.
IF SY-SUBRC EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
GS_LINE-ICON = ICON_LED_RED.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
GS_LINE-ICON = ICON_LED_GREEN.
ENDIF.
LOOP AT LT_RETURN.
CLEAR LS_MSG.
LS_MSG-MSGTY = LT_RETURN-TYPE.
LS_MSG-MSGID = LT_RETURN-ID.
LS_MSG-MSGNO = LT_RETURN-NUMBER.
LS_MSG-MSGV1 = LT_RETURN-MESSAGE_V1.
LS_MSG-MSGV2 = LT_RETURN-MESSAGE_V2.
LS_MSG-MSGV3 = LT_RETURN-MESSAGE_V3.
LS_MSG-MSGV4 = LT_RETURN-MESSAGE_V4.
APPEND LS_MSG TO LT_MSG.
ENDLOOP.
GS_LINE-T_MSG = LT_MSG.
MODIFY GT_DATA FROM GS_LINE.
ENDLOOP.
'SAP > MM' 카테고리의 다른 글
SAP PO - Free of Charge, 무상입고 자재 PO 생성 부터 입고까지 총 정리 (0) | 2023.01.03 |
---|---|
Return PO 생성 부터 입고, 송장 처리까지 (0) | 2023.01.02 |
SAP PO 구매오더 입고처리 MIRO (0) | 2022.12.30 |
구매오더 참조하여 입고 - MIGO (0) | 2022.12.29 |
SAP_PO 생성 부터 릴리즈까지! (0) | 2022.12.29 |