ABAP

::Function Module:: RFC 호출 시 테스트 데이터 디렉토리 자동 생성

soso1.gram 2023. 8. 23. 14:13

아직 I/F 쪽은 많이 해본 적이 없지만, 인수인계를 위해 다른 개발자 분의 프로그램을 분석하다가 모르는 부분을 발견해서 공부 겸 글을 작성해 보려고 합니다.

3rd Party와 SAP의 RFC 통신 중 인터페이스 된 데이터가 올바른지 알수 없는 상황 또는 Payload에서 데이터를 모의테스트를 하기위해서 전송 받은 데이터를 Function Module 내에 데이터 디렉토리에 저장할 수 있습니다. 이는 Report 프로그램에서 Variant와 같은 기능이라고 보면 이해하기 쉽네요.

 

 

펑션 내에 구문으로 쓰이거나 External Debugging모드에서 입력받은 Parameter값을 디렉토리로 저장할 수 있는 방법도 있다고 하니 운영 시에 유용할 것 같습니다.


1. 사용자 마스터 에서 RFC ID에 파라미터 세팅(T-CODE : SU01, Role : Basis)

SU01 화면에서 세팅된 값

   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 '펑션명'.

참고할 수 있는 BAPI

5. 3rd Party 시스템에서 데이터 전송 후 Function Module 실행하여 '데스트데이타 디렉토리' 확인
    테스트 데이터 디렉토리를 확인해 보면 외부 시스템에서 전송한 데이터가 디렉토리에 저장된 것을 확인할 수 있습니다.

저장된 테스트 데이터

6. 정상 데이터 확인 후 엔트리 비활성화


참고한 원문

반응형