我们正在用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
读回值但失败了:解析器不允许使用文本字段文字。另一方面,语句是生产代码,所以我认为它做了一些有用的事情。
编辑:
答案 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
结果
DATA named_variable TYPE c LENGTH 10 VALUE 'Foobar'.
EXPORT named_variable TO MEMORY ID 'ZFOOBAR'.
结果
显然,系统只做what the documentation says:
...参数在群集下隐式保存或找到 指定数据对象的名称。
显然,再次检索该值的唯一方法是动态访问,这写起来有点麻烦:
EXPORT 'Boofar' TO MEMORY ID 'ZFOOBAR'.
我衷心祝你好运,在你的工具中实现任何转型......