개요
SAP 시스템 운영 중 IDoc 처리 오류가 발생했을 때, 운영 클라이언트에서 직접 디버깅하는 것은 시스템 안정성과 데이터 무결성 측면에서 위험할 수 있습니다. 따라서 오류 발생 IDoc의 정확한 원인을 분석하고 해결하기 위해, 해당 IDoc 정보를 테스트 또는 개발 클라이언트로 복사하여 동일한 조건에서 프로세싱 테스트 및 디버깅을 수행하는 것이 일반적입니다. 본 문서에서는 이러한 시나리오를 위한 IDoc 파일 추출 및 처리 절차를 단계별로 안내합니다. 이 방법은 특히 네트워크 연결이 제한적인 시스템 간에 IDoc 데이터를 수동으로 전송해야 할 때 유용합니다.
전제 조건
본 절차를 수행하기 위해서는 다음 사항들이 필요합니다.
* 권한: WE19, CG3Y, CG3Z, WE16, WE02, SE37, BD87 트랜잭션 사용 및 애플리케이션 서버 파일 경로(AL11)에 대한 읽기/쓰기 권한이 필요합니다. 특히 AL11 디렉토리 접근 권한은 S_PATH, S_DATASET 등의 권한 오브젝트와 관련이 있습니다.
* AL11 경로 지식: 파일을 저장하고 읽을 애플리케이션 서버의 유효한 디렉토리 경로(AL11에 등록된 경로)를 알고 있어야 합니다.
* IDoc 번호: 운영 클라이언트에서 분석할 대상 IDoc의 번호를 미리 확인해야 합니다 (예: WE02 트랜잭션 사용).
운영 클라이언트에서 IDoc 파일 추출 및 다운로드
1. WE19를 이용한 IDoc 파일 생성
WE19 트랜잭션은 기존 IDoc을 복사하거나 테스트 목적으로 새로운 IDoc을 생성하는 데 사용되는 유용한 도구입니다. 여기서는 기존 오류 IDoc을 플랫 파일 형태로 추출합니다.
- WE19 트랜잭션을 실행합니다.
- 초기 화면에서 "Existing IDoc" 라디오 버튼을 선택하고 "IDoc 번호" 필드에 대상 IDoc 번호를 입력합니다.
- 엔터를 누르면 IDoc 테스트 툴 화면이 나타납니다. 여기서 "Inbound File" 버튼을 클릭합니다. 이 기능은 IDoc의 내용을 애플리케이션 서버의 파일 시스템에 플랫 파일 형태로 저장하는 역할을 합니다.
- 팝업 화면에서 "File name" 필드에 IDoc 파일을 저장할 AL11의 임시 경로 및 파일 이름을 지정합니다 (예:
/tmp/POIDOC_test).
* 중요: "Start inbound IDoc processing of file now" 체크박스는 반드시 해제해야 합니다. 이 체크박스를 선택하면 운영 클라이언트에서 IDoc이 즉시 재처리될 수 있으므로, 파일 추출 목적으로는 해제해야 합니다.
- "실행" 버튼을 클릭하여 IDoc 데이터를 지정된 경로에 파일로 저장합니다.
2. CG3Y를 이용한 파일 다운로드
이제 애플리케이션 서버에 저장된 IDoc 플랫 파일을 로컬 PC(프런트엔드)로 다운로드합니다.
- CG3Y 트랜잭션을 실행합니다.
- "Source file on application server" 필드에 이전 단계에서 WE19로 저장한 파일의 전체 경로와 이름을 입력합니다 (예:
/tmp/POIDOC_test). - "Target file on front end" 필드에 파일을 저장할 로컬 PC의 경로와 파일 이름을 지정합니다 (예:
C:\Users\SDSA\Desktop\substanc.dat). 파일명은.dat확장자를 사용하는 것이 일반적입니다. - "Download" 버튼을 클릭하여 파일을 로컬 PC로 다운로드합니다.
테스트 클라이언트로 IDoc 파일 업로드 및 처리
1. CG3Z를 이용한 파일 업로드
다운로드한 IDoc 파일을 이제 테스트 클라이언트의 애플리케이션 서버로 업로드합니다.
- 테스트 또는 개발 클라이언트에 접속하여 CG3Z 트랜잭션을 실행합니다.
- "Source file on front end" 필드에 로컬 PC에 저장된 파일의 전체 경로와 이름을 입력합니다 (예:
C:\Users\SDSA\Desktop\substanc.dat). - "Target file on application server" 필드에 테스트 클라이언트의 애플리케이션 서버에 파일을 저장할 AL11 경로 및 파일 이름을 지정합니다 (예:
/usr/sap/trans/substanc.dat). 대상 경로에 대한 쓰기 권한이 필요합니다. - "Upload" 버튼을 클릭하여 파일을 테스트 클라이언트의 애플리케이션 서버로 업로드합니다.
2. WE16을 이용한 IDoc 파일 처리
업로드된 IDoc 플랫 파일을 기반으로 테스트 클라이언트에서 인바운드 IDoc 처리를 수행합니다.
- WE16 트랜잭션을 실행합니다. WE16은 주로 테스트 목적으로 인바운드 IDoc 파일을 처리하는 데 사용됩니다.
- "파일 이름" 필드에 이전 단계에서 CG3Z로 업로드한 파일의 전체 경로와 이름을 입력합니다 (예:
/usr/sap/trans/substanc.dat). - "포트" 필드에
EDIUS4019를 입력합니다. 이는 예시이며, 실제 프로젝트에서는WE21트랜잭션에서 정의된 유효한 파일 포트를 사용해야 합니다. 파일 포트는 IDoc 데이터를 파일 형태로 주고받는 통신 채널을 정의합니다. - "실행" 버튼을 클릭하여 IDoc 파일을 처리합니다.
3. WE02에서 IDoc 처리 결과 확인
IDoc이 정상적으로 생성되고 처리되었는지 확인합니다.
- WE02 트랜잭션을 실행합니다.
- WE16 처리 후 생성된 IDoc 번호를 확인하거나, 날짜 및 시간 등 검색 조건을 입력하여 새로 생성된 IDoc을 조회합니다.
- IDoc의 상태 코드(Status)가 성공적으로 처리되었음을 나타내는지 확인합니다 (예: 상태 53). 오류가 발생했다면 해당 상태 메시지를 통해 원인을 파악할 수 있습니다.
디버깅을 위한 추가 단계
IDoc 처리 중 오류가 발생했거나, 특정 로직을 디버깅해야 하는 경우 다음과 같은 추가 단계를 고려할 수 있습니다.
- WE02 또는 WE05에서 오류 IDoc을 식별하고, 제어 레코드 및 데이터 세그먼트를 확인하여 관련 정보를 파악합니다.
- WE20 트랜잭션에서 해당 파트너 프로파일의 인바운드 매개변수에 정의된 프로세스 코드를 확인합니다.
- SE37 트랜잭션에서 프로세스 코드에 연결된 함수 모듈(예:
IDOC_INPUT_*)을 찾아 디버깅을 원하는 위치에 세션 브레이크포인트를 설정합니다. - BD87 트랜잭션을 통해 해당 IDoc을 재처리하여 디버깅 모드로 진입합니다. 또는 WE19에서 IDoc을 선택한 후 "Inbound Function Module" 옵션과 "Call in debugging mode"를 함께 사용하여 디버깅을 시작할 수도 있습니다.
유의사항 및 추가 팁
* 권한 관리: 애플리케이션 서버의 파일 경로 (AL11)에 대한 접근 및 쓰기 권한은 SAP Basis 팀과 협의하여 적절하게 관리되어야 합니다.
* 데이터 보안: 운영 클라이언트의 민감한 데이터를 테스트 시스템으로 전송할 때는 데이터 보안 및 개인 정보 보호 정책을 준수해야 합니다.
* 포트 설정: WE16에서 사용하는 포트는 WE21에서 미리 정의된 파일 포트여야 합니다. EDIUS4019는 예시이며, 실제 환경에 맞는 포트 이름을 사용해야 합니다. 포트가 없으면 생성하거나, 기존의 유효한 파일 포트를 활용해야 합니다.
* 파일 인코딩: 파일 전송 시 인코딩 문제가 발생하지 않도록 주의합니다. 일반적으로 텍스트 모드(ASCII)로 전송하는 것이 안전합니다.
* WE16은 테스트용: WE16 트랜잭션은 주로 테스트 목적으로 사용됩니다. 실제 운영 환경에서 대량의 인바운드 IDoc 파일을 처리할 때는 다른 표준 방식(예: 자동 인바운드 처리 설정)을 고려해야 합니다.
결론
본 문서에서 설명한 절차는 운영 환경에서 발생한 IDoc 오류를 비운영 환경으로 안전하게 가져와 심층 분석 및 디버깅을 수행하는 효과적인 방법을 제공합니다. 이를 통해 문제 해결 시간을 단축하고 시스템 안정성에 기여할 수 있습니다. 각 단계별 유의사항을 준수하고 필요한 권한을 확보하여 정확하게 수행하는 것이 중요합니다.