ABAP中的工作区,全局结构,内部表有什么区别?

时间:2014-08-12 18:51:33

标签: sap abap

我是ABAP的新手,如果有人可以告诉我一个网站,我可以参考该网站深入学习ABAP或更好地理解它,我对此global structures感到困惑,{ {1}}和internal tables,有人请清楚地解释每个人的需要。 提前谢谢。

1 个答案:

答案 0 :(得分:4)

内部表有点像其他语言中的列表,例如List< T>在c#中。它们只存在于内存中,只存在于它们所定义的程序中。我从未遇到过“全局结构”这个术语,但结构与其他语言几乎相同。在abap中,它们可用于定义表的行结构。将其转换为c#,你最终会得到一个带有一些属性(你的行结构)和一个List< X>,您的内部表。

工作区域基本上是定义结构的单行。例如,工作区用于在循环内部表时保存单行的内容。例如:

data:
  it_vbak type standard table of vbak,
  wa_vbak type vbak.

select * from vbak into corresponding fields of table it_vbak.

loop at it_vbak into wa_vbak.

....

endloop.

这定义了内部表it_vbak和工作区wa_vbak。两者都使用DDIC表VBAK的结构定义,该表是SAP ERP表之一并包含销售订单表头数据。该示例在内部表中选择一些数据(在这种情况下:全部,不是一个好主意),然后遍历内部表中的条目。在每个循环开始时,当前行的内容将传输到工作区。例如,您可以操作循环中的内容,然后使用abap命令修改将修改移回表中:

modify it_vbak from wa_vbak.

您可以在程序中(使用TYPES关键字)和SAP ERP数据字典(DDIC)中定义结构。 DDIC全局可用于所有程序,并包含表,结构,视图,表定义,数据元素和域的定义(以及一些在这里不太相关的东西)。

作为abap的一般参考,请查看SAP Help portal