点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我正在与一位同事一起进行ABAP开发,我们在处理项目常量的最佳方法方面存在一点分歧。 让我列出两种建议的方法:
说我们有一个销售订单开发程序,并且我们知道我们将有许多常数:
VBTYP:SD文档类别
TRVOG:交易组
AUART:销售文档类型
上面的每个字段都有2个常量,因此共有6个常量。
1。 为此,您可以创建销售订单界面,例如 ZIF_SALES_ORDER_CONSTANTS并将每个常量都添加到类中。 您最终得到1个界面和6个属性。
2。 您为VBTYP创建一个接口(ZIF_SD_DOC_CAT_CONSTANTS),将常量添加为属性,为TRVOG创建接口(ZIF_TRANS_GROUP_CONSTANTS),并将常量添加为属性,为销售单据类型创建接口(ZIF_SD_DOC_TYPE_CONSTANTS),然后将两个常量添加为属性。 您以及拥有3个接口的每个接口都有2个属性。
我希望获得一些反馈,以了解是否存在标准或其他开发人员对此有何看法。
问候,马丁。
有时,我使用oo接口作为常量。
此外,您可以在此代码中看到一些标准的SAP代码。
我认为这是个好方法,但这很大程度上取决于您的目标和情况。 您必须根据内部常量的功能和灵活性来决定如何构建它。
我相信 SAP博客,由 Klaus Haeuptle 在"清洁ABAP"上:链接 a>?
也许-如果可以扣除一般规则-可以在"清洁ABAP"秘籍中阐明?
嗨,马丁,
对于" 您为VBTYP创建接口(ZIF_SD_DOC_CAT_CONSTANTS)",您只需使用SAP- 提供的接口IF_SD_DOC_CATEGORY我最近询问了此处(如果您的系统中可用)。
希望这会有所帮助!
干杯
Bärbel
如果有幸使用最新版本的ABAP,也可以使用枚举。.
https://blogs.sap.com/2016/10/10/abap-news-release-7.51-enumerations/
还要考虑程序使用的内存(在PXA程序缓冲区中)。
SE38,菜单"程序->检查->生成限制"。 您可以为接口池使用它,为名称加上后缀======= IP(IP必须在第31位),并为类池添加后缀,======= CP。
在我的系统中,我看到一个空接口池的最小大小为4128字节,两个常量为4384字节,带有短名称和短值的100个常量为10K(但根据长度的不同而变化很大) 名称,类型,值)。
尽管数百种此类对象类型不会占用那么多内存,但我会避免每种数据类型使用一个类/接口池,而是将多个数据类型组合在一个池中(一个 例如每个模块)。 如果只有一种对象类型具有100个常量,而不是10种对象类型具有10个常量,那么它将占用大约10K而不是45K。
但是对于当今具有多个内存的系统来说,这可能是无稽之谈
我在"接口中与组相关的常量"阵营中呆了很长时间,但现在偏爱单个类。
单个类可以更好地封装类型,使其更易于搜索,还可以添加诸如is_valid/is_internal/get_text等支持方法,如果我们使用混合类,这将违反单一职责原则。 p>
已经提到了Clean ABAP指南,但更具体地说,请通读枚举,以获得有关各种替代方法的一些好信息。
一周热门 更多>