【IT168 技术文档】
前言
偶是2008年才开始接触,这个传说中的Oracle ERP。而在此前四年间,特别是在做JAVA程序员二年多的时间中,养成了一种对架构、模式、面向对象的狂热追求,导致对EBS亦常失望。因为EBS11i没有软件模式、设计、分层等,只有象面条般的PL/SQL语句。
EBS入门一周之口水贴
Oracle ERP-ebs11i。近一个周的摸索,算是对这个号称全球ERP第二的东东有点“表面”认识了。 在这个领域,虽然ORACLE FORMS也是使用JVM来运行,但跟JAVA搭不上一点边。官方语言是PL/SQL。开发工具相当古老FORMS6i,要靠补丁才能在XP下运行。JAVA当中的模式、设计、分层等等,根本使用不上。只是拖拉一下控件就好,就算你不想拖拉也不行。因为ORACLE FORMS根本不支持,只允许拖拉式编程。比VB/DELPHI这类语言还死心眼。唯一要编程的就是写些SQL代码,也谈不上什么分层,表现层与SQL混 在一起。大多数的函数,ORACLE都内置了,没有内置的,你也非常难去实现。 Forms的拥护者说是Oracle的目的是要减少代码。这种理由根本站不住脚,通过属性设置来实现编程,最终也是要生成代码的。只是这些代码Oracle不让你看到而已。于是 Forms的拥护者又说FORMS封装的好。晕倒!看来是没有使用过VB了,VB是所有语言当中封装最好的了,但照样要被面临淘汰。Why?再晕?看来 Forms的拥护者软件工程也没学好。快速开发只是软件一个要求而已,开发工期短嘛,人力成本就少啦。但软件的可维护性呢?没有一行代码,全部通过设置开发出来的软件,叫人怎么维护。修改一个地方,从后台到前台全部的修改。这也叫可维护性? 再说说这个EBS11i,操作非常不人性化。看个报表什么的,都是通过“请求”来实现,终端客户抱怨操作步骤太多,点来点去的,点到最后都快忘了要做什么!ORACLE的官方顾问却说,这是国际标准流程。一说到ORACLE的缺点,就拿“国际”两字来压人。报表呢?没一份符合国人习惯。也不知道 ORACLE ERP凭什么在国内站住脚? EBS安装包相当大-32G,数据表的冗余量也非常大。一份采购单,在PO模块中有,在PO接口模块中也有,另外在AP模块也存一份。也就是说一份相同的数据存了三次。 唯一值得一看的亮点就是跟财务管理模块高度集成。
EBS入门二周之口水贴
调试,Oracle EBS二次开发的调试,简直要将人送下地狱。记得刚接触JAVA时,还说调试不如VB方便。那现在看来,做Oracle二次开发简直就是地狱,而且还是十八层的那种。每修改一个东西,都要上传到SERVER上调试。事实这也不叫调试,叫测试比较准确。总之就是对Oracle EBS恶心之极,搞不懂还是有那么多人在追棒。有点可笑的是,在ERP100论坛上居然有人说,学EBS而不学SAP,是因为ORACLE公司大。真是要晕倒。照这种逻辑,那么Linux根本上不应该存在,因为Linux远没有MS大。什么逻辑?
EBS入门三周之口水贴
PL/SQL在语法上与VB相似,都有类似“IF…THEN…END IF”,VB当中的Event(事件)等同于Forms的触发器(triiger),只是概念不同而已。对于有过VB项目开发经验的我来说,刚接触Oracle Forms感觉就是VB。二年前在“Think in Java”的影响下,毫不忧郁地从VB转到JAVA阵营。两年过去了,在JAVA阵营,做纯JSP的OA项目,也做STRUTS+HIBERNATE的MIS项目,却始终无法逃离“增改删查”这种技术含量不高的应用程序。从ERP的角度来看,我所做过的项目,抛开技术构架来看,只能算是MIS,严格上说连MRPII都算不了,更别说什么ERP了。现在接触的Oracle EBS应该算是ERP吧。但应用效果呢?最多也只是MRPII的水平。 什么叫MRP,也就是一些试算物料排程+库存的程序。也叫MIS。 什么叫MRPII呢?MRP+财务管理系统。 什么叫ERP呢?MRPII+分销系统+供应链系统+CRM系统+HR系统+知识库等等。总之,ERP有点无所不含了,以致于ERP的失败率很高。大多数的公司虽然号称运用的是ERP,其实质应用呢?最多是MRP或MRPII,甚至只是一个功能好一点的记账软件。 04年IBM推出了SOA的概念后,ERP遭到了前所未有的危机。Service Oriented Architecture其思想就是保护原有的IT投资,以此为基础进行软件功能的扩充。技术核心就是Web Service。而ERP思想呢? ERP的思想就是想用一套软件从制造-财务-分销-商业智能全盘搞定企业信息化。这种大而全的做法,正在遭到CIO们的怀疑。 Oracle也有推出自己的SOA-(以JDEVELOPER为核心的组件化应用),这是否也在预示PL/SQL要被JAVA代替呢?^_^
EBS入门四周之口水贴
除了在FORM中使用属性窗口进行对象属性设置外,Oracle也有提供函数来实现对FORMS对象的控制。但总体上来说,给人的感觉就是不直觉,完全的黑箱操作。难道这就是Oracle所说的减少代码的编写?事实上VB饱受批评,除了不支持全部的Win API外,就是封装的太死,连继承都不让使用。但用过Oracle Forms,就会挺同情VB的做法。Oracle的做法更绝,试图用PL/SQL统一前台与后台编程。连面向对象的概念都没有,更别谈什么其他的了。尽管Forms最终是要生成JAVA的APLLET代码进行执行。还有Forms不支持类似于“.”的联想操作,也是让人想不通。如果哪个C++或是JAVA开发工具不支持‖.‖操作,那么肯定会进博物馆的。 OVER,即来之,则安之。停止比较,重新学习吧。