ABAP域和数据类型理解

时间:2018-08-10 11:33:09

标签: tsql plsql sap abap

因此,我的公司希望我学习SAP的ABAP,并且我已经开始学习这方面的知识。我的背景主要是VB.net和带有T-SQL的sqlserver,但也有c#的经验。

尽管使用ABAP,但我需要对数据类型和域的理解进行一些澄清或确认。如果有人可以帮助。

我目前的理解是我们有一个表,该表中有字段,并且如果需要,这些字段具有数据类型和长度。示例:我们有一个表Customer,我可以有一个customerNumber字段,其数据类型为char(10)。对我来说,这意味着在表客户中,我们有一个名为CustomerNumber的字段,它将包含10个字符。

但是,对于ABAP,我们拥有域,数据元素和字段,这是否意味着我们有一个名为所需名称的字段。由于该字段可能意味着任何事情,因此我们分配一个数据元素,该元素具有对该字段中存储的数据种类的描述。但是,要存储格式和数据类型,我们需要将Domain分配给Data元素。

例如,我调用了一个字段ZCUSNO,这目前没有任何意义,但是如果我分配了ZCTNMR(带有客户编号的说明)数据元素,则表明字段ZCUSNOZCTNMR,因此ZCUSNO是客户编号字段。

现在在数据元素中我们将有一个域,对于我们的示例ZCTNMR数据元素(客户编号),我们可以将ZCTDOM分配为域,这就是我认为的数据类型因此Char 20,Char 100或整数字段等

我的理解是否正确?有人可以清楚地指出域>数据元素与sqlserver中的数据类型之间的区别是什么。

谢谢

3 个答案:

答案 0 :(得分:5)

我不知道它是否100%正确,但这就是我使用的方式,就像您说的那样。

您可以重用Domain,如果您不打算重用,则可以直接使用Data Element并将其引用为内置类型。

  • 数据元素用于定义字段的语义,例如标签,翻译等
  • 用于定义字段的技术信息,例如“类型”,“转化”,预定义值等等。

E.G。

域:

  • DOM_VALUE ,您将其定义为10位和2位小数

数据元素:

  • UNIT_VAL ,您将其引用到 DOM_VALUE 并将标签定义为“单位值”
  • TOTAL_VAL ,您将其引用到 DOM_VALUE 并将标签定义为“总值”

答案 1 :(得分:2)

您的理解是非常正确的,在这里可以添加的内容不多。

您应该清楚掌握主要内容。

  1. 域存储技术数据(小数点,长度,类型,预定义值等)
  2. 数据元素存储语义数据(标签,文本,搜索帮助绑定等)

并非每个表字段都具有数据元素(它们可以具有内置类型),但是每个字段都具有类型(原始数据或包装在数据元素中)。

enter image description here

如果要在屏幕(Dynpros),ALV网格或其他报表中使用字段,请创建具有该字段业务意义的数据元素。

如果您仅将此字段用于计算或其他实用程序内部任务,请不要打扰自己。

答案 2 :(得分:0)

  1. 通常的表格日期字段(变量类型)使用使用域的数据元素。
  2. 当您在表中创建字段并使用预定义类型而不是 data元素时,将来会遇到一些问题,需要在alv_grid上查看数据时。 实际上,您甚至会在此之前发现一些问题(当您尝试进行维护视图时,标题将带有类似“ +”的符号)。
  3. 当然,我们通常会尝试为2个或更多数据元素创建1个域。
  4. 在领域中,您将讨论主要逻辑。 在数据元素中,我总是谈论字段标签设置(将来如何显示标签以及其他内容)

最终:实际上,作为一种好习惯,因为我认为为数据元素创建一个域,将来可能会对您有所帮助。

我希望它能对您有所帮助。祝你好运!