Tsql ABAP域和数据类型理解

Tsql ABAP域和数据类型理解,tsql,plsql,abap,sap-data-dictionary,Tsql,Plsql,Abap,Sap Data Dictionary,因此,我的公司希望我学习SAP的ABAP,我已经开始学习这一点。我的背景主要是VB.net和sqlserver与T-SQL,但也有c语言的经验 使用ABAP时,我需要澄清或确认对数据类型和域的理解。如果有人能帮忙的话 我目前的理解是我们有一个表,表中有字段,字段有数据类型和长度(如果需要)。示例:我们有一个表Customer,我可以有一个数据类型为char10的customerNumber字段。对我来说,这意味着在customer表中有一个名为CustomerNumber的字段,该字段将包含10

因此,我的公司希望我学习SAP的ABAP,我已经开始学习这一点。我的背景主要是VB.net和sqlserver与T-SQL,但也有c语言的经验

使用ABAP时,我需要澄清或确认对数据类型和域的理解。如果有人能帮忙的话

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

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

例如,我调用一个字段ZCUSNO,目前这并不意味着什么,但是如果我将客户编号数据元素的描述分配给ZCTNMR,这告诉我们字段ZCUSNO是ZCTNMR,所以ZCUSNO是客户编号字段

现在,在数据元素中,我们将有一个域,对于我们的示例ZCTNMR数据元素,我们可以将ZCTDOM指定为域,这将是我识别的数据类型,如Char 20、Char 100或integer字段等

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


谢谢

我不知道它是否100%正确,但正如你所说,这就是我使用的方式

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

数据元素定义字段的语义,如标签、翻译等 域定义字段的技术信息,如类型、转换、预定义值等 例如

域: DOM_值定义为10位2位小数 数据元素: 单位值指的是DOM值,并将标签定义为单位值 TOTAL_VAL您将其引用到DOM_值,并将标签定义为TOTAL VALUE 和往常一样,变量的表日期字段类型使用使用域的数据元素。 当您在表中创建字段并使用预定义类型而不是数据元素时,将来需要在alv_网格上查看数据时,您将遇到一些问题。 事实上,您将看到,即使在此之前,当您尝试创建维护视图时,标题也会出现一些问题,例如+符号。 当然,我们通常尝试为2个或更多的数据元素创建一个域。 在这个领域里,你们谈论的是主要的逻辑。 在Data Element中,我总是谈论字段标签设置,它将来将如何显示以及其他一些事情 最后:事实上,正如我所认为的,为数据元素创建一个域是一个很好的实践,它可能在将来对您有所帮助


我希望它能帮助你。祝你好运

您的理解非常正确,此处无法添加太多内容

你应该明白主要的事情

域存储技术数据小数点、长度、类型、预定义值等 数据元素存储语义数据标签、文本、搜索帮助绑定等。 并非每个表字段都有数据元素,它们可以拥有内置类型,但每个字段都有原始类型或封装在数据元素中的类型

若你们想在屏幕Dynpros、ALV网格或其他报告中使用你们的字段,那个么就创建将承载你们的字段的商业意义的数据元素

如果您仅将此字段用于计算或其他公用事业内部任务,请不要自找麻烦。

我有两点意见。1在您的示例中,您的表具有列ZCUSNO。其Z前缀无效/不正确。如果在自定义表中,则Z前缀无效,因此不建议使用。如果将其附加到标准表的列中,则根据SAP命名建议,前缀应为ZZ或YY。2数据元素和域不再是强制性的,但大部分时间都应该使用它们来实现良好的建模PS:I.B.N.的答案是我认为最好的,因为它清楚地回答了您的问题。也回答了以下问题: