ABAP SAPメモリで値の受け渡し

  データ定義&編集

概要

SAPメモリとは、SAP GUI内のすべてのセッションでアクセスできるメモリ領域である。
ABAPメモリでは同一セッションでのみアクセスできるというのが大きな違いである。
また、ABAPメモリのように内部テーブルを直接保持する事もできないので、特定の値だけ保持したい場合に使用可能だ。
使用方法は、SET PARAMETER命令で値を保存し、GET PARAMETER命令で値を呼び出すだけである。
二つのレポートを作成し、値のやりとりができるか確認してみよう。

サンプルコード

REPORT ytest_exp.
DATA TEXT1(30) TYPE C VALUE 'SET AND GET PARAMETER'.
SET PARAMETER ID 'MEM' FIELD TEXT1.

REPORT ytest_imp.
DATA TEXT2(30) TYPE C .
GET PARAMETER ID 'MEM' FIELD TEXT2.
WRITE : / TEXT2.
WRITE : 'GET PARAMETER'.

説明

注意しなければいけないのが、この命令ではセッションが切れた時(例えばGUIを終了させた時)にメモリが解放されてしまう事だ。
セッションが切れた時も値を保持したい場合はトランザクションコード:SM30等でテーブル:TPARAに対してパラメータIDを作成しよう。
そしてSET PARAMETER IDの代わりに汎用モジュール:G_SET_USER_PARAMETERを使用して値をメモリに格納する事でユーザーIDに対してその値を保持する事が可能だ。
但し、この方法を使用する場合は保持できる値が最大40桁という制限ができてしまうので気をつけよう。