ABAP 域和数据类型理解

ABAP Domain and Data Types Understanding

所以我的公司希望我学习 ABAP for SAP,我已经开始学习这个了。我的背景主要是 VB.net 和 sqlserver with T-SQL 但也有 c# 的经验。

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

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

然而,对于 ABAP,我们有域、数据元素,然后是字段,这是否意味着我们有一个任意命名的字段。由于该字段可以表示任何内容,因此我们分配了一个数据元素,该元素具有存储在该字段中的数据类型的描述。但是,为了存储格式和数据类型,我们需要将域分配给数据元素。

例如,我调用一个字段 ZCUSNO,目前这没有任何意义,但是如果我分配 ZCTNMR(带有客户编号的描述)数据元素,这告诉我们字段 ZCUSNOZCTNMR 所以 ZCUSNO 是客户编号字段。

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

我的理解对吗?有人能给我一个明确的指示,说明域 > 数据元素与我所知道的 sqlserver 中的数据类型之间的区别是什么。

谢谢

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

您可以重用域,如果您不打算重用,可以直接使用数据元素并将其引用到内置类型。

  • Data Element定义字段的语义,如标签、翻译等
  • Domain 用于定义字段的技术信息,如类型、转换、预定义值、e tc

例如

域:

  • DOM_VALUE 你定义它是10位和2位小数

数据元素:

  • UNIT_VAL 你将它引用到 DOM_VALUE 并将标签定义为“单位价值”[=36] =]
  • TOTAL_VAL 你将它引用到 DOM_VALUE 并将标签定义为“总价值”[=36] =]
  1. 像往常一样table日期字段(变量类型)使用使用域的数据元素。
  2. 当您在 table 中创建字段并使用 预定义类型 而不是 数据元素 时,您将来会遇到一些问题,当您需要查看 alv_grid 上的数据时。 实际上,您会发现甚至在此之前您就遇到了一些问题(当您尝试创建维护视图时,header 将具有类似“+”符号的内容)。
  3. 当然,我们通常会尝试为 2 个或更多数据元素创建 1 个域。
  4. 在域中你谈论主要逻辑。 在数据元素中,我总是谈论字段标签设置(将来如何显示以及其他一些事情)

最后:其实是个好习惯,我认为为数据元素创建一个域,可能对你以后有帮助。

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

你的理解很正确,这里可以补充的不多。

主要内容你应该清楚了吧

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

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

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

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