类型还是数据? 哪一个更好?

2020-09-21 18:42发布

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

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


 *********使用TYPES *************
 类型:lts_university的开始,
        包含类型zcl_s20_universit_mpc => ts_college。
        TYPES:部门TYPE ztts20_dept,
        *类型:部门类型zcl_s20_universit_mpc => tt_department,
        *类型:zTS20_DEPT的部门类型表,
 lts_university的结尾。

 lts_university的数据lt_university类型表。
 数据ls_university类型lts_university。

 *********使用数据**************
 数据:lss_university的开始,
         包含类型zcl_s20_universit_mpc => ts_college。
         数据:部门TYPE zcl_s20_universit_mpc => tt_department,
         *数据:zTS20_DEPT的部门类型表,
 lss_university的结尾。

 lss_university的数据ltt_university类似表。
 *** DATA lss_university类似于ltss_university。
 


我的观察结果:

1)对于TYPES,lts_university将不会分配内存。 数据,我们已经有一个工作区。
2)对于TYPES,我不能使用
a)部门类型zcl_s20_universit_mpc => tt_department
b)zTS20_DEPT的部门类型表(zTS20是 数据库表)
对于DATA,我可以同时使用a)和b)

********************* *************************************************

考虑 zcl_s20_universit_mpc => tt_department和 ztts20_dept,它们都是具有相同结构字段的表类型,应该使用TYPES还是DATA中的哪一个? 哪一个更好,为什么?


Gopa

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

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


 *********使用TYPES *************
 类型:lts_university的开始,
        包含类型zcl_s20_universit_mpc => ts_college。
        TYPES:部门TYPE ztts20_dept,
        *类型:部门类型zcl_s20_universit_mpc => tt_department,
        *类型:zTS20_DEPT的部门类型表,
 lts_university的结尾。

 lts_university的数据lt_university类型表。
 数据ls_university类型lts_university。

 *********使用数据**************
 数据:lss_university的开始,
         包含类型zcl_s20_universit_mpc => ts_college。
         数据:部门TYPE zcl_s20_universit_mpc => tt_department,
         *数据:zTS20_DEPT的部门类型表,
 lss_university的结尾。

 lss_university的数据ltt_university类似表。
 *** DATA lss_university类似于ltss_university。
 


我的观察结果:

1)对于TYPES,lts_university将不会分配内存。 数据,我们已经有一个工作区。
2)对于TYPES,我不能使用
a)部门类型zcl_s20_universit_mpc => tt_department
b)zTS20_DEPT的部门类型表(zTS20是 数据库表)
对于DATA,我可以同时使用a)和b)

********************* *************************************************

考虑 zcl_s20_universit_mpc => tt_department和 ztts20_dept,它们都是具有相同结构字段的表类型,应该使用TYPES还是DATA中的哪一个? 哪一个更好,为什么?


Gopa

付费偷看设置
发送
8条回答
我是小鹏鹏啊
1楼-- · 2020-09-21 19:38

您可以在TYPES定义中使用表类型。

检查ABAP文档的此部分的表通用性:

https: //help.sap.com/http.svc/rc/abapdocu_751_index_htm/7.51/zh-CN/index.htm?file=abaptypes_keydef.htm

shere_lin
2楼-- · 2020-09-21 19:25

看到答案很有趣 之所以选择"从不"或"总是",是因为有充分的理由(甚至是ABAP文档指南中给出的规则),因为这并不能防止存在导致该规则失败的未列出案例(如我们用法语所说: "规则总有例外"。

要在"绑定数据类型"或"独立数据类型"之间进行选择,您应该应用以下2条规则:YAGNI(您将不需要它)和DRY(不要重复自己)。 我不知道在两种方法中总是选择一种方法的原则的名称(一种"尽量减少所需的知识"),我们在咨询公司中经常使用这种方法,因为据说即使是 开发人员应该能够理解和修改代码(也许这是KISS原理的一个分支)。

因此,如果您出于某种原因需要将数据存储在一次使用的私有结构中,例如一次清除所有字段,或者出于某些原因而定义了2个字符的私有基本变量,那么我不明白您为什么 不能使用绑定的数据类型(YAGNI/KISS原则)。 也许会有更好的例子……

如果必须使用公共属性或使用了多次的私有数据类型,那么可以定义一个独立的数据类型。

一周热门 更多>