ABAP 导出到内存,使用文本字段文字的过时短格式
ABAP export to memory, obsolete short form using text field literal
我们正在 Java 中编写一个工具来解析和转换 ABAP 代码。因此,我们无意编写新的 ABAP 代码,但我们的工具必须处理所有 ABAP,甚至是过时的语句。此外,我不是ABAP专家。
在客户代码中,我看到以下语句变体
export ' ' to memory ID 'AVG_PRC'.
此程序中唯一导入(包括所有包含)具有此内存 id 的是
IMPORT AVG_PRC FROM MEMORY ID 'AVG_PRC' .
我知道 EXPORT ... TO MEMORY ...
语句在 dobj
位置有一个变量。解析器在这里也接受字符文字。但是这个声明有什么作用呢?
我试图用 IMPORT
读回值但失败了:解析器不允许此处的文本字段文字。另一方面,该语句在生产代码中,所以我认为它做了一些有用的事情。
编辑:
- 更改了示例,添加了匹配的 IMPORT 语句
免责声明:据我所知,这是通过逆向工程进行的猜测,不受任何官方文档的支持。
ABAP 调试器包含一个检查内存区域的工具。
DATA named_variable TYPE c LENGTH 10 VALUE 'Foobar'.
EXPORT named_variable TO MEMORY ID 'ZFOOBAR'.
结果
EXPORT 'Boofar' TO MEMORY ID 'ZFOOBAR'.
结果
显然,系统只是 what the documentation says:
...the parameters are saved or found implicitly in the cluster under
the name of the specified data object.
显然,再次获取值的唯一方法是动态访问,写起来有点麻烦:
TYPES: BEGIN OF t_import_value,
name TYPE c LENGTH 30,
target TYPE c LENGTH 30,
END OF t_import_value,
t_import_table TYPE STANDARD TABLE OF t_import_value WITH DEFAULT KEY.
DATA(import_table) = VALUE t_import_table( ( name = '''Boofar'''
target = 'NAMED_VARIABLE' ) ).
IMPORT (import_table) FROM MEMORY ID 'ZFOOBAR'. " this changes the value of NAMED_VARIABLE!
我衷心祝愿您在您的工具中对此进行任何转换...
我们正在 Java 中编写一个工具来解析和转换 ABAP 代码。因此,我们无意编写新的 ABAP 代码,但我们的工具必须处理所有 ABAP,甚至是过时的语句。此外,我不是ABAP专家。
在客户代码中,我看到以下语句变体
export ' ' to memory ID 'AVG_PRC'.
此程序中唯一导入(包括所有包含)具有此内存 id 的是
IMPORT AVG_PRC FROM MEMORY ID 'AVG_PRC' .
我知道 EXPORT ... TO MEMORY ...
语句在 dobj
位置有一个变量。解析器在这里也接受字符文字。但是这个声明有什么作用呢?
我试图用 IMPORT
读回值但失败了:解析器不允许此处的文本字段文字。另一方面,该语句在生产代码中,所以我认为它做了一些有用的事情。
编辑:
- 更改了示例,添加了匹配的 IMPORT 语句
免责声明:据我所知,这是通过逆向工程进行的猜测,不受任何官方文档的支持。
ABAP 调试器包含一个检查内存区域的工具。
DATA named_variable TYPE c LENGTH 10 VALUE 'Foobar'.
EXPORT named_variable TO MEMORY ID 'ZFOOBAR'.
结果
EXPORT 'Boofar' TO MEMORY ID 'ZFOOBAR'.
结果
显然,系统只是 what the documentation says:
...the parameters are saved or found implicitly in the cluster under the name of the specified data object.
显然,再次获取值的唯一方法是动态访问,写起来有点麻烦:
TYPES: BEGIN OF t_import_value,
name TYPE c LENGTH 30,
target TYPE c LENGTH 30,
END OF t_import_value,
t_import_table TYPE STANDARD TABLE OF t_import_value WITH DEFAULT KEY.
DATA(import_table) = VALUE t_import_table( ( name = '''Boofar'''
target = 'NAMED_VARIABLE' ) ).
IMPORT (import_table) FROM MEMORY ID 'ZFOOBAR'. " this changes the value of NAMED_VARIABLE!
我衷心祝愿您在您的工具中对此进行任何转换...