SAP 内存管理-内部会话

ABAP内存

内部会话之间的数据共享(内部会话:在主会话中进行程序调用时,即call function,还在当前窗口中调用产生的窗口,就叫内部会话)

只有在同一个窗口执行的程序才能共享内存

内部会话产生的方式:

(1)、接口:使用SUBMIT语句调用程序,调用选择界面传值:

SUBMIT program

         WITH p_1 = val1

         WITH s_1 IN r_1

         VIA SELECTION SCREEN

         AND RETURN .

注意:不同参数的传值方法

PARAMETERS          WITH P_1 = VAL1     =调用

SELECT-OPTIONS    WITH S_1 IN R_1      IN调用,不能用=调用,否则传值会错误

RADIO BUTTON        WITH R_1 = ‘X’    WITH R_2 = ‘’   =调用,‘X’或‘’

CHECKBOX               WITH C_1 = ‘X’    WITH C_2 = ‘X’    WITH C_3 = ‘’ =调用,‘X’或‘’

实例:

A、已有程序Z_MM_PO,界面如下:

SAP 内存管理-内部会话

输出如下:

SAP 内存管理-内部会话

B、新建一程序,SUBMIT语句调用上述程序Z_MM_PO:

SAP 内存管理-内部会话

注意:SELECT-OPTIONS、RANGES两者相同(RANGES不在界面显示),声明的都是带表头的内表,字段包括:SIGN、OPTION、LOW、HIGH

C、运行程序:

SAP 内存管理-内部会话

AND RETURN: 语句表示运行完程序点击退出后是否直接返回当前程序,若取消该语句,则程序运行完成,点击退出按钮时,程序不经过上述界面(传值输入界面),直接返回当前程序。

P_WERKS1值将带到调用程序中的P_WERKS处:

SAP 内存管理-内部会话

VIA SELECTION-SCREEN:决定了是否出现上图所示界面(即是否出现调用程序的输入界面),若取消该语句,则程序默认传值而不经过上述调用程序的屏幕。

D、其他类型的传值方式:

RADIO BUTTONCHECKBOX传值与上述类似

RADIO BUTTON  WITH R_1 = ‘X’    WITH R_2 = ‘’   “=调用,‘X’或‘’

CHECKBOX   WITH C_1 = ‘X’    WITH C_2 = ‘X’    WITH C_3 = ‘’  “=调用,‘X’或‘’

 

(2)、直接调用事务代码

CALL TRANSACTION ‘tcode’ AND SKIP FIRST SCREEN.   “AND SKIP FIRST SCREEN跳过初始界面

用法:例如用户要求,点击ALV显示界面中的订单编号就跳转到相应订单的查看界面;此时可以采取调用标准的PO查看事务代码ME23N。