有人可以清楚地解释什么是字典类型和ABAP类型

2020-08-19 20:53发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)对不起,我是SAP系统的新手,即...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


对不起,我是SAP系统的新手,即使我在互联网上学习和搜索了将近两天,我也确实无法理解有关SAP系统的一些基本逻辑。

我的问题是:为什么我只能在ABAP程序中使用服务器词典类型? 我的SAP系统版本是

据我了解,CURR,CUKY是ABAP词典中的预定义数据类型,我们可以在ABAP程序中使用它,因为SAP系统将这些类型定义为默认数据元素(对吗?)。 ABAP程序将预定义的数据类型转换为ABAP类型,如下所示:

就我而言,我无法在ABAP程序中使用CURR/CUKY的数据类型/数据元素,但是UNIT,DATS可以。 我想念它背后的某些知识还是误解某些东西? 有人可以清楚地解释吗? 谢谢。

(6.3 kB)
6条回答
ZJXianG
2020-08-19 21:24 .采纳回答

您的问题:

>>为什么我只能在ABAP程序中使用服务器词典类型?
>>我不能在ABAP中使用CURR/CUKY的数据类型/数据元素

  • 这是因为在您的系统中,CURR和CUKY是通用的预定义数据类型,而CURR也被定义为域,但两者均未定义 另一方面,
  • UNIT和DATS在系统中被定义为数据元素,因此您可以在编码中选择它们(它们也是预定义的数据 类型,并且在DATS的情况下也是一个域,但是从简单地能够将它们用作编码中的变量的类型的角度来看,这没关系。

通常的理解:

通常,对于ABAP编码中的简单变量,可以使用数据元素也可以使用 ABAP类型。 这是这两种方式的连接方式:数据元素具有分配的域,该域具有分配的数据类型,该数据类型具有基础ABAP类型并映射到内部ABAP类型。

  • 自定义数据元素和 可以创建域,而预定义了数据类型和ABAP类型以及内部ABAP类型。
  • 数据元素,域和数据类型是DDIC的一部分,而运行时环境使用ABAP类型和内部ABAP类型。
  • 可以定义相同的名称 对于数据元素,域,数据类型以及ABAP类型,除了数据元素和ABAP类型外,它们必须是唯一的。
    在某些情况下,对于某些" 类型",它们不必"必须"彼此链接
    (例如,字符串/STRING是域,数据类型和ABAP类型,内部ABAP类型为" g",而DATS是数据元素,域和 ABAP类型为" d"且内部ABAP类型为" D"的数据类型)

何时按ABAP类型定义变量以及何时按数据元素定义变量:

在ABAP程序中定义变量时,出于简化原因,您可以选择ABAP类型,或者,如果您想拥有DDIC功能的"全部功能",则可以使用具有DDIC功能的数据元素,特别是 用于GUI输入/输出,来自所有三个元素的组合:数据元素(例如 说明,搜索帮助),域(例如值帮助,转换退出),数据类型(例如初始值,DATS和TIMS的日历/日期/时间计数功能)。

旁注A:这是 来自ABAP文档中有关预定义词典类型数据类型和ABAP类型以及它们如何链接的信息:

< p>注释B:以下屏幕快照显示了在Oracle数据库中数据元素,域,数据类型和内部ABAP类型以及映射的数据库类型之间的大多数链接:

< img src="/storage/temp/1803697-data-element-domain-data-type-for-db-table.png">

一周热门 更多>