SAP内存管理
内存是程序之间为了传递数据而使用的共享存储空间
SAP内存分类:1、SAP内存,2、ABAP内存
1、SAP内存
主会话之间的数据共享(主会话:即单开的SAP窗口,SAP最多支持同时打开6个主会话)
通过SET/GET PARAMETER语句共享不同ABAP内存领域之间的内存
2、ABAP内存
内部会话之间的数据共享(内部会话:在主会话中进行程序调用时,即call function,还在当前窗口中调用产生的窗口,就叫内部会话)
只有在同一个窗口执行的程序才能共享内存
在每个程序里使用的内存有ABAP内存和SAP内存
内部会话产生的方式:
(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。
运行程序:
AND RETURN: 语句表示运行完程序点击退出后是否直接返回当前程序,若取消该语句,则程序运行完成,点击退出按钮时,程序不经过上述界面(传值输入界面),直接返回当前程序代码界面。
P_WERKS1值将带到调用程序中的P_WERKS处:
VIA SELECTION-SCREEN:决定了是否出现上图所示界面(即是否出现调用程序的输入界面),若取消该语句,则程序默认传值而不经过上述调用程序的屏幕。
C、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’或‘’