‎2007 Feb 05 10:08 AM
Hi,
when we call a transaction in SAP R/3 e.g. SE38. , a RFC is called from presentation server to application server. i wnat to know what exactly happens behind the screen.how a rfc is called? how the connection is established between presentation server & application server.
please do the needful
Regards
Hemant
‎2007 Feb 05 10:12 AM
Hi,
The following is an example of the Client-Server negotiation
process.
Server: IAC DO TERMINAL-TYPE
Client: IAC WILL TERMINAL-TYPE
Server: IAC SB TERMINAL-TYPE SEND IAC SE
Client: IAC SB TERMINAL-TYPE IS IBM-3287-1 IAC SE
Note: To request a specific LU the TERMINAL-TYPE string would be:
IAC SB TERMINAL-TYPE IS IBM-3287-1 @ LUNAME IAC SE
(The client has specified its terminal type is an IBM-3287-1)
Server: IAC DO END-OF-RECORD
Client: IAC WILL END-OF-RECORD
Server: IAC WILL END-OF-RECORD
Client: IAC DO END-OF-RECORD
(The Server and Client have both agreed to transmit End-Of-Record
(EOR)).
Server: IAC DO TRANSMIT-BINARY
Client: IAC WILL TRANSMIT-BINARY
Server: IAC WILL TRANSMIT-BINARY
Client: IAC DO TRANSMIT-BINARY
(The Server and Client have both agreed to use binary
transmission)
Server: 0x00 (3270 PRINT DATA)
Client: (S/S with DEV END) IAC EOR
Server: 0x00 (3270 PRINT DATA) IAC EOR
NOTE: LU 1 type data is prefaced with a 0x00 character. LU 3
type data is not prefaced with a special character. This
character will precede print data in each chain, and should be
discarded before the print data is processed. An <IAC EOR> must
be received before changing to LU 1 or LU 3 type data.
Client: (S/S with IR) IAC EOR (This indicates a paper jam
at printer.)
Client: (S/S with DE) IAC EOR (This indicates the clearing
of above condition.)
Server: 0x00 (3270 PRINT DATA) (This indicates start of LU 1
data)
Server: (3270 PRINT DATA)
Server: (3270 PRINT DATA)
Server: (3270 PRINT DATA) IAC EOR
Client: (S/S with DE) IAC EOR
Server: 0x00 (LAST 3270 PRINT DATA) IAC EOR
Client: (S/S with DE) IAC EOR
Server: IAC AO
(The Abort Output <AO> signifies the end-of-bracket -- end of
print job)
Thanks,
Shankar
‎2007 Feb 05 10:44 AM
RFC means, calling a function module with remote enabled property which is available in another R/3 system.
RFC's can be two types. ( synchronus and asynchronus). In this process, the calling program statements executed very fastly (it is called main thread process). When "call function" statement is appeared, in the program, it searche for the function module in the remote system and executes all the statements in the remote system ( called child thread). Usually, main thread process is faster than child thread process. So, when the control goes to the remote system, the control waits upto completion of all the statementsd in the remote FM, then process the remaining steps in the calling program which is there after the call function statement. ( this process is called synchronus RFC).
In Assynchronus RFC, system continues to execute the remaining steps of the calling program , when the control is in called program alternatively and finally executes it. So Assynchronus RFC is faster than Synchronus RFC.
THe connection will be established using the IP addresses of the both systems using the TCODE: "SALE". It is Basis people job.
Cheers.
‎2007 Feb 05 10:46 AM
Another thing, call by reference is not allowed in RFC, Bz the variables are local to the R/3 system and not able to pick the values by another system.
Cheers.
‎2007 Apr 27 2:17 PM