The logon data of an RFC session is defined during the definition of an
RFC destination in transaction SM59. If no values are defined for the
user name, the
client, or the
logon language in this definition, these are supplied implicitly when the session is loaded for the first time, with the user name
sy-uname), the client (
sy-mandt), and the
text environment language (
sy-langu) of the calling session.
The function group of the function module is loaded into an internal session of the RFC session and is persisted there, so that when function modules with the same RFC destination and function group are called repeatedly, the global data belonging to this function group can all be accessed at the same time. When functions are called in an external system, the RFC Library API simulates this behavior. A connection and its RFC session is persisted until it is explicitly closed, or until the calling program is finished. The function module RFC_CONNECTION_CLOSE or API functions RfcAbort and RfcClose are used to explicitly close a connection.
Note that when the logon language is passed from the current session, it is not the logon language of the session that is used, but the text environment language, which (unlike the logon language) can be influenced by the statement SET LOCALE LANGUAGE. This applies in particular to the destination "NONE" and also to an asynchronous remote function call without a specified destination.