SAP ABAP BDC: 배치 데이터 통신이란 무엇인가요?
⚡ 스마트 요약
SAP ABAP BDC(배치 데이터 통신)는 표준 트랜잭션을 자동으로 실행하여 기존 데이터를 R/3 시스템으로 전송합니다. 이 페이지에서는 배치 입력 세션, 기존 방식 및 트랜잭션 호출 방식, BDCDATA 구조, BDC_OPEN_GROUP 워크플로, 그리고 배치 입력 레코더에 대해 설명합니다.

일괄 입력 소개
일괄 입력은 일반적으로 비R/3 시스템에서 R/3 시스템으로 데이터를 전송하거나 R/3 시스템 간에 데이터를 전송하는 데 사용됩니다.
데이터 세트를 트랜잭션에 속한 화면으로 자동으로 전송할 수 있는 데이터 전송 기술입니다. SAP 체계. 일괄 입력은 일괄 입력 세션에 의해 제어됩니다.
일괄 입력 세션
일련의 트랜잭션 호출을 입력 데이터 및 사용자 작업과 함께 그룹화합니다. 일괄 입력 세션을 사용하여 일괄 입력에서 대화 상자 트랜잭션을 실행할 수 있습니다. 여기서 일부 또는 모든 화면이 세션에 의해 처리됩니다. 일괄 입력 세션은 데이터베이스 테이블로 데이터베이스에 저장되며 트랜잭션에 액세스할 때 프로그램 내에서 내부 테이블로 사용할 수 있습니다.
주목할 점
- BDI는 정상적인 작업을 수행하여 작동합니다. SAP 사용자와 마찬가지로 트랜잭션을 수행하지만 자동으로 트랜잭션을 실행합니다.일괄 데이터 입력을 사용하는 동안 모든 화면 유효성 검사와 비즈니스 로직 유효성 검사가 수행됩니다.
- 많은 양의 데이터를 입력하는데 적합합니다.
- 수동 상호작용이 필요하지 않습니다.
일괄 입력 방법
SAP 레거시 데이터를 R/3 시스템으로 전송하기 위한 두 가지 기본 방법을 제공합니다.
- 전통적인 일괄 입력 방법.
- 통화 거래 방법.
기존 일괄 입력 방법
이 방법에서는 ABAP/4 프로그램이 외부 데이터를 읽어옵니다. SAP 일괄 입력 세션의 시스템 및 저장입니다.
세션을 생성한 후 세션을 실행하여 다음을 실행할 수 있습니다. SAP 그 안에서 거래.
이 방법은 함수 모듈 BDC_ OPEN, BDC_INSERT 및 BDC_CLOSE를 사용합니다.
일괄 입력 세션은 3가지 방식으로 처리될 수 있습니다.
- 전경에서
- 백그라운드에서
- 처리 중 오류 표시 있음
데이터 전송을 테스트하려면 포그라운드에서 일괄 입력 세션을 처리하거나 오류 표시를 사용해야 합니다.
데이터 전송을 실행하거나 성능을 테스트하려면 백그라운드에서 세션을 처리해야 합니다.
기존 일괄 입력 방법에 대한 참고 사항
- Sync시간적 처리
- 여러 거래에 대한 데이터를 전송합니다.
- Synchronous 데이터베이스 업데이트.
- 각 세션마다 일괄 입력 프로세스 로그가 생성됩니다.
- 세션을 병렬로 생성할 수 없습니다.
통화 거래 방법.
이 방법에서 ABAP/4 프로그램은 CALL TRANSACTION USING 문을 사용하여 SAP 트랜잭션.
전체 일괄 입력 프로세스는 프로그램에서 온라인으로 이루어집니다.
참고 사항 :
- 더 빠른 데이터 처리
- 비동기 처리
- 단일 거래에 대한 데이터를 전송합니다.
- 일괄 입력 처리 로그가 생성되지 않습니다.
기존 배치 입력 방식과 호출 트랜잭션 방식 비교
두 방법 모두 동일한 트랜잭션을 처리하지만 속도, 로깅 및 오류 처리 방식에서 차이가 있습니다. 아래 표는 각 방법이 적절한 경우를 보여줍니다.
| 기준 | 클래식 배치 입력 | 통화 거래 |
|---|---|---|
| 기술 | BDC_OPEN_GROUP, BDC_INSERT, BDC_CLOSE_GROUP | 통화 트랜잭션 사용 |
| 처리 | Synchronous, 나중에 SM35에서 실행 | 온라인으로 실행됩니다. |
| 거래 내역 | 한 세션에서 여러 거래 | 통화당 단일 거래 |
| 로그 | 세션별 프로세스 로그가 자동으로 생성됩니다. | 로그는 저장되지 않고, 프로그램이 메시지를 수집합니다. |
| 속도 | 속도는 느리지만 안정적이고 재시작이 가능합니다. | 빠른 |
| 가장 좋은 | 감사 가능해야 하는 대규모 일회성 레거시 로드 | 하나의 문서를 대화형 또는 고속으로 전송 |
앞서 비교한 방법들을 바탕으로, 다음 섹션에서는 프로젝트가 따르는 전반적인 절차를 설명합니다.
일괄 입력 절차
일반적으로 조직의 일괄 입력을 개발하기 위해 다음 단계 순서를 따르게 됩니다.
- 레거시 데이터 분석. 전송할 데이터를 매핑하는 방법을 결정합니다. SAP 구조. 또한 필요한 데이터 유형이나 데이터 길이 변환에 유의하세요.
- 생성 SAP 수출 프로그램에 사용하기 위한 데이터 구조.
- 데이터를 순차 파일로 내보냅니다. 사전 정의된 문자 형식이 필요합니다. SAP 일괄 입력 프로그램.
- 경우 SAP 제공된 BDC 프로그램을 사용하지 않으면 배치 입력 프로그램을 직접 코딩하십시오. 상황에 따라 적절한 일괄입력 방식을 선택하세요.
- 데이터를 처리하여 SAP 시스템.
- 프로세스 로그를 분석합니다. 적절한 로그가 생성되지 않는 CALL TRANSACTION 방법의 경우 프로그램에서 수집한 메시지를 사용하십시오.
- 프로세스 분석 결과에서 오류가 있는 데이터를 수정하고 다시 처리합니다.
BDC 프로그램 작성
BDC 프로그램을 작성하려면 다음 프로세스를 따르세요.
- 일괄 입력 데이터를 처리하기 위해 트랜잭션을 분석합니다.
- 사용할 일괄 입력 방법을 결정합니다.
- 순차 파일에서 데이터 읽기
- 데이터 변환 또는 오류 검사를 수행합니다.
- 일괄 입력 구조인 BDCDATA에 데이터를 저장합니다.
- 클래식 일괄 입력을 위한 일괄 입력 세션을 생성하거나 CALL TRANSACTION USING 문을 사용하여 직접 데이터를 처리합니다.
일괄 입력 데이터 구조
일괄 입력 데이터 구조 선언
DATA : BEGIN OF < bdc table> OCCURS <occurs parameters>. INCLUDE STRUCTURE BDCDATA. DATA:END OF <bdc table>.
| 분야 명 | 타입 | 길이 | 기술설명 |
|---|---|---|---|
| 프로그램 | 숯 | 8 | 모듈 풀 |
| 딘프로 | NUMC | 4 | 딘프로 번호 |
| 다인비긴 | 숯 | 1 | 딘프로 시작하기 |
| 프남 | 숯 | 35 | 분야 명 |
| FVAL | 숯 | 80 | 필드 값 |
특정 화면의 데이터 내 필드 순서는 중요하지 않습니다.
참고 사항
- BDC 데이터를 입력할 때는 사용자 설정을 반드시 고려해야 합니다. 특히 수량, 금액과 같은 숫자 필드를 입력할 때 더욱 중요합니다. 그룹화 기준은 사용자 설정에 따라 결정됩니다.ping 숫자에 대한 문자 표기법. 예: 5만이라는 숫자는 사용자 설정에 따라 50,000.00 또는 50.000,00으로 표기할 수 있습니다.
- 금액 및 수량 필드에 대한 FVAL 필드를 압축하여 왼쪽 정렬되도록 합니다.
- BDC를 통해 채우는 모든 필드는 BDC 데이터 테이블을 채우는 동안 문자 유형 필드로 처리되어야 합니다.
- 일부 화면에서는 BDC를 사용하여 테이블 컨트롤에 값을 채울 때 화면의 기본 크기에 존재하는 행 수와 동일한 행에 대한 코드를 기록해야 합니다. 더 많은 행을 채워야 하는 경우 테이블 컨트롤을 수동으로 채울 때와 마찬가지로 "페이지 아래로" 기능을 코딩해야 합니다.
- 위 시나리오에서 나타나는 줄 수는 사용자가 사용하는 화면 크기에 따라 다릅니다. 따라서 항상 표준 화면 크기에 맞게 코딩하고 사용자가 화면 크기를 유지하는 것과 관계없이 BDC가 항상 표준 화면 크기에서 작동하도록 만드세요.
일괄 입력 세션 생성
- 함수 모듈 BDC_OPEN_GROUP을 사용하여 일괄 입력 세션 세션을 엽니다.
- 세션의 각 거래에 대해 다음을 수행합니다.
- 트랜잭션에서 처리되는 모든 화면과 필드에 대한 값으로 BDCDATA를 채웁니다.
- BDC_INSERT를 사용하여 트랜잭션을 세션으로 전송합니다.
- BDC_CLOSE_GROUP을 사용하여 일괄 입력 세션을 닫습니다.
예시: BDC에서 콜 트랜잭션 사용
아래 프로그램은 트랜잭션 호출 메서드의 전체 과정을 보여줍니다. 이 프로그램은 트랜잭션의 두 화면에 대한 BDCDATA 테이블을 구축하고, 오류 보고를 위해 오류 테이블을 추가하여 모드 N(화면 표시 안 함)으로 실행합니다.
REPORT z_bdc_call_transaction. DATA: lt_bdcdata TYPE STANDARD TABLE OF bdcdata, ls_bdcdata TYPE bdcdata, lt_messages TYPE STANDARD TABLE OF bdcmsgcoll. * Helper that appends one BDCDATA line FORM bdc_field USING p_fnam p_fval. CLEAR ls_bdcdata. ls_bdcdata-fnam = p_fnam. ls_bdcdata-fval = p_fval. APPEND ls_bdcdata TO lt_bdcdata. ENDFORM. * Screen 1: start the dynpro, then fill the fields CLEAR ls_bdcdata. ls_bdcdata-program = 'SAPMV45A'. ls_bdcdata-dynpro = '0101'. ls_bdcdata-dynbegin = 'X'. APPEND ls_bdcdata TO lt_bdcdata. PERFORM bdc_field USING 'VBAK-AUART' 'OR'. PERFORM bdc_field USING 'BDC_OKCODE' '/00'. * Run the transaction: mode N = no display, update S = synchronous CALL TRANSACTION 'VA01' USING lt_bdcdata MODE 'N' UPDATE 'S' MESSAGES INTO lt_messages. IF sy-subrc <> 0. * Read lt_messages to report the errors that occurred ENDIF.
💡 팁: MODE 매개변수는 표시 방식을 제어합니다. A는 모든 화면을 표시하고, E는 오류 발생 시에만 중지하며, N은 오류 없이 실행됩니다. 테스트 시에는 E를 사용하고, 실제 운영 환경에서는 N을 사용하십시오.
일괄 입력 레코더
일괄 입력 레코더(시스템 > 서비스 > 일괄 입력 > 레코더)는 수동으로 입력된 거래를 기록하고 나중에 SM35를 사용하여 실행할 수 있는 일괄 입력 세션을 생성합니다.
- 일괄 입력 초기 화면에서 녹음 푸시버튼을 선택하여 일괄 입력 레코더를 시작합니다.
- 녹음 이름은 사용자 정의 이름이며 녹음에서 생성할 수 있는 일괄 입력 세션 이름과 일치할 수 있습니다.
- 입력 SAP 거래를 클릭하고 거래 게시를 시작합니다.
- 포스팅을 완료하신 후 SAP 트랜잭션 가져오기 및 저장을 선택하여 기록을 종료하거나 다음 트랜잭션을 선택하고 다른 트랜잭션을 게시합니다.
- 녹음을 저장한 후에는 녹음에서 일괄 입력 세션을 생성하거나 녹음에서 일괄 입력 프로그램을 생성할 수 있습니다.
- 이제 생성한 일괄 입력 세션을 다른 일괄 입력 세션과 마찬가지로 분석할 수 있습니다.
- 배치 입력 레코더의 기능으로 생성된 프로그램은 데이터 인터페이스 프로그래머를 위한 강력한 도구입니다. 이는 고객 요구 사항에 따라 변경될 수 있는 견고한 기반을 제공합니다.
⚠️ 경고: 녹화는 화면이 나타난 순서를 그대로 캡처하므로, 특정 데이터가 있을 때만 표시되는 화면(예: 미완료 팝업)은 녹화되지 않습니다. 생성된 프로그램은 모든 선택적 화면이 표시되도록 하는 데이터를 사용하여 항상 테스트해야 합니다.



