BAPI_RESERVATION_CREATE1 - 예약 생성 (예제 코드 포함)

2023. 2. 20. 14:27ABAP/BAPI

728x90
반응형

안녕하세요 파피킴입니다.

예약이란 말 그대로 출고, 이전전기 등을 예약하는 것입니다.

예약을 생성했다고 가용 재고에 직접적으로 영향을 주지는 않습니다.

하지만 예약을 통해서 가용 재고가 얼마나 소모될지 예측할 수 있습니다.

WM 에서 자재 이동 프로세스를 위해 수동으로 생성하기도 하며, 생산오더에 의해 자동으로 생성되기도 합니다.

 

DATA : ls_header       TYPE bapi2093_res_head,
             lt_item            TYPE TABLE OF bapi2093_res_item WITH HEADER LINE,
             lv_res_num    TYPE rsnum,
             lt_pasegment TYPE TABLE OF bapi_profitability_segment WITH HEADER LINE,
             lt_return          TYPE TABLE OF bapiret2 WITH HEADER LINE.

***<<< 헤더 설정
ls_header-res_date       = sy-datum.  " 예약기준일
ls_header-move_type   = '311'.          " 이동 유형
ls_header-move_plant  = '플랜트'.     " 입고 플랜트
ls_header-move_stloc  = '저장위치'.  " 입고 저장위치
***>>> 헤더 설정

***<<< 아이템 설정
lt_item-material     = '자재번호'.   " 자재 번호
lt_item-plant          = '플랜트'.      " 출고 플랜트
lt_item-stge_loc     = '저장위치'.  " 출고 저장위치
lt_item-entry_qnt   = '10'.             " 수량
lt_item-entry_uom = 'EA'.            " 단위
lt_item-movement  = 'X'.              " 자재이동허용
APPEND lt_item.
CLEAR lt_item.
***>>> 아이템 설정

CALL FUNCTION 'BAPI_RESERVATION_CREATE1' 
    EXPORTING
        reservationheader     = ls_header
    IMPORTING
        reservation                 = lv_res_num   
    TABLES
        reservationitems        = lt_item     
        profitabilitysegment   = lt_pasegment     
        return                           = lt_return.

IF lv_res_num IS NOT INITIAL.
    MESSAGE s000 WITH 'SUCCESS' lv_res_num.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
            wait = 'X'.
ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    READ TABLE lt_return WITH KEY type = 'E'.
    MESSAGE s000 WITH lt_return-message DISPLAY LIKE 'E'.
ENDIF.

 

궁금하신 사항은 댓글 부탁드립니다~

이상 쌥가능의 파피킴이었습니다.

728x90
반응형