
Hilfsmittel
Tools
Queue-Namen übergeben
TRFC_SET_QUEUE_NAME
Dieser Funktionsbaustein dient zur Übergabe eines Queue-Namens für jeweils nur einen Funktionsaufruf unmittelbar vor einem "call function … in background task" (tRFC-Aufruf) und signalisiert, daß die aktuelle LUW über qRFC mit Ausgangsqueue bearbeitet werden muß. Der übergebene Queue-Name gilt nur für den nachfolgenden tRFC-Aufruf.
Queue-Einträge lesen
TRFC_GET_QUEUE_INFO
und TRFC_GET_QUEUE_INFO_DETAILSDer aktuelle Inhalt einer oder aller Queues aus der Tabelle TRFCQUOT kann mit diesen Funktionsbausteinen in mehr oder weniger detailierter Form gelesen werden.
RSTRFCQR
Dieses ABAP-Programm setzt die beiden obigen Funktionsbausteine ein, um den aktuellen Inhalt der Ausgangsqueue-Tabelle TRFCQUOT anzuzeigen.
RSTRFCQD
Mit diesem ABAP-Programm können alle Einträge einzelner oder aller Transaktionen gelöscht werden. Dieses Programm sollte entweder für Testzwecke und nur im äußersten Notfall zu verwendet werden. Das Löschen der Einträge einer Transaktion führt dazu, daß diese Transaktion nicht mehr serialisiert wird und evtl. manuell nachgestartet werden muß.
Initialisieren im "Mischbetrieb"
TRFC_QUEUE_INITIALIZE
Der Aufruf dieses parameterlosen Funktionsbausteins am Anfang einer qRFC-LUW mit "Mischbetrieb" (sowohl tRFC als auch qRFC) signalisiert, daß die aktuelle LUW über qRFC mit Ausgangsqueue bearbeitet werden muß. Dies ist jedoch nur notwendig, falls der erste Aufruf ein normaler tRFC-Aufruf ist. Ist dagegen der erste Aufruf ein qRFC-Aufruf, wird diese Initialisierung bereits durch den Funktionsbaustein TRFC_SET_QUEUE_NAME durchgeführt. Siehe auch Demo-Programm RSTRFCT1.
SM58
Die bisherige Transaktion sm58 als tRFC-Monitoring zum Anzeigen und Bearbeiten der tRFC-Transaktionen kann ebenfalls für qRFC verwendet werden. Das Löschen eines tRFC-Eintrags in dieser Transaktion führt automatisch zum Löschen entsprechender Einträge in der Ausgangsqueue-Tabelle, sofern sie dort vorhanden sind. Das Starten einer LUW führt nicht zum sofortigen Übertragen dieser LUW, da zuerst geprüft werden muß, ob diese LUW serialisiert werden soll und ob sie wegen der vorhandenen Queue-Vorgänger warten muß.
Stoppen, Erneutes Starten und Statusabfrage von Queues
Die Bearbeitung einer oder mehrerer Queues (mit generischer Angabe) kann angehalten und wieder forgesetzt werden. Ferner kann der Status einer Queue auch abfragt werden.
Folgende Funktionsbausteine stehen hierfür zur Verfügung:
TRFC_QOUT_STOP
Mit Angabe der Queue-Namen (einzeln oder generische Angabe wie BASIS_TEST_* möglich) und einer Destination kann die Bearbeitung einer oder mehrerer Queues angehalten werden. Optional können diese Queues nach Möglichkeit auch sofort angehalten werden (Parameter FORCE = 'X') oder es werden zuerst alle bis zum STOP-Zeitpunkt vorhandenen Aufträge in dieser Queue abgearbeitet und danach die Bearbeitung angehalten (FORCE = ' '). Das Anhalten einer leeren Queue ist ebenfalls möglich und führt dazu, daß alle Transaktionen, die dieser Queue zugeordnet sind, nicht sofort versendet werden. Siehe auch Demo-Programm RSTRFCQ1.
TRFC_QOUT_STATE
Mit der Angabe eines Queue-Namens und einer Destination kann der Status einer Queue abgefragt werden. Siehe auch Demo-Programm RSTRFCQ2.
Folgende Status sind möglich:
Der Status SYSFAIL geht auf einen schwerwiegender Fehler zurück und wird durch eine Exception im R/3-Kernel des Zielsystems selbst oder im aufgerufenen Funktionsbaustein hervorgerufen. In diesem Status bleibt die Queue praktisch stehen. In diesem Fall findet auch keine automatische Wiederholung statt. Über SM58 kann diese LUW nochmals versendet oder auch gelöscht werden. Im zweiten Fall werden automatisch die entsprechenden Einträge in der Queue-Tabelle TRFCQOUT gelöscht.
Im Status CPICERR ist eine automatische Wiederholung abhängig von der Konfiguration der Destination in sm59 (defaultmäßig mit "Ja" vorbelegt).
TRFC_QOUT_RESTART
Mit Angabe des Queue-Namens (einzeln oder generische Angabe wie BASIS_TEST_* möglich) und einer Destination kann die Bearbeitung einer oder mehrerer Queues forgesetzt werden unabhängig davon, ob diese Queues vorher durch Queue-Stop (Parameter FORCE) oder durch CPICERR oder SYSSFAIL angehalten wurden. Siehe auch Demo-Programm RSTRFCQ3.
TRFC_QOUT_RESTART_COND
Mit Angaben des Queue-Namens (einzeln oder generische Angabe wie BASIS_TEST_* möglich) und einer Destination kann die Fortsetzung der Bearbeitung einer oder mehrerer Queues vom Ende der Bearbeitung einer oder von mehreren anderen Queues abhängig gemacht werden. Ein Aufruf dieser Funktion führt automatisch dazu, daß die fortzusetzenden Queues spätestens ab diesem Zeitpunkt angehalten werden, falls vorher ein entsprechender STOP-Aufruf (abhänging von der Belegung des Parameters FORCE) noch nicht erfolgt war. Siehe auch Demo-Programm RSTRFCQ4.
Beispielprogramme