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,界面如下:
输出如下:
B、新建一程序,SUBMIT语句调用上述程序Z_MM_PO:
注意:SELECT-OPTIONS、RANGES两者相同(RANGES不在界面显示),声明的都是带表头的内表,字段包括:SIGN、OPTION、LOW、HIGH。
C、运行程序:
AND RETURN: 语句表示运行完程序点击退出后是否直接返回当前程序,若取消该语句,则程序运行完成,点击退出按钮时,程序不经过上述界面(传值输入界面),直接返回当前程序。
P_WERKS1值将带到调用程序中的P_WERKS处:
VIA SELECTION-SCREEN:决定了是否出现上图所示界面(即是否出现调用程序的输入界面),若取消该语句,则程序默认传值而不经过上述调用程序的屏幕。
D、其他类型的传值方式:
RADIO BUTTON、CHECKBOX传值与上述类似
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。