Utilities

Tools

Passing Queue Names

TRFC_SET_QUEUE_NAME

This function module passes a queue name for only one function call immediately before a "call function … in background task" (tRFC call) and indicates that the current LUW must be processed using tRFC with outbound queue. The queue name passed is valid only for the subsequent tRFC call.

Reading Queue Entries

TRFC_GET_QUEUE_INFO and TRFC_GET_QUEUE_INFO_DETAILS

Use these function modules to read the current contents of one or all queues of table TRFCQUOT in a detailed form.

RSTRFCQR

This ABAP program uses the two function modules mentioned above to display the current contents of the outbound queue table TRFCQUOT.

RSTRFCQD

This ABAP program deletes all entries of single or all transactions. Use this program for test purposes or in emergencies only. If you delete the entries of a transaction, this transaction is no longer serialized. You may have to start it manually again.

Initializing in "Mixed Mode"

TRFC_QUEUE_INITIALIZE

Calling this parameter-free function module at the beginning of a qRFC LUW in "mixed mode" (using tRFC as well as qRFC) indicates that the current LUW must be processed using qRFC with outbound queue. However, this is necessary only if the first call is a normal tRFC call. If the first call is a qRFC call, the initialization is done by the function module TRFC_SET_QUEUE_NAME. See also demo program RSTRFCT1.

SM58

Transaction SM58, which you used as tRFC monitor for displaying and editing the tRFC transactions, now also allows processing qRFC transactions. If you delete a tRFC entry with this transaction, the system automatically deletes the corresponding entries in the outbound queue table, if they exist. If you start an LUW, the system does not immediately transfer this LUW but first checks whether this LUW needs serialization or whether it must wait due to predecessors in the queue.

Stopping Queues, Continuing Them, and Querying Their Statuses

You can stop and continue processing of one or more queues (using generic specification). In addition, you can query the status of a queue.
Use the following function modules:

 

TRFC_QOUT_STOP

Specify a queue name (single or generic, such as BASIS_TEST_*) and a destination to stop processing one or more queues. Depending on the FORCE parameter, you can stop processing at once (parameter FORCE = 'X') or process all requests that exist in the queue at the moment the STOP occurs and stop afterwards (FORCE = '  '). You can also stop an empty queue. In this case, all transactions assigned to this queue are not sent immediately. See also demo program RSTRFCQ1.

TRFC_QOUT_STATE

Specify the name of a queue and a destination to query the status of this queue. See also demo program RSTRFCQ2.
A queue can have one of these statuses:

§         RUNNING

§         CPICERR

§         SYSFAIL

§         STOPPING

§         STOP

§         WAITSTOP

Status SYSFAIL results from a serious error and is triggered by an exception in the kernel of the target system or in the called function module. In this status the queue remains. There is no automatic repetition. You can use SM58 to send this LUW again or to delete it. If you delete it, the system automatically deletes the corresponding entries in the queue table TRFCQOUT.
In status CPICERR an automatic repetition depends on the configuration of the destination in SM59 (by default set to "Yes").

TRFC_QOUT_RESTART

Specify a queue name (single or generic, such as BASIS_TEST_*) and a destination to continue processing one or more queues, regardless of whether the queues were stopped before by a queue stop function module (parameter FORCE) or by statuses CPICERR or SYSSFAIL. See also demo program RSTRFCQ3.

TRFC_QOUT_RESTART_COND

Specify a queue name (single or generic, such as BASIS_TEST_*) and a destination to continue processing one or more queues depending on whether processing of one or more other queues is terminated. Calling this function automatically stops the queues to be continued at this moment, if no other STOP call (depending on how parameter FORCE is set) was issued before. See also demo program RSTRFCQ4.

Example Programs

§         RSTRFCT0, RSTRFCT1, RSTRFCT2, and RSTRFCT3 are sample or test programs for qRFC with outbound queue.

§         With programs RSTRFCQ1, RSTRFCQ2, RSTRFCQ3, and RSTRFCQ4 you can stop processing one or more queues, continue processing with or without condition, or query the status of a queue.

The following section describes how an Asynchronous RFC works.