点击此处---> 群内免费提供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)
您的问题:
>>为什么我只能在ABAP程序中使用服务器词典类型?
>>我不能在ABAP中使用CURR/CUKY的数据类型/数据元素
通常的理解:
通常,对于ABAP编码中的简单变量,可以使用数据元素也可以使用 ABAP类型。 这是这两种方式的连接方式:数据元素具有分配的域,该域具有分配的数据类型,该数据类型具有基础ABAP类型并映射到内部ABAP类型。
在某些情况下,对于某些" 类型",它们不必"必须"彼此链接
(例如,字符串/STRING是域,数据类型和ABAP类型,内部ABAP类型为" g",而DATS是数据元素,域和 ABAP类型为" d"且内部ABAP类型为" D"的数据类型)
何时按ABAP类型定义变量以及何时按数据元素定义变量:
在ABAP程序中定义变量时,出于简化原因,您可以选择ABAP类型,或者,如果您想拥有DDIC功能的"全部功能",则可以使用具有DDIC功能的数据元素,特别是 用于GUI输入/输出,来自所有三个元素的组合:数据元素(例如 说明,搜索帮助),域(例如值帮助,转换退出),数据类型(例如初始值,DATS和TIMS的日历/日期/时间计数功能)。
旁注A:这是 来自ABAP文档中有关预定义词典类型数据类型和ABAP类型以及它们如何链接的信息:
< img src="/storage/temp/1803697-data-element-domain-data-type-for-db-table.png">
UNIT,DATS,LANG,LCHR,CURR是 DDIC预定义的数据类型。 它们只能在DDIC对象(域,数据元素,表等-> cf事务代码SE11)中使用,直接在ABAP中使用它们无效(相反,ABAP应该使用DDIC对象)。 p>
在ABAP程序中,我们不使用预定义类型。
大多数时候,我们使用数据元素。
数据元素是描述+域(字典对象)
域表示数据的真实类型
例如,对于某个日期,您可以使用SYDATUM。 (数据元素)
可以在事务SE11中创建字典对象,例如数据元素和域。
您也可以在程序中双击数据元素以跳转 直接将其发布到此对象的屏幕上
请以文本形式而不是图像形式发布代码,以便人们可以通过测试您的代码来轻松回答。
我想我得到您要在此处进行比较的问题,问题是,ABAP和字典/存储库中有太多"类型"的事物,并且它们 命名相似或什至相同,通常很难像我或您一直尝试做的那样简单地将其分解。 尤其是SAP文档有时对不同的"类型"使用相同的名称,有时甚至对相同的"类型"使用两个不同的名称。
我会在1.语句中用一个" ="符号来切换 " <-"符号,然后我会同意它(因为它们绝对不相等)。
是的,ABAP和ABAP词典/存储库是两个不同的东西,您可以轻松地更改ABAP词典/存储库,因为 它全部保存在数据库记录中,但是您不能更改ABAP,因为这几乎是"其他"(编码,堆栈,运行时,调试等),我不会将它们称为两种不同的体系结构,因为这意味着 对我来说,它们是可互换的,但是,您将它们"需要"在一起。
"是"。 (尽管有一些标准数据元素通过域链接到字典类型,并且它们都具有相同的名称,从技术上讲,它们可以被认为是"巧合",但开发人员显然是故意这样做的,除非您不是那样做的。
通常最好的做法是为自己的程序定义自己的DDIC数据元素和域。 这样,在进行必要的更改时,您将拥有最大的自由度。 只是您非常确定,重用标准DDIC完全可以满足您的目的/要求,而不是应重用它们。
在其他情况下(多数出于简化原因),您将选择使用ABAP类型
一周热门 更多>