Wenn man Infotypen Vorschlagswerte mitgeben möchte stößt man auf ganz unterschiedliche Methoden in SAP wie man das umsetzen kann.
Vorschlagswerte für Infotypen übernehmen
Dieser Punkt im IMG verweist auf das Merkmal DFINF über das man für bestimmte Infotypen einstellen kann ob beim Kopieren Werte vom Vorgängersatz übernommen werden
Infotypspezifische Merkmale
Einzelne Infotypen haben spezielle Merkmale für Vorschlagswerte wie zum Beispiel:
IT0000
NUMKR – Nummernkreis Personalnummern
IT0001:
ABKRS – Vorschlagswert für Abrechnungskreis
PINCH – Sachbearbeitergruppen
IT0007:
SCHKZ – Vorschlagswert für Schichtkennzeichen
TMSTA – VORSCHLAGSWERT FÜR STATUS ZEITWIRTSCHAFT
WWEEK – Vorschlagswert für Arbeitswoche
IT0008:
TARIF – Vorschlag Tarifart -gebiet in den Basisbezügen
LGMST – Sollbezahlungsvorgabe
IT0009:
ZLSCH – Vorschlagswert für Zahlweg
IT0010:
DVB10 – Vorschlagswerte für Vermögensbildung (D)
IT0012:
DST12 – Vorschlagswerte für Steuer (D)
IT0013:
DSVVU – Vorschlagswerte für Sozialversicherung
DSVVW – Mitarbeiterkasse
IT0041:
DATAR – Vorschlagswert für Datumsangaben
IT0699:
DAVMV – AVmG: Vorschlag Vertragsmodell
IT0029:
DBGVW – Vorschlag für Berufsgenossenschaft und Gefahrtarif
Dynamische Maßnahmen Tabelle T588Z – hier kann beispielsweise nach Eingabe eines Infotypsatzes ein anderer angelegt werden, auch mit Vorschlagswerten. Hierbei ist allerdings zu beachten dass die dynamischen Maßnahmen erst nach der Eingabe zum Zeitpunkt PAI angesprochen werden. Diese Methode eignet sich also nicht um beim Anlegen Werte vorzugeben.
Erweiterung PBAS0001 – Transaktion SMOD (bzw. Implementierung über CMOD)
Wichtig – im Unterschied zu dynamischen Maßnahmen kann man die Vorschlagswerte vor Ausgabe des Dynpros zum Zeitpunkt PBO ausgeben – und zwar beim Anlegen und Kopieren!
Im Funktionsexit EXIT_SAPFP50M_001 kann man Vorschlagswerte für einzelne Infotypen vorgeben. Wichtig zu wissen ist dass die Erweiterung – einmal implementiert – für alle Infotypen durchlaufen wird. Deshalb ist es sehr wichtig den Infotypen mit einer CASE-Anweisung abzufragen.
Im Include LXPADF01 ist Beispielcoding hinterlegt – im Endeffekt muss diese Abfrage so aussehen
CASE INNNN-INFTY.
WHEN ‚0022‘.
* mach etwas…
WHEN OTHERS.
* mach nichts…
ENDCASE.
Was kann die Erweiterung? Es stehen diese Daten zur Verfügung:
TCLAS die Transaktionsklasse (A = Mitarbeiter, B = Bewerber)
INNNN der erfaßte Infotyp,
IPSYST Arbeitsfelder zur Dialogsteuerung und ausgewählte Felder der organisatorischen Zuordnung (IT 0001), die zum Beginndatum des aktuellen Satzes (INNNN-BEGDA) gültig ist,
I001P Tabelle T001P (Personalteilbereiche), ermittelt mit der aktuellen organisatorischen Zuordnung (IPSYST-WERKS, IPSYST-BTRTL),
I503 Tabelle T503 (Mitarbeiterkreise), ermittelt mit der aktuellen organisatorischen Zuordnung (IPSYST-PERSG, IPSYST-PERSK).
IPREF Zuordnungsgrößen für HR-Objekte
Dabei kann der Übergabeparameter INNNN der die Struktur des jeweiligen Infotypen hat mit Vorschlagswerten versorgt werden. Dabei sind folgende Schritte zu erledigen:
Deklaration einer Feldleiste mit der gewünschten Infotypstruktur (I0008 LIKE P0008)
DATA: I0008 LIKE P0008.
Zwischenspeichern des Übergabeparameters INNNN in der Infotyp- Feldleiste
I0008 = INNNN.
Ermitteln des Vorschlagswertes
I0008-BSGRD = ‚100‘. „Beschäftigungsgrad auf 100 setzen als Beispiel
Rückgabe der Infotyp-Feldleiste in den Übergabeparameter INNNN
INNNN = I0008.
Kommentar von Mathias Gloß:
Hallo Armin,
Glückwunsch zu dem Artikel, der den ganzen Kuddelmuddel zusammenfasst – insbesondere für Neueinsteiger eine wertvolle Quelle.
Kleiner Tipp noch:
> Zwischenspeichern des Übergabeparameters INNNN in der Infotyp- Feldleiste
> I0008 = INNNN
damit hatten wir nach dem Upgrade zu ECC 6 Schwierigkeiten, das gab einen Dump.
Lösung waren die beiden Statischen Methoden (um im Beispiel mit dem IT0008 zu bleiben):
*
CALL METHOD cl_hr_pnnnn_type_cast=>prelp_to_pnnnn
EXPORTING
prelp = innnn
IMPORTING
pnnnn = i0008.
* … jetzt irgend etwas mit i0008 machen, z.B. das:
I0008-BSGRD = '100'. "Beschäftigungsgrad auf 100 setzen als Beispiel
CALL METHOD cl_hr_pnnnn_type_cast=>pnnnn_to_prelp
EXPORTING
pnnnn = i0008
IMPORTING
prelp = innnn.
Viele Grüße, Mathias
Hallo Mathias,
Vielen Dank für Deinen Kommentar und das Lob – das ist eine sehr gute Ergänzung.
Viele Grüße
Armin
Interessant wäre jetzt noch gewesen, wie bzw. ob man eine Chance hat, auf die alten Werte des Infotyps (also die, die zum Aufrufzeitpunkt dringestanden haben) zuzugreifen, etwa wenn man feststellen möchte, ob sich solch Wert verändert hat.
Hallo,
also bei einer dynamischen Maßnahme geht das schon, hier hat man die Struktur PSAVE zur Verfügung.
Viele Grüße
Armin Bittner
Hallo,
Wie kann ich bei IT0021 Felder, die auf IT0288 verweisen, als Musseingabe definieren?
Weil mit dem User-Exit EXIT_SAPFP50M_002 kann ich nur die IT0021-eigenen Felder abfragen.
Z.B:
P0288-ERADR (Arbeitgeber des Partners) soll ein Pflichtfeld sein.
Die Daten werden aber erst nach dem Speichern des IT0021 in den IT0288 geschrieben und sind daher erst danach auswertbar.
Das Speichern soll jedoch (da Pflichtfeld) nur möglich sein, wenn in P0288-ERADR ein Wert eingetragen wurde.
Wie komme ich aus dieser Lage heraus???
Vielen Dank!
Hallo, ich würde das so machen dass ich a) in der Bildsteuerung des Infotypen 0288 das Feld als Pflichtfeld definieren würde und dann b) den Infotypen 0288 über eine dynamische Maßnahme aufrufen würde im Dialog.
Viele Grüße
Armin Bittner