-
Request for existing cases, user IDs, Portal navigation support and more
qRFC Channel
Using a qRFC, data can be exchanged between two application components in multiple queues on a first-in-first-out basis (FIFO) for the function modules. Several applications can place function modules in the same queues. The function modules can be processed on the receiving system in the order defined by the applications in the sending system. The number of queues used is defined by the applications.
The following communication model shows what communication scenarios may look like in reality. The actual sending process is still executed by the tRFC (transactional Remote Function Call). Inbound and outbound queues are added to the tRFC, leaving us with a qRFC (queued Remote Function Call). The sender system is also called the client system, while the target system corresponds to the server system. In practice, the following three scenarios for data transfer with qRFC and tRFC exist:
Scenario 1: tRFC This scenario is appropriate if the data being sent is independent of each other. A calling application (or client) in system 1 uses a tRFC connection to a called application (or server) in system 2. In this scenario data is transferred by tRFC, meaning that each function module call sent to the target system is guaranteed to be executed only once. You can neither define the sequence in which the function module calls are executed nor the time of execution. If an error occurs during the transfer, a batch job is scheduled which sends the function module call again after 15 minutes.
Scenario 2: qRFC with outbound queue In this scenario, the sender system uses an outbound queue to serialize the data that is being sent. This means that function module calls which depend on each other (such as update and then change) are put into the outbound queue of the sender system, and are guaranteed to be sent to the target system one after each other and one time only. The called system (server) has no knowledge of the outbound queue in the sender system (client), meaning that in this scenario every SAP system can also communicate with a non-SAP system. The programming code of the server system does not have to be changed. However, it must be tRFC-capable.
Scenario 3: qRFC with inbound queue (and outbound queue) In this scenario, an outbound queue in the sender system (client) is used in parallel to an inbound queue in the target system (server). If a qRFC with inbound queue exists, this always means that an outbound queue exists in the sender system. This guarantees the sequence and efficiently controls the resources in the client system and server system. The inbound queue only processes as many function module calls as the system resources in the target system (server) at that time allow.
Although qRFCs are serialized tRFC LUWs, you cannot maintain or display these LUWs using the tRFC administration transaction SM58. You have to use the qRFC queue administration transaction SMQ1 for outbound queues and SMQ2 for inbound queues. The following functions are available:
- List queues
- Display queues with a list of accompanying LUWs and function modules including input data
- Start/stop transmitting the queues
- Delete queues or queue entries