找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 804|回复: 2

[【原创】] 体验ABAP

[复制链接]
发表于 2006-4-26 23:38:08 | 显示全部楼层 |阅读模式

ABAP和Java看起来真是有缘分啊,大家都有两个a啊,^_^。但是ABAP可以做Java的父亲了,当然这是按照年龄来讲的。虽然偶对ABAP是一知半解,但是偶还是想谈谈自己对ABAP的体会。

在SAP成立以后,4位从IBM出来的创始人就决定自己开发一套适合ERP软件开发的语言平台,于是ABAP就这样诞生了。大概是和在IBM工作过有关系,ABAP里面有很多东西还是能看到小型机上面的东西的影子。ABAP语言是一个轻量级的语言,因为它是平台无关的,无论是在UNIX系统下还是在Windows系统下,都是不用重写代码的,这点和Java的WODA的思想是很一致的。在ABAP的底下是一层ABAP的虚拟机,虽然SAP没有命名过这层的名字,但是我还是喜欢叫它是ABAP VM,有一点ABAP VM和JVM不同的是,ABAP VM是建立在数据库上面的,这个大概和ERP系统主要是要和数据库的数据打交道有关系吧。ABAP发明之初是面向过程的,结构化的语言,估计这点在OO盛行的今天已经让人鄙视了,但是ABAP在编写业务流程上还是很有效率的,据牛人告诉我,在中国ABAP并没有多少用到编写业务流程上,都是做一些写报表,做界面等等的工作,真是杀鸡用牛刀啊。不过自从ABAP4 6.2版本后,ABAP也开始支持OO了,我也学了一些,写过一个ABAP的Class,但是那个别扭真是很难说清楚,感觉有点东施效颦的感觉,记得有一次在SAP的workshop上,我提出ABAP不是真正的OO语言,没有想到立马遭到在场的资深SAP人士的鄙视,他很气愤的说,谁说ABAP不是真正的OO啊?那个眼神和语气简直就是要当场吃了我,害的我后面想说点我的理由都不敢讲了,郁闷。再后来,我就帮实验室写了一个Enhancement的程序,可惜最终也没有实际用上。

本来我以为SAP在引入Java以后,会摒弃ABAP,很快我就发现我错了,因为ABAP是SAP三十年的财富,既是是SAP的过去也是SAP的未来。在Wordoff有一个Team是专门研究ABAP发展的,到现在ABAP能够支持OO、XML和SOA了。以后ABAP将从前台退到幕后,ABAP不再做界面这样的活了,ABAP将封装基本业务实体成BO,再将语义相关的BO组成Process Component,然后再是Process Scinario,这样Java就可以从前台来调用这些ABAP的东西。这样做的目的就是为了转变现在R/3的C/S结构,引入Java做界面,从而支持B/S。还有一个最大的好处就是,SAP推出了自己的标准,在标准决定生存的年代,有自己的标准就等于掌握了主动,就像微软一样,到处制定标准,就可以到处为所欲为了,^_^

未来ABAP的发展将是后台业务处理方向的发展,BO将是ABAP封装的最小单位,^_^,其实就是OO,希望ABAP的这次变通一路走好!
回复

使用道具 举报

 楼主| 发表于 2006-4-27 13:17:06 | 显示全部楼层
[sieze=3]
终于拿到了最新的BC400的培训材料,比较了一下两个版本,发现新版本竟然是旧版本的7倍之大,当然这个是从大小来讲,估计内容没有太多变化,但是图片肯定是增加了很多,这样也有利于学习啊。

就个人看来BC400和BC430是ABAP最基础的东西,BC400讲了ABAP的基本语法,BC430讲了ABAP DDIC,这两个基础打好了,学习其他应该没有什么问题。对于ABAP的其他东西来讲,最为重要的就是BC401了,这个是ABAP顺应时代要求而出现的OO。至于Dialog什么的,个人认为没有什么学的,这个迟早会被WD替代的。

ABAP的语法其实很简单,和C、Pascal很类似,对于我来讲没有什么太大的困难,主要学习的Debug的能力,这个是个关键,以后ABAP都是在后台工作,Debug能力直接决定了你解决Bug能力,还好这个我还行,毕竟曾经搞过SmartForm,向Sheng Martin同学学习了Debug,现在发现还真的很有用哦,^_^

这两天又开始思考BO这个概念了,Business Object到底是个什么东西,和OO中的Object的区别和联系是什么,仔细想了很久还是没有相通一些东西,于是就请教了一下GZF同学,他告诉我BO是一个封装了Node,Attribute和Method的东西。其他的还算正常,Node是一个什么东西呢,Node又封装了什么呢?GZF告诉我这个Node也封装了一些Attribute和Method,甚至还有SubNode。我这就糊涂了,不是说BO是最小的业务实体嘛?怎么还会有SubObject呢?GZF又说最小的业务实体是指可以使用的实体,比如说Sales Order就是一个BO,里面的item就是Node,因为item不可能单独使用,必须组合在Sales Order里面才能使用,因此item不能算是BO。

听了这么多,觉得似懂非懂,看来还要进一步理解了,看来BO不紧紧是一个简单的Object,应该是一个聚合的大对象。写到这里,我又想起了另外一个问题,为什么就没有针对ABAP的UML工具呢,现在UML2都已经成了标准,MDA也将是趋势啊,真是搞不懂,大公司怎么反应这么慢呢!原本WS同学的论文是搞这个的,可惜后来因为RFID而放弃了,遗憾啊!

今天有感而发的写了点东西,很凌乱,^_^,希望能在凌乱中理出一条思路,站在ABAP和Java的三岔口,不乱才怪呢!
回复

使用道具 举报

发表于 2006-4-27 13:18:11 | 显示全部楼层
体验ABAP(二)


终于拿到了最新的BC400的培训材料,比较了一下两个版本,发现新版本竟然是旧版本的7倍之大,当然这个是从大小来讲,估计内容没有太多变化,但是图片肯定是增加了很多,这样也有利于学习啊。

就个人看来BC400和BC430是ABAP最基础的东西,BC400讲了ABAP的基本语法,BC430讲了ABAP DDIC,这两个基础打好了,学习其他应该没有什么问题。对于ABAP的其他东西来讲,最为重要的就是BC401了,这个是ABAP顺应时代要求而出现的OO。至于Dialog什么的,个人认为没有什么学的,这个迟早会被WD替代的。

ABAP的语法其实很简单,和C、Pascal很类似,对于我来讲没有什么太大的困难,主要学习的Debug的能力,这个是个关键,以后ABAP都是在后台工作,Debug能力直接决定了你解决Bug能力,还好这个我还行,毕竟曾经搞过SmartForm,向Sheng Martin同学学习了Debug,现在发现还真的很有用哦,^_^

这两天又开始思考BO这个概念了,Business Object到底是个什么东西,和OO中的Object的区别和联系是什么,仔细想了很久还是没有相通一些东西,于是就请教了一下GZF同学,他告诉我BO是一个封装了Node,Attribute和Method的东西。其他的还算正常,Node是一个什么东西呢,Node又封装了什么呢?GZF告诉我这个Node也封装了一些Attribute和Method,甚至还有SubNode。我这就糊涂了,不是说BO是最小的业务实体嘛?怎么还会有SubObject呢?GZF又说最小的业务实体是指可以使用的实体,比如说Sales Order就是一个BO,里面的item就是Node,因为item不可能单独使用,必须组合在Sales Order里面才能使用,因此item不能算是BO。

听了这么多,觉得似懂非懂,看来还要进一步理解了,看来BO不紧紧是一个简单的Object,应该是一个聚合的大对象。写到这里,我又想起了另外一个问题,为什么就没有针对ABAP的UML工具呢,现在UML2都已经成了标准,MDA也将是趋势啊,真是搞不懂,大公司怎么反应这么慢呢!原本WS同学的论文是搞这个的,可惜后来因为RFID而放弃了,遗憾啊!

今天有感而发的写了点东西,很凌乱,^_^,希望能在凌乱中理出一条思路,站在ABAP和Java的三岔口,不乱才怪呢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-5-23 11:14 , Processed in 0.280798 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表