ABAP - MEMORY ID 的使用

本文介绍了如何在SAP环境中,通过在程序A中调用程序B,利用ABAP内存实现数据的高效存储和传递,从而简化多程序间的流程执行过程。
摘要由CSDN通过智能技术生成
  • 了解SAP内存:http://t.csdnimg.cn/J7cGz
  • 假设一个场景:程序A需要某些特定的数据,但是获取数据的方式太麻烦了,耗时又耗力,恰巧程序B有特定数据的取数逻辑,那么可以在程序A设置调用程序B的程序,在程序B运行结束前把需要的数据存储到ABAP内存中,执行完程序B返回程序A继续执行取出ABAP内存中的所需数据。
  • 为什么是ABAP内存,一个GUI窗口在运行程序A又运行程序B(一个外部Session内有两个内部session)
  • 流程简化
  1. 程序A执行过程中调用程序B,在程序B执行完并返回程序A继续执行直到结束。
    REPORT z_abap_memorey_02.
    
    "调用程序z_abap_memorey_01并返回原程序
    SUBMIT z_abap_memorey_01 AND RETURN.
    ...
  2.  程序B执行时把向ABAP内存'ID01'存入数据
    REPORT z_abap_memorey_01.
    "向ABAP内存'ID01'存入数据
    EXPORT et_data TO MEMORY ID 'ID01'.
  3.  程序A在程序B执行完后,从ABAP内存'ID01'取出数据
    REPORT z_abap_memorey_02.
    
    "调用程序z_abap_memorey_01
    SUBMIT z_abap_memorey_01 AND RETURN.
    
    从ABAP内存'ID01'取出数据
    IMPORT gt_data FROM MEMORY ID 'ID01'.
    
    
  • 程序A代码
    TYPES:BEGIN OF ty_data,
            name  TYPE char10,
            score TYPE p LENGTH 2 DECIMALS 1,
          END OF ty_data.
    
    DATA gt_data TYPE TABLE OF ty_data.
    
    "调用程序z_abap_memorey_01并返回
    SUBMIT z_abap_memorey_01 AND RETURN.
    
    IMPORT t = gt_data FROM MEMORY ID 'ID01'.
    
    LOOP AT gt_data INTO DATA(gw_data).
      WRITE:gw_data-name,gw_data-score.
      SKIP.
    ENDLOOP.
  • 程序B代码 
    TYPES:BEGIN OF ty_data,
            name  TYPE char10,
            score TYPE p LENGTH 2 DECIMALS 1,
          END OF ty_data.
    
    DATA et_data TYPE TABLE OF ty_data.
    
    et_data[] = VALUE #(
                       ( name = 'TOM'    score = '58.5')
                       ( name = 'JEERY'  score = '98.5')
                       ( name = 'MASTER' score = '68.5')
                     ).
    
    EXPORT t = et_data TO MEMORY ID 'ID01'.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值