【博主SAP/ABAP交流群53144545】
之前做了一个BP模块的项目,BP即业务伙伴(Business Partner),t-code是BP。该模块的主要功能是处理和保存业务伙伴信息,相对于SD等模块,没有很多业务流程,但在这个模块里运用了两种技术,Business Data Toolset(BDT)和XO Framework(XO),这两种技术包含了比较先进的软件设计思想,这篇文章的目的是对BDT和XO的运用作一个归纳总结。
BDT和XO简介,这里不作详细解释,只是按照个人理解把要点说一下。
BDT可以理解为一种屏幕增强技术(只针对Dynpro),在传统模块里,屏幕增强只能在SAP预留的地方,而在BDT架构的模块里,每个屏幕都被分割成一个一个的子屏幕,每个子屏幕都可以通过后台配置替换成自定义的屏幕,当然相关的开发还是有不少,比如自定义屏幕和原来的标准屏幕的数据交互,但总体来说还是可以达到屏幕任意增强的效果。BDT有一系列相关的开发t-code,并且不同模块下BDT的t-code都不同,比如BUS3是BP模块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开发的,比如XO的PAI和PBO方法,在自定义屏幕里用这些方法代替BDT里的某些事件,开发起来会更方便。然后更大的一个好处是,XO起到了应用层统一的作用。应该有不少人遇到过此类问题,比如对屏幕上某个功能做逻辑增强,会不会对BAPI也生效?这个就涉及到软件设计了,拿BP模块下的BDT来说,BDT屏幕和BAPI的逻辑处理是分开的,也就是说是两套处理逻辑,如果在BDT某处作了个功能增强,就要相应的在BAPI这里也作相同的增强,才能保证屏幕输入和BAPI处理结果相同。而引入XO后,可以把相关的一些校验逻辑都写在XO里,然后BDT和BAPI都调用XO,这样相同的逻辑只需要写一遍。实际上数据来源是多种多样的,比如前台(GUI)屏幕输入,运行SE37输入参数,上传文件等,而且现在SAP也向Web和多终端发展(比如UI5),所以应用层统一的思想是非常重要的。

BDT和XO的应用心得相关推荐

  1. Java EE学习心得

    –Java EE学习心得   1.    称为编程专家的秘诀是: 思考-----编程--------思考------编程--.. 编程不能一步到位,不能一上来就编,必须先思考如何写,怎样写?然后再编程 ...

  2. 测试心得:微图书销售小程序

    测试心得:微图书销售小程序 前言 这个学期差不多也将近结束,经过大半个学期,从项目需求的确认和项目文档的编写,到一步步的设计与实现,现在终于到了测试阶段,但是我们在测试阶段也暴露出了很多bug,但是每 ...

  3. java.lang.OutOfMemoryError:GC overhead limit exceeded填坑心得

    该文章出自:http://www.cnblogs.com/hucn/p/3572384.html 分析工具:http://www.blogjava.net/jjshcc/archive/2014/03 ...

  4. 计算机财务应用实验心得,计算机会计实习心得-20210628124643.doc-原创力文档

    计算机会计实习心得 计算机会计实习心得1 毕业实践环节是大学生在完成全部课程后.走向社会之前最真实的一个模拟实验,对于我们财会专业的学生,平时注意注重理论学习,缺乏实践锻炼,因此实习显得尤为重要.在本 ...

  5. html5考试总结300字,期中考心得300字5

    为了检验学生半个学期所学的知识而进行的一次考试,有利于学生比较正式地检验自己平时的学习水平,根据这个成绩,学生可以及时的调整学习心态和方法,更有效率地进行下一阶段的学习,期中考试主要考察学生前半学期的 ...

  6. Assembly学习心得

    http://blog.csdn.net/etmonitor/ Assembly学习心得 说明: 最近开始准备把学到的.NET知识重新整理一遍,眼过千遍不如手过一遍,所以我准备记下我的学习心得,已备参 ...

  7. 什么叫安装文件索引服务器,搜出精彩 玩转Windows 2008系统心得

    [IT168 专稿]不少朋友已经在不经意间与Windows Server 2008系统进行了亲密接触,在一段时间的接触之后,不知大家对该系统的文件搜索功能会有什么样的体会?其实,Windows Ser ...

  8. mysql主从数据库含义_(转)Mysql数据库主从心得整理

    管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验所写,整理了一下,分享给各位同行,希望对 ...

  9. 工作中InnoDB引擎数据库主从复制同步心得

    近期将公司的MySQL架构升级了,由原先的一主多从换成了DRBD+Heartbeat双主多从,正好手上有一个电子商务网站新项目也要上线了,用的是DRBD+Heartbeat双主一从,由于此过程还是有别 ...

最新文章

  1. C++ 结构体struct 的使用
  2. 经常使用的android弹出对话框
  3. linux yun 安装 redis,Linux系统安装NoSQL(MongoDB和Redis)步骤及问题解决办法(总结篇)...
  4. vs2005 智能感知不正常的解决办法
  5. PID控制器改进笔记之二:改进PID控制器之手自动切换
  6. 14-磁盘管理-df,du命令,磁盘分区
  7. linux c 串口可读可写,串口编程可写入不能读取 怎么解决
  8. php 5.5.1,PHP5.3.1 不再支持ISAPI
  9. jar k8s 自己的 部署_怎样部署K8S服务器
  10. redis插槽(slot)分配详解(集群动态新增或删除结点)
  11. 生成交叉表的SQL基本语句
  12. 原生JS中动态添加元素
  13. <blockquote>标签 自定义样式
  14. Boot Option中没有USB启动选项的解决办法
  15. dlib实现人脸识别方法
  16. 做外贸必备的十大网站
  17. 爱上收纳的花艺师:热爱生活,就能被生活治愈
  18. 断网后parsec无法检测发现台式机设备的解决办法
  19. js中appendChild的用法
  20. PS(一)PS基础从0开始,感兴趣的可以来看看

热门文章

  1. vb.net 物联网助手exe 软件重构
  2. 用余弦定理求三角形内角
  3. JavaScript高级程序设计(读书笔记)(一)
  4. 起步远远落后世界,但仍然要追逐梦想!
  5. labview最小二乘法拟合曲线报表生成,波形拟合最小二乘法
  6. Python -- 关于字典的学习(二)——遍历字典
  7. 阿里云图标使用 (symbol 引用方式)
  8. python字符串转成0x字节组_python高级(四)—— 文本和字节序列(编码问题)
  9. 三菱FX-3UPLC加威伦通TK8071IP触摸屏,控制3个步进电机,到达给电池盒裹膜的目的
  10. 金融客户标签画像与客群查询使用HIVE+Hbase+Es实践(一)