[SAP] RFC란? 개념부터 실무 활용까지 완벽 정리

✅ SAP RFC란? 개념부터 실무 활용까지 완벽 정리

SAP 시스템은 기업의 핵심 데이터를 다루기 때문에, 다른 시스템과 통신하거나 SAP 내부 모듈 간 연동이 필요할 때 안정적이고 표준화된 방식의 호출 방식이 필요합니다.
이때 사용하는 대표적인 기술이 RFC(Remote Function Call) 입니다.


1. RFC란 무엇인가?

구분 설명
정식 명칭 Remote Function Call
역할 SAP 시스템 간 또는 SAP ↔ 비SAP 사이에 함수(기능)를 원격 호출
핵심 개념 네트워크를 통해 Function Module을 호출하는 SAP의 표준 통신 인터페이스
예시 외부 시스템에서 SAP의 재고 정보 조회, 주문 정보 생성 등

즉, RFC는 "SAP 함수(기능)를 원격에서 실행시키는 기술" 이라고 이해하면 쉽습니다.


2. RFC의 주요 유형

유형 설명 사용 상황
sRFC (Synchronous) 호출 후 결과를 기다리는 동기 방식 즉시 응답이 필요한 케이스
tRFC (Transactional) 트랜잭션 단위로 저장 후 전송, 실패 시 재전송 가능 안정성이 필요한 대량/중요 전송
qRFC (Queued) Queue를 통한 순차 처리 보장 순서 보장이 필수인 재고/주문 처리
bgRFC (Background) 차세대 RFC, 성능 향상 / 비동기 처리 강화 HANA / 대량성 업무에서 최신 트렌드

 

sRFC 

  • 가장 기본적인 RFC 변형(Variant)
     
  • EXPORTING, IMPORTING, CHANGING 추가 구문을 사용하면, 딥 구조(Deep Structure)나 문자열(String)과 같이 깊은 문자 타입을 가진 테이블도 전달할 수 있습니다.

tRFC

  •  트랜잭션 RFC를 사용할 때 호출된 함수 모듈은 호출된 시스템에서 정확히 한번 실행(Exactly Once)
  •  트랜잭션 SM58을 사용하여 로그를 확인할 수 있음.
  • 호출 프로그램이 Commit Work. 구문에 도달하면 원격 호출이 요청된 시스템으로 전달함.

qRFC

  • tRFC의 확장형으로 큐(Queue)를 사용하여 직렬
  • qRFC는 아웃바운드 큐(호출 애플리케이션에서의 직렬화)와 인바운드 큐(호출 애플리케이션에서의 직렬화)로 구성될 수 있습니다.

bgRFC

  • 백그라운드 RFC(bgRFC)는 기존 tRFC 및 qRFC를 대체하는 표준으로 제공됩니다.
  • SAP NetWeaver 2004(SAP Basis 7.0)에서 사용할 수 있습니다. 
  • bgRFC는 새 버전의 tRFC 및 qRFC를 지칭하는 상위 용어입니다. 
  • 기존 tRFC/qRFC와 bgRFC를 동시에 실행할 수 있습니다.

3. RFC 동작 구조

 
외부 시스템 → RFC Destination → SAP RFC Function Module 호출 → 결과 리턴
SAP 내부 모듈 간 통신일 때도 동일 구조

 

RFC 호출 대상은 반드시 Remote-Enabled Function Module 이어야 하고
SE37에서 속성을 Remote-Enabled Module 로 설정해야 합니다.


4. RFC 설정 절차 (SM59)

1 Transaction Code: SM59 실행
2 RFC Destination(Type3 / HTTP / TCP/IP 등) 생성
3 접속정보 (Hostname, SysNo, Client 등) 입력
4 접속 테스트 버튼으로 검증

5. 실무에서 자주 쓰는 RFC 예제 및 RFC 구현

 
 

✅ 주요 포인트

  • DESTINATION = SM59 RFC Destination 명
  • 외부 시스템에서 SAP 데이터를 가져올 때 이 방식 사용
  • Function Module 은 SAP 쪽에서 제공/개발
  • 실제 운영 중이라면, SE37 조회를 하여 구현 소스 확인 및 참고

0. RFC Destination 생성 (SM59) 예시

T-code SM59
Connection Type 3 (ABAP Connection) 또는 TCP/IP
RFC Destination 예: RFC_DEST
Target Host SAP Application Server
System Number 00 / 01 등 시스템 번호
Client 100
Logon User/Password 지정

 

1. RFC Function Module 생성하기 (SE37 Create) - ABAP

경로: SE37 → Create → 아래와 같이 정의

▷ Function Module 헤더 설정

Function Module Z_RFC_GET_MATERIAL_INFO
Short Text Get Material Basic Info
Processing Type Remote-Enabled Module

▷ IMPORT/EXPORT 파라미터 설정

Parameter Type Description
IV_MATNR IMPORTING MATNR - 자재코드
EV_MAKTX EXPORTING MAKTX - 자재내역

 

▷ ABAP 소스 코드 예시

FUNCTION Z_RFC_GET_MATERIAL_INFO.
*"----------------------------------------------------------------------
*"*" Local Interface:
*"  IMPORTING
*"     VALUE(IV_MATNR) TYPE MATNR
*"  EXPORTING
*"     VALUE(EV_MAKTX) TYPE MAKTX
*"----------------------------------------------------------------------
  DATA: lv_matnr TYPE MATNR,
        lv_maktx TYPE MAKTX.

  SELECT SINGLE maktx
    INTO lv_maktx
    FROM makt
   WHERE matnr = iv_matnr
     AND spras = sy-langu.

  IF sy-subrc = 0.
    ev_maktx = lv_maktx.
  ELSE.
    ev_maktx = 'NO DATA FOUND'.
  ENDIF.

ENDFUNCTION.

 

SAP 시스템(또는 같은 시스템)에서 해당 RFC를 호출하는 예제

REPORT zcall_rfc.

DATA: lv_matnr TYPE matnr VALUE 'MAT12345',
      lv_maktx TYPE maktx.

CALL FUNCTION 'Z_RFC_GET_MATERIAL_INFO'
  DESTINATION 'RFC_DEST'        " SM59에 설정한 Destination
  EXPORTING
    iv_matnr = lv_matnr
  IMPORTING
    ev_maktx = lv_maktx
  EXCEPTIONS
    communication_failure = 1
    system_failure        = 2
    OTHERS               = 3.

IF sy-subrc = 0.
  WRITE: / 'Material: ', lv_matnr.
  WRITE: / 'Description:', lv_maktx.
ELSE.
  WRITE: / 'RFC Call Failed: ', sy-subrc.
ENDIF.

 

* JCO 를 통한 RFC 연결 및 호출

https://kora1492.tistory.com/141

 

[SAP-JCO] JCo 예제 및 연결 정리

[SAP-JCO] JCO( SAP Java Connector ) 예제 및 연결 정리 JCO 란? SAP는 SAP JCo ( SAP Java Connector ) 를 제공하여, SAP NetWeaver Appliacation Sever 에서 ABAP 와 JAVA 간의 양방향 통신을 지원합니다. (RFC , 원격함수호출)을

kora1492.tistory.com

 


6. 운영에서 자주 보는 RFC 오류 유형

오류  원인 해결 방법
RFC_NO_AUTHORITY 권한 부족 PFCG 권한 롤 점검
COMMUNICATION_FAILURE 네트워크 문제 방화벽/포트 확인
SYSTEM_FAILURE RFC 함수 내 ABAP 오류 ST22 덤프 분석
TIME_OUT 응답 지연 Timeout 설정 조정

7. 최근 RFC 트렌드

bgRFC 확산 기존 tRFC 성능 개선 + 병렬/백그라운드 처리 강화
SAP BTP / OData / API 연계 Cloud에서 RFC보다 OData(Open API) 활용 증가
RFC + PI/PO/IS 대규모 엔터프라이즈 아키텍처에서는 미들웨어 연계
RFC → API 전환 사례 증가 RFC는 폐기 아님, 레거시 + 핵심통신 역할 유지

8. RFC와 API 비교 (현업에서 자주 질문)

항목 RFC OData / API
위치 SAP 내부 통신 중심 SAP 밖(Open Integration) 중심
응용 시스템 SAP to SAP 강점 SAP ↔ Cloud/3rd Party
실시간 매우 강함 강함
성능 트랜잭션 처리 최적화 REST 기반 확장성
차세대 전략 유지 (Core) 확대 (Edge/Service)