Dynamic Actions

Dynamic Actions

  • Here, you control the initiation of actions when maintaining an info-type record.
  • This can be the maintenance of an additional info-type record or performing a routine.
  • For each action, you can determine whether it is always carried out when you change an info-type or a subtype or whether it is only carried out if you change certain fields.
  • You can state whether the action is to be carried out for "Change", "Create" and/or "Delete" record.
  • You can store the conditions for executing the action, for example, the comparison of the old and new value of a field.
  • Finally, you can also specify default values for a record that is to be created.


When you create the info-type Basic Pay (0008) and the new salary grade indicates a promotion, then you can automatically create new entry in info-type 0041 to update "Last Promotion date".

Use path: IMG > Personnel Management > Personnel Administration > Customizing Procedures > Dynamic Actions


Standard settings

The standard SAP system contains some sample dynamic actions.


  1. 1. Determine which info-type, subtype or field is to trigger a dynamic action.
  1. 2. Determine the info-type operation. (Function Code FC = 06 means you change or create a record).
  1. 3. You can now set up different actions using a sequential number:
    1. a) P - plausibility checks, that is conditions.
      If you also use Recruitment, you must make sure that the dynamic action is started for the correct application. You do this, by first calling up the transaction class:
      PSPAR-TCLAS="A" for Personnel Administration.
      PSPAR-TCLAS="B" for Recruitment.
    1. b) I - infotype accesses
    1. c) W - info-type values
    1. d) F - access for internal or external routines
      Calling up an internal routine: just specify the name of the routine, this must be in the info-type's module pool "MPmmmm00". You cannot assign using-parameters.
      Calling up external routines: specify the name of the routine and, in parentheses, the name of the program in which the routine can be found. You cannot assign using-parameters.

Further notes

Creating a date/deadline record

Dynamic actions are normally used for creating date/deadline records. However, the date of the deadline does not have to match the initializing date, but can be varied by a certain time interval.
You can add or subtract a number of time units for an outgoing date. The time units "days" (internal 010), "weeks" (011), "months" (012) and "years" (013) are supported.

Example: A year after an examination (info-type Internal Medical Service (0028)), the employee is to undergo a subsequent examination.
You must then call up info-type Monitoring of Date (0019) using the date/deadline type "follow-up examination" (30).

I INS,0019,30
Assignment of default values:
W P0019-VTRAN='1' number
W P0019-VTRZH='013' time unif from table T538T
W P0019-VTROP='+' operation '+' or '-'

Calling up an external routine

In an external routine, you can check additional conditions, even for other info-types:
Data definition
Include a statement for the current info-type structure (for example: TABLES: P0006.)
In include MPPDAT00, the fields required for flow control of an info-type dialog are defined in the common part. If you have this include in your program, some fields are available immediately: The field string CSAVE refers in each case to the old record whose values can be compared with the new values in the plausibility checks. To do this, define a second work area for the infotype structure that is used to store the contents of CSAVE. This means that the individual names of the infotypes are given.
SAP recommends that you use the *-workarea for the infotype structure in each case (for example: *P0006).
Internal table DYNMEAS: contains the infotype accesses (see indicator 'I').
Internal table INITIAL_VALUES: contains the default values for an infotype that is created or copied. (see indicator 'W').

You want to call up a report - for example, the writing of a letter.
Include a submit statement for this report in your routine.

Note on creating a batch input session:

Dynamic actions are not processed in a batch input session.
In batch input, you must specify the exact sequence of the screens. To ensure this is the case, you must have already programmed the dynamic action checks before you create the batch input session.

To avoid errors only the static actions are processed when you program and process a session. Info-types that usually only appear in the system as a result of a dynamic action should be updated by calling up the transaction separately.