
"Mischbetrieb" einsetzen
Ein Mischbetrieb zeichnet sich dadurch aus, daß qRFC-Aufrufe mit Ausgangsqueue mit normalen tRFC-Aufrufen gemeinsam in einer LUW behandelt werden. Zur Charakterisierung des "Mischbetriebs" siehe auch
qRFC mit Ausgangsqueue im Überblick.Voraussetzungen
Analog zu
Serialisierung programmieren.Vorgehensweise
Bei der Implementierung des "Mischbetriebs" in einer LUW, ist folgende Besonderheit zu beachten:
Ist in einer LUW mit "Mischbetrieb" der erste Aufruf ein normaler tRFC -Aufruf, so muß zuerst der Funktionsbaustein TRFC_QUEUE_INITIALIZE abgesetzt werden. Damit wird sichergestellt, daß die aktuelle LUW über qRFC mit Ausgangsqueue bearbeitet wird.
Ist dagegen der erste Aufruf ein qRFC-Aufruf, so wird diese Initialisierung bereits durch den Funktionsbaustein TRFC_SET_QUEUE_NAME durchgeführt.

Die folgende Programmsequenz zeigt exeplarisch, wie eine LUW mit "Mischbetrieb" implementiert wird:
REPORT ... .
...
DATA Q_NAME LIKE
TRFCQOUT-QNAME .
CALL FUNCTION '
TRFC_QUEUE_INITIALIZE '.CALL FUNCTION 'RFC_FUNCTION_1' " tRFC call -> NO QUEUE
IN BACKGROUND TASK
DESTINATION 'DEST'
EXPORTING ...
TABLES ... .
...
Q_NAME = 'BASIS_TEST_Q1'.
CALL FUNCTION '
TRFC_SET_QUEUE_NAME 'EXPORTING
QNAME = Q_NAME.
CALL FUNCTION 'RFC_FUNCTION_2' " qRFC call -> Q1
IN BACKGROUND TASK
DESTINATION 'DEST'
EXPORTING ...
TABLES ... .
...
CALL FUNCTION 'RFC_FUNCTION_N-1' "tRFC call -> NO QUEUE
IN BACKGROUND TASK
DESTINATION 'DEST'
EXPORTING ...
TABLES ... .
Q_NAME = 'BASIS_TEST_QM'.
CALL FUNCTION '
TRFC_SET_QUEUE_NAME 'EXPORTING
QNAME = Q_NAME.
CALL FUNCTION 'RFC_FUNCTION_N' " qRFC call -> QM
IN BACKGROUND TASK
DESTINATION 'DEST'
EXPORTING ...
TABLES ... .
...
COMMIT WORK.
Ergebnis
Aufgrund der Transaktionseigenschaft bilden die normalen tRFC-Aufrufe und die qRFC-Aufrufe gleicher Destination eine Einheit. Falls jedoch zu einer Destination keine qRFC-Aufufe innerhalb der aktuellen LUW zu bearbeiten sind, werden die normalen tRFC-Aufrufe zu einer eigenen Sub-LUW gebündelt.
Die normalen tRFC-Aufrufe mit dem Zusatz AS SEPARATE UNIT bilden, wie üblich, eine separate LUW im Zielsystem ab.
qRFC-Aufrufe mit dem Zusatz AS SEPARATE UNIT werden zwar queue-abhängig, jedoch auch separat von der eigentlichen LUW bearbeitet.

Zum Einstieg in die Programmierung des "Mischbetriebs" steht Ihnen das Demo-Programm RSTRFCT1 zur Verfügung.