ORACLEERP开发基础前言4EBS入门一周之口水贴4EBS入门二周之口水贴5EBS入门三周之口水贴5EBS入门四周之口水贴6OracleForms基础6Forms设置部份6设置ITEM为必填项6设置ITEM的初始值为当前日期7实现按“ENTER”自动跳至下一条记录7使用堆叠画布7深入了解Forms的事务触发机制9创建FORMS数据块的主从关系9FORMS代码部份11FORMS触发器的执行顺序11FORMS变量类型13判断数据块的项是否为空14信息提示框之基本用法14用代码控制ITEM属性15用代码控制ITEM的焦点转移17用代码控制WINDOW属性17判断当前FORM的状态17在when-new-record-instance控制BLOCK的可用状态17实现将LOV可以自行录入内容18在FORMS调用WEB页面18Name_In()\COPY()函数18Forms数据提交的方式19在一个FORM中调用不同的WINDOW19Form假死锁问题之初步解决20FORM死锁解决22FORM6i引入JAVA类22FORMS之列表项动态赋值23FORMS之LOV动态赋给记录组24屏蔽FORM系统提示信息25FORM之间的调用25Tree-层次树之使用25遍历数据块26LOV动态确保从块记录唯一26Form实现复制上条记录27控制删除条件的触发器27实现进度条28Form实现唯一性检查28OracleReport基础29Report页面设置29数据模型、固定框、循环框29实现记录汇总行动态伸缩31Author:JarWang(王重东)Email:Jarwang@sina.comQQ:Jarwang@sina.com2查询视图无数据31Report数据域31Report汇总项32Report动态条件查询33矩阵报表33Report编译出错33Oracle数据库基础34常用函数34substr函数34Lpad/Rpad函数34日期函数34随机取前10条不同的记录35TRUNC函数35修改表的一些常用语法36舍入函数36实现类似BREAK语句36Oracle定时器37Over分析查询38Oracle层次树查询40Mergeinto应用42Truncatetable42绑定变量与非绑定变量之比较42取不重复的记录行44查询具有相同薪水的职工45统计EBS表数量及Oracle概念45Oracle死锁之解决方法46PL/SQL过程调用表示法47PL/SQL调用Java类47PL/SQL操作EXCEL51PL/SQL异常机制55PL/SQL面向对象编程56PL/SQL实现字符串转成数组57PowerDesigner58ORA-01403未找到数据之解决方法59PL/SQL细粒度事务控制60物化视图61通过游标更新数据62给PACKAGE加密62OracleAdvancedQueue63跨数据库的SQL65ORACLE高级复制66查询某一表或视图中的触发器68EBS开发基础68开发工具安装68OracleEBS工具集69EBS二次开发包注册72Author:JarWang(王重东)Email:Jarwang@sina.comQQ:Jarwang@sina.com3利用TEMPLATE.fmb模板来开发Form73注册表单FORM78注册请求80注册职责82注册值集84注册主从值集87通过应用开发员取得系统管理员职责89查询视图时没有显示数据90注册报表(report)90请求的输出及日志93实现手动提交请求94手动提交请求示例95客制化菜单97客制化右键菜单99客制化工具栏99调用EBS日期控件100查询数据时限定语言环境101实现历史记录查询101实现文件夹功能102实现手电筒查找的功能107记录指示器切换标签页110EBS的条件查询方法111自定义代码112通过科目编码取科目描述115Fnd_Profile之使用116Form之间共享参数组织ID116弹性域117注册关键性弹性域117注册说明性弹性域118条件控制说明性弹性域120PO行界面启用弹性域121调用会计科目弹性域123EBS11iForm开发实现MVC模式124EBS预警功能自定义开发125EBS自定义邮件通知128EBS配置文件(Profile)常用设置132设置菜单导出的文件格式132IE打不开EBS133一个职责下打开多个FORM界面133获取EBS的查询语句133EBS调用JSP页面134OAF页面查看历史信息136定义文件夹的管理权限136判断EBS提交请求是否成功139FORM更新多表视图140WorkFlow143Author:JarWang(王重东)Email:Jarwang@sina.comQQ:Jarwang@sina.com4EBSWorkFlow143WorkFowbuilder安装143Workflow查看工作流权限143WorkflowBuilder打开PO审批流时报错144Workflow启动报错145OracleBPM145BPM安装145BPM基本使用146Discoverer工具146Discoverer安装设置146Discoverer快速入门示例147Discoverer工作表数值型显示150通过工作簿找到对应的Discoverer职责151DiscovererJOIN之使用151Discoverer数值型无法正确显示153Discoverer上钻/下钻154Discoverer条件LOV155Discoverer分类汇总求AP供应商余额156OracleDBI工具157DBI工具之配置158DBI之报表开发160DBI简单报表开发160DBI维度报表开发165OracleBIEE工具171BIEE工具之安装171BIEE工具之体念172BIPublisher工具之体念173数据导入工具174Dataload174Loadrunner175OracleADI178GL日记帐导入179OracleADI-客户化开发180OtherNotes180前言偶是2008年才开始接触,这个传说中的OracleERP。而在此前四年间,特别是在做JAVA程序员二年多的时间中,养成了一种对架构、模式、面向对象的狂热追求,导致对EBS亦常失望。因为EBS11i没有软件模式、设计、分层等,只有象面条般的PL/SQL语句。Author:JarWang(王重东)Email:Jarwang@sina.comQQ:Jarwang@sina.com5EBS入门一周之口水贴OracleERP-ebs11i。近一个周的摸索,算是对这个号称全球ERP第二的东东有点“表面”认识了。在这个领域,虽然ORACLEFORMS也是使用JVM来运行,但跟JAVA搭不上一点边。官方语言是PL/SQL。开发工具相当古老FORMS6i,要靠补丁才能在XP下运行。JAVA当中的模式、设计、分层等等,根本使用不上。只是拖拉一下控件就好,就算你不想拖拉也不行。因为ORACLEFORMS根本不支持,只允许拖拉式编程。比VB/DELPHI这类语言还死心眼。唯一要编程的就是写些SQL代码,也谈不上什么分层,表现层与SQL混在一起。大多数的函数,ORACLE都内置了,没有内置的,你也非常难去实现。Forms的拥护者说是Oracle的目的是要减少代码。这种理由根本站不住脚,通过属性设置来实现编程,最终也是要生成代码的。只是这些代码Oracle不让你看到而已。于是Forms的拥护者又说FORMS封装的好。晕倒!看来是没有使用过VB了,VB是所有语言当中封装最好的了,但照样要被面临淘汰。Why?再晕?看来Forms的拥护者软件工程也没学好。快速开发只是软件一个要求而已,开发工期短嘛,人力成本就少啦。但软件的可维护性呢?没有一行代码,全部通过设置开发出来的软件,叫人怎么维护。修改一个地方,从后台到前台全部的修改。这也叫可维护性?再说说这个EBS11i,操作非常不人性化。看个报表什么的,都是通过“请求”来实现,终端客户抱怨操作步骤太多,点来点去的,点到最后都快忘了要做什么!ORACLE的官方顾问却说,这是国际标准流程。一说到ORACLE的缺点,就拿“国际”两字来压人。报表呢?没一份符合国人习惯。也不知道ORACLEERP凭什么在国内站住脚?EBS安装包相当大-32G,数据表的冗余量也非常大。一份采购单,在PO模块中有,在PO接口模块中也有,另外在AP模块也存一份。也就是说一份相同的数据存了三次。唯一值得一看的亮点就是跟财务管理模块高度集成。EBS入门二周之口水贴调试,OracleEBS二次开发的调试,简直要将人送下地狱。记得刚接触JAVA时,还说调试不如VB方便。那现在看来,做Oracle二次开发简直就是地狱,而且还是十八层的那种。每修改一个东西,都要上传到SERVER上调试。事实这也不叫调试,叫测试比较准确。总之就是对OracleEBS恶心之极,搞不懂还是有那么多人在追棒。有点可笑的是,在ERP100论坛上居然有人说,学EBS而不学SAP,是因为ORACLE公司大。真是要晕倒。照这种逻辑,那么Linux根本上不应该存在,因为Linux远没有MS大。什么逻辑?EBS入门三周之口水贴PL/SQL在语法上与VB相似,都有类似“IF…THEN…ENDIF”,VB当中的Event(事件)等同于Forms的触发器(triiger),只是概念不同而已。对于有过VB项目开发经验的我来说,刚接触OracleForms感觉就是VB。二年前在“ThinkinJava”的影响下,毫不忧郁地从VB转到JAVA阵营。两年过去了,在JAVA阵营,做纯JSP的OA项目,也做STRUTS+HIBERNATE的MIS项目,却始终无法逃离“增改删查”这种技术含量不高的应用程序。从ERP的角度来看,我所做过的项目,抛开技术构架来看,只能算是MIS,严格上说连MRPII都算不了,更别说什么ERP了。现在接触的OracleEBS应该算是ERP吧。但应用效果呢?最多也只是MRPII的水平。什么叫MRP,也就是一些试算物料排程+库存的程序。也叫MIS。什么叫MRPII呢?MRP+财务管理系统。什么叫ERP呢?MRPII+分销系统+供应链系统+CRM系统+HR系统+知识库等等。总之,ERP有点无所不含了,以致于ERP的失败率很高。大多数的公司虽然号称运用的是ERP,其实质应用呢?最多是MRP或MRPII,甚至只是一个功能好一点的记账软件。Author:JarWang(王重东)Email:Jarwang@sina.comQQ:Jarwang@sina.com604年IBM推出了SOA的概念后,ERP遭到了前所未有的危机。ServiceOrientedArchitecture其思想就是保护原有的IT投资,以此为基础进行软件功能的扩充。技术核心就是WebService。而ERP思想呢?ERP的思想就是想用一套软件从制造-财务-分销-商业智能全盘搞定企业信息化。这种大而全的做法,正在遭到CIO们的怀疑。Oracle也有推出自己的SOA-(以JDEVELOPER为核心的组件化应用),这是否也在预示PL/SQL要被JAVA代替呢?^_^EBS入门四周之口水贴除了在FORM中使用属性窗口进行对象属性设置外,Oracle也有提供函数来实现对FORMS对象的控制。但总体上来说,给人的感觉就是不直觉,完全的黑箱操作。难道这就是Oracle所说的减少代码的编写?事实上VB饱受批评,除了不支持全部的WinAPI外,就是封装的太死,连继承都不让使用。但用过OracleForms,就会挺同情VB的做法。Oracle的做法更绝,试图用PL/SQL统一前台与后台编程。连面向对象的概念都没有,更别谈什么其他的了。尽管Forms最终是要生成JAVA的APLLET代码进行执行。还有Forms不支持类似于“.”的联想操作,也是让人想不通。如果哪个C++或是JAVA开发工具不支持”.”操作,那么肯定会进博物馆的。OVER,即来之,则安之。停止比较,重新学习吧。OracleForms基础Forms