Ansicht
Dokumentation
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 R3upDiese Dokumentation steht unter dem Copyright der SAP AG.
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
Application Log: Technische Dokumentation
Parameter
E_AUTHORIZATIONAusnahmen
AUTHORIZATION_ALREADY_DONEFunktionsgruppe
SBAL_TOOLBOXBAL_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 )