BDT和XO的应用心得

【博主SAP/ABAP交流群 53144545
之前做了一个 BP 模块的项目, BP 即业务伙伴( Business Partner ),t-code BP 该模块的主要功能是处理和保存业务伙伴信息,相对于SD等模块,没有很多业务流程,但在这个模块里运用了两种技术, Business Data ToolsetBDT)和 XO FrameworkXO),这两种技术包含了比较先进的软件设计思想,这篇文章的目的是对 BDT XO的运用作一个归纳总结。

BDT XO简介,这里不作详细解释,只是按照个人理解把要点说一下。
BDT可以理解为一种屏幕增强技术(只针对 Dynpro ),在传统模块里,屏幕增强只能在 SAP 预留的地方,而在 BDT 架构的模块里,每个屏幕都被分割成一个一个的子屏幕,每个子屏幕都可以通过后台配置替换成自定义的屏幕,当然相关的开发还是有不少,比如自定义屏幕和原来的标准屏幕的数据交互,但总体来说还是可以达到屏幕任意增强的效果。BDT有一系列相关的开发 t-code 并且不同模块下 BDTt-code 都不同,比如 BUS3BP 模块 View 的后台配置。
XO是一种包含面向对象思想的开发框架(语法也都是 OO 的),在XO 架构里,应用层被分为 BO Business Object ,SO Segment Object 和MO Memory Object BO 业务对象,在 BP 模块下,一个BO就是一个 BP;SO 是块对象,比如银行信息,地址信息和身份信息等都是块对象,在业务上都是BO 的一部分;MO 是缓存对象(数据库表),每个 MO 都是对应着一张数据库表,每个MO 都属于一个 SO 比如银行账号表和信用卡表都是银行信息的一部分。关系结构上,一个 BO 包含多个 SO ,一个 SO 包含多个 MO XO的t-code XO80

BDT是如何结合 XO使用的。
BDT 是一个完整的开发框架,它包含了屏幕显示和数据处理这两块功能,而XO 只是数据处理。对于标准功能, BDT已经有了固定的数据处理流程,比如业务逻辑校验和数据增改删等,这部分基本无法用 XO来代替改写了,而对于新开发的功能,比如自定义屏幕的数据存储逻辑和自定义逻辑校验,则可以使用 XO来代替原来 BDT 的数据处理方法。

使用XO 优点。
之前说过,BDT是一个完整的开发框架,如果结合 XO 使用,无疑会增加开发难度,但是使用 XO有其优势所在,其中的一个比较小的好处是 XO里有一些方法是针对 BDT 开发的,比如 XOPAI PBO方法,在自定义屏幕里用这些方法代替 BDT里的某些事件,开发起来会更方便。然后更大的一个好处是,XO起到了应用层统一的作用。应该有不少人遇到过此类问题,比如对屏幕上某个功能做逻辑增强,会不会对 BAPI 也生效?这个就涉及到软件设计了,拿 BP模块下的 BDT来说, BDT屏幕和 BAPI的逻辑处理是分开的,也就是说是两套处理逻辑,如果在BDT某处作了个功能增强,就要相应的在 BAPI 这里也作相同的增强,才能保证屏幕输入和 BAPI 处理结果相同。而引入XO 后,可以把相关的一些校验逻辑都写在 XO 里,然后 BDT BAPI 都调用 XO ,这样相同的逻辑只需要写一遍。实际上数据来源是多种多样的,比如前台( GUI)屏幕输入,运行SE37输入参数,上传文件等,而且现在 SAP 向Web 和多终端发展(比如 UI5 ),所以应用层统一的思想是非常重要的。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值