아직 I/F 쪽은 많이 해본 적이 없지만, 인수인계를 위해 다른 개발자 분의 프로그램을 분석하다가 모르는 부분을 발견해서 공부 겸 글을 작성해 보려고 합니다.
3rd Party와 SAP의 RFC 통신 중 인터페이스 된 데이터가 올바른지 알수 없는 상황 또는 Payload에서 데이터를 모의테스트를 하기위해서 전송 받은 데이터를 Function Module 내에 데이터 디렉토리에 저장할 수 있습니다. 이는 Report 프로그램에서 Variant와 같은 기능이라고 보면 이해하기 쉽네요.
펑션 내에 구문으로 쓰이거나 External Debugging모드에서 입력받은 Parameter값을 디렉토리로 저장할 수 있는 방법도 있다고 하니 운영 시에 유용할 것 같습니다.
1. 사용자 마스터 에서 RFC ID에 파라미터 세팅(T-CODE : SU01, Role : Basis)
USER PARAMETER를 셋팅할 수 없는 상황 또는 선택적으로 적용해야 하는 상황이라면,
아래와 같이 로직으로 해결할 수도 있습니다.
IF SY-UNAME EQ '사용자 ID'.
SET PARAMETER ID 'FBGENDAT' FIELD ABAP_TRUE.
ENDIF.
2. T-CODE: SE38 or SE80에서 프로그램 FBGENDAT 실행
3. 기능 모듈 값에 테스트 디렉토리를 생성할 RFC or BAPI 펑션명을 입력, 모드값(B) 입력 후 실행.
C모드로 실행 시 디버깅 코드로 수행한다는데 안되는데 이유 아시는 분 있으면 댓글 부탁드립니다.
4. RFC펑션 내에 아래와 같이 코드 작성
*INCLUDE내에 FBGENMAC 매크로 실행
INCLUDE FBGENMAC. FBGENMAC '펑션명'.
5. 3rd Party 시스템에서 데이터 전송 후 Function Module 실행하여 '데스트데이타 디렉토리' 확인
테스트 데이터 디렉토리를 확인해 보면 외부 시스템에서 전송한 데이터가 디렉토리에 저장된 것을 확인할 수 있습니다.
6. 정상 데이터 확인 후 엔트리 비활성화
참고한 원문
'ABAP' 카테고리의 다른 글
::Old to New:: Type conversion (2) | 2024.12.19 |
---|---|
::Old to New:: VALUE 3( with BASE ) (0) | 2023.08.22 |
::Old to New:: DATA declaration 2( feat. ABAP 7.40 Quick Reference ) (0) | 2022.06.22 |
::Old to New:: VALUE 2( feat. ABAP 7.40 Quick Reference ) (0) | 2022.06.21 |
::Old to New:: VALUE ( feat. ABAP 7.40 Quick Reference ) (0) | 2022.06.20 |