Ansicht
Dokumentation
CL_PERIODIC_BG_MONITORING - monitoring of periodic background activity
General Material Data Vendor Master (General Section)Diese Dokumentation steht unter dem Copyright der SAP AG.
Funktionalität
Die Klasse CL_PERIODIC_BG_MONITORING ermöglicht auf einfache Weise eine zyklische Hintergrund-Aktivität zu starten und lebendig zu halten.
Aufgabe einer zyklischen Hintergrund-Aktiviität ist zum Beispiel das automatische Aufräumen liegengebliebener Business-Objekte.
Die Zykluszeit der Hintergrundfunktion kann minimal wenige Sekunden betragen. Die Zykluszeit der zugrundeliegenden Überwachungsfunktion hängt von ihrem Aufrufer ab (AUTOABAP, Batchjob). Wenn kürzere Überwachungszyklen erforderlich sind, kann die eigentliche Überwachungsfunktion selbst als zyklische Hintergrundaktivität implementiert werden.
Beispiel
AUTOABAP --(ruft synchron)--> Überwacher (Minuten) --(startet & überwacht)--> Hintergrundaktivität
AUTOABAP --(ruft synchron)--> Überwacher (Minuten) --(startet & überwacht)--> Überwacher (Sekunden)--> ...
Beteiligte Komponenten
- Klasse CL_PERIODIC_BG_MONITORING, wird von der Technologie-Plattform bereitgestellt. Intern werden die DDIC Struktur SPBGM_FUNCTION_INDICATOR und das Sperrobjekt E_PBGM_LOCK verwendet.
- Funktionsbaustein mit frei wählbarem Namen, wird vom Anwender bereitgestellt.
- ABAP-Programm mit Formroutine, mit frei wählbarem Namen, wird vom Anwender bereitgestellt.
- Anwendungsbeispiel, wird von der Technologie-Plattform bereitgestellt. Es umfasst den Funktionsbaustein PBG_DEMO_FUNCT und das ABAP-Programm PBG_DEMO_PROG
Funktionsweise
Formroutine des ABAP-Programms
- wird zylisch aufgerufen, z.B. im AUTOABAP oder in einem zyklisch eingeplanten Batchjob
- erzeugt ein Objekt der Klasse CL_PERIODIC_BG_MONITORING
- initialisiert das Objekt mit der Methode initialize_for_monitoring( ... )
- startet bzw. überwacht die zyklische Hintergrundfunktion mit der Methode monitor( )
Überwachte Funktion
- wird asynchron aus der Methode monitor( ) ds Überwachers gestartet (STARTING NEW TASK)
- erzeugt ein Objekt der Klasse CL_PERIODIC_BG_MONITORING
- initialisiert das Objekt mit der Methode initialize_for_periodic_bg_( ... )
- Schleife über
- Startus-Update mit methode update_at_start( ), return bei Fehler-Returncode
- Nutzfunktion ausführen
- Status-Update mit methode update_at_end( ), return bei Fehler-Returncode
- wartet auf nächsten Zyklusbeginn, dann neuer Schleifendurchlauf
Beziehungen
Beispiel
FORM MONITOR_PBG.
data:
type ref to CL_PERIODIC_BG_MONITORING.
data:
name
like indicator-name
value 'PBG_DEMO',
inst
like indicator-instance
value '2',
val
like indicator-check_interval value '10',
dest
like indicator-destination
value 'PBG_DEMO_DEST',
function like f1->function_type
value 'PBG_DEMO_FUNCT'.
create object f1.
f1->initialize_for_monitoring(
name = name
instances = inst
check_interval = ival
destination = dest
function = function ).
f1->monitor( ).
ENDFORM.
FUNCTION PBG_DEMO_FUNCT. *"-------------------------------------------------------------------- *"*"Lokale Schnittstelle: *" IMPORTING *" VALUE(NAME) TYPE SPBGM_FUNCTION_INDICATOR-NAME *" VALUE(INSTANCE) TYPE SPBGM_FUNCTION_INDICATOR-INSTANCE *" VALUE(CHECK_INTERVAL) TYPE SPBGM_FUNCTION_INDICATOR-CHECK_INTERVAL *" VALUE(DESTINATION) TYPE SPBGM_FUNCTION_INDICATOR-DESTINATION *"-------------------------------------------------------------------- data: f1 type ref to CL_PERIODIC_BG_MONITORING.
create object f1.
f1->initialize_for_periodic_BG(
name
= name
instance
= instance
check_interval = check_interval
destination
= destination ).
do.
f f1->update_at_start( ) <> f1->rtc_ok. return. endif.
< perform utility function >
if f1->update_at_end( ) <> f1->rtc_ok. return. endif.
wait up to <n> seconds.
enddo.
ENDFUNCTION.
Hinweise
Weiterführende Informationen
PERFORM Short Reference ABAP Short Reference
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 6451 Date: 20240329 Time: 075300 sap01-206 ( 65 ms )