ABAP使用文本字段文字导出到内存,过时的短格式

时间:2017-11-24 10:41:45

标签: abap

我们正在用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语句

1 个答案:

答案 0 :(得分:0)

免责声明:据我所知,这是通过逆向工程进行的猜测,并且不受任何官方文档的支持。

ABAP调试器包含一个检查内存区域的工具。

Function COMBINE(rng As Range)
Dim cell As Range
Dim text As String
For Each cell In rng
Next cell
If IsEmpty(cell.Value) Then
Exit For
Else: text = text & cell.Value & ","
COMBINE = text
End If
End Function

结果

first export result

DATA named_variable TYPE c LENGTH 10 VALUE 'Foobar'.
EXPORT named_variable TO MEMORY ID 'ZFOOBAR'.

结果

second export result

显然,系统只做what the documentation says

  

...参数在群集下隐式保存或找到   指定数据对象的名称。

显然,再次检索该值的唯一方法是动态访问,这写起来有点麻烦:

EXPORT 'Boofar' TO MEMORY ID 'ZFOOBAR'.

我衷心祝你好运,在你的工具中实现任何转型......