2008년 11월 2일 일요일

RFC

RFC(Remote Function Call)의 정의
·CALLER의 시스템(CLIENT)에서 다른 시스템(SERVER)으로 실행하는 어떤 FUNCTION MODULE 전부를 말한다.·RFC는 같은 시스템에서도 CALL되어 질 수도 있다. 하지만 일반적으로 서로 다른 시스템에서 이뤄진다.·SAP에서의 RFC Interface는 두개의 SAP System이나 SAP과 non-SAP 사이에서 Remote Call 이 이루어 진다. SAP system에서의 RFC
★ RFC 문장의 기술은 Local Function Module에서 Callee System의 Information을 기술해 주는 DESTINATION 부분만 추가하면 된다.
· SYNTAX CALL FUNCTION DESTINATION EXPORTING IMPORTING TABLES EXCEPTIONS SYSTEM_FAILURE = COMMUNICATION_FAILURE = ★ Destinations BACK, SPACE and NONE
· CALL FUNCTION ... DESTINATION = 'BACK' Client 에서의 CALL에 의해 SERVER가 FUNCTION을 처리하는 동안 CALL된 SERVER의 FUNCTION에서 다른 System의 Function을 호출할 수 있는데 만약 자신을 호출했던 Client상의 다른 Function을 호출하는 경우 Destination Name을 따로 정의하지 않고 'BACK'을 사용하면 호출된 경로를 통해 자동으로 CLIENT System으로 되돌아가서 Module을 실행한다.
· CALL FUNCTION ... DESTINATION = 'NONE' or 'SPACE' Local Functioin Call과 같은 기능으로 동일 System에서의 Function을 호출하는 경우이다. RFC 작성법
1. 원격으로 Module을 저장 Function Library의 Adminstration Screen에서 Remote Call을 통하여 호출될 수 있는 Field 맞추기. Process Type에서 Remote Function Call Supported 로 셋팅한다.2. Function Module에 대한 Code 기술3. Function의 실행을 위해 RFCDES Table에 DESTINATION Entry 만들기 ·Tools - Administration - Administration - Network - RFC Destinations ·Transaction SM59★ Synchronous RFC · 가장 일반적 형태의 동기적 RFC 이다. destination 문에서 option을 주지 않으면 synchronous로 인식한다. · abap/4 program에서 server의 function을 call한 후 그 작업이 다 끝나야 호출한 프로그램으로 되돌아 가는 경우를 말한다. 호출된 function 작업결과가 호출한 프로그램에 영향을 미치는 경우 주로 사용한다. (한 예로 Function의 Return값이 호출 Program에서 쓰이는 경우)
★ Asynchronous RFC · 비동기적 RFC 이다. · 호출한 Program과 호출된 Function이 관계없이 작업을 하게 된다. 호출된 Function의 작업완료 여부와 관계없이 호출한 Program도 작업을 수행한다. 호출된 Function 작업결과가 호출한 프로 그램에 영향을 미치지 않는 경우에 사용한다.
· CALL FUNCTION DESTINATION STARTING NEW TASK · · ·
★ Transactional RFC (tRFC) · 비동기적 RFC 이다. · 호출 시스템은 호출 즉시 Transaction Function을 실행하지 않고, 넘겨줄 Parameter값을 기입해 두었다가 호출하는 프로그램에서 Commit Work에 도달했을때 Remote Call은 요청된 시스템으로 접속을 시도한다. 만약 받는 시스템이 어떤 시간에서 활성화 되어 있지 않다면 호출은 Batch (Automatic JOB Scheduling)로 실행하게 된다.
· CALL FUNCTION DESTINATION IN BACKGROUND TASK · · · COMMIT WORK
★ Create RFCDES Entries · Transaction SM59에서 존재하는 모든 Entry는 Tree 구조로 나타남. · 방법 RFC Destination 임의로 지정 Technical Settings Connection Type I Connection To Application Server With Same Database 3 Connection To R/3 System 2 Connection To R/2 System T Start An External Program Via TCP/IP L Reference Entry (refers To Another Destination) S Start An External Program Via SNA Or APPC X RFC Via Special ABAP/4 Driver Routines M CMC Connection
Target Machine 접속할 Remote System의 이름이나 주소지정 System Number Description Logon 사용할 대상 시스템에서의 사용자 정보 정의 >> SAMPLE << Client : koala Server : scorpio SE38 Report Prog. : zsun-f01 ( koala ) SM59 Remote Dest. : scropio ( scorpio 시스템으로의 RFC Test ) SE37 Function : z_sun_f01 ( scorpio 에 작성 )

댓글 없음: