SAP의 판매, 납품, 대금청구 문서 생성 BDC 실행 후 해당 문서번호를 가져오는 방법


SAP에서 ABAP 프로그램으로 판매 오더 생성(VA01) BDC 프로그램을 개발하거나 아웃바운드 납품 생성(VL01 또는 VL01N) BDC 프로그램을 개발하거나 대금청구 문서 생성(VF01, 빌링문서) BDC 프로그램을 개발해서 사용해야 할 경우가 있습니다.

실제로 현장 개발에서 판매 오더 문서를 생성하고, 그렇게 생성된 판매오더 문서를 가지고 아웃바운드 납품 문서를 생성하고, 또 그렇게 생성된 납품 문서를 사용해서 대금청구 문서까지 한번에 처리하는 BDC 프로그램을 개발해서 사용한 적이 있습니다.

ABAP으로 BDC 프로그램을 개발과 관련해서는 ABAP BDC 프로그램 개발을 위한 트랜잭션 리코더(Record) 방법, ABAP BDC 프로그램의 CALL TRANSACTION(실시간) 처리에 대한 예제, ABAP BDC 프로그램의 세션 처리에 의한 배치(Batch) 실행에 대한 예제 글들을 참고하시면 됩니다.

각각의 생성 BDC가 정상적으로 처리가 되고 나면 최종적으로 해당 문서 번호가 만들어지게 됩니다. 하지만 BDC 프로그램 특성상 실제 만들어진 판매오더 문서, 아웃바운드납품 문서 또는 대금청구 문서 번호를 바로 알 수는 없습니다.

생성된 문서 번호를 가져오기 위해서는 시스템 메시지에서 해당 정보를 찾아와야 합니다.

이번 글에서는 SAP의 판매, 납품, 대금청구 문서 생성 BDC 실행 후 해당 문서번호를 가져오는 방법에 대해 알아보겠습니다.

SAP의 판매, 납품, 대금청구문서 생성 BDC 실행 후 해당 문서번호를 가져오는 방법


*– 시스템 메시지를 가져오기 위해 해당 인터널테이블 먼저 정의해 줍니다.
DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

판매오더 문서(VA01) 생성 BDC에서 문서번호 가져오는 방법

▶ 생성 BDC가 정상적으로 처리되었을 때 시스템 메시지(MESSTAB)의 MSGTYP = ‘S’, MSGNR = 311, MSGID = ‘V1’에 해당하는 MSGV2의 내용이 판매문서번호 입니다.

  CALL TRANSACTION ‘VA01’ USING   BDC_TAB
                           MODE   ‘N’
                         UPDATE   ‘S’
                    MESSAGES INTO MESSTAB.
 
  IF SY-SUBRC EQ 0.
    READ TABLE MESSTAB WITH KEY MSGTYP = ‘S’
                                MSGNR  = 311 MSGID = ‘V1’.
    ZVBELN_VA = MESSTAB-MSGV2.
  ENDIF.
 

아웃바운드 납품문서(VL01, VL01N) BDC에서 문서번호 가져오는 방법

▶ 생성 BDC가 정상적으로 처리되었을 때 시스템 메시지(MESSTAB)의 MSGTYP = ‘S’, MSGNR = 311, MSGID = ‘VL’에 해당하는 MSGV2의 내용이 아웃바운드 납품문서번호 입니다.

 CALL TRANSACTION ‘VL01’ USING   BDC_TAB
                           MODE   ‘N’
                         UPDATE   ‘S’
                    MESSAGES INTO MESSTAB.
 
  IF SY-SUBRC EQ 0.
    READ TABLE MESSTAB WITH KEY MSGTYP = ‘S’
                               MSGNR  = 311 MSGID = ‘VL’.
   ZVBELN_VL = MESSTAB-MSGV2.
  ENDIF.
 

대금청구문서(빌링문서, VF01) BDC에서 문서번호 가져오는 방법

▶ 생성 BDC가 정상적으로 처리되었을 때 시스템 메시지(MESSTAB)의 MSGTYP = ‘S’, MSGNR = 311, MSGID = ‘VF’에 해당하는 MSGV1의 내용이 대금청구(빌링)문서번호 입니다.

 CALL TRANSACTION ‘VF01’ USING   BDC_TAB
                           MODE   ‘N’
                         UPDATE   ‘S’
                    MESSAGES INTO MESSTAB.
 
  IF SY-SUBRC EQ 0.
    READ TABLE MESSTAB WITH KEY MSGTYP = ‘S’
                               MSGNR  = 311 MSGID = ‘VF’.
   ZVBELN_VF = MESSTAB-MSGV1.
  ENDIF.
 





이 글이 도움이 되었기를 바랍니다. ^-^
댓글로 흔적을 남겨 주세요.

답글 남기기