Ansicht Dokumentation

Wir wachsen stetig und suchen neue Kollegen (m/w/d)! Schauen Sie sich unsere offenen Position an, um eine passende Herausforderung zu finden!

CL_PERIODIC_BG_MONITORING - monitoring of periodic background activity

CL_PERIODIC_BG_MONITORING - monitoring of periodic background activity

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   General Data in Customer Master  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

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

  1. 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.
  2. Funktionsbaustein mit frei wählbarem Namen, wird vom Anwender bereitgestellt.
  3. ABAP-Programm mit Formroutine, mit frei wählbarem Namen, wird vom Anwender bereitgestellt.
  4. 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( ) &lt;&gt; f1->rtc_ok. return. endif.


wait up to &lt;n>  seconds.

enddo.

ENDFUNCTION.

Hinweise

Weiterführende Informationen






Vendor Master (General Section)   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6451 Date: 20210512 Time: 173620     sap01-206 ( 59 ms )