-
MEMORY ID / SET PARAMETER ID / GET PARAMETER ID
关于SET/GET PARAMETER ID的注意事项,以及取own data中数据的方法
用法1:通常这两个语法配合PARAMETER,select-options中的参数memory id来使用。例如:
选择屏幕定义PARAMETER p1 TYPE c LENGTH 10 MEMORY ID PID.
则可以再AT SELECTION-SCREEN OUTPUT .事件块中定义:
SET parameter id'PID' field 'AB1'.
那么在执行report的时候,P1的值将变为AB1,
而获取值得方式为 GET PARAMETER ID 'PID' FIELD VALUE.
则将 PID的在内存中的值给变量VALUE.
注意:ID后面的PID一定要大写!!
REPORT ztestprog.
TABLES:MARA.
PARAMETER p1 TYPE c LENGTH 10 MEMORY ID PID.
SELECT-OPTIONS:s1 for mara-matnr MEMORY ID SID.
AT SELECTION-SCREEN OUTPUT .
SET PARAMETER ID: 'PID' FIELD 'AB1',
'SID' FIELD '123232321'.
GET PARAMETER ID 'PID' FIELD P1.
start-of-selection.
write: / p1.
用法2:获得own data 中比如MOLGA之类的配置信息。例如:

我们可以直接通过 get parameter id 的方式,在程序中获得用户的配置信息。
REPORT ztest09.
DATA: gv_molga LIKE t500l-molga .
GET PARAMETER ID 'MOL' FIELD gv_molga.
WRITE: / gv_molga .
————————————————
版权声明:本文为CSDN博主「雁舞九天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fengyan5022/article/details/7896888
更核心的用法:
参见下面联合使用。
-
SET PARAMETER ID 'RID' FIELD <FIELD NAME>.与CALL TRANSACTION 'SE38'.的妙用
SAP ABAP 使用内存参数设置SET /GET PARAMTER ID
SET /GET PARAMTER ID使用SPA/GPA 参数--SAP内存参数设置。这是在外部程序之间传送数据的最常用方法。使用EXPORT/IMPORT数据(ABAP/4内存)任何程序都可以使用EXPORT语句在ABAP/4内存中存储数据字段簇。因此,该数据就全局有效(使用IMPORT),在程序本身中以及任何被调事务、报表或其它模块中都有效。
用SPA/GPA参数传送数据可使用SPA/GPA参数向被调用的程序传送数据。SPA/GPA参数是全局保存在内存中的字段值。每个参数都用三个字符代码标识:通过选择在第一个屏幕上的“其他对象”可以在对象浏览器中定义这些参数。SPA/GPA存储器是用户指定的并在用户整个会话期中都有效。有两种使用SPA/GPA参数的方法:通过在“屏幕制作器”中设置字段属性“SET参数”、“GET参数”和“参数ID”属性告知系统是向“参数ID”存储值还是从中检索值。系统使用这些值自动初始化屏幕字段值。对调用屏幕中给定字段的“SET参数”属性以及被调用屏幕中相应字段的“GET参数”属性进行标记。系统会自动将字段内容从调用事务传送给它所触发的事务中。通过使用SET PARAMETER或GET PARAMETER语句用这些语句可以存储和检索来自ABAP/4程序的SPA/GPA值。如果两个事务的选择屏幕没有共享同一必需的字段,则请使用这些语句按名称显式存储屏幕字段。在从PAI模块调用新事务之前,用一个名称之下存储调用程序事务的字段:
SET PARAMETER ID 'RID' FIELD <FIELD NAME1>.
// 系统将值存储在SPA参数‘RID’中的<字段1>中。
// 三个字符的标识符‘RID’必须在SAP表TPARA中定义。
// 如果SPA参数‘RID’已经包含值,则SET PARAMETER语句会将其改写掉(用<FIELD NAME1>的内容)。
// 在被调事务的PBO模块中,在其他名称下检索字段:
GET PARAMTER ID 'RID' FIELD <FIELD NAME2>.
// 系统读取‘RID’的内容并将其传送给<FIELD NAME2>。
// 例如,假定要将屏幕字段和其它数据从调用事务传送给被调用事务。
// 调用事务可以将某些值存储在SPA参数中:
SET PARAMETER ID 'RID' FIELD REPORT ID.
CALL TRANSACTION 'SE38'.
然后,被调事务即可在PBO获取信息,以便将其显示到屏幕上。此处将出现事务SE38的初始屏幕,其报表ID已填好。这在使用CALL TRANSACTION AND SKIP FIRST SCREEN时非常有用。除非所需的字段值由内存提供,否则不能取消第一个屏幕。
注:表TPARA存放字段参数和参数描述
-
指针
ABAP field-symbol的意义是什么, 我觉得和work area没什么区别
-
宏(Macros)
网友评论