본문 바로가기

SAP/SAP 기능 정리

[SAP] BDC 개념 정리

반응형

BDC 개념

▶ 레거시 시스템에서 SAP 시스템으로 데이터 가져오는 절차

1. 레거시 데이터를 SAP 포맷에 맞는 형태로 데이터를 가공 및 생성

2. SAP 로 데이터를 전송

- 전송 방법에는 BAPI, Batch Input, Direct Input 등이 있음

- 이 중 Batch Input 전송 방법을 사용하기 위해서는 BDC 프로그램이 필요

 

▶ Data Transfer Workbench

기존의 시스템 or 외부 시스템에서 SAP로 데이터 전송을 위한 일련의 작업들을 총괄해주는 Tool

 

BDC 프로그램

여러가지 전송 방법 중 Batch Input을 사용하여 레거시 데이터를 SAP로 가져오기 위한 프로그램

일반적으로 Batch Input프로그램을 BDC(Batch Data Communication)프로그램이라고 함.

 

▶ BDC 프로그램이 필요한 이유

SE11에서 테이블 데이터를 직접 변경할 수 있지만 관계형 DB일 경우 데이터가 분산저장되어 하나의 테이블 데이터를 변경하는 것에 다른 테이블이 영향을 받을 수 있기 때문에 이런 테이블 간의 관계를 고려한 BDC 프로그램으로 데이터를 생성 또는 변경해야됨.

 

▶ BDC 프로그램 실행 방법

1. Batch Input 세션을 생성하여 실행하는 방법

   대량의 데이터를 전송할 때 사용

   (외부 데이터(파일 같은 형태)를 읽어서 BDC 테이블로 구성하고, Batch Input 세션에 데이터를 저장한 후 큐에 전달)

2. 프로그램 내에서 CALL, TRANSACTION으로 트랜젝션 호출하는 방법

   실시간 데이터 전송할 때 사용

   모든 Batch Input 프로세스가 프로그램 내에서 실시간으로 수행된다

   (Batch Input 세션을 생성하지 않고 ABAP 프로그램 내에서 CALL TRANSACTION으로 데이터를 입력)

 

▶ CALL TRANSACTION 소스코드

CALL TRANSACTION <T-CODE> "트랜잭션코드
	USING <BDC_ITAB>      " BDCDATA 구조의 인터널 테이블을 트랜잭션에 전달
OPTION FROM <CTU_PARAMS> 
	MODE <MODE>
    UPDATE <UPDATE>
  MESSAGE INTO MESSTAB.
    

<CTU_PARAMS> 속성

- DISMODE : MODE 옵션과 동일

- UPDMODE : UPDATE 옵션과 동일

- CATTMODE : CATT 모드 설정 (' ' : 사용 X, 'N' : single-screen control 있는, 'A' : single-screen control 없는)

- DEFSIZE : 기본 원도우 사이즈 설정

- RACOMMIT : COMMIT WORK에서 트랜잭션 종료하지 않음

- NOBINPT : BATCH INPUT MODE 사용안함

- NOBIEND : DISMODE가 'E' 상태일때만 설정 가능.

  시스템 에러 발생 시 BACKGROUND에서 수행중인 BDC가 FOREGROUND로 전환되고 스크린이 조회됨

 

- MODE 옵션

  A : 화면을 조회하면서 트랜잭션 수행

  E : 에러가 발생할 때만 화면 조회

  N : 화면을 표시하지 않음

 

- UPDATE 옵션

  S : 동기 업데이트

  A : 비동기 업데이트

  L : 로컬 업데이트 (VBLOG 테이블에 저장하지 않고 ABAP Memory 영역에 데이터를 저장)

 

<Return Code>

0 : 성공

1000 이하 : 다이얼로그 프로그램 에러

1000 초과 : Batch Input 에러

 

<MESSTAB> : BDC 수행 시 트랜잭션에서 수행된 메시지들이 저장되는 BDCMSGCOLL 타입의 ITAB

SY-MSGID, SY-MSGTY(E, I, W, S, A, X), SY-MSGNO, SY-MSGV1,2,3,4

반응형