Dynamische Massnahmen

Aufbau

In der ersten Spalte steht der Infotype.

 

In der zweiten Spalte steht der Subtype.

 

In der dritten Spalte steht das Feld.

 

In der vierten Spalte steht der Funktionscharakter der Aktion

Steuert, bei welchen Bearbeitungsarten (Anlegen, Ändern und/oder Löscheneines Datensatzes) eine dynamische Maßnahme durchgeführt werden soll. Folgende Codes sind 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

 

In der fünften Spalte steht die Fortlaufende Nummer der Quellensteuerart.

 

In der sechsten Spalte steht das Kennzeichen für Aktionen.

  • P - Prüfung von Bedingungen
  • I - Pflegen eines Infotypsatzes
  • W - Vorgabe von Werten beim Hinzufügen eines neuen Satzes
  • V - Verweis auf eine andere Aktion
  • F - Aufruf einer Routine
  • M - Versenden eines Mails

Andere Einträge in dieser Spalte bedeuten "Kommentarzeile".

 

In der Spalte sieben steht der Variable Funktionsteil.

  • Die Tabellenleisten T001P, T503 und PSPAR sind mit den zum Beginndatum des Satzes gültigen Werten gefüllt.
  • Die alten Werte des Infotyps stehen in der Feldleiste PSAVE zur Verfügung. Diese hat die gleiche Struktur wie die Pnnnn-Struktur (nnnn=Infotyp). Die Struktur ist nur im Falle von Löschen, Ändern und Anlegen mit "sinnvollen" Werten gefüllt.

Details

Infotyp

Hier hinterlegt man den betroffenen Infotypen.

Art

Hier hinterlegt man den Subtypen, dies sind Untergliederungen von Infotypen. Die Subtypen eines Infotyps können unterschiedliche Zeitbindungen haben und daher auch eine eigene Historie bilden.

Feldname

Hier hinterlegt man das betroffene Feld, falls nur ein Feld betroffen ist.

FC

Der Funktionscharakter der Aktion steuert, bei welchen Bearbeitungsarten (Anlegen, Ändern und/oder Löscheneines Datensatzes) eine dynamische Maßnahme durchgeführt werden soll.

Sie können mehrere Bearbeitungsarten pro Infotyp, Subtyp bzw. Feld hinterlegen.

 

00 = Unabhängig von der aktuell ausgeführten Funktion

02 = Ändern

04 = Anlegen

06 = Ändern und Anlegen

08 = Löschen

10 = Ändern und Löschen

12 = Anlegen und Löschen

 

NR

Hier ist die fortlaufende Nummer der Quellensteuerart hinterlegt (Bestimmt die Reihenfolge).

A

Hier geben Sie das Kennzeichen für Aktion an

P = Prüfung von Bedingungen

I = Pflegen eines Infotypsatzes

W = Vorgabe von Werten beim Hinzufügen eines neuen Satzes

V = Verweis auf eine andere Aktion

F = Aufruf einer Routine

M = Versenden eines Mails

Falls andere Einträge in dieser Spalte sind, bedeuten das dies eine Kommentarzeile ist.

Variabler Funktionsteil

Abhängig vom Kennzeichen der Aktion hat der Inhalt des variablen Funktionsteils unterschiedliche Auswirkungen:

 

P - Plausibilitätsprüfungen

Hier werden Werte für bestimmte Felder des Infotyps hinterlegt. Es muss der volle Name für diese Felder hinterlegt werden ( z.B.  P0038-KANTO ). Ein solcher Vergleichswerte sind Literale, also konstante Werte, diese muss man in Hochkommata eingeschlossen angeben z.B. P0038-KANTO = 'BE' ). Möglich sind auch Variablen zu hinterlegen (P0038-KANTO = P0006-STATE). Ein alter Wert eines Feldes kann zum Vergleich herangezogen werden, dem Feldnamen ist dabei ein Präfix PSAVE- voranzustellen (PSAVE-KANTO = P0006-STATE).

Wenn man Felder aus einem anderen Infotypen zum Vergleich braucht, so muss dieser im Modulpool des aktuellen Infotyps zur Verfügung gestellt werden.

 

Vergleichsoperatoren

= gleich,

< kleiner,

<= kleiner oder gleich,

> größer,

>= größer oder gleich  und

<> ungleich.

 

Aufeinanderfolgende Prüfungen sind durch ein logisches Und verknüpft. Abweichend davon sind Verknüpfungen durch logisches Oder zusätzlich durch ein /X zu kennzeichnen.

Hinweis:

Bitte beachten Sie, daß alle Prüfungen, die mit ODER verknüpft sind, den Zusatz /X haben müssen!

Ist das Ergebnis der Vergleichsoperationen nicht "wahr", so werden die folgenden Anweisungen (I, F, W usw.) übersprungen, bis ein neues Feld erreicht ist oder neue Vergleichsoperationen folgen.

Beispiele:

Infotyp Feld ..... Kennz. Variabler Funktionsteil

0000     STAT3      P      P0000-STAT3='0'

0000     STAT3      P      PSAVE-STAT3='1'

Die Aktion wird durchgeführt, wenn sich der Wert des Feldes P0000-STAT3 von 1 auf 0 ändert.

0013               P      P0013-KVKZ1<>'0'/X

0013               P      P0013-AVKZ1<>'0'/X

0013               P      P0013-RVKZ1<>'0'/X

0013               P      P0013-RVNUM=SPACE

Die ersten drei Bedingungen sind durch Oder verknüpft, d.h. mindestens eine der drei Bedingungen muß erfüllt sein; die vierte Bedingung muß auf jeden Fall erfüllt sein.

Die Aktion wird also durchgeführt, wenn gilt:

P0013-KVKZ1 ungleich 0 oder P0013-AVKZ1 ungleich 0 oder P0013-RVKZ1 ungleich 0 - und P0013-RVNUM gleich leer.

 

I - Pflegen eines Infotypsatzes

Eingegeben werden Aktion, Infotyp, Subtyp, Objekt-Id, Gültigkeitsbeginn und -ende des zu selektierenden Infotyp-Satzes und ein Kennzeichen, ob die Aktion dunkel ablaufen soll. Die möglichen Aktionen sind INS, COP, MOD und DEL.

Die Selektionskriterien werden durch Kommata voneinander getrennt. Das Komma ist dabei wie das Trennzeichen bei der Matchcode-Eingabe zu verwenden, d.h. fehlt eine Angabe, so wird einfach das entsprechende Komma hinzugefügt.

Das Kennzeichen zur Unterdrückung des Dialogs wird durch einen Schrägstrich D (/D) von den übrigen Eingaben getrennt.

Konstanten, etwa für den Subtyp, werden nicht in Hochkommata eingeschlossen.

Es können auch variable Eingaben gemacht werden. Das Feld, das den Inhalt eines solchen Wertes trägt, ist dann in Klammern zu setzen.

Beispiele:

Infotyp Feld ..... Kennz. Variabler Funktionsteil

      ....         I      INS,19,01/D

Aktion:   Hinzufügen eines Terminsatzes, Subtyp 01, dunkel prozessiert.

 

      ....         I      DEL,14,M559

Aktion:   Löschen eines Wiederkehrenden Be-/Abzugs mit Subtyp (Lohnart) M559.

 

0007 ....            I      INS,8,,,(P0007-BEGDA),(P0007-ENDDA)

Aktion:   Anlegen eines Infotyps Basisbezüge (0008), ohne Subtyp und Objekt-Id. Beginn- und Endedatum sind die des aktuellen Infotyps Sollarbeitszeit (0007); die Angabe der beiden Felder ist nur sinnvoll, wenn diese gefüllt sind, etwa weil die dynamische Maßnahme (wie hier) von diesem Infotyp angestoßen wird.

 

W - Vorgabe von Werten für den neuen Satz

Vorgegeben werden Literale oder Variablen.

Beachten Sie, daß Infotyp, Subtyp, Objekt-Id, Gültigkeitsbeginn und -ende ggf. durch die I-Aktion vorgegeben werden müssen, jedoch nicht durch die W-Aktion.

Das Vorbelegen von Q-Feldern eines Infotyps ist in der Regel nicht sinnvoll, da die Werte dieser Felder aus den korrespondierenden P-Feldern abgeleitet werden.

Beispiel:

Infotyp Subtyp ..... FC Kennz. Variabler Funktionsteil

0021    2            04 I      INS,0015,M430

0021    2            04 W      P0015-BETRG='10000'

Beim Anlegen eines Infotyps Familie (0021), Subtyp 2 (Kind) wird eine Ergänzende Zahlung (0015) angelegt, deren Betrag mit 100,00 vorbelegt ist.

V - Verweis auf eine andere Aktion

Hier können Felder zu Gruppen zusammengefaßt werden. Im variablen Funktionsteil steht das auf das in der Spalte "Feld" folgende Feld. Aktionen, die in nachfolgenden Zeilen nur für das folgende Feld angegeben sind, werden für jedes der Felder angestoßen.

Beispiel

Infotyp Feld ..... FC Kennz. Variabler Funktionsteil

0016    PRBZH      06 V      PRBZT

0016    PRBZT      06 I      DEL,0019,01/D

Das Löschen von Infotyp 19, Subtyp 01 wird bei Ändern oder Hinzufügen (Funktionscode 06) des Feldes PRBZT oder PRBZH des Infotyps 0016 "dunkel" durchgeführt.

Äquivalent wäre:

0016    PRBZH      06 I      DEL,0019,01/D

0016    PRBZT      06 I      DEL,0019,01/D

F - Aufruf einer Routine

Es ist der Aufruf von internen (im Modulpool vereinbarten) und externen Routinen möglich.

Bei einer externen Routine wird der Name des Programms in Klammern hinter dem Namen der Routine angegeben. Die Mitgabe von Using-Parametern ist nicht möglich. Beim Aufruf einer externen Routine müssen alle Daten in einem Common Part vereinbart sein. Zur Rückgabe von Werten aus der Routine stehen die Felder der Struktur RP50D zur Verfügung: diese werden im Standard nicht genutzt und können durch die Routine gefüllt werden und dann für Vorgaben von Werten (W-Anweisungen) später genutzt werden.

Auf diese Weise können kundeneigene Routinen mit allen oben aufgeführten Aktionen formuliert werden.

Beispiel 1:

Infotyp Feld ..... Kennz. Variabler Funktionsteil

0016     PRBZT      F      PROBATION

0016     PRBZT      I      INS,19,01

0016     PRBZT      W      P0019-VTRMN=PRBEND

 

Im Modulpool MP001600 existiert eine Routine PROBATION, die aus den Eingaben in den Feldern P0016-PRBZT und P0016-PRBEH das Ende der Probezeit ermittelt und in das Feld PRBEND stellt.

Es wird nun ein neuer Terminsatz mit Termindatum gleich PRBEND hinzugefügt.

Beispiel 2:

Infotyp ..... Kennz. Variabler Funktionsteil

0001           F      GET_DATE(ZPUDYN01)

0001          I      INS,19,01

0001           W      P0019-VTRMN=RP50D-DATE1

 

Die Routine GET_DATE im Programm ZPUDYN01 berechnet ein Datum und stellt dies in das durch "TABLES RP50D" in ZPUDYN01 vereinbarte Feld RP50D-DATE1. Dieses Datum kann dabei in GET_DATE beliebig berechnet werden; nötigenfalls können beliebige Infotypen nachgelesen werden usw.

M - Versenden eines Mails

Es ist der Name eines Merkmals anzugeben, welches die Eigenschaften des Mails bestimmt.

Beispiel:

Infotyp Feld ..... Kennz. Variabler Funktionsteil

0001     SACHP      M      M0001

 

Damit wird bei Änderung des Feldes SACHP das Senden eines Mails ausgelöst. In dem Merkmal M0001 werden die Eigenschaften des Mails bestimmt.

Im Standard wird das Merkmal M0001 als Beispiel ausgeliefert. In der Dokumentation des Merkmals M0001 erfahren Sie, wie die Eigenschaften des Mails definiert werden können.

Weitere Hinweise

Wenn Sie ein Datum als Konstante verwenden, müssen Sie es in der Form JJJJMMTT (JJJJ = Jahr, MM = Monat, TT = Tag) angeben.

Die Tabellenleisten T001P, T503 und PSPAR sind mit den zum Beginndatum des Satzes gültigen Werten gefüllt.

Die alten Werte des Infotyps stehen in der Feldleiste PSAVE zur Verfügung. Diese hat die gleiche Struktur wie die Pnnnn-Struktur (nnnn=Infotyp). Die Struktur ist nur im Falle von Löschen, Ändern und Anlegen mit - sinnvollen - Werten gefüllt.

Lesen Sie auch das Kapitel im Einführungsleitfaden Dynamische Maßnahmen anlegen.

Beispiel

Hier ein kleines Beispiel:

Variabler Funktionsteil Beispiel

*&---------------------------------------------------------------------*

*& Subroutinenpool   ZHR_DYN_MASSNAHME

*&

*&---------------------------------------------------------------------*

*&

*&

*&---------------------------------------------------------------------*

 

PROGRAM  zhr_dyn_massnahme.

 

TABLES: t5pv2, "hr-pt: classification of absence quota types

        rp50d, "HR: Return Fields for Dynamic Actions

        t5prm, "HR-PT: Reasons for actions - Mapping to legal reasons

        pspar. "HR: Übergabeleiste für HR-Infotyp-Dialogbausteine

 

INCLUDE fp50ppsb.       "COMMON PART SAPFP50P

 

DATA: lv_datum TYPE begda.

 

*---------------------------------------------------------------------*

*       FORM CALC_DATE                                                *

*---------------------------------------------------------------------*

*       Austritt ermitteln

*---------------------------------------------------------------------*

FORM calc_date.

 

  CLEAR: rp50d-date1, lv_datum.

 

* Ermitteln Ein- und Austrittsdatum

* Wenn Mitarbeitende kürzer als 3 Monate angestellt sind,

* würde sonst versucht, ein IT0655 vor dem Eintrittsdatum

* anzulegen.

  CALL FUNCTION 'HR_LEAVING_DATE'

    EXPORTING

      persnr                 = pspar-pernr

    IMPORTING

      leavingdate            = lv_datum

    EXCEPTIONS

      leaving_date_not_found = 1

      pernr_not_assigned     = 2

      OTHERS                 = 3.

 

  IF sy-subrc = 0.

    rp50d-date1 = lv_datum.

  ENDIF.

 

ENDFORM.                    "calc_date

        search this website

Regotz Michel