Ansicht
Dokumentation

BAL_GLB_AUTHORIZATION_GET - Anwendungs-Log: Global: Autorisation vergeben

BAL_GLB_AUTHORIZATION_GET - Anwendungs-Log: Global: Autorisation vergeben

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

Funktionalität

Normalerweise sollten kritische Funktionen wie Konfiguration (Funktionsbaustein BAL_GLB_CONFIG_SET) und Initialisierung (Funktionsbaustein BAL_GLB_MEMORY_REFRESH) nur vom Mutterprogramm durchgeführt werden. Tieferliegende Routinen sollten diese globalen Aktivitäten nicht ausführen.

Oftmals kommt es aber zu Problemen, weil eine tiefliegende Routine den Initialisierungsbaustein aufruft, zum Beispiel weil diese Routine ursprünglich nicht für einen Aufruf in diesem Kontext konzipiert war.

Derartige Effekte kann man mit dem Autorisationskonzept unterbinden:
Das Mutterprogramm (also jenes, das zuerst die Programmkontrolle erhält), kann sich ganz am Anfang eine Autorisation geben lassen mit dem Funktionsbaustein BAL_GLB_AUTHORIZATION_GET. Dieser Funktionsbaustein liefert in E_AUTHORIZATION einen eindeutigen Schlüssel zurück.

Die oben genannten kritischen Funktionen lassen sich jetzt nur noch unter Angabe des Schlüssels I_AUTHORIZATION durchführen. Wird I_AUTHORIZATION nicht mitgegeben oder hat es den falschen Wert, dann wird die Aktion (z.B. Initialisieren des Gedächtnisses) verweigert. Auch BAL_GLB_AUTHORIZATION_GET ist nicht mehr ausführbar, man kann sich also keinen zweiten Schlüssel holen.

Es besteht aber die Möglichkeit, mit BAL_GLB_AUTHORIZATION_RESET seinen Schlüssel wieder zurückzugeben (auch dies kann wiederum nur unter Angabe des Schlüssels erfolgen).
Danach können alle oben genannten Funktionsbausteine wieder ohne Autorisation aufgerufen werden.

Die folgenden Funktionsbausteine sind mit einer Autorisation versehen:
BAL_GLB_AUTHORIZATION_GET
BAL_GLB_AUTHORIZATION_RESET
BAL_GLB_CONFIG_SET
BAL_GLB_MEMORY_REFRESH
BAL_GLB_MSG_DEFAULTS_SET
BAL_STATISTICS_GLB_SET

==>Hinweis
Will man nur die Daten eines einzigen Protokolls aus dem Hauptspeicher entfernen, dann ist der Funktionsbaustein BAL_LOG_REFRESH zu nutzen. Dieser ist nicht durch eine Autorisation geschützt, da er nur auf ein einziges Protokoll und nicht auf das gesamte Gedächtnis der Funktionsgruppe wirkt.

==>Hinweis
Bei der Programmierung muß man sich darüber im Klaren sein, daß einem bestimmte Aktionen verweigert werden können. Man sollte sich also nicht auf den Erfolg der Aktion verlassen.

  • ==>Beispiel
    Eine beliebte Konstruktion ist es, das Gedächtnis zu Initialisieren, eine Funktion aufzurufen, und danach im Protokoll nachzuschauen, ob Fehler entstanden sind. Das eigentliche Handling von Exceptions (also Ausnahmen im Programmablauf) wird hier auf das Protokolltool verlagert. Dazu ist dieses Tool aber keinesfalls gedacht !
    Ein derartiges Vorgehen sollte man auf jeden Fall vermeiden, denn welche Meldungen vom Application Log gesammelt werden und ob das Gedächtnis zurückgesetzt werden, ist ja von außen steuerbar. Man hat also im Endeffekt keine Kontrolle darüber, welche Meldungen tatsächlich im Protokoll stehen.

Weiterführende Informationen

Übersicht der wichtigsten Funktionsgruppen

Quickstart-Dokumentation

Application Log: Technische Dokumentation





Parameter

E_AUTHORIZATION

Ausnahmen

AUTHORIZATION_ALREADY_DONE

Funktionsgruppe

SBAL_TOOLBOX

BAL_S_LOG - Application Log: Log header data   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 4495 Date: 20240523 Time: 103713     sap01-206 ( 84 ms )