一个小技巧,让 ABAP OPEN SQL具有自描述效果

举报
汪子熙 发表于 2022/04/13 22:26:35 2022/04/13
【摘要】 ABAP开发人员想必都和图一这种让人摸不着头脑的数据库表字段打过交道。要了解其含义得打开SE11查看字段描述才行。如果在查看了描述信息后,编写代码时使用AS给这些字段名设置可读性更好的别名,下次自己或他人维护,阅读起来就方便多了。这个小技巧或者说倡议,出自SAP社区博客:不用花多大功夫,就能极大提高代码可读性,减轻了将来的维护人员阅读代码的负担。书写可读性良好的代码,也是开发人员职业素养的体...

ABAP开发人员想必都和图一这种让人摸不着头脑的数据库表字段打过交道。要了解其含义得打开SE11查看字段描述才行。

如果在查看了描述信息后,编写代码时使用AS给这些字段名设置可读性更好的别名,下次自己或他人维护,阅读起来就方便多了。

这个小技巧或者说倡议,出自SAP社区博客:

不用花多大功夫,就能极大提高代码可读性,减轻了将来的维护人员阅读代码的负担。书写可读性良好的代码,也是开发人员职业素养的体现之一。

当然也有一些朋友持反对意见,比如:

个人认为现阶段这样反而不好用。SQL这里是易读了,但是后续处理里面绝大多数时候需要type全局structure创建本地structure变量,赋值的时候,call FM的时候因为字段名不一样都,反而变得不容易处理了。

最近工作重点转移到了SAP Commerce上来,正好有机会把该产品里由Java实现的订单处理框架和我之前长期工作过的,ABAP实现的SAP CRM One Order框架做个比较:基于Spring的Bean替换机制 vs ABAP函数+配置表,两种方式都实现了强大的可扩展性。

SAP Commerce的订单处理框架把订单处理业务按照步骤拆分成一个个细粒度的处理单元,封装到一个个Spring Bean里。模型和其行为之间通过策略模式(Strategy Design Pattern)进行松耦合式的关联。Commerce二次开发人员可以灵活地将定制业务逻辑实现在自开发的Bean里,并将其通过Spring框架注入到Commerce的订单处理框架中,实现订单处理业务的定制效果。

而SAP CRM One Order里一系列维护在配置表里的函数,学习了SAP Commerce之后,我倾向于把它们类比为比SAP Commerce Order Bean更细粒度的处理单元。SAP Commerce里能够注入的Order处理逻辑的粒度是一个端到端的操作,比如SubmitOrderStrategy,CloneAbstractOrderStrategy,CreateOrderFromCartStrategy, SaveAbstractOrderStrategy, 一个Bean就能实现一个端到端的Order操作;而SAP CRM One Order框架配置表里可以灵活配置的ABAP函数,往往需要多个函数组合在一起协同工作才能完成一个上述操作。虽然可配置和替换的粒度不同,但都殊途同归:在不修改SAP标准代码的前提下,给二次开发人员提供一种灵活的增强机制(Extensibility).

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。