Here is in details how to configure dynamic actions.
This article will give you the clear picture about the Dynamic action and their various components.
Dynamic actions are activities triggered automatically by R/3 during infotype maintenance. The database table T588Z is a set of records that stores information related to dynamic actions. The module pool MPNNNN00 of all infotypes includes the standard program MPPERS00.
That program contains routines for calling dynamic action functionality. Each time you press the save button on the maintenance screen of an infotype, the PAI (process after input) section of the screen calls these routines. This is to check the table T588Z for starting any dynamic action relevant to the current infotype.
The maintenance of dynamic actions is done via the view V_T588Z.
A dynamic action has the following components
Infotype Number (INFTY)
Specifies the infotype for which you want the dynamic action triggered.
Narrows the focus to a specific subtype
Field Name (FIELDN)
Starts your action when a maintenance function is performed on a particular field
This controls for which types of processing (create, change and/or delete a data record) a dynamic action should be carried out. The processing type is indicated by a two-digit numeric value. These values can be added up; in other words, you can enter several processing types for each infotype, subtype or field. A dynamic action can also be carried out independent of the current processing type.
00 for Independent of the current function carried out
02 for Change
04 for Create
06 for Change and create
08 for Delete
10 for Change and delete
12 for Create and delete
Dynamic actions are only applicable in maintenance operations
not in display functions.
If you enter 06, an action is carried out if the specified infotype was created or changed.
If you enter 00, an action is carried out irrespective of whether the specified infotype was created, changed or deleted.
Sequence Number (NO)
Refers to a sequential number.
Specifies a particular type of action. No dynamic action is executed if the function character has a value other than one of the following:
Plausibility checks, which allow you to check certain conditions.
You can enter values for specific infotype fields. Field names must be entered in full. Literals and constants can serve as comparison values. These must be enclosed by inverted commas. Variables can also be used.
The old value of a field can be used for comparison; the field name must be preceded by PSAVE-.
If fields of other infotypes are used for comparison, these must be stored in the module pool of the current infotype.
The following comparison operators are supported:
o = equal to,
o < less than,
o <= less than or equal to,
o > greater than
o >= greater than or equal to and
o <> not equal to.
Consecutive checks must be linked by a logical AND. Logical OR links must also be indicated by a /X.
Note that all checks with OR links must have a /X. If the result of the comparison operation is not “true”, then the following commands (I, F, W etc.) are skipped over until a field is reached or a new comparison operation takes place.
Infotype Field ….. Ind. Variable function part
o 0007 STAT3 P P0007-STAT3=’0′
0007 STAT3 P PSAVE-STAT3=’1′
The step is taken if the value in the P0007-STAT3 field changes from 1 to 0.
o 0007 P P0013-KLKZ1<>’0’/X
0007 P P0013-ALVKZ<>’0’/X
0007 P P0013-RVKZ1<>’0’/X
0007 P P0013-RVNUM=SPACE
The first three conditions are linked by an OR; at least one of these conditions must be met. Condition 4 must always be met. The step is taken if the following holds true:
P0013-KVKZ1 not equal to 0 or P0013-ALVKZ not equal to 0 or P0013- RVKZ1 not equal to 0, and P0013-RVNUM empty.
Calls an infotype for processing
Enter the step, infotype, subtype, object ID, start and end dates of the record and an indicator which defines whether the step is to be run in the background. The possible actions are INS, COP, MOD, and DEL.
Use commas to separate selection criteria just like the separator in the matchcode. If an entry is missing, the system inserts a comma.
Separate the indicator for suppressing dialog from other entries by a slash D (/D). A slash S (/S) will also suppress dialog.
Constants, such as those for subtypes, are not enclosed in inverted commas. Variable entries are also permitted. Fields containing such values must be put in brackets.
Infotype Field …. Ind. Variable function part
- …. I INS,19,01/D
Step: Create a Dates record, subtype 01, run in the background
- …. I DEL,14,M559
Step: Delete Rec. Payments/Deds. record with subtype (wage type) M559.
- 0007 …. I INS,8,,,(P0007-BEGDA),(P0007-ENDDA)
Step: Create a Basic Pay record (0008) without subtype and object ID. The start and end dates are the same as those in the current Planned Working Time record (0007); specify these two fields only if they are filled because the dynamic action was triggered by this infotype.
Default values for new record
Called after the I statement and used to assign values to screen fields while creating or copying another infotype record through the I statement Literals or variables are used as default values.
Set the defaults for the infotype, subtype, object ID, start and end dates using an I step and not a W step.
Do not set defaults for Q fields of an infotype because the values for these fields are derived from the corresponding P fields.
Infotype Subtype ….. FC Ind. Variable function part
o 0021 2 04 I INS,0015,M430
0021 2 04 W P0015-BETRG=’10000′
When a Family/Related Person record (0021) record with subtype 2 (child) is created, an Additional Payments record (0015) with a default amount of 100.00 is created.
Call a routine
Calls a FORM routine (subroutines in ABAP) during your action. The routine may reside in or out the module pool MPNNNN00.
You can call internal (module pool) as well as external routines. If you call external routines, type the program name in brackets after the routine name. Do not specify ‘using’ parameters. When calling an external routine, all data must be declared in a common part. You can use the fields of structure RP50D to return values from the routine. These are not used in the standard system and can only be populated via the routine and then can be used for defaults (W-Commands). This allows customer-specific routines to be formulated with all the above steps.
o Infotype Field ….. Ind. Var.function part
o 0016 PRBZT F PROBATION
0016 PRBZT I INS,19,01
0016 PRBZT W P0019-VTRMN=PRBEND
Module pool MP001600 contains the PROBATION routine. This routine uses the entries in the fields P0016-PRBZT and P0016-PRBEH to determine the end of the probation period which it stores in the field PRBEND.
The system creates a new ‘Dates’ record with the reminder date = PRBEND.
Infotyp ….. Ind. Var. function part
0001 F GET_DATE(ZPUDYN01)
0001 I INS,19,01
0001 W P0019-VTRMN=RP50D-DATE1
The GET_DATE routine in program ZPUDYN01 calculates a date and enters this date in the RP50D-DATE1 field via “TABLES RP50D” in ZPUDYN01. This date can be user-defined in GET_DATE: if necessary, user-defined infotypes can be read afterwards.
Cross-reference to another step
Lets you treat collectively a number of fields for which you want to define a common dynamic action Here, you can combine fields to groups. The variable function part contains the value in the field which follows the “field” column. Steps which are specified only for the following field are also triggered for each of the other fields.
Infotype Field ….. FC Ind. Variable function part
o 0016 PRBZH 06 V PRBZT
0016 PRBZT 06 I DEL,0019,01/D
Infotype 0019, subtype 01 is deleted in the background when the field PRBZT or PRBZH in infotype 0016 is changed or created (function code 06).
The following entries are equivalent:
o 0016 PRBZH 06 I DEL,0019,01/D
0016 PRBZT 06 I DEL,0019,01/D
Sends SAP Office mail
Enter the name of the feature which defines the characteristics of the mail.
Infotype Field ….. Ind. Var.function part
o 0001 SACHP M M0001
A mail is sent when the field SACHP is changed. The characteristics of the mail are defined in feature M0001. In the standard system, feature M0001 is provided as a model. The documentation on feature M0001 explains how to define the characteristics of a mail.
Hope that helps.
Have a nice day,