- References
- https://www.guru99.com/rfc-remote-function-call.html (SAP RFC Tutorial)
- https://developers.sap.com/tutorials/abap-create-project.html (ABAP 개발도구 ADT 에서 프로젝트 만들기)
- https://docs.microsoft.com/ko-kr/azure/purview/abap-functions-deployment-guide (SAP ABAP 함수 모듈 배포 가이드)
- RFC 란
- Remote Function Call 의 약자 (원격 함수 호출)
- 비즈니스 애플리케이션이 다른 시스템과 정보를 교환하고 통신 할 수 있도록 하는 메커니즘
- ABAP 프로그램을 위한 호출 인터페이스 & 비 SAP 프로그램에 대한 호출 인터페이스로 구분
- CALL FUNCTION ... DESTINATION 문을 사용
- DESTINATION 매개변수 는 호출된 함수가 호출자가 아닌 시스템에서 실행됨을 SAP 시스템에 알림

- RFC 는 SAP는 CPIC(Common Programming Interface for Communication) 프로토콜을 사용, 프로그래밍을 단순화 하기 위해 시스템 간 통신을 처리하는 SAP 프로토콜, 호출자 프로그램과 다른 시스템에 있는 함수 모듈을 호출하는 프로세스

- 기능 빌더(트랜잭션 SE37) 는 로컬 또는 원격으로 호출 할 수 있는 기능 모듈을 프로그래밍, 문서화, 테스트 하기 위한 환경을 프로그래머에게 제공

- 트랜잭션 SM59를 사용하여 RFC 연결에 대한 매개변수를 유지 관리

트랜잭션 SM59(?) 테이블 RFCDES (?) - 뭔소린지 모르겠다~
- RFC 인터페이스의 기능
- 모든 매개변수 데이터를 원격 시스템에 필요한 표현으로 변환
- 원격 시스템과 통신하는데 필요한 통신 루틴을 호출
- 통신 오류를 처리하고 원하는 경우 호출자에게 알림 (EXCEPTION 매개변수 사용)

- RFC 유형

- sRFC (동기)
- 승인이 필요한 시스템 간 통신 (?)
- 시스템 간 통신, SAP Web App Server 와 SAP GUI 간 통신에 사용
- aRFC(비동기)
- 승인이 필요하지 않은 시스템 간 통신
- 시스템 간 통신, 병렬 처리
- tRFC(트랜잭션)
- Transactional RFC는 어떤 네트워크 문제로 인해 데이터가 여러 번 전송되더라도 RFC 서버에서 호출된 함수 모듈을 한 번만 실행하는 비동기식 통신 방식 (트랜잭션 보장)
- SAP 데이터베이스에 고유 트랜잭션 ID 로 저장 (TID)
- 비동기 RFC 확장, 시스템 간 안전한 통신
- qRFC
- tRFC의 확장, 여러 LUW (논리적 작업단위/트랜잭션) 이 애플리케이션에서 지정한 순서대로 처리되도록 보장
- tRFC의 확장
- 정의된 처리 순서의 경우, 여러 트랜잭션이 미리 정의된 순서대로 처리되도록 하려면 qRFC를 구현하는 것이 좋음
- RFC 연결 유형

- Type 3
- ABAP 시스템 간의 연결을 지정
- Type I
- 시스템과 동일한 데이터베이스에 연결된 ABAP 시스템 지정
- Type T
- RFC API 를 사용하여 RFC를 수신하는 외부 프로그램에 대한 연결
- RFC 기능 개발
- SAP GUI 로그인 후, 기능 모듈 속성 탭 (트랜잭션 코드 SE37) 에서 처리 유형을 원격 활성화 모듈로 설정하여 원격 기능 모듈 생성
.... 유저 생성 T-CODE : SU 01
기존 Function Group 을 사용하여 RFC 개발 하려고 했지만 Developer Access Key 가 필요한 듯 하다 (생성 안됨)