14:56 Uhr
Gruppierung von Finanzierungszwecken bei Drittmittelprojekten per Zusatzfeldcoding mit IF oder CASE
Hintergrund: Anwendung Finanzierungszweck im SAP Modul Public Sector Management (PSM)
Innerhalb des Modul Haushaltsmanagement (PSM-FM) können zur Unterscheidung von Drittmittelprojekten als Merkmal sogenannte Finanzierungszwecke genutzt werden. Unerhalb der Fonds können hier einzelne Finanzierungszwecke angelegt, geändert oder auch angezeigt werden. Diese können dann innerhalb der Stammdaten von Fonds im Abschnitt Zusatzdaten ebenso wie Budgetprofile (siehe "Budgetprofil klassische Budgetierung") gepflegt werden. Hierbei handelt es sich um einen alphanummerischen Schlüßel der als Gruppierung und Auswertungsmerkmal für Fonds verwendet werden kann.Die Finanzierungszwecke können unterhalb:
- Rechnungswesen
- Public Sector Management
- Haushaltsmanagement
- Stammdaten
- Kontierungselemente
- Fonds
- Finanzierungszweck
Finanzierungszweck in einer Query einbinden (Zusatzfeld oder Zusatztabelle)
Innerhalb einer Query können Sie diese dann sowohl als Zusatzfelder eingebunden werden (siehe "SAP Query ABAP Coding im Zusatzfeld für Verknüpfung Innenauftrag und Fond bzw. Finanzierungszweck oder auch Status GESPERRT bei Innenaufträgen") oder durch Verknüpfung der Tabelle FMFINCODE mit den Stammdaten der Innenaufträge (Tabelle AUFK) als Zusatztabelle (siehe "Query über COEP, AUFK und FMFINCODE für Einzelposten Istkosten Innnenauftrag mit Stammdaten aus CO und PSM-FM sowie Spalten für Ertrag und Aufwand - Erster Teil Infoset als Datengrundlage") zugeordnet werden.Unterschied CASE WHEN zu IF, ELSEIF Statement
So detailiert entsprechende Finanzierungszwecke abgebildet werden kann es doch auch für das interne Berichtswesen interessant sein mehrere Finanzierungszwecke (FINUSE). Für eine entsprechende Auswertung sollten dann mehrere Finanzierungszwecke zusammengefasst werden wodurch dann zum Beispiel die Fiannzierungszwecke EU/ESF, EU/FRP6, EU/FRP7, EU/FRP8 und andere Mittel der Europäischen Union zu einen gemeinsamen Merkmal "EU" zusammengefasst werden, so dass hier verschiedene Drittmittelprojekte die durch die EU finanziert werden insgesamt zusammengefasst werden.Schon bei der Darstellung im Abschnitt "Zusatzfeld VLE zur Darstellung virtueller Lehreinheit aus Teilstring der verantwortlichen Kostenstelle sofern nicht in einen anderen Feld ein Wert steht" wurden einzelne Daten ausgelesen und über eine IF Schleife das Zusatzfeld per IF und ELSEIF einen Wert zugewiesen.
Die Besonderheit von IF Statements ist, dass hier besondere Prüfungen vorgenommen werden können. Neben IF gibt es aber auch die Möglichkeit per CASE Anweisung durch ABAP Code den Einzelwert eines Feldes direkt zu prüfen.
Insgesamt können in einer CASE Abfrage bis zu acht Zustände (Bedingungen) überprüft werden.
Der Syntax dazu lautet:
Hierdurch ist die Case Anweisung wesentlich flexibler da mehrere Bedingungen per ODER verknüpft werden können, allerdings muss eine absolute Übereinstimmung mit den Werten vorhanden sein. Sofern mit Platzhaltern * gearbeitet werden soll, ist dann doch eher die Variante von IF und ELSEIF hilfreich.CASE variable.
WHEN bedingung1 OR bedingung2 .
..
Ausgelöste Aktion
..
WHEN bedingung9 OR bedingung10.
..
Ausgelöste Aktion
...
WHEN OTHERS.
..
Kein Fall tritt ein
..
ENDCASE.
IF variable = wert.
..
ausgelöste Aktion
..
ELSIF bedingung.
..
ausgelöste Aktion bei der die Bedingung, die auch komplexer sein darf, zutrifft.
..
ELSE.
..
ausgelöste Aktion, wenn keine Bedingung zutrifft.
..
ENDIF.
Im Grunde ist diese Funktion vergleichbar mit anderen Skriptsprachen. So wäre bei PHP ein vergleichbarer Fall mit IF (siehe "Wenn das Wörtchen if nicht wär...") oder SWITCH (siehe "Hierhin switchen, dahin switchen...") vergleichbar. Dieses ist auch einer der Gründe, warum ich zum Erlernen einer Programmiersprache auch gerne auf PHP und natürlich das Buch "PHP für dich, Version 2014: So einfach war PHP-lernen noch nie!" verweise, da es sehr anschaulich die Grundlagen einer Programmiersprache darstellt und PHP relativ einfach im Bereich Webseiten für eigene Projekte bzw. die private Homepage genutzt werden kann.
Nun aber wieder zurück zur Anwendung der CASE Anweisung bei Fonds und ihren Finanzierungszwecken.
Zur Erinnerung wir haben den Finanzierungszweck entweder über ein Zusatzfeld (und damit in der Variable finuse) oder über eine Zusatztabelle und damit über das Tabellenfeld FMFINCODE-FINUSE vorliegen.
Exkurs Finanzierungszweck über Zusatzfeld finuse
Zusatzfeld PSM-FM Finanzierungszweck aus Fond
Das Coding für das Feld FINUSE sieht dabei wie folgt aus (wobei statt BUK natürlich Ihr Buchungskreis im Coding hinterlegt sein sollte):
* Lokale Variablen definieren
DATA: L_FINZWECK type FMFINCODE-FINUSE.
DATA: L_FOND type FMFINCODE-FINCODE.
DATA: L_AUFTRAG type AUFK-AUFNR.
* Zuweisung von Variablen aus der Selektion
L_AUFTRAG = AUFK-AUFNR.
* Verschieben des gespeicherten Wertes in der Tabelle AUFK um 4 Zeichen
* HINTERGRUND:
* Das Fekd AUFK-AUFNR hat insgesamt 12 Zeichen.
* Die achtstellige Auftragsnummer wird mit 0000 aufgefüllt
* Durch die Verschiebung ist die Auftragsnummer direkt in der
* lokalen Variable gepseichert.
SHIFT L_AUFTRAG BY 4 PLACES LEFT.
L_FOND = L_AUFTRAG.
* Über die Selektabfrage hat nun das Feld Fond die richtige Länge
SELECT SINGLE finuse FROM fmfincode INTO L_FINZWECK
WHERE fikrs = 'BUK'
AND fincode = L_FOND.
* Abfangen eines Fehlers und Wertzuweisung in Zusatzfeld
IF sy-subrc <> 0.
CLEAR finuse.
ELSE.
finuse = L_FINZWECK.
ENDIF.
ACHTUNG: Länge der Auftragsnummer / Fondsnummer beachten!
Im oberen Coding gehen wir davon aus, dass Innenauftrag und Fond jeweils acht Stellen haben. Sollte die Auftragsnummer bzw. Fondcode nur siebenstellig sein ist die Zeile auf
SHIFT L_AUFTRAG BY 5 PLACES LEFT
anzupassen.
Um nun auf die Variable oder den Finanzierungszweck zuzugreifen legen wir ein neues Zusatzfeld an.
Zusatzfeld FINANZIERUNGSGRUPPE mit CASE Anweisung
Über die Schaltfläche Zusätze (F5) bzw. innerhalb der Transaktion SQ02 (Pflege des Infosets) über SPRINGEN-> ZUSÄTZE ZUM KNOTEN kann ein eigenes Zusatzfeld angelegt werden. Hierzu kann im Register Zusätze die Schaltfläche Anlegen ausgewählt werden. Es erscheint eine Maske in der der Name des Zusatzfeldes angegeben werden soll (im folgenden Beispiel FINGRUPPE) und die Art der Zusatzinformation. Neben des schon angesprochenen Zusatzfeldes sind dieses: Zusatztabelle, Zusatzstruktur und Coding. In unserem Beispiel soll ein Zusatzfeld mit den Namen FINGRUPPE angelegt werden.
Dieses hat folgende Eigenschaften: Langtext und Überschrift haben beide Finanzierungsgruppe erhalten. Die Formatangabe wurde über LIKE-Referenz idenitsch zum Feld FMFINCODE-FINUSE gehalten. Damit entspricht dieses Feld den Formatangaben in der Tabelle FMFINCODE (Typ C (Character) Länge 016 Ausgabenlänge 016). Dieses sollte, sofern Sie FINUSE per Zusatzfeld definiert haben, in einen tiefergelegten Codingabschnitt hinteregt werden.
Damit ist das Feld angelegt, hat jedoch nur eine Datendefinition aber noch keine eigene Daten (anders bei der Zusatztabelle, die sich direkt aus der Datenbank einen passenden Datensatz liest).
Nachdem ein Feld jedoch angelegt ist kann über die Schaltfläche "Coding zum Zusatz" ein passendes ABAP Coding für das Feld hinterlegt werden
Hier entscheidet dann die erste Zeile des Coding woran die Bedingungen überprüft werden sollen.
1. Variante Orientierung am Zusatzfeld FINUSE.
Wie in oberen Beispielcoding ersichtlich erhält die Variable finuse ihren endgültigen Wert durch die Anweisung
finuse = L_FINZWECK.
Somit ist die erste Zeile des Coding für unsere FINANZIERUNGSGRUPPE also:
CASE finuse.
2. Variante Einbindung als Zusatztabelle
Sollten Sie die Tabelle FMFINCODE als Zusatztabelle über das Zusatzfeld ZAUFNR eingebunden haben (siehe oben verlinkten Artikel) würde die erste Codingzeile wie folgt lauten:
CASE FMFINCODE-FINUSE.
3. Coding mit Bedingungen
In beiden Fällen kann das Coding nun wie folgt weitergehen, so dass eine entsprechende Ausgabe erfolgen wird.
WHEN 'EU/ESF' OR 'EU/FRP7' OR 'EU/FRP8' OR 'EU/FRP6'.
FINGRUPPE = 'EU-Projekte'.
WHEN 'INDUSTRIE'.
FINGRUPPE = 'Industrie'.
WHEN OTHERS.
FINGRUPPE = 'Andere Projekte'.
ENDCASE.
Insgesamt können je WHEN Zeile acht Varianten als Bedingung gesetzt werden.
Sinnvoller ist es natürlich bei WHEN OTHERS. dann den Finanzierungszweck des Fond auszugeben.
Für die Zusatztabelle wäre hier das Coding:
WHEN OTHERS.
FINGRUPPE = FMFINCODE-FINUSE.
ENDCASE.
und für das Zusatzfeld:
WHEN OTHERS.
FINGRUPPE = finuse.
ENDCASE.
Damit kann dann später noch entschieden werden, was mit einen Finanzierungszweck passieren soll und gegebenenfalls künftig eine weitere Bedingung mit eingebaut werden.
Anwendungsgebiet Finanzierungsgruppe
Während in einer Drittmittelstatistik Daten möglichst ausführlich dargestellt werden sollten kann es für Managementberichte sinnvoll sein vorhandene Daten zusammen zu fassen und so diese Projekte gruppiert darzustellen. Hierzu eigent sich dann tatsächlich die Methode der Finanzierungsgruppe, da hiermit die Ergebnisse einer Auswertung (als Beispiel sei hier der Recherchebericht "Saldenliste für Fonds im Haushaltsmanagement Saldo gegen Ertrag und Saldo gegen Budget" um eine Stammdatenliste ergänzt werden die sowohl CO Stammdaten, Klassifizierungsmerkmale als eben auch die Fiannzierungsgruppe mit ausweisen kann. Für weitere Möglichkeiten einer solchen Query verweise ich gerne auf die Artikelserien:
- "Query über COEP, AUFK und FMFINCODE für Einzelposten Istkosten Innnenauftrag mit Stammdaten aus CO und PSM-FM sowie Spalten für Ertrag und Aufwand - Erster Teil Infoset als Datengrundlage"
- "Query Einzelpostenliste Innenauftrag mit Ausweis Ertrag und Aufwand Zweiter Teil Query zur Datenaufbereitung"
- "SAP Query ABAP Coding im Zusatzfeld für Verknüpfung Innenauftrag und Fond bzw. Finanzierungszweck oder auch Status GESPERRT bei Innenaufträgen"
- "Query über verantwortliche Kostenstelle des Innenauftrag - Bestimmung der Lehreinheit im Fachbereich durch Teil der Kostenstellennummer"
- "SAP Query - Auswertung Merkmale der Klassifizierung am Beispiel Fonds in PSM-FM"
- "Weitere Zusatzfelder im Infoset mit ABAP Coding zur Verwendung in SAP Query über die Tabellen AUFK und FMFINCODE"
Hinweis:
Eine kurze Einführung in das Thema SAP Query habe ich im Artikel
"Grundlagen Kurzeinführung und Handbuch SAP Query" beschrieben und hoffe Ihnen hier eine Einführung ins Thema bieten zu können.
Unkelbach.expert - Ihr Experte für Controlling und Berichtswesen mit SAP
Aktuelle Termine zum Online-Training (Herbstkurse 2026) finden Sie hier unter:
"Grundlagen Datenmigration in SAP S/4HANA mit Migrationscockpit und Migrationsobjektmodellierer"
"Rechercheberichte mit SAP Report Painter"
14:35 Uhr
Traffic Spam oder Möglichkeiten einer IP-Sperrliste für Webangebote
Entsprechend erstaunt war ich, dass dann eine einzelne IP plötzlich fast 1 Gigabyte an Datenmengen durch Zugriff und Senden verursacht hat und es sich dabei nicht um einen Proxy-Server einer Hochschule handelt. Letzteres wäre ja erklärbar, da ich doch die Vermutung habe, dass einige Besuchende dieser Seite aus den Hochschulumfeld kommen.
Ein intensiverer Blick ins Serverlogfile offenbarte dann auch noch, dass diese IP immer wieder ein und dieselbe Seite aufgerufen hatte um hier möglicherweise Kommentare zu einen Blogartikel abzusetzen.
Datenschutz bei IP Adressen in Logfiles
Wie in der Datenschutzerklärung zu dieser Seite festgehalten, werden beim Besuch auf dieser Seite grundsätzlich Daten sehr sparsam und wenn möglich anonymisiert erfasst. Eine Ausnahme stellen hier die Logfiles des Servers da (siehe Abschnitt "V. Allgemeine Daten".
Die tatsächlichen Logfiles werden seitens des Webhoster regelmäßig gelöscht und die zugrundeliegenden Daten aus technischen aber auch abrechnungstechnischen Gründen zur Verfügung gestellt.
Somit werden diese Daten gem. § 37 BDSG nur zu Zwecken Sicherheit (bspw. Vermeidung von DDOS Angriffen oder Spamvermeidung) aber auch zu Abrechnungszwecken gegenüber meinen Webhoster erhoben.
Eine dauerhafte Zuordnung von Person und IP (Profilerstellung) ist daher hier nicht möglich und in der Statistik erhalte ich für Daten außerhalb des Zeitraums der Logfiles (nach wenigen Tagen) nur den vorhandenen Traffic der Seite. Eine Auswertung wer welche Seite besucht hat ist mir hier nicht möglich.
Für eine ausführliche Analyse der Besuchendendaten nutze ich eine anonymisierte Version von Google Analytics (siehe Datenschutzerklärung zum Punkt "VII. Google Analytics")
Maßnahmen gegen Kommentarspam im Blog
Da ich hier tatsächlich Schutzmaßnahmen gegen Blogkommentarspam ergriffen habe werden hier allerdings keine Kommentare abgesetzt sondern die IP oder das Skript scheitert immer wieder beim Versuch eben solche abzusetzen. Im Artikel des ctMagazin "Was Ihr so meint - Mit Kommentaren im eigenen Blog umgehen" sind einige Möglichkeiten des Verhinderns von Spam-Kommentaren auf technischer Ebene vorgestellt. Einen Teil dieser Anregung hat mir Claudia (gerne nutze ich hier die Gelegenheit das Buch "PHP für dich" zu empfehlen) glücklicherweise auch in diesen Blog umgesetzt :-).
Taschenbuch 383915409X
Für etwa 17,90 € bei Amazon bestellen
ebook/Kindle B00BYIPZDY
Für etwa 10,99 € bei Amazon bestellen
Eine ausführliche Beschreibung ist unter "PHP für dich, Version 2014: So einfach war PHP-lernen noch nie!" zu finden.
Trafficanalyse einzelner IP
Trotzdem bleibt hier der ansteigende Traffic auf der Seite, so dass ich mich entschlossen habe diese IP entsprechend einen Zugriff aufs Blog zu sperren.
Hierzu musste ich jedoch als erstes sehen um welche IP es sich handelt und ob diese tatsächlich mit SPAM in Verbindung steht oder tatsächlich einen berechtigten Grund hat regelmäßig auf der Seite nachzusehen. Ein Blick in die Serverstatistik ist hier sehr hilfreich. Alternativ könnte man per Excel oder anderen Tools das Logfile des Servers auswerten.
Am frühen Nachmittag sah meine Statistik wie folgt aus:

Hier hatten also einzelne IP (oder Server) eine Datenmenge von rund um die 700 MB an einen Tag abgerufen. Das entspricht (wie in der Statistik angegeben) etwa 11.215 Seiten und entsprechend viele Zugriffe.
IP Sperren okay, aber bitte nicht FEEDLY :-)
Nun stellts ich allerdings die Frage, wo eine ebensolche IP zuzuordnen ist und ob es sich dabei um eine gute oder eher weniger gute URL handelt. Als Beispiel möchte ich natürlich nicht Feedly als RSS Reader (siehe meinen Artikel "Infotainment oder Nachrichtenapps für Android" davon abhalten meine Seite zu besuchen.Hier gibt Feedly selbst zur Auskunft, dass sich die IP Adresse ihres Crawler von Zeit zu Zeit ändert, so dass dieser eher am Useragent "user-agent: Feedly/1.0." zu identifizieren ist.
Glücklicherweise sind obige IP Adressen nicht mit Feedly in Verbindung zu setzen , was der Blick in ein aktuell vorliegendes Logfile offenbart.

Entsprechend stellt sich die Frage, was hinter obiger IP Adresse steckt.
Hier kann ich dann tatsächlich die von Heise Netze betriebene IP Spam Listenabfrage empfehlen. Auf der URL heise.de/netze/tools/spam-listen/ können mehrere Listen abgefragt werden, ob die entsprechend kritische URL schon bekannt ist.
Zugriffsperre für einzelne IP Ranges
Danach können in der .httaccess Datei des Webspace diese IP durch folgende Regeln gesperrt werden.Dabei können konkrete IP Adressen oder auch Bereiche gesperrt werden. Als Beispiel könnte die Uni Gießen durch 134.176.247.... vom Zugriff auf dieser Seite komplett gesperrt werden...was ich aus hoffentlich nachvollziehbaren Gründen nicht möchte.order allow,deny
Deny from BADIP
allow from all
Die Pflege einer solchen umfangreichen httaccess Einstellung kann sehr umfangreich sein. Daher empfinde ich es als einen großartigen Service dass die Firma "BeforeSunrise Internetagentur e.K." auf der Seite ip-bannliste.de einen Service betreibt in der eine umfangreiche Bannlist für sogenannte "bad bots" betrieben wird.
Die Liste beinhaltet IP-Adressen und Adressbereiche (IP Ranges), die über das simple einzubinden einer .htaccess-Datei keinen Zutritt zu Ihren Onlineangeboten mehr erhalten. Interessant dabei ist, dass die Liste als Service auch eine Autoupdate Funktion beinhaltet, so dass diese regelmäßig aktualisiert werden kann.
Daneben kann im Angebot aber auch die aktuelle Liste direkt eingesehen werden um diese im eigenen Angebot zu nutzen.
Meine IT-Ausstattung
Aktuell ist mein (mobiler) Arbeitsplatz mit folgenden Geräten ausgestattet. Ich bemühe mich diese Seite aktuell zu halten.
Amazon Seite von Andreas Unkelbach
* Als Amazon-Partner verdiene ich an qualifizierten Käufen über Amazon.
10:49 Uhr
Berechtigungen zur Ausführung von SAP Query (Transaktion SQ00 oder eigene Z/Y Transaktion) und Einbindung im Berechtigungskonzept und Berichtswesen
Als eine schnelle Lösung möchte ich hier zwei Möglichkeiten darstellen.
Hier sollte immer die Frage geklärt werden, welche Berechtigungen zum Ausführen oder Nutzen von SAP Query (siehe "Grundlagen Kurzeinführung und Handbuch SAP Query") genutzt werden soll.
Innerhalb des Abschnitts "1.2. Berechtigungsrollen für Query" bin ich hier auch auf unterschiedliche Rollen zum reinen Ausführen einer Query (zum Beispiel über die Transaktion SQ00) und den Erstellen der Query eingegangen.
Vorschlag: Berechtigungsrolle zum Ausführen von SAP Query
So würde eine Rolle zum Ausführen von SAP Query natürlich die Berechtigung für SQ00 (Berechtigungsobjekt S_TCODE)und folgende Berechtigungsobjekte enthalten.Daneben bedarf es folgender Berechtigungen:
S_TABU_DIS
ACTVT Aktivität 03
DICIBERCLS Tabellenberechtigung *
S_DEVELOP
ACTVT Aktitivität 03
DEVCLASS Paket $0, T*, Y*, Z*
OBJTYPE Objekttyp DOMA, DTEL, ENQU, LDBA, INDX, MCID, MCOB, SHLP. SQLT, SQTT, STRU, TABL, TABT, TTYP, TYPE, VIEW, VIET
P_GROUP Berechtigungr.ABAP/4Program *
S_QUERY
ACTVT
Hier reicht das reine Vorhanden des Beechtigungsobjektes aus, ohne dass hier ein Berechtigungsfeldwert einzutragen ist.
Natürlich sollte dieser Vorschlag noch mit vorhandenen Berechtigungskonzepten abgestimmt werden. Inhaltlich ist dieses ohnehin ein Thema, wo verschiedene Abteilungen (und Keyuser) intensiver und harmonisch mit der SAP Basis Abteilung sich abstimmen sollten.
Von daher ist es auch nicht weiter verwunderlich, dass sich auch manche Blogs ausschliesslich mit den Fragen rund um Berechtigungen und entsprechende Konzepte beschäftigen.
Eine entsprechende Schulung im Bereich Berechtigungswesen kann sicherlich auch in das Fortbildungskonzept der einzelnen Fachabteilungen eingebunden werden.
Sicherlich sollte man darauf achten, dass sich sowohl das Berechtigungskonzept als auch die Frage, welche Art von Berechtigungen im Zusammenhang mit gewünschten Berichtswesen um hier auch solche Fragestellungen zu berücksichtigen.
Diese Themen wurden auch im Artikel "Unterschiedliche Auswertungsmöglichkeiten im Controlling (Report Writer, Recherchebericht, SAP Query) und natürlich Excel ;-)" angesprochen.
Hier sind als Thema Report Writer / Report Painter (siehe auch "Grundlagen Kurzeinführung und Handbuch Report Painter Report Writer" ) Recherchebericht, SAP Query und natürlich Query und nicht zu vergessen, das liebste Spielzeug aller Controller Excel (wodurch auch viele Artikel innerhalb der Rubrik "Office" geklärt sind.
Alternative: Transaktion für einzelne Query anlegen und diese im Menü hinterlegen
Eine interessantere Alternative ist dabei für einzelne Query eine eigene Transaktion wie im Artikel "Transaktion anlegen (Report, Parameter) bspw. für SAP Query / Unterschied Parameter- oder Reporttransaktion" beschrieben anzulegen.Ebenso bin ich im Artikel "SAP Query als kundeneigene Transaktion mit Berechtigungen für Tabellenberechtigungsgruppe, Tabellen und Reporttransaktion vergeben" auf dieses Thema eingegangen.
Eine spannende Option wäre dann tatsächlich auf diese Weise Query, Report Painter/Writer und andere Berichte in ein kundeneigenes Menü wie im Artikel "Benutzereigene SAP Menüs (Favoriten, Benutzermenü, Bereichsmenü)" beschrieben einzubauen. Diese sind dann auch über Berechtigungen beziehungsweise Rollen einzelnen Usern zuweisbar.
Hinweis:
Eine kurze Einführung in das Thema SAP Query habe ich im Artikel
"Grundlagen Kurzeinführung und Handbuch SAP Query" beschrieben und hoffe Ihnen hier eine Einführung ins Thema bieten zu können.
Abschlussarbeiten im SAP S/4HANA Controlling (📖)
Für 29,95 € direkt bestellen
Oder bei Amazon ** Oder bei Autorenwelt
20:52 Uhr
Welche User haben die Berechtigung zur Auswertung einer bestimmten Kostenstelle oder Innenauftrag?
Benutzerinformationssystem (SUIM)
Grundsätzlich können, meiner bescheidenen Meinung nach, alle Fragen zur Auswertung rund um das Berechtigungswesen über die Transaktion SUIM (Benutzerinformationssystem) beantwortet werden. Inhaltlich handelt es sich hierbei um einen Teilausschnitt des SAP Menü (wie auch im Artikel "Benutzereigene SAP Menüs (Favoriten, Benutzermenü, Bereichsmenü)" im Abschnitt Bereichsmenü beschrieben), welches statt über die Transaktion SUIM auch im normalen SAP Menü unter- Werzeuge
- Administration
- Benutzerpflege
- Infosystem
Für eine Fragestellung "Wer hat Berechtigungen eine Kostenstelle (zum Beispiel 1040000 für die Abteilung Controlling) auszuwerten oder aber wer darf ein bestimmtes Projekt auswerten?".
Zur Beantwortung dieser Frage kann eine Auswertung der Benutzer nach Berechtigungswerten verwendet werden. Dieser Bericht mit der Transaktion S_BCE_68001397 ist innerhalb des Benutzerinformationssystem (SUIM beziehungsweise im entsprechenden Bereichsmenü) unter:
- Benutzer
- Benutzer nach komplexen Kriterien
- nach Berechtigungswerten
Berechtigung zur Auswertung einer Kostenstelle
Von der Handhabung her kann nun als Berechtigungsobjekt K_CSKS "CO-CCA: Kostenstellen-Stamm" oder noch besser K_REPO_CCA "CO-CCA: Reporting auf Kostenstellen / Kostenarten" eingetragen werden.Nach Bestätigung des Berechtigungsobjekt mit ENTER kann im Feld "KOSTL - Kostenstelle" die auszuwertende Kostenstelle eingtragen werden.
Berechtigung zur Auswertung von Innenaufträgen oder Fonds im Haushaltsmanagement
Sollen stattdessen Berechtigungen auf Projekte (im Sinne von Innenauftrag oder Fond) überprüft werden bietet sich im Modul Controlling (CO) das Berechtigungsobjekt K_ORDER "CO-OPA: Allgemeines Berechtigungsobjekt für Innenaufträge" an. Hier kann über den CO-OM Verantwortungsbereich nach Kostenstelle oder Innenauftrag gesucht werden, dabei sind Innenaufträge vorrangestellt mit OR* abzufragen.Gerade im öffentlichen Dienst dürfte aber auch das Modul PSM-FM (Public Sector Management - Haushaltsmanagement) eingesetzt werden. Hier werden Projekte auf Fonds abgebildet. Diese sind im Grunde analog zu Innenaufträgen zu betrachten (so wie auch Finanzstellen als Gegenstück zu Kostenstellen betrachtet werden können.
Für eine Auswertung bieten sich die Berechtigungsobjekte F_FICA_FCD "Haushaltsmanagement Fonds" oder F_FICA_FTR "Haushaltsmanagement Finanzbudgetkonto" an die direkt als Berechtigungfeld FOND anbieten wo dieser direkt eingetragen werden kann.
Ergebnisliste komplexe Benutzer nach komplexen Kriterien (Berechtigungsfeldwerten)
Im Ergebnis wird eine Liste aller User mit der entsprechenden Berechtigung ausgewiesen.Über die Schaltfläche Rollen erhält man ferner auch noch eine Liste aller diesen Usern zugeordneten Berechtigungsrollen, so dass hier eine einfache Auswertung möglich ist.
Fazit
Auch wenn es (sicherlich) ein umfangreiches Berechtigungskonzept gibt in dem auch die einzelnen Berechtigungen der jeweiligen User oder zumindest der Rollen festgehalten sind, können solche Auswertungen auf eine sehr schnelle Weise technisch direkt Auskunft darüber geben, wer für ein bestimmtes Objekt entsprechende Berechtigungen inne hat. Entsprechend hilfreich ist es, besonders für Keyuser, sich auch mit Fragen aus den Beeich Berechtigungen auszukennen.Ich werde vermutlich im Laufe der Zeit auch noch weitere Bücher aus den Bereich Berechtigungen vorstellen (siehe Buchempfehlungen), aber bis dahin kann ich schon einmal das Buch "SAP ® Handbuch Sicherheit und Prüfung. Praxisorientierter Revisionsleitfaden für R/3-Systeme" empfehlen. Aber auch in der Flatrate von Espresso Tutorial sind Bücher zum Thema Berechtigungen zu finden :-).
Daneben beschäftigen sich auch einige von mir gerne gelesene und auch an dieser Stelle empfohlene SAP Blogs mit den Themenschwerpunkt Berechtigungen.
Der Vollständigkeit halber möchte ich natürlich auch auf einige eigene Artikel rund um das Thema Berechtigungswesen in SAP hinweisen:
- "SAP Basis Basic oder dank SU53 oder ST01 Trace fehlende Berechtigungen finden"
- "SAP Query: Berechtigung (organisatorisch und technisch)"
- "SAP BC: Personalkontenberechtigungen"
- "SBWP: Berechtigungen Allgemeine Ablage"
- "Belegartberechtigung F_BKPF_BLA"
- "Infotypberechtigung anhand Personalteilbereiche"
- ...
Entsprechend würde ich auch anderen Keyusern das Thema Berechtigungen empfehlen, da es doch immer wieder einige Fragestellungen aus diesen Bereich gibt, die so mit wenigen Schritten im System und nicht per Dokumentensuche zu beantworten sind. Die ernsthafte Beschäftigung mit der Frage, welche Berechtigung Keyuser (oder Poweruser) erhalten sollen ist nicht nur für die Revision des Berechtigungswesen, Datenschutz und verschiedene damit verbundene Tätigkeiten relevant beziehungsweise zu klären sondern sollte sich auch Gedanken darum machen, welche Tätigkeiten entsprechende Benutzer im SAP System erhalten sollen.
SAP S/4HANA Migration Cockpit - Datenmigration mit LTMC und LTMOM (📖)
Für 29,95 € direkt bestellen
Oder bei Amazon ** Oder bei Autorenwelt
20:15 Uhr
Barcode EAN bzw. GTIN Prüfziffer mit Excel berechnen, Code erstellen und per App einscannen
Zur Digitalisierung von Belegen werden im Rechnungswesen die entsprechenden Buchhaltungsbelege mit einen Barcode versehen der über einen Scanner eingelesen wird, wodurch die im Barcode hinterlegte Nummer (vergleichbar eines EAN Code) in das Buchhaltungssystem übergeben und dadurch später der eingescannte Beleg zugeordnet werden kann. Hierzu wird der Code über eine Scanpistole eingelesen.
Alternativ kann auch der Code händisch eingetragen werden. Allerdings ist unterhalb des Barcode nur die ID aber nicht die Prüfziffer eines zehnstelligen Codes eingegeben. Somit stellen sich hier zwei Fragen.
- Kann, zum Beispiel. für ein Testsystem ein gültiger Barcode errechnet werden?
- Wie kann der Code ohne Scannpistole am Rechner eingelesen werden?
Beide Fragen möchte ich in diesen Artikel erläutern. Danach möchte ich noch auf weitere Anwendungsgebiete von Barcodes bzw. QR Code eingehen.
Gütigen Barcode berechnen (Prüfziffer nach Modulo 10 Berechnung mit Gewichtung 3)
Der verwendete Barcode besteht aus einer, je nach Codeart unterschiedlichen Länge an Zeichen und endet mit einer Prüfziffer.
Zur Überprüfung der Prüfziffer werden die einzelnen Ziffern des hinter den Barcode befindlichen Zahlenwerte beginnend mit der vorletzten Zahl von rechts nach links abwechselnd mit 3 und 1 multipliziert und danach die einzelnen Produkte addiert werden. Die Prüfziffer berechnet sich dabei durch das sogenannte "Modulo 10 Berechnungsverfahren mit der Gewichtung 3". Hierzu wird die Differenz aus der ermittelten Produktsumme und den nächsten Vielfachen von 10.
Innerhalb Excel kann dieses über die REST Funktion ermittelt werden. Für eine zwölfstellige EAN ist dieses im Artikel "EAN-Prüfziffer berechnen" auf excelformeln.de beschrieben.
Hierbei wird über eine Matrixformel die Multiplikation mit 3 und 1 durch ein Array aus Zeilen gelöst.
Hierbei werden sowohl für die einzelnen zu verwendeten Ziffern aus der vorgegebenen Zahl als auch für die Erhebung der Faktoren 3 und 1 eine entsprechende Matrix aus den einzelnen Zellen genommen.
Statt dessen kann in einer Formel natürlich auch direkt die Ziffern und die Faktoren 1 und 3 verwendet werden.
Nehmen wir an, dass der EAN Code aus 9 Ziffern besteht und die 10. Ziffer dann tatsächlich die Prüfziffer nach oberen Schema wäre.
Hier kann dann die Formel, ausgehend von einen neunziffrigen Wert in Zelle $A$1 wie folgt aufgebaut werden:
=REST(10-REST(SUMMENPRODUKT((TEIL($A$1;{1;2;3;4;5;6;7;8;9};1))*{3;1;3;1;3;1;3;1;3});10);10)
Durch diese Formel wird durch die Restwertberechnung zu 10 eine passende Prüfziffer aus einer vorgegebenen neunstelligen Zahl ermittelt.
Natürlich wäre es wesentlich schöner, wenn die Länge der Ziffer dynamisch berechnet werden kann, aber dass gebe ich doch lieber als Artikelanregung an clevercalcul weiter (siehe weiter unten) ;-).
Um die einzelnen Rechenschritte nachvollziehen zu können, kann dieses anhand der fiktiven Codenummer 130719789 nachvollzogen werden
Position |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| Ziffer | 1 | 3 | 0 | 7 | 1 | 9 | 7 | 8 | 9 |
| Faktor | 3 | 1 | 3 | 1 | 3 | 1 | 3 | 1 | 3 |
| Produkt | 3 | 3 | 0 | 7 | 3 | 9 | 21 | 8 | 27 |
| 1. Summenprodukt (A) | 81 | ||||||||
| 2. Nächstes Vielfache von 10 (B) | 90 | ||||||||
| B - A | 9 | ||||||||
| Gültiger Barcode nach Verfahren | 1307197899 | ||||||||
Somit kann ein entsprechend gültiger Barcode auch errechnet werden.
Technisch betrachtet handelt es sich hierbei um einen Barcode nach "2/5 Interleaved" und ist in der Norm ISO/IEC 16390 spezifiziert. Oftmals findet man auch die Bezeichnung ITF für Interleaved 2 of 5 − Interleaved Two of Five (siehe Abschnitt in der Wikipedia). In unseren Fall hat der Code eine Gesamtlänge von 10 Zeichen, so dass dieser auch als ITF-10 bezeichnet werden kann. Dieser wird dann von einen Scanner erkannt und direkt ins Buchhaltungssystem als Eingabe übergeben.
Dynamische Länge von Artikelnummern und Prüfziffern berechnen.
In meinen Beispiel ist dieses für eine vorgegebene Länge mit 9 Zeichen + 1 Prüfziffer erläutert worden. Im Artikel "Wie du dynamisch die Prüfziffer eines Barcodes berechnest" hat Gerhard Pundt eine alternative Verfahrensweise beschrieben, die mir auch durch das Beispiel der ISBN besonders gut gefallen hat.Gerade da meistens die Codes innerhalb einer Größenordnung von 9 bis 14 Ziffern vorliegen ist diese Methode wesentlich schöner zu verstehen als die bei Excelformeln.de "EAN-Prüfziffer berechnen " unter Zuhilfenahme der Funktion ZEILE() berechneten Werte mit einer Länge() des Ausgangswertes anzupassen :-)))Einlesen von Barcodes mit App statt Scanpistole
Zur Umsetzung kann jedoch auch eine App verwendet werden und der Code dann per Hand eingegeben werden. Hierzu kann ich die App Barcode Scanner empfehlen, welche ich im folgenden Abschnitt ausführlicher vorstellen möchte.
Barcode Scanner

Marketlink Kurzbeschreibung:
Der Barcode Scanner erkennt verschiedene Codes (u.a. EAN, ISBN oder auch QR Codes) und kann diese entsprechend umwandeln. Teilweise setzen auch andere Programme auf diese Funktion auf.
Dieses hat den Vorteil, dass so auch die im Artikel "Android App: Buchverwaltung MyBookDroid (Android App zum Bücherarchivieren mit ISBN Scanner)" vorgestellte App zur Verwaltung der heimischen Bibliothek sich der Möglichkeit des Scan von ISBN Codes bedienen kann.
Nachdem die App erfolgreich installiert und gestartet wurde kann anhand der Kamera der zu scannende Code gesucht werden.

Hierbei wird zur Unterstützung ein helles Rechteck angezeigt innerhalb dessen der Barcode positioniert werden soll.
Relativ schnell wird der entsprechende Barcode dann auch umgewandelt, wie am Beispiel der ISBN zu sehen ist.

Da es sich beim Code um die 13-stellige EAN-13/GTIN-13 nach dem System GS1 (genauer ISBN oder ISSN) wird automatisch in der App diese mit Büchern verbunden, so dass gleich eine Buchsuche angeboten wird.
Entsprechend hilfreich kann dieses auch sein um den EAN Code von anderen Produkten (Lebensmittel, Elektronik, ..) zu lesen. Besonders hilfreich ist dieses natürlich auch, da hier diese Informationen dann auch geteilt beziehungsweise an eine andere App weiter gegeben werden kann.
QR Code und Anwendungsgebiete
Eine besondere Form der Barcode sind die sogenannten QR Code. Dieser wurde von der japanischen Firma Denso Wave entwickelt und war ursprünglich für die Logistik in der Automobilproduktion des Toyota-Konzern verwendet. Die Verwendung des QR-Codes ist lizenz- und kostenfrei und kann für verschiedene Anwendungsgebiete verwandt werden.Verschiedene Anwendungsgebiete sind hier in Verbindung mit einem QR Code Generator möglich.
Auf der Seite goqr.me können für eigene Anwendungszwecke entsprechende Codes generiert werden.
Dabei sind einige der Möglichkeiten:
- URL - um eine Internetseite zu hinterlegen
- TEXT - für eine einfache Textnachricht
- VCARD - für eine Visitenkarte
- SMS - als Vorlage für eine SMS
- CALL - für einen Telefonanruf
- GEOLOCATION - für einen Standort
- EVENT - für einen Termin
- EMAIL - für eine E-Mail
- WIFI - für WLAN Zugangsdaten
Gerade mit letzteren Punkt bieten solche QR Codes eine tolle Alternative zu NFC Tags an (siehe Artikel "NFC Tags zum Steuern von Smartphones unter Android nutzen").
In der ct 10/2016 ist im Artikel "WLAN-Butler Raspberry Pi als Gäste-WLAN-Automat" ein spannendes Projekt mit Verwendung eines generierten QR Code für WLAN vorgestellt.
Steuersoftware für das Steuerjahr 2025
Lexware TAXMAN 2026 (für das Steuerjahr 2025)
WISO Steuer 2026 (für Steuerjahr 2025)
* Als Amazon-Partner verdiene ich an qualifizierten Käufen über Amazon.


Keine Kommentare - Permalink - SAP