RFC(원격 함수 호출) SAP 튜토리얼
RFC란 무엇입니까?
RFC는 비즈니스 애플리케이션이 다른 시스템과 정보(미리 정의된 형식)를 통신하고 교환할 수 있도록 하는 메커니즘입니다. RFC는 다음을 의미합니다. '원격 함수 호출'
RFC는 두 가지 인터페이스로 구성됩니다.
- ABAP 프로그램을 위한 호출 인터페이스
- 비이용자를 위한 호출 인터페이스SAP 프로그램.
모든 품종 ABAP 프로그램 다음을 사용하여 원격 함수를 호출할 수 있습니다. 통화 기능…목적지 성명서. 그만큼 목적지 매개변수는 SAP 호출된 함수가 호출자가 아닌 시스템에서 실행되는 시스템입니다.
통사론-
CALL FUNCTION 'remotefunction' DESTINATION dest EXPORTING f1 = IMPORTING f2 = TABLES t1 = EXCEPTIONS
논리적 대상은 트랜잭션을 통해 정의됩니다. SM59 그리고 테이블에 저장됨 RFCDES
RFC 인터페이스의 기능
- 모든 매개변수 데이터를 원격 시스템에 필요한 표현으로 변환
- 원격 시스템과 통신하는 데 필요한 통신 루틴을 호출합니다.
- 원하는 경우 통신 오류를 처리하고 호출자에게 알립니다(CALL FUNCTION의 EXCEPTIONS 매개변수 사용).
RFC는 SAP 관련 프로그래밍을 단순화하기 위해 시스템 간의 통신을 처리하는 프로토콜입니다. 호출자 프로그램과 다른 시스템에 있는 함수 모듈을 호출하는 프로세스입니다. RFC는 동일한 시스템에서 다른 프로그램을 호출하는 데에도 사용할 수 있지만 일반적으로 '호출' 및 '호출' 기능 모듈/프로그램이 별도의 시스템에서 실행될 때 사용됩니다.
In SAP, RFC 인터페이스 시스템은 서로 다른 RFC 연결을 설정하는 데 사용됩니다. SAP 시스템, 그리고 또한 SAP 그리고 외부(비SAP) 시스템.
RFC에 대해 알아야 할 세부 사항
- SAP CPIC(통신용 공통 프로그래밍 인터페이스) 프로토콜을 사용하여 시스템 간에 데이터를 전송합니다. 그것은 SAP 특정 프로토콜. RFC(Remote Function Call)는 CPI-C를 기반으로 하는 통신 인터페이스이지만 응용 프로그램 프로그래머가 사용하기 더 쉽고 더 많은 기능을 갖추고 있습니다.
- RFC 라이브러리 함수는 다음을 지원합니다. C 프로그래밍 언어 및 Visual Basic( Windows 플랫폼)
- RFC 연결은 항상 전체 시스템에서 사용될 수 있습니다. 이는 클라이언트 000에서 정의한 RFC 연결을 클라이언트 100에서도 사용할 수 있음을 의미합니다(차이 없음).
- RFC는 네트워크를 통해 특수 서브루틴(기능 모듈)을 호출하기 위한 프로토콜입니다. 함수 모듈은 C 함수 또는 PASCAL 프로시저와 유사합니다. 여기에는 데이터, 테이블 및 반환 코드를 교환할 수 있는 정의된 인터페이스가 있습니다. 함수 모듈은 R/3 시스템의 Function Builder라고 불리는 자체 함수 라이브러리에서 관리됩니다.
- Function Builder(트랜잭션 SE37)는 애플리케이션 프로그래머에게 프로그래밍, 문서화 및 작업에 유용한 환경을 제공합니다. 지원 로컬 및 원격으로 호출할 수 있는 기능 모듈입니다. R/3 시스템은 원격 호출에 필요한 추가 코드(RFC 스텁)를 자동으로 생성합니다.
- 트랜잭션 SM59를 사용하여 RFC 연결에 대한 매개변수를 유지합니다. R/3 시스템에는 외부 프로그램을 R/3 시스템에 연결할 수 있도록 광범위한 C 라이브러리를 사용하는 RFC-SDK(소프트웨어 개발 키트)도 함께 제공됩니다.
- 다른 서버에 대한 기능 모듈의 원격 호출과 로컬 호출 간의 유일한 차이점은 프로그램이 실행될 대상 서버를 지정하는 특수 매개변수(대상)입니다.
RFC의 장점
RFC는 원격 시스템에서 모듈과 메소드를 재개발하는 것을 방지함으로써 프로그래머의 노력을 줄이는 데 도움이 됩니다. 다음과 같은 기능을 충분히 수행할 수 있습니다.
- 데이터를 원격(대상) 시스템에서 이해할 수 있는 형식으로 변환합니다.
- 데이터를 원격(대상) 시스템에서 이해할 수 있는 형식으로 변환합니다.
- 원격 시스템과의 통신을 시작하는 데 필요한 특정 루틴을 호출합니다.
- 통신 과정에서 발생할 수 있는 오류를 처리합니다.
RFC 유형
Sync영리한
통신 또는 데이터 전송 시 시스템(클라이언트와 서버)을 모두 사용할 수 있어야 합니다. 가장 일반적인 타입으로 sRFC 실행 직후 결과가 필요할 때 필요합니다.
sRFC는 승인이 필요한 시스템 간의 통신 수단입니다. 소스 시스템의 리소스는 대상 시스템을 기다리고 ACKD를 통해 메시지/데이터를 전달하는지 확인합니다. 데이터는 일관되고 신뢰할 수 있는 통신입니다.
문제는 대상 시스템을 사용할 수 없는 경우 소스 시스템 리소스가 대상 시스템을 사용할 수 있을 때까지 기다리는 것입니다. 이로 인해 소스 시스템의 프로세스가 대상 시스템에서 절전/RFC/CPIC 모드로 전환되어 이러한 리소스가 차단될 수 있습니다.
에 사용
- 시스템 간 통신을 위해
- 사이의 의사소통을 위해 SAP 웹 애플리케이션 서버 SAP GUI
비동기
승인이 필요하지 않은 시스템 간 통신입니다(엽서 전달과 유사). 실행 시 두 시스템을 모두 사용할 수 있어야 할 필요가 없으며 결과를 호출 시스템으로 즉시 다시 보낼 필요도 없습니다. .
소스 시스템 리소스는 승인을 기다리지 않고 메시지/데이터를 전달할 때 대상 시스템을 기다리지 않습니다. 대상 시스템을 사용할 수 없는 경우 데이터가 손실될 수 있으므로 통신에 신뢰할 수 없습니다. 사용 -
- 시스템 간 통신을 위해
- 병렬 처리의 경우
거래상의
aRFC의 특별한 형태입니다. 트랜잭션 RFC는 원래 자율적이었던 처리 단계를 트랜잭션과 유사하게 처리하도록 보장합니다.
트랜잭션 RFC는 네트워크 문제로 인해 데이터가 여러 번 전송되더라도 RFC 서버에서 호출된 함수 모듈을 한 번만 실행하는 비동기 통신 방법입니다. RFC 클라이언트 프로그램이 tRFC를 실행할 때 원격 시스템을 사용할 수 있을 필요는 없습니다. tRFC 구성 요소는 호출된 RFC 함수와 해당 데이터를 함께 저장합니다. SAP 고유한 트랜잭션 ID(TID)로 데이터베이스화합니다. tRFC는 대상 시스템에서 기다리지 않기 때문에 aRFC와 유사합니다(등록된 게시물과 유사). 시스템을 사용할 수 없는 경우 스케줄러 RSARFCSE(58초마다 실행)에서 선택하는 트랜잭션 ID(SM60)로 데이터를 aRFC 테이블에 씁니다. 사용-
- 비동기 RFC 확장
- 시스템 간 안전한 통신을 위해
대기 중
대기열에 있는 RFC는 tRFC의 확장입니다. 또한 개별 단계가 순서대로 처리되도록 보장합니다. 여러 LUW(논리적 작업 단위/트랜잭션)가 애플리케이션에서 지정한 순서대로 처리되도록 보장합니다. tRFC는 큐(인바운드 및 아웃바운드 큐)를 사용하여 직렬화될 수 있습니다. 따라서 qRFC(대기 중인 RFC)라는 이름이 붙었습니다. 사용-
- 트랜잭션 RFC 확장
- 정의된 처리 순서의 경우
- 여러 트랜잭션이 미리 정의된 순서에 따라 처리되도록 하려면 qRFC를 구현하는 것이 좋습니다.
RFC 연결 유형
3에게 입력 – 항목은 사이의 연결을 지정합니다. ABAP 시스템. 여기서는 호스트 이름/IP 주소를 지정해야 합니다. 그러나 원하는 경우 로그온 정보를 지정할 수 있습니다. 이는 ABAP 시스템과 ABAP 시스템에 대한 외부 호출 간의 두 가지 유형의 RFC에 모두 적용 가능합니다.
유형 I – 항목은 현재 시스템과 동일한 데이터베이스에 연결된 ABAP 시스템을 지정합니다. 이러한 항목은 미리 정의되어 있으며 수정할 수 없습니다. 항목 이름 예시: ws0015_K18_24
- ws0015=호스트 이름
- K18=시스템 이름(데이터베이스 이름)
- 24=TCP 서비스 이름
유형 T – 대상은 RFC API를 사용하여 RFC를 수신하는 외부 프로그램에 대한 연결입니다. 활성화 유형은 시작 또는 등록일 수 있습니다. 시작인 경우 시작할 프로그램의 호스트 이름과 경로 이름을 지정해야 합니다.
RFC를 코딩하는 방법은 무엇입니까?
1) 기능 모듈 속성 탭(트랜잭션 코드 SE37)에서 처리 유형을 원격 지원 모듈로 설정하여 원격 기능 모듈을 생성합니다.
2) 함수 모듈의 코드를 작성합니다.
3) SM59 트랜잭션을 통해 원격 기능을 호출하는 RFC 클라이언트 시스템에서 RFC 서버의 대상을 정의합니다.
4) 매개변수 선언: 원격 기능 모듈의 모든 매개변수 필드는 ABAP 사전 필드와 같은 참조 필드로 정의되어야 합니다.
5) 예외: 시스템은 내부적으로 COMMUNICATION_FAILURE 및 SYSTEM_FAILURE를 발생시킵니다. 로컬로 호출되는 함수에서와 마찬가지로 원격 함수에서도 예외를 발생시킬 수 있습니다.
원격 함수 호출 디버깅
- 그것은 디버깅이 불가능하다 다른 시스템에 대한 원격 함수 호출.
- 그러나 ABAP-ABAP RFC 호출을 테스트할 때 ABAP 디버거를 사용하여 원격 시스템에서 RFC 기능 실행을 모니터링할 수 있습니다.
- 원격 호출을 사용하면 ABAP 디버거(디버깅 인터페이스 포함)가 로컬 시스템에서 실행됩니다. 원격 기능에 대한 데이터 값 및 기타 실행 정보는 원격 시스템에서 전달됩니다.