Dynamische Maßnahmen im SAP HCM
Bei der Pflege von Infotypen ist es manchmal notwendig, dass andere verwandte Infotypen auch angepasst werden, dass Mails verschickt werden oder ganz andere Aktivitäten angestoßen werden. Diese Abhängigkeiten können über ein Customizing eingerichtet werden, dass als „Dynamische Maßnahmen“ bezeichnet wird.
Warum diese dynamische Maßnahmen so praktisch sind und wie sie angelegt werden, erfahren Sie in folgendem Blogartikel.
Wenn im Infotyp 0002 eines Mitarbeiters die Anzahl der Kinder eingegeben werden, sollen gleich die Daten des Kindes im Infotyp 0021 (Familie/Bezugsperson) mit Subtyp 2 „Kind“ erfasst werden. Innerhalb einer Maßnahme über den Infotyp 0000 könnte man den Infotypen 0021 als Nächstes anzeigen. Aber bei der normalen Infotyp-Pflege gibt es kein „nächstes Bild“.
Abhilfe schafft folgende „dynamische Maßnahme“:
Dieser Eintrag bewirkt, dass für deutsche Personalnummern, falls die Anzahl der Kinder auf „1“ gesetzt wird, der Infotyp 0021 folglich zur Pflege mit Subtyp 2 angezeigt wird.
Dynamische Maßnahmen können rein über Customizing realisiert werden. Wenn gewünscht, kann aber auch Programmierung in Form von ABAP-Formroutinen eingebunden werden. Das Customizing zu Dynamischen Maßnahmen befindet sich im SPRO unter Personalmanagement > Personaladministration > Anpassung der Arbeitsabläufe > Dynamische Maßnahmen bzw. in der Tabelle T588Z.
Mithilfe dieser dynamischen Maßnahmen kann festgelegt werden, bei welcher Bearbeitungsart des Infotypen bzw. Subtypen (Ändern, Anlegen und/oder Löschen) die Aktion bzw. die dynamische Maßnahme durchgeführt werden soll. Hier kann nur eine Bearbeitungsart (Ändern) oder aber mehrere (Ändern oder Löschen) hinterlegt werden.
Darüber hinaus ist es möglich, einzelne Bedingungen für die Durchführung der Aktion zu hinterlegen. Unter anderem eine Prüfung auf bestimmte Bedingungen (z.B. auf eine bestimmte Maßnahmenart), einen Aufruf einer Routine, die Pflege eines Infotypsatzes oder die Vorgabe von Werten beim Hinzufügen eines neuen Satzes.
Im Folgenden zeigen wir Ihnen, wie genau die dynamischen Maßnahmen eingerichtet werden.
Wie funktionieren Dynamische Maßnahmen?
Schauen wir uns zunächst einmal den View der dynamischen Maßnahmen an (View V_T588Z).
Die Tabelle enthält sieben Spalten, die auf den ersten Blick ein wenig verwirrend aussehen.
Im Folgenden geben wir Ihnen kurze Definitionen zu jeder Spalte:
Felder "Infty", "Art" und "Feldnam"
Hier wird der betroffene Infotyp hinterlegt, für den die dynamische Maßnahme durchgeführt werden soll. Bei Bedarf kann hier sowohl Subtyp („Art“) als auch Feldname („Feldnam“) hinterlegt, um das Auslösen der dynamischen Maßnahme noch weiter zu konkretisieren.
Feld "FC" - Funktionscharakter
Das Feld Funktionscharakter steuert, bei welchen Bearbeitungsarten die dynamische Maßnahme durchgeführt werden soll. Hierbei sind folgende Vorgaben möglich:
- 00 für Unabhängig von der aktuell ausgeführten Funktion
- 02 für Ändern
- 04 für Anlegen
- 06 für Ändern und Anlegen
- 08 für Löschen
- 10 für Ändern und Löschen
- 12 für Anlegen und Löschen
Feld "Nr" - Nummer
Das Feld Nr enthält die fortlaufende Nummer der Steuerung.
Feld "A" - Aktion
Das Feld A enthält das Kennzeichen für die Aktion. Folgende Aktionen sind möglich:
- P – Plausibilitätsprüfungen, Prüfung von Bedingungen
- Achtung: Falls auch die Personalbeschaffung im Einsatz ist, muss zwischen Personalbeschaffung und -administration unterschieden werden. Dafür muss zunächst die Transaktionsklasse abgefragt werden:
- PSPAR-TCLAS=“A“ für Personaladministration.
- PSPAR-TCLAS=“B“ für Personalbeschaffung.
- Hier können auch die Ländergruppierung MOLGA, der Transaktionscode oder andere Informationen geprüft werden.
- I – Pflegen eines Infotypsatzes
- W – Vorgabe von Werten beim Hinzufügen eines neuen Satzes
- V – Verweis auf eine andere Aktion
- F – Aufruf einer externen oder internen Routine
- Aufruf einer internen Routine: Hier muss der Name der Routine mitgegeben werden, diese muss sich im Modulpool „MPmmmm00“ des Infotyps befinden.
- Aufruf einer externen Routine: Hier muss der Name der Routine und in Klammern der Programmname, in dem die Routine liegt, mitgegeben werden.
- M – Versenden einer Mail
- Andere Einträge in dieser Spalte stehen für Kommentarzeilen.
Feld "Variabler Funktionsteil"
Der variable Funktionsteil ist abhängig von dem Kennzeichen der Aktion (Feld „A“).
Kennzeichen der Aktion „P“ – Plausibilitätsprüfungen
Mit der Plausibilitätsprüfung können Werte für bestimmte Felder des Infotyps vorgegeben werden.
Soll ein alter Wert zum Vergleich herangezogen werden, so ist dem Feldnamen PSAVE– voranzustellen. Sollen Prüfungen mit ODER verknüpft werden, so muss Zusatz /X hinten angestellt werden.
Beispiel 1: Die Aktion soll dann durchgeführt werden, wenn sich der Wert des Feldes „Status Sonderzahlung“ (P0000-STAT3) von 1 „Standard-Lohnart“ auf 0 „keine Sonderzahlung“ ändert:
-
- 0000 STAT3 P P0000-STAT3=’0′ Neuer Wert
- 0000 STAT3 P PSAVE-STAT3=’1′ Alter Wert
Beispiel 2: Ist eins der folgenden Felder (hier: KV-Kennzeichen) ungleich 0 (P0013-KVKZ1 oder P0013-AVKZ1 oder P0013-RVKZ1) und das Feld der Rentenversicherungsnummer (P0013-RVNUM) leer, so soll die Aktion durchgeführt werden.
-
- 0013 P P0013-KVKZ1<>’0′/X
- 0013 P P0013-AVKZ1<>’0′/X
- 0013 P P0013-RVKZ1<>’0′/X
- 0013 P P0013-RVNUM=SPACE
Kennzeichen der Aktion „I“ – Pflegen eines Infotypsatzes
Mithilfe dieser Aktion können Infotypsätze gepflegt bzw. angelegt werden. Dabei sind folgende Eingaben notwendig, die per Kommata voneinander getrennt werden
- Aktion (INS, COP, MOD, DEL),
- Infotyp,
- Subtyp,
- Objekt-Id,
- Gültigkeitsbeginn des zu selektierenden Infotyp-Satzes,
- Gültigkeitsende des zu selektierenden Infotyp-Satzes
Das Kennzeichen, ob die Aktion dunkel ablaufen soll kann ohne Kommata hinten angestellt werden -> /D
Ein Beispiel: Hinzufügen eines Terminsatzes (Infotyp 0019), Subtyp 01, dunkel
-
- …. I INS,0019,01/D
Kennzeichen der Aktion „W“ – Vorgabe von Werten für den neuen Satz
Durch das Kennzeichen „W“ können Literale oder Variablen vorgegeben werden.
Ein Beispiel: Bei Anlage des Infotyp 0021 (Familie) mit Subtyp 2 (Kind) soll ein Infotyp 0015-Satz mit Lohnart M430 und Betrag 100 angelegt werden.
-
- 0021 2 04 I INS,0015,M430
- 0021 2 04 W P0015-BETRG=’10000′
Kennzeichen der Aktion „V“ – Verweis auf eine andere Aktion
Durch dieses Kennzeichen können Felder zu Gruppen zusammengefasst werden. Im variablen Funktionsteil wird das Feld angegeben, welches in den nachfolgenden Zeilen in der Spalte „Feld“ aufzufinden ist. Aktionen, die daraufhin in den nachfolgenden Zeilen angegeben werden, werden für jedes der Felder angestoßen.
Diese Aktion ist nicht zwingend notwendig, spart jedoch einige Zeilen im variablen Funktionsteil.
Ein Beispiel: Wird im Infotyp 0016 das Feld PRBZT oder PRBZH geändert oder angelegt (= Funktionscode 06), so soll der Infotyp 0019 mit dem Subtypen 01 dunkel gelöscht werden.
-
- 0016 PRBZH 06 V PRBZT
- 0016 PRBZT 06 I DEL,0019,01/D
Das Äquivalent hierzu wäre folgendes:
-
- 0016 PRBZH 06 I DEL,0019,01/D
- 0016 PRBZT 06 I DEL,0019,01/D
Kennzeichen der Aktion „F“ – Aufruf einer Routine
Durch dieses Kennzeichen kann eine interne (im Modulpool vereinbarte) oder aber externe Routine aufgerufen werden. Was genau eine solche Routine tut, ist in der entsprechenden ABAP-Programmierung festgelegt.
Bei externen Routinen wird der Name des Programms in Klammern hinter dem Routinennamen angegeben.
Ein Beispiel: Aufruf der externen Routine GET_DATE im Programm ZPUDYN01.
-
- 0001 F GET_DATE(ZPUDYN01)
Ein Beispiel: Aufruf der internen Routine PROBATION im Modulpool MP001600.
-
- 0016 PRBZT F PROBATION
Kennzeichen der Aktion „M“ – Versenden eines Mails
Mithilfe dieses Kennzeichen können Mails verschickt werden. Dafür muss das Merkmal angegeben werden, welches die Eigenschaften der Mails bestimmt.
Ein Beispiel: Bei Änderung des Feldes SACHP (Infotyp 0001), soll eine Mail verschickt werden. Die Eigenschaften der Mail sind im Merkmal M0001 definiert.
-
- 0001 SACHP M M0001
Beispiele, in welchen Fällen dynamische Maßnahmen hilfreich sind
Vielleicht denken viele von Ihnen an BAdIs oder User-Exists, die ähnlich funktionieren wie dynamische Maßnahmen und quasi eine Alternative darstellen. Allerdings kommen BAdIs oder User-Exists bei der Pflege von Infotypen an ihre Grenzen. Das Anzeigen eines Infotyps zur Pflege oder das Anlegen eines Datensatzes im Hintergrund kann nicht so einfach aus ABAP angestoßen werden. Deshalb kann in diesen Fällen auf dynamische Maßnahmen zurückgegriffen werden.
Ein anderer Vorteil bieten dynamische Maßnahmen, falls kundeneigene Programmierung innerhalb von Infotypenpflege genutzt werden soll. Durch die T588Z sind somit alle Aktionen durch Infotypen auf einen Blick – ganz gleich, ob es sich um Standard- oder kundeneigene Programmierung handelt.
Darüber hinaus können durch dynamische Maßnahmen ohne Programmierung einzurichtende E-Mails auf Basis der gespeicherten Infotypen verschickt werden. Beispielsweise kann eine bestimmte Person oder Abteilung darüber informiert werden, dass ein neuer Mitarbeiter eingestellt wurde und dieser nun noch eine eigene Telefonnummer benötigt.
Aber Achtung
Dynamische Maßnahmen werden nur aufgerufen, wenn Infotypen „traditionell“ über die PA30 / PA40 usw. gepflegt werden. Bei Nutzung des entkoppelten Infotyp-Frameworks (z.B. über ESS oder bei Nutzung der Mehrfachbeschäftigung) werden dynamische Maßnahmen komplett ignoriert.
Wenn diese Szenarien bei Ihnen eine Rolle spielen, sollten Sie lieber auf die entsprechenden BAdIs zurückgreifen.
Ein weiteres Beispiel
Schauen wir uns einen anderen, aber ebenfalls nützlichen Fall einmal genauer an: Wenn der Infotyp 0000 mit Maßnahme 12 „Wiedereintritt“ angelegt wird, soll automatisch im Hintergrund, also ohne dass der Anwender etwas davon mitbekommt, im Infotyp 0041 ein entsprechendes Datum zum Wiedereintritt hinterlegt werden.
Der Eintrag in der V_T588Z sieht wie folgt aus:
Die ersten Zeilen (Zeilennr. 65 & 66) bilden Plausibilitätsprüfungen (Kennzeichen für Aktion = P), in denen zum einen das Länderkennzeichen (Molga) auf Deutschland (= 01) geprüft wird und zum anderen die Maßnahmenart (MASSN) auf den Wert ’12‘ (Wiedereintritt)
Als nächstes (Zeilennr. 67) erfolgt die Anlage des Infotypsatzes 0041 (Aktion = I) ohne Subtyp und Objekt-ID. Der Gültigkeitsbeginn sowie das -ende sollen dem des Infotypen 0000 entsprechen. Da der Anwender von der Anlage des Infotypsatzes nichts mitbekommen soll, wird die Anlage dunkel ausgeführt (/D).
Bei der Anlage (Zeilennr. 68 & 69) soll die kundeneigene Datumsart Z1 (Wiedereintritt) verwendet und mit dem Beginndatum aus dem Infotyp 0000 gefüllt werden (Aktion = W).
Weitere Ideen
Doch in welchen Fällen sind dynamische Maßnahmen denn noch hilfreich? Hier einige Ideen:
- Bei Anlage des Infotypen 0000 (Maßnahmen) soll ein Infotyp 0041-Satz (Datumsangaben) je nach Maßnahmeart mit dem jeweiligen Infotyp 0000-Beginndatum angelegt werden.
- Bei Eintritt eines Mitarbeiters (Infotyp 0000) soll ein bestimmter Nutzer eine Info-E-Mail bekommen.
- Bei Anlage des Infotypen 0007 (Sollarbeitszeit) soll der Infotyp 0050 (Zeiterfassungsinformationen) angelegt werden.
- Wird im Infotypen 0002 (Daten zur Person) das Feld „Anzahl Kinder“ gefüllt, so soll der Infotyp 0021 (Familie/Bezugsperson) mit Subtypen 02 „Kind“ angelegt werden.
- Bei Änderung der juristischen Person (Infotyp 0001) soll automatisch der Infotyp 0012 (Steuerdaten D) aktualisiert werden.
- Wenn im Infotyp 0016 (Vertragsbestandteile) ein Zeitraum für Probezeit (Feld PRBZT) hinterlegt wird, soll automatisch ein Terminsatz (Infotyp 0019) zum Ende der Probezeit angelegt werden.
Fazit
Alles in allem sind dynamische Maßnahmen auf den ersten Blick ein wenig schwierig anzulegen. Dennoch bieten sie eine wirklich flexible und schnelle Lösung, um Benutzern Arbeit abzunehmen. Darüber hinaus können auch Fehler vermieden werden, indem das System notwendige Infotypen bzw. Infotypsätze einfach selbst anlegt, falls der Benutzer diese vergessen würde.