300x250
728x90

# SAP Batch Data Communication 시작 전..


2024.06.27 - [.SAP/..ABAP] - SAP BDC(Batch Data Communication) 정리 - 1

 

SAP BDC(Batch Data Communication) 정리 - 1

SAP Batch Data Communication에 대해서# RPA 또는 Macro와 비슷하게 반복적인 작업을 자동화시켜 주는 작업이라고 보면 된다. # 그 말은 즉 어떤 정보(전표, 오더 등)를 대량으로 변경하거나, 생성하거나

potato98.tistory.com

 

 

# 우리가 생각하고 넘어갈 것은.. 


# 레코딩 #

-  프로그램과 화면, 시작 ID가 시작하는 부분을 다음과 같은 방식으로 나누게 된다.

 

 

# 00. BDC 프로그램 시작하기 전.. 로직 생성


# 00. TOP 설정 

- BDC를 사용하기 위해서는 다음과 같이 BDC 관련된 변수들을 설정해 보자.

*--------------------------------------------------------------------*
* BDC
*--------------------------------------------------------------------*
DATA:
  GT_BDCDATA TYPE STANDARD TABLE OF BDCDATA,         " BDC 데이터 관련 "
  GT_BDCMSG  TYPE STANDARD TABLE OF BDCMSGCOLL,      " BDC 메시지 관련 "
  GS_OPT     TYPE CTU_PARAMS.                        " BDC 옵션 관련 "

 

# 01. PERFORM 설정

- 우리가 앞으로 사용할 PERFORM이기 때문에 참고해 보자.

FORM BDC_DATA
   USING
     VALUE(P_SCREEN)
     VALUE(P_NAME)
     VALUE(P_VALUE).

  DATA
    LS_BDCDATA TYPE BDCDATA.


  IF P_SCREEN EQ 'X'.
    LS_BDCDATA-DYNBEGIN = P_SCREEN.  " BDC screen start "
    LS_BDCDATA-PROGRAM  = P_NAME.    " BDC Program "
    LS_BDCDATA-DYNPRO   = P_VALUE.   " BDC Screen Number "
  ELSE.
    LS_BDCDATA-FNAM     = P_NAME.    " Field Name "
    LS_BDCDATA-FVAL       = P_VALUE. " BDC Field Value "
  ENDIF.

  APPEND LS_BDCDATA TO GT_BDCDATA.

  CLEAR
    LS_BDCDATA.
ENDFORM.                    " BDC_DATA "

- P_SCREEN : 스크린 시작점

- P_NAME : 필드 이름

- P_VALUE : 필드 값

 

여기서 P_SCREEN은 해당 사진에 스크린 시작점이라고 참고하자.

 

 

# 01. BDC 프로그램 로직 이어서 


# 앞에서 엑셀 업로드까지 완료했으면 엑셀에 있는 값들인터널 테이블에 값이 있을 것이다.

- 우리가 상단에 있는 [BDC 실행]이라는 버튼을 눌렀을 때, ALV List에 있는 값들이 BDC를 타면서 실행을 할 수 있게 만들어볼 것이다. 

 

# 00. 우선 레코딩에 따라서 [한 번만 도는 로직]과 [반복적으로 도는 로직]으로 나누어야 한다. ( 기억이 안 나면 BDC-1 편을 보고 오자 )

# BDC 버튼을 눌렀을 때 다음과 같이 한 번만 실행했을 경우는 다음과 같이 넣는다. 

# [ 한 번만 도는 로직 ] #

 

# 반복적인 로직LOOP문을 통해서 데이터를 쌓아두자. 

# [ 반복적으로 도는 로직 ] #

 

# 01. 이제 BDC Options을 선택해주어야 한다. 

- [ CTU_PARAMS ] Type을 사용해서 BDC Options을 설정해 보자. 

 

# 다음과 같이 설정하였다. 

  GS_OPT-DISMODE  = 'E'.
  GS_OPT-UPDMODE  = 'S'.
  GS_OPT-CATTMODE = ' '.
  GS_OPT-DEFSIZE  = 'X'.
  GS_OPT-NOBINPT  = ' '.
  GS_OPT-NOBIEND  = ' '. 
  GS_OPT-RACOMMIT = 'X'.

 

# 02. 이제 실행시킬 프로그램 T-CODE를 설정하고 Options Message는 다음과 같이 설정해 보자.

  CALL TRANSACTION 'ZRCUSTOM_01_'
    USING  GT_BDCDATA
    OPTIONS FROM GS_OPT
    MESSAGES INTO GT_BDCMSG.

 

# 03. BDC를 돌리면서 발생하였던 성공/오류 메시지를 확인해 보자. 

# 여기서 중요한 것은 트랜잭션마다 성공/오류 메시지가 다 다르기 때문에 디버깅 돌리면서 확인을 해야 한다. 

예를 들어 )

- 전표전기 했을 때, 성공하면 다음과 같이 Message ID, NO, TYPE이 달라지게 된다. 

 

- 개별 항목을 변경했을 때, 이런 식으로 달라지게 된다. 

 

# 그렇기 때문에 상황에 따라 ID와 NO 다르게 설정해야 한다. 

# 메시지를 ALV에 뿌려줘야 하기 때문에 다음과 같이 설정하였다.

      DATA:
        L_TABIX TYPE SY-TABIX.
      LOOP AT GT_BDCMSG
        WHERE MSGTYP  EQ 'S'.

        L_TABIX = SY-TABIX.


        GS_LIST-ICON = ICON_LED_GREEN.


        CALL FUNCTION 'MESSAGE_TEXT_BUILD'
          EXPORTING
            MSGID               = GT_BDCMSG-MSGID
            MSGNR               = GT_BDCMSG-MSGNR
            MSGV1               = GT_BDCMSG-MSGV1
            MSGV2               = GT_BDCMSG-MSGV2
            MSGV3               = GT_BDCMSG-MSGV3
            MSGV4               = GT_BDCMSG-MSGV4
          IMPORTING
            MESSAGE_TEXT_OUTPUT = GS_LIST-RETMG.


        MODIFY GT_LIST FROM GS_LIST INDEX L_TABIX
          TRANSPORTING ICON RETMG.
      ENDLOOP.

 

#02. 밑 부분 전체적인 로직


 

 

끝..! 

 

 

도움이 되셨으면 하단에 있는 광고 한번씩 눌러주세유!!

728x90

'.ABAP > ..BDC, BAPI' 카테고리의 다른 글

SAP Function Module 에서 Commit Work 하기( BAPI )  (0) 2024.11.11
SAP BDC(Batch Data Communication) 정리 - 1  (2) 2024.06.27
SAP BAPI란  (0) 2023.03.03
BDC vs BAPI 차이점  (0) 2022.01.13