Report
Grundlagen
Ein Report im Publisher ist das Konstrukt aus einem Formular (oder auch Layout bzw. Template genannt) + Datenselektion (die ggf. auch durch einen kundeneigenen Funktionsbaustein stattfinden kann) und weiteren, über das Customizing bzw. die Report-Eigenschaften einstellbaren Parametern. Ein Report muss nicht immer eine klassische Liste in Form einer Auswertung sein, sondern kann z.B. auch einen Brief, eine Rechnung oder jedes andere beliebige Dokument darstellen.
Das Formular wird im Designer erstellt und enthält den visuellen Teil des Reports. Über die Datenquelle, die aus den Personalnummern und den selektierten Daten besteht, werden die im Formular vorhandenen Felder mit Daten aus dem SAP-System versorgt. Das Resultat ist ein Dokument in Form einer PDF-Datei.
Für den Fall, dass die Interaktiven Formulare zum Einsatz kommen, wird eine Webseite generiert, über die sich auch Daten eingegeben lassen. Die Ausgabe in der SAP GUI kann außerdem als Word, Excel, PowerPoint, MHT, CSV sowie in weiteren Formaten gespeichert werden.

Abbildung: Reporterstellung
Die PDF-Erstellung kann dabei direkt in der SAP GUI des Anwenders über die BFR_Engine erfolgen und das Ergebnis in der SAP GUI angezeigt werden.
Für die Erstellung von mehreren Dokumenten bietet Aufgabenplaner die Möglichkeit eine Aufgabe (Job) anzulegen, die z.B. nachts im Hintergrund ausgeführt wird. Die über einen Job erstellten Dokumente werden in einem Druckpaket abgelegt. Diese Dokumente werden über den RFC-Service des Publisher generiert.
Personalnummernselektion
Der Publisher kann Reports und Auswertungen jeglicher Art erstellen. Auch Reports, in denen überhaupt keine Personalnummer vorkommt sind möglich. Da die Personalnummer aber im HCM-Bereich eine zentrale Rolle spielt, wird diese bei der Datenselektion gesondert behandelt.
Für einen Report werden immer eine oder mehrere Personalnummern selektiert. Anschließend werden zu jeder dieser Personalnummern weitere Daten aus den Infotypen gelesen, oder über einen kundeneigenen Datenprovider-Fuba beigesteuert. In der Data-Tabelle der Datenquelle im Designer steht die Personalnummer an erster Stelle, gefolgt von den weiteren Infotyp-Feldern.
Für die Art und Weise, wie die Personalnummern für einen Report selektiert werden, gibt es derzeit drei unterschiedliche Verfahren. Welches Verfahren verwendet wird, hängt vom Report-Typ ab, der in den Report-Eigenschaften einstellbar ist.
Selektionsarten
Personalnummer als Parameter

Selektions- Bildschirm mit Personalnummer als Parameter
Dies ist die Standardeinstellung für neue Reports. Die Eingabe der Personalnummer(n) erfolgt als Parameter. Über die in SAP vorhandene Mehrfachselektion können mehrere Personalnummern oder ein Bereich von Personalnummern selektiert bzw. ausgeschlossen werden. Wird nichts eingegeben, so sind automatisch alle im System vorhandenen Personalnummern selektiert. Da die Laufzeit dabei sehr hoch sein kann, gibt es den Customizing-Parameter DP_WARN_EMPTY_PERNR, über den festgelegt werden kann, ob in diesem Fall eine Warnung ausgegeben werden soll.
Personalnummernselektion über logische Datenbank

Selektions-Bildschirm mit Variante für die logische Datenbank
Viele Standard-SAP-Reports verwenden die "logische Datenbank" zur Selektion von Personen. Der Selektions-Bildschirm der logischen Datenbank bietet vielfältige Möglichkeiten zur Festlegung von Auswahlkriterien und die Handhabung ist den meisten SAP-Benutzern geläufig.
Mit der Transaktion /PIT/PPVARI kann dieser Selektions-Bildschirm aufgerufen und eine Variante zur Personenauswahl angelegt werden. Diese Variante lässt sich dann bei diesem Report-Typ über die Suchhilfe auswählen und wiederum als Report-Variante speichern. So können Sie einfach und komfortabel den gewünschten Personenkreis für einen Report festlegen.
Zu beachten ist, dass der Stichtag jetzt nur noch für die Datenselektion gilt und immer anzugeben ist.
Personalnummernselektion über SAP InfoSet Query

Selektions-Bildschirm für Verwendung der SAP Query
Für komplexere Selektionen von Personalnummern kann mit diesem Report-Typ die SAP Query verwendet werden. Legen mit der Transaktion SQ01 eine InfoSet Query an und speichern Sie diese innerhalb Ihrer Benutzergruppe. Beachten Sie, dass es einen Standardbereich und einen Globalen Bereich gibt. Die Umschaltung zwischen den Bereichen nehmen Sie im Einstiegs-Bildschirm der Query über Umfeld / Arbeitsbereiche vor.
Zwei Punkte sind bei der Verwendung der Query im Publisher wichtig:
Die Ausgabetabelle der Query muss immer eine Spalte mit der Personalnummer enthalten. Diese wird an den Publisher übergeben. Alle anderen Spalten werden ignoriert, stören aber nicht. Zum Testen der Query sind ggf. weitere Spalten sinnvoll, um das Ergebnis der Selektion zu überprüfen. Allerdings sollte aus Performancegründen die Spaltenanzahl gering gehalten werden.
Solange die Query mit der Transaktion SQ01 bearbeitet wird, kann der Report nicht ausgeführt werden. Sie erhalten die Meldung
"Fehler beim Ausführen von RSAQ_QUERY_CALL (Query gesperrt)". Falls in diesem Augenblick ein Hintergrund-Job läuft, werden keine Personalnummern übergeben.
Die Selektionskriterien einer Query werden beim Speichern immer in einer Variante namens STANDARD abgelegt. Bei Verwendung von weiteren Varianten müssen Sie diese manuell über die Variantenpflege anpassen. Es wird empfohlen statt einer Query mit mehreren Varianten mehrere Queries mit nur einer Standard-Variante zu verwenden.
Alle Eingabefelder des Report-Selektions-Bildschirms besitzen eine Suchhilfe, über die sich die Benutzergruppe, die Query und die Variante auswählen lassen.
Variante zur Personenauswahl
Bei der Verarbeitung von Personaldaten, z.B. beim Reporting, ist es oft wünschenswert bzw. notwendig, die Liste der zu verarbeitenden Personalnummern über bestimmte Kriterien, wie z.B. Personalbereich, Abrechnungskreis, Organisationseinheit usw. zu selektieren. Viele SAP-Reports bieten hierzu einen standardisierten Selektionsbildschirm unter Verwendung der logischen Datenbank. Dieser bietet über 40 Selektionsfelder und zusätzlich eine Auswahlmöglichkeit für Organisationseinheiten. Im Vergleich zur SAP Query ist die Verwendung dieser Selektionsmethode einfacher und den meisten Anwendern geläufig.
Die Transaktion "Variante zu Personenauswahl" verwendet die logische Datenbank PNPCE und dient dazu, beliebige Selektionen anzulegen und als Variante abspeichern. Diese Varianten können Sie dann in verschiedenen Anwendungen wieder benutzen um Ihre Mitarbeiter zu selektieren.
Folgenden Anwendungen werden derzeit unterstützt:
HCM Mail
HCM Publisher
Der Transaktions-Code lautet /n/PIT/PPVARI.
Hinweis:
Da die Transaktion in einem reservierten Namensraum liegt und mit / beginnt, muss im Kommandofeld der SAP GUI /n vorangestellt werden. Falls Sie die Transaktion über "Transaktion einfügen" Ihrem SAP Menü hinzufügen, ist /n nicht notwendig.
Nach dem Aufruf erscheint der aus dem SAP-Reporting bekannte Selektionsbildschirm:
Selektionsbildschirm der logischen Datenbank
Stellen Sie hier in gewohnter Weise die gewünschten Selektionen ein. Weitere Infos hierzu finden Sie in der SAP Dokumentation.
Wenn Sie die CheckBox Testmodus aktivieren und Ausführen (F8) auswählen, sehen Sie zur Kontrolle die Liste der Personen, die mit Ihrer Variante selektiert werden. Hierbei werden die Personalnummer, der Name und einige Felder aus dem Infotyp 0001 - Organisatorische Zuordnung - angezeigt. Nach dem Verlassen der Liste mit dem Zurück-Button (F3) wird in der Statusleiste noch die Anzahl der Personen ausgegeben.
Jetzt sichern Sie Ihre Variante. Hierbei ist es wichtig, dass der Testmodus deaktiviert ist. Über das Speichern Symbol oder über das Menü Springen / Varianten / Als Variante sichern… gelangen Sie in den Bildschirm der Variantenattribute. Hier geben Sie einen beliebigen Variantennamen und eine Beschreibung ein:
Variante speichern
In Ihrer SAP-Anwendung können Sie nun Die gewünschte Variante über die F4-Suchhilfe auswählen.
Windows-Anwendungen
Es ist auch möglich, die Varianten in verschiedenen Windows-Anwendungen zu nutzen. Es werden allerdings nicht alle Varianten angezeigt. Die Sichtbarkeit wird über den Variantennamen gesteuert.
Beispiel:
Für HCM Mail (ehemals MailRobot) muss die Variante mit "MR:" beginnen. Der Text im Feld Bedeutung/Kurzbeschreibung wird später in der Applikation angezeigt und kann frei gewählt werden.
Angenommen es gibt die folgenden zwei Varianten,...
Liste der angelegten Varianten
...dann können diese im Programm HCM Mail in der DropDown-Liste ausgewählt werden.Die Sortierung in der Liste richtet sich hierbei nach dem Variantennamen und nicht nach der Beschreibung:
Auswahl einer Variante in HCM Mail
Datenselektion
Nachdem die gewünschten Personalnummern selektiert wurden, erfolgt die Datenselektion. Dabei werden zu jeder Personalnummer beliebige Informationen aus den HR-Infotypen, Abrechnungsergebnissen, Zeitauswertungsergebnissen und weitere spezielle Daten gelesen.
Das Ergebnis dieser Datenselektion ist eine Tabelle, die als Datenquelle im Formular-Designer mit dem Namen "Data" sichtbar ist (unter Daten / Berichtsdaten auswählen). Der Aufbau dieser Tabelle entspricht den selektierten Daten. An erster Stelle steht immer die Spalte "PERSONALNUMMER", gefolgt von den anderen dazu gelesenen Feldern.
Ein primäres Ziel des Publishers ist es, dem Anwender eine komfortable Möglichkeit für diese Datenselektion zur Verfügung zu stellen. Es sollen keine Programmierkenntnisse notwendig sein, um die Infotypen und weitere SAP-Daten im Report zu verwenden.
Die komplette Datenselektion lässt sich dazu im Customizing jedes einzelnen Reports einstellen. Die primäre Datenquelle in HCM-Umfeld sind die Infotypen. Über das Kontext-Menü des Reports / Formulardefinition / Infotyp-Felder gelangen Sie in die Tabelle "Infotyp-Felder". Jeder Eintrag in dieser Tabelle repräsentiert eine Spalte der Data-Tabelle des Designers, die dann einfach per Drag&Drop im Layout verwendet werden kann.
Customizing der Infotyp-Felder für den Report
Für bestimmte Felder können Sie in der Spalte Text einen Haken setzen. Dadurch wird in Data für dieses Feld eine weitere Spalte mit dem dazugehörigen Text angelegt. Zum Beispiel wird für Maßnahmen MASSN, die Spalte MASSN_T erzeugt, die dann bei MASSN = 01 den Text "Einstellung" enthält. Die derzeit möglichen Textfelder finden Sie im Kapitel Objekttexte.
Spezielle Infotyp-Einträge
Zusätzlich zu den normalen Infotyp-Feldern, können über spezielle Infotyp-Einträge weitere Daten zur Datenquelle hinzugefügt werden. Diese Einträge stellen keine reellen Infotypen dar, sondern beeinflussen lediglich die Art der Datenbeschaffung. Derzeit gibt es fünf Arten:
ZFLD, ABRE, TIME, ZTAB und DUMY.
Der Eintrag erfolgt in der Spalte Infty. Außer bei ZFLD bleibt der Feldname leer.
Bei ZFLD wird über den Feldnamen genauer spezifiziert, welche Daten gelesen werden sollen.
ZFLD
Den Eintrag ZFLD kann man sich wie einen Infotyp vorstellen, der auch verschiedene Felder hat. Im Unterschied zu einem reellen Infotyp existiert ZFLD nicht wirklich. Es wird aber in der Data-Tabelle, genau wie bei den echten Infotypen auch, für jedes Feld eine Spalte angelegt.
Die derzeit verfügbaren Feldnamen sind:
EMPLOYEE_ADDRESS
EMPLOYEE_PICTURE
EMPLOYEE_ADDRESS besorgt die aufbereitete Adresse des Mitarbeiters. In EMPLOYEE_PICTURE wird das Foto des Mitarbeiters bereitgestellt, welches auch in der PA30 angezeigt wird - falls entsprechend konfiguriert.
ABRE und TIME
Mit ABRE und TIME wird auf dem Select-Bildschirm die Möglichkeit geboten, Clusterdaten auszulesen:

Wird eine dieser Angaben aktiviert, muss unabhängig vom Stichtag immer ein Zeitraum mit angegeben werden.
Für die Abrechnungsergebnisse werden in der Datenquelle die Tabellen PY_RT und PY_AB hinzugefügt. Für die Zeitauswertungsergebnisse die Tabellen PT_ZES, PT_SALDO und PT_ZL.
ZTAB
ZTAB erlaubt das Auswerten von Infotypen über einen Zeitraum. Da Datenselektion für die Data-Tabelle immer auf einem Stichtag beruht, gibt es pro Personalnummer jeweils nur eine Zeile. In den Zusatztabellen sind mehrere Zeilen pro Personalnummer möglich.

In den DropDown-Listen lassen sich bis zu vier Infotypen eintragen. Es werden nur Infotypen angeboten, die auch unter Infotyp-Felder bzw. Select-Felder konfiguriert wurden.
DUMY
Für den Fall, dass Sie für die Datenbeschaffung einen eigenen Datenprovider schreiben und für den Report keine Infotyp-Felder definieren möchten und auch die globale Feldliste nicht verwenden wollen, können Sie als Infotyp DUMY eintragen. In diesem Fall enthält die Data-Table der Datenquelle nur die Spalte PERSONALNUMMER.
Objekttexte
Für folgende Infotyp-Felder kann optional ein Textfeld angelegt werden.
Weitere Infos zu Textfeldern finden Sie unter Datenselektion.
Infty | Feld | Beschreibung | |
0000 | Maßnahmen | ||
MASSN | Maßnahmenart | ||
MASSG | Maßnahmengrund | ||
STAT2 | Status Beschäftigung | ||
0001 | Organisatorische Zuordnung | ||
BUKRS | Buchungskreis | ||
WERKS | Personalbereich | ||
PERSG | Mitarbeitergruppe | ||
PERSK | Mitarbeiterkreis | ||
GSBER | Geschäftsbereich | ||
BTRTL | Personalteilbereich | ||
ABKRS | Abrechnungskreis | ||
KOSTL | Kostenstelle | ||
ORGEH | Organisationseinheit | ||
PLANS | Planstelle | ||
STELL | Stelle | ||
0002 | Daten zur Person | ||
ANRED | Anredeschlüssel | ||
0016 | Vertragsbestandteile | ||
CTTYP | Vertragsart |
Kundeneigene Datenprovider
Beim Ausführen eines Reports werden die Publisher-Formulare normalerweise mit den im Customizing festgelegten Infotypen und deren Feldern versorgt.
Über kundeneigene Funktionsbausteine (kurz Fubas) können Sie ihren Formularen weitere Datentabellen hinzufügen. Es kann für jedes Formular ein Fuba definiert werden, der im Anschluss an die Datenbeschaffung vom Publisher automatisch aufgerufen wird.
Dieser kundeneigene Datenprovider bekommt als Importing-Parameter den Stichtag, die Liste der selektierten Personalnummern, die Zeitraum-Felder "von - bis" vom erweiterten Selektions-Bildschirm und die Formularparameter übergeben. Als Tabellen-Parameter können Sie beliebige Tabellen angeben, die in Ihrem Funktionsbaustein mit beliebigen Daten versorgt werden. Diese Tabellen werden im Formular-Designer dann am Ende der Tabellenliste in der Datenquelle angezeigt und können so in das Layout intergiert werden.
Über die Export-Struktur ES_SYMSG kann eine Meldung zurückgegeben werden. Es sind die Meldungen vom Typ S bzw. I, W und E erlaubt. Alle Meldungen, die während der Verarbeitung auftreten, werden in das Publisher Ereignisprotokoll geschrieben. Eine Meldung vom Typ E bricht die PDF-Erstellung ab und wird, sofern der Publisher im Vordergrund in der SAP GUI ausgeführt wird, zusätzlich auf dem Bildschirm ausgegeben.
Die Zuweisung eines kundeneigenen Datenprovider-Fubas zu einem Formular pflegen Sie im Publisher über das Report-Kontextmenü / Formulardefinition / Externer Datenprovider. Wählen Sie als Fuba-Typ "Datenprovider User-Exit" aus und tragen Sie den Namen Ihres Funktionsbausteins ein. Die Namen der erlaubten Funktionsbausteine müssen vom Entwickler in die Whitelist /PIT/DP_FUBAWL eingetragen werden. Andere Bausteine werden nicht akzeptiert. Die Liste ist über F4 erreichbar.
Der Fuba wird mit fest vorgegebenen Parametern aufgerufen, die Ihr eigener Baustein - unabhängig von einer Verarbeitung - immer entgegen nehmen muss.
Funktionsbaustein-Parameter
Import-Parameter
I_DDATE TYPE DATUM Stichtag
I_BEGDA TYPE DATUM Zeitraum von
I_ENDDA TYPE DATUM Zeitraum bis
IS_PARMS TYPE ANY Parameter
Export-Parameter
ES_SYMSG TYPE SYMSG Struktur einer SAP Meldung
Tabellen-Parameter
CT_HCM_PERNR_LIST LIKE HCM_PERNR_LIST Tabelle mit den selektierten Personalnummern (Import).
…
Die oben stehenden Parameter sind Pflicht. Tragen Sie nach CT_HCM_PERNR_LIST Ihre eigenen Tabellen ein (für den Export).
Folgende Tabellen-Parameter-Namen sind vom Publisher bereits intern belegt und dürfen nicht verwendet werden:
t_table_names
t_querydata
t_parms
t_pbnnnn wobei nnnn für die Infotyp-Nummer steht
t_ppbwla
t_cluster_py_rt
t_cluster_py_ab
t_cluster_pt_zes
t_cluster_pt_saldo
t_cluster_pt_zl
Ein Muster, das als Vorlage verwendet werden kann, ist der Baustein /PIT/DP_CUSTOM_PBDP.
Formularparameter
Die Report-Datenquelle enthält immer eine Tabelle mit dem Namen Parms. Aus den Feldern dieser Tabelle können verschiedene Informationen zum Report, wie der Stichtag, SAP-Benutzer oder zusätzliche Parameter entnommen werden. Diese Tabelle hat ausschließlich eine Zeile. Die Felder setzen sich aus einem festen und einem variablen Teil zusammen.
Die fest definierten Felder sind wie folgt definiert:
Feldname | Beschreibung |
DOCNO | Dokumentnummer |
RNAME | Formularname |
DDATE | Stichtag |
BEGDA | von-Datum |
ENDDA | bis-Datum |
USER | SAP Benutzer |
LANGU | Anmeldesprache |
SYSTEM | SAP System-ID |
Zusätzlich zu den fest definierten Feldern können beliebig viele frei definierbare Parameter angelegt werden. Gehen Sie hierzu im Hauptmenü auf Hilfsmittel / Formularparameter. In dieser Customizing-Tabelle können Sie Ihre Parameter entweder global für alle Formulare, oder gezielt für ein Formular anlegen. Diese Parameter erscheinen dann auf dem Select-Bildschirm. Über das DropDown "Datentyp" lässt sich der Typ des Parameters einstellen, so dass bei der Daten-Eingabe bereits eine Fehlerprüfung erfolgen kann. Beachten Sie bitte, dass die Feldnamen aus der obigen Tabelle nicht mehr als Parameternamen verwendet werden dürfen.
Report-Eigenschaften
Das Kontextmenü eines Reports hat als letzten Menüpunkt immer den Eintrag "Eigenschaften". Beim Aufruf sehen Sie in einem Dialogfenster verschiedene Informationen, die sich teilweise ändern lassen, sofern eine Änderungsberechtigung vorliegt.

Report-Eigenschaften
Folgende Informationen werden angezeigt:
Formularname
Der Name des Formulars.
Beschreibung
Hier können Sie eine Beschreibung zum Report eingeben. Der eingegebene Text erscheint im Formular-Explorer in der Spalte Beschreibung.
Report-Typ
Der Report-Typ bestimmt den Aufbau des Reportprogramms. Die derzeit verfügbaren Typen 00 bis 02 unterscheiden sich in der Art der Personalnummernselektion.
erzeuge PDF/a
Ist das Häkchen gesetzt, wird ein PDF/A erzeugt.
Version
Die Version wird bei jedem Speichern im Formular-Designer um eins erhöht.
Letzte Änderung
Zeigt den SAP Benutzernamen, das Datum und die Uhrzeit der letzten Änderung.
Originalsystem
Das Originalsystem ist das SAP-System, auf dem der Report erstellt wurde. Beim Transport eines Reports oder Download und anschließendem Upload, wird die System-ID mit transportiert.
Report-Exportoptionen
Ein Report, der im Viewer angezeigt wird, kann in verschiedene Dateiformate exportiert werden. Unter dem Menüpunkt "Speichern" gibt es z.B. Adobe Acrobat, Word, Excel, PowerPoint, HTML und weitere Exportformate. Vor dem Speichern erscheint ein Dialog, in dem sich, vom Ausgabeformat abhängig, noch verschiedene Optionen einstellen lassen.
Diese Optionen sind nur für den manuellen Export über den Viewer verfügbar. Beim Generieren der Export-Datei im Hintergrund (in SAP über den RFC-Service), werden Standardeinstellungen verwendet.
Um für Dateien, die über den RFC-Service generiert werden, dennoch Einstellungen festlegen zu können, tragen Sie in der Beschreibung des Formulars spezielle Schlüsselwörter ein, mit denen die Ausgabeoptionen gesteuert werden. Diese Schlüsselwörter werden vom RFC-Service ausgelesen und die Optionen entsprechend gesetzt. Das Beschreibungsfeld ist im Designer unter Report / Berichtsoptionen / Beschreibung zu finden. Am einfachsten ist es, wenn Sie die gewünschten Optionen direkt aus der Spalte Schlüsselwörter der nachfolgenden Tabelle in das Beschreibungsfeld kopieren.
Schlüsselwörter | Beschreibung |
Microsoft Word 2007 | |
Word2007Export.Wysiwyg = True | Wysiwyg aktivieren. Standardeinstellung ist Wysiwyg aus. |
Word2007Export.RowHeightIs = Exactly | DropDown Row height is = "Exactly", Default ist "Minimum" |
Word2007Export.MatrixBased = False | Layer / Ebenen statt Table / Tabelle verwenden. Standardmäßig ist Table / Tabelle aktiviert (entspricht MatrixBased). |
InteractiveHTML | |
PitHtmlExport.Bootstrap = True | Aktiviert das Einbinden von Bootstrap in die HTML-Ausgabe. |