Mein Anteil, Dein Anteil
Im Umfeld der Systemadministration wird häufig die Forderung erhoben, Inhalte von SAP-Tabellen einem kontinuierlichen automatischen Monitoring zu unterziehen. Die Tabelleninhalte sind dabei Bestandteil verschiedenster Überwachungsperspektiven, z.B. zur Ermittlung von Fehleranteilen bzw. einfach nur zur Feststellung von bestimmten Verhältnissen oder die Gesamtanzahl von Datensätzen in einer Tabelle. Aus den Ergebnissen leiten sich dann Aktivitäten ab, z.B. ein Alarm der zu manuellen Aktionen führt oder einfach nur zum Versandt einer E-Mail.
Im Umfeld der Systemadministration wird häufig die Forderung erhoben, Inhalte von SAP-Tabellen einem kontinuierlichen automatischen Monitoring zu unterziehen. Die Tabelleninhalte sind dabei Bestandteil verschiedenster Überwachungsperspektiven, z.B. zur Ermittlung von Fehleranteilen bzw. einfach nur zur Feststellung von bestimmten Verhältnissen oder die Gesamtanzahl von Datensätzen in einer Tabelle. Aus den Ergebnissen leiten sich dann Aktivitäten ab, z.B. ein Alarm der zu manuellen Aktionen führt oder einfach nur zum Versandt einer E-Mail.
Der folgende Code ist ein remote-fähiger Funktionsbaustein (FM), dem als Argument ein Tabellenname und zwei optionale SQL-Bedingungen übergeben werden müssen. Die erste SQL-Bedingung kann zur Einschränkung der Basismenge genutzt werden. Wird hier keine SQL-Bedingung übergeben, so wird die gesamte Anzahl aller Datensätze des übergebenen Tabellennamens verwendet. Mit der zweiten SQL-Bedingung wird dann die Menge an Datensätzen ermittelt, deren Verhältnis ermittelt werden soll. Wird gar keine SQL-Bedingung übergeben, so wird einfach nur die Gesamtanzahl der Datensätze in der Tabelle ermittelt.
|
|
Die Rückgabewerte sind dann die entsprechende Gesamtanzahl, sowie die Anzahl der Datensätze die der zweiten SQL-Bedingung entsprechen und deren Verhältnis zueinander in Prozent.
|
Mit diesem RFC-fähigen FM wird ein einfacher Ansatz geboten, ein externes Monitoring flexibel und simpel zu realisieren. So können nun z.B. via Java Connector (JCo) SAP-Tabellen periodisch abgefragt und aus den Ergebnissen Aktivitäten im Rechenzentrum abgeleitet werden.
|
“-Begin—————————————————————–
Function zCountTableEntries.
*”———————————————————————-
*”*”Local Interface:
*” IMPORTING
*” VALUE(TABLENAME) TYPE STRING
*” VALUE(SQL_CONDITION_ALL) TYPE STRING OPTIONAL
*” VALUE(SQL_CONDITION_SEL) TYPE STRING OPTIONAL
*” EXPORTING
*” VALUE(COUNT_ALL) TYPE I
*” VALUE(COUNT_SEL) TYPE I
*” VALUE(SEL_TO_ALL_PERCENT) TYPE F
*” EXCEPTIONS
*” TABLE_NOT_EXISTS
*” NO_TABLE_ENTRIES
*” ERROR_IN_SQL_CONDITION
*”———————————————————————- “-Important hint—————————————————-
“-
“- Don’t forget to set the Remote-Enabled Module attribute
“-
“——————————————————————-
“-Interface———————————————————
“-
“- Importing
“- TABLENAME = Name of the table
“- SQL_CONDITION_ALL = SQL condition for the table
“- SQL_CONDITION_SEL = SQL condition for the selection
“-
“- Exporting
“- COUNT_ALL = Count of all table entries
“- COUNT_SEL = Count of selected entries
“- SEL_TO_ALL_PERCENT = Proportion of selected to all entries
“-
“——————————————————————-
“-Variables———————————————————
Data Count_Tab Type i Value 0.
Data oRef Type Ref To cx_root.
“-Main————————————————————–
“-Hint————————————————————
“-
“- Don’t forget to implement Authority-Check Object
“-
“—————————————————————–
Select Count( Distinct TABNAME ) Into Count_Tab From DD02L
Where TABNAME = TABLENAME And TABCLASS = ‘TRANSP’.
If sy-subrc = 0 And Count_Tab = 1.
If SQL_CONDITION_ALL Is Initial.
Select Count(*) Into COUNT_ALL From (TABLENAME).
Else.
Select Count(*) Into COUNT_ALL From (TABLENAME)
Where (SQL_CONDITION_ALL).
EndIf.
If SQL_CONDITION_SEL Is Not Initial.
If sy-subrc = 0 And COUNT_ALL > 0.
Try.
Select Count(*) Into COUNT_SEL From (TABLENAME)
Where (SQL_CONDITION_SEL).
If sy-subrc = 0.
SEL_TO_ALL_PERCENT = ( COUNT_SEL / COUNT_ALL ) * 100.
EndIf.
Catch cx_root Into oRef.
Raise ERROR_IN_SQL_CONDITION.
EndTry.
Else.
Raise NO_TABLE_ENTRIES.
EndIf.
EndIf.
Else.
Raise TABLE_NOT_EXISTS.
EndIf.
EndFunction.
“-End——————————————————————-
- PowerShell mit ABAP nutzen - 17. März 2018
- SAP GUI Scripting Rekorder mit Windows PowerShell - 22. November 2016
- 64-bit Programme mit dem SAP GUI für Windows ausführen - 20. November 2016