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
'SAP > SAP 기능 정리' 카테고리의 다른 글
[SAP] External Debugging이 안될 때 데이터 로그 볼 수 있는 방법 (0) | 2020.12.17 |
---|---|
[SAP] All Object CTS 넘기는 방법/How to do All Object CTS (1) | 2020.12.16 |