设中国护士网为首页 | 中国护士网专注于知识的分享,因为专注,所以更好!
分享到:

[SAP - HCM] Dynamic Action 语法 例子

来源:  作者:

在表T588Z中,保存着 dynamic action 的 customizing。例如

 

-----------------------------------------------------------------------------

0000 04 11  p  P0000-MASSN='01'
0000 04 12  p  T001P-MOLGA='32'
0000 04 13  I   INS,0041,,,(P0000-BEGDA),(P0000-ENDDA)/D
0000 04 14  w  P0041-DAR01='01'
0000 04 15  w  P0041-DAT01=P0000-BEGDA
0000 04 16  w  P0041-DAR02='V1'
0000 04 17  w  P0041-DAT02=P0000-BEGDA

-----------------------------------------------------------------------------

 

第二列的含义:

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

Examples

If you enter 06, an action is carried out if the specified infotype was created or changed.

 

第四列的含义:

P - Check conditions

I - Maintain infotype record

W - Set default values when creating a new record

V - Reference to another step

F - Call routine

M - Send mail

If you enter 00, an action is carried out irrespective of whether the specified infotype was created, changed or deleted.

 

第五列的含义:

P行表示 需要满足的条件。即info0000(当前页面)中的某些字段要满足的条件。

I行表示 对infotype进行的操作。

    1 在这里,INS表示 插入。实质上,除了后面的默认值,还会插入pernr和操作人id。

                COP表示 复制。如果当前的pernr在0041中已经存在,就复制;如果不存在,则插入。

    2 INS,0041,,,(P0000-BEGDA),(P0000-ENDDA)/D
       这里,在0041后,空了两个位置,分别表示 subtype 和 objectID 为空。

       /D表示 后台运行,用户看不到。如果去掉,用户会看到维护info0041的界面。

       (P0000-BEGDA),(P0000-ENDDA) 依次出现在之后,我认为是约定俗成的符合了这两个字段在0041中的顺序。

W行表示 赋默认值。这里是根据名字来对应赋值的字段。(I行 是根据界面的字段出现顺序)

 

F, M行 没深入研究,以后再补充上。

 .

 .

 .

=====================================================================

 

http://wiki.sdn.sap.com/wiki/display/Snippets/Dynamic+Action

 

http://it.toolbox.com/wiki/index.php/Dynamic_Action#Field_Name_.28FIELDN.29

 

Dynamic Action
updated Mar 28, 2008 3:17 am | 21,056 views
Contents   [Hide TOC]
1 Dynamic Actions
1.1 A dynamic action has the following components
1.1.1 Infotype Number (INFTY)
1.1.2 Subtype (SUBTY)
1.1.3 Field Name (FIELDN)
1.1.4 Function (FC)
1.2 Dynamic actions are only applicable in maintenance operations
1.2.1 Examples
1.2.2 Sequence Number (NO)
1.2.3 Step (A)
1.2.4 P
1.2.4.1 Note
1.2.4.2 Examples
1.2.5 I:
1.2.5.1 Examples
1.2.6 W
1.2.6.1 Examples
1.2.7 F
1.2.8 F:
1.2.8.1 Example 1
1.2.8.2 Example 2
1.2.9 V
1.2.9.1 Examples
1.2.10 M:
1.2.10.1 Example
<script type="text/javascript"></script>

[edit]
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.


[edit]
A dynamic action has the following components

[edit]
Infotype Number (INFTY)
Specifies the infotype for which you want the dynamic action triggered.


[edit]
Subtype (SUBTY)
Narrows the focus to a specific subtype


[edit]
Field Name (FIELDN)
Starts your action when a maintenance function is performed on a particular field


[edit]
Function (FC)
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                                        

[edit]
Dynamic actions are only applicable in maintenance operations
not in display functions.


[edit]
Examples
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.


[edit]
Sequence Number (NO)
Refers to a sequential number.


[edit]
Step (A)
Specifies a particular type of action. No dynamic action is executed if the function character has a value other than one of the following:


[edit]
P
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.


[edit]
Note
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.


[edit]
Examples
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.


[edit]
I:
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.


[edit]
Examples
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.


[edit]
W
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.


[edit]
Examples
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.


[edit]
F
Call a routine


[edit]
F:
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.


[edit]
Example 1
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.


[edit]
Example 2
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.


[edit]
V
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.


[edit]
Examples
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

[edit]
M:
Sends SAP Office mail

Enter the name of the feature which defines the characteristics of the mail.


[edit]
Example
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.

<!-- Saved in parser cache with key wiki_it_193:pcache:idhash:17390-0!1!0!!en!2 and timestamp 20100823233451 -->