Lesen eines Infotyps einer Person in einem ZeitraumUm alle Datensätze eines Infotyps einer Person in einem gegebenen Zeitraum in eine interne Infotyp-Tabelle zu stellen, können Sie folgende Programmierhilfe verwenden:
Makro:
RP_READ_INFOTYPE
Das Makro definieren Sie mit Hilfe des Sprachelements INFOTYPES.
Sie können das Makro in allen Programmen zu beliebigen Zeitpunkten oder auch in Funktionsbausteinen verwenden.
Hinweis
In der Datenbank PNP sollte normalerweise ein Infotyp mit GET PERNR gelesen werden. Das Lesen mit Hilfe des Makros
RP_READ_INFOTYPE
stellt eine Ausnahme dar.
Darüber hinaus können Sie den Funktionsbaustein
HR_READ_INFOTYPE
benutzen. Wie Sie den Funktionsbaustein einsetzen, lesen Sie in der Dokumentation zum Funktionsbaustein.
Der Gültigkeitsbeginn des Zeitraumes muß kleiner oder gleich dem Gültigkeitsende des Zeitraumes sein.
Gültigkeitsbeginn und -ende sind korrekte Datumsangaben (am besten vom Type DATE).
Die Infotyp-Tabelle muß zur Infotypnummer passen.
Das das Makro verwendende Programm muß das Include DBPNPMAC beinhalten.
Das Makro
RP_READ_INFOTYPE
sorgt dafür, daß alle Datensätze eines Infotyps einer Person in einem gegebenen Zeitraum in eine interne Infotyp-Tabelle gestellt werden.
Parameter
RP_READ_INFOTYPE pernr infty inftytab beg end
IN : |
1) |
Personalnummer der gewünschten Person |
2) |
Infotypnummer des gewünschten Infotyps |
|
3) |
Name der internen Infotyp-Tabelle |
|
4) |
Gültigkeitsbeginn des Zeit-Intervalls |
|
5) |
Gültigkeitsende des Zeit-Intervalls |
|
OUT: |
1) |
PNP-SW-FOUND = 0 , falls kein passender Datensatz im Datenbestand gefunden wird |
PNP-SW-FOUND = 1 , falls mindestens ein passender Datensatz im Datenbestand gefunden wird |
||
2) |
PNP-SW-AUTH-SKIPPED-RECORD = 0 , falls die HR-Berechtigungsprüfung keinen Datensatz wegen fehlender Berechtigung zurückgehalten hat |
|
PNP-SW-AUTH-SKIPPED-RECORD = 1 , falls die HR-Berechtigungsprüfung mindestens einen Datensatz wegen fehlender Berechtigung zurückgehalten hat |
||
3) |
interne Infotyp-Tabelle, gefüllt mit allen passenden Datensätzen, für die der Benutzer Berechtigung hat (evtl. leer) |
Prüfung
keine
(RP_READ_INFOTYPE pernr infty inftytab beg end)
INFOTYPES: 0001.
RP-LOWDATE-HIGHDATE.
DATA: PERNR LIKE P0001-PERNR.
DATA: BEGDA LIKE P0001-BEGDA, ENDDA LIKE P0001-ENDDA.
PERNR = '12345678'.
BEGDA = LOW-DATE + 15.
ENDDA = HIGH-DATE - 5.
RP-READ-INFOTYPE PERNR 0001 P0001 BEGDA ENDDA.
IF PNP-SW-AUT-SKIPPED-RECORD EQ '1'.
WRITE: / 'keine ausreichende Berechtigung'. STOP.
ENDIF.
IF PNP-SW-FOUND EQ '0'.
WRITE: / 'Informationstyp 0001 fehlt'. STOP.
ENDIF.