SAP Commerce(原Hybris)的订单处理框架和SAP CRM One Order框架
最近工作重点转移到了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).
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关文章
- SAP UI5 应用开发教程之一百 - 如何修改 SAP UI5 框架的源代码实现,以及使用本地部署的 SAP UI5 SDK 试读版
- SAP UI5 里的 Busy Dialog 控件使用概述
- 深入学习SAP UI5框架代码系列之七:控件数据绑定的三种模式 - One Way, Two Way和OneTime实现原理比较
- SAP UI5框架渲染的顺序
- SAP UI5框架 component.js的加载原理
- SAP S/4HANA是如何通过SADL框架加CDS view读取销售订单数据的
- SAP Spartacus里如何查找所有可以focus的HTML元素
- SAP Commerce Cloud OAuth 实现介绍
- SAP Cloud for Customer的前端框架是如何基于SAP UI5框架开发的
- SAP UI5 sap.ui.table.VisibleRowCountMode.Auto - different result in debugger
- SAP OData 框架处理 Metadata 元数据请求的实现细节,前后端组件部署在同一台物理服务器试读版