logo资料库

Oracle EBS_Form开发.pdf

第1页 / 共177页
第2页 / 共177页
第3页 / 共177页
第4页 / 共177页
第5页 / 共177页
第6页 / 共177页
第7页 / 共177页
第8页 / 共177页
资料共177页,剩余部分请下载后查看
前言
EBS入门一周之口水贴
EBS入门二周之口水贴
EBS入门三周之口水贴
EBS入门四周之口水贴
Oracle Forms基础
Forms设置部份
设置ITEM为必填项
设置ITEM的初始值为当前日期
实现按“ENTER”自动跳至下一条记录
使用堆叠画布
深入了解Forms的事务触发机制
创建FORMS数据块的主从关系
FORMS代码部份
FORMS触发器的执行顺序
FORMS变量类型
判断数据块的项是否为空
信息提示框之基本用法
用代码控制ITEM属性
用代码控制ITEM的焦点转移
用代码控制WINDOW属性
判断当前FORM的状态
在when-new-record-instance控制BLOCK的可用状态
实现将LOV可以自行录入内容
在FORMS调用WEB页面
Name_In()\COPY()函数
Forms数据提交的方式
在一个FORM中调用不同的WINDOW
Form假死锁问题之初步解决
FORM死锁解决
FORM6i引入JAVA类
FORMS之列表项动态赋值
FORMS之LOV动态赋给记录组
屏蔽FORM系统提示信息
FORM之间的调用
Tree-层次树之使用
遍历数据块
LOV动态确保从块记录唯一
Form实现复制上条记录
控制删除条件的触发器
实现进度条
Form实现唯一性检查
Oracle Report基础
Report页面设置
数据模型、固定框、循环框
实现记录汇总行动态伸缩
查询视图无数据
Report数据域
Report汇总项
Report动态条件查询
矩阵报表
Report编译出错
Oracle数据库基础
常用函数
substr函数
Lpad/Rpad函数
日期函数
随机取前10条不同的记录
TRUNC函数
修改表的一些常用语法
舍入函数
实现类似BREAK语句
Oracle定时器
Over分析查询
Oracle层次树查询
Merge into应用
Truncate table
绑定变量与非绑定变量之比较
取不重复的记录行
查询具有相同薪水的职工
统计EBS表数量及Oracle概念
Oracle死锁之解决方法
PL/SQL过程调用表示法
PL/SQL调用Java类
PL/SQL操作EXCEL
PL/SQL异常机制
PL/SQL面向对象编程
PL/SQL实现字符串转成数组
PowerDesigner
ORA-01403 未找到数据之解决方法
PL/SQL细粒度事务控制
物化视图
通过游标更新数据
给PACKAGE加密
Oracle Advanced Queue
跨数据库的SQL
ORACLE高级复制
查询某一表或视图中的触发器
EBS开发基础
开发工具安装
Oracle EBS工具集
EBS二次开发包注册
利用TEMPLATE.fmb模板来开发Form
注册表单FORM
注册请求
注册职责
注册值集
注册主从值集
通过应用开发员取得系统管理员职责
查询视图时没有显示数据
注册报表(report)
请求的输出及日志
实现手动提交请求
客制化菜单
客制化右键菜单
客制化工具栏
调用EBS日期控件
查询数据时限定语言环境
实现历史记录查询
实现文件夹功能
实现手电筒查找的功能
记录指示器切换标签页
EBS的条件查询方法
自定义代码
通过科目编码取科目描述
Fnd_Profile之使用
Form之间共享参数组织ID
弹性域
注册关键性弹性域
注册说明性弹性域
条件控制说明性弹性域
PO行界面启用弹性域
调用会计科目弹性域
EBS11i Form开发实现MVC模式
EBS预警功能自定义开发
EBS自定义邮件通知
EBS配置文件(Profile)常用设置
设置菜单导出的文件格式
IE打不开EBS
一个职责下打开多个FORM界面
获取EBS的查询语句
EBS调用JSP页面
OAF页面查看历史信息
定义文件夹的管理权限
判断EBS提交请求是否成功
FORM更新多表视图
WorkFlow
EBS WorkFlow
WorkFow builder安装
Workflow查看工作流权限
Workflow Builder打开PO审批流时报错
Workflow启动报错
Oracle BPM
BPM安装
BPM基本使用
Discoverer工具
Discoverer安装设置
Discoverer快速入门示例
Discoverer工作表数值型显示
通过工作簿找到对应的Discoverer职责
Discoverer JOIN之使用
Discoverer数值型无法正确显示
Discoverer上钻/下钻
Discoverer条件LOV
Discoverer分类汇总求AP供应商余额
Oracle DBI工具
DBI工具之配置
DBI之报表开发
DBI简单报表开发
DBI维度报表开发
Oracle BIEE工具
BIEE工具之安装
BIEE工具之体念
BI Publisher工具之体念
数据导入工具
Dataload
Loadrunner
Oracle ADI
GL日记帐导入
Oracle ADI-客户化开发
Other Notes
ORACLE ERP 开发基础 前言 EBS 入门一周之口水贴 EBS 入门二周之口水贴 EBS 入门三周之口水贴 EBS 入门四周之口水贴 Oracle Forms 基础 Forms 设置部份 设置 ITEM 为必填项 设置 ITEM 的初始值为当前日期 实现按“ENTER”自动跳至下一条记录 使用堆叠画布 深入了解 Forms 的事务触发机制 创建 FORMS 数据块的主从关系 FORMS 代码部份 FORMS 触发器的执行顺序 FORMS 变量类型 判断数据块的项是否为空 信息提示框之基本用法 用代码控制 ITEM 属性 用代码控制 ITEM 的焦点转移 用代码控制 WINDOW 属性 判断当前 FORM 的状态 在 when-new-record-instance 控制 BLOCK 的可用状态 实现将 LOV 可以自行录入内容 在 FORMS 调用 WEB 页面 Name_In()\COPY()函数 Forms 数据提交的方式 在一个 FORM 中调用不同的 WINDOW Form 假死锁问题之初步解决 FORM 死锁解决 FORM6i 引入 JAVA 类 FORMS 之列表项动态赋值 FORMS 之 LOV 动态赋给记录组 屏蔽 FORM 系统提示信息 FORM 之间的调用 Tree-层次树之使用 遍历数据块 LOV 动态确保从块记录唯一 Form 实现复制上条记录 控制删除条件的触发器 实现进度条 Form 实现唯一性检查 Oracle Report 基础 Report 页面设置 数据模型、固定框、循环框 实现记录汇总行动态伸缩 4 4 5 5 6 6 6 6 7 7 7 9 9 11 11 13 14 14 15 17 17 17 17 18 18 18 19 19 20 22 22 23 24 25 25 25 26 26 27 27 28 28 29 29 29 31
Author:JarWang(王重东) Email:Jarwang@sina.com QQ:Jarwang@sina.com 查询视图无数据 Report 数据域 Report 汇总项 Report 动态条件查询 矩阵报表 Report 编译出错 Oracle 数据库基础 常用函数 substr 函数 Lpad/Rpad 函数 日期函数 随机取前 10 条不同的记录 TRUNC 函数 修改表的一些常用语法 舍入函数 实现类似 BREAK 语句 Oracle 定时器 Over 分析查询 Oracle 层次树查询 Merge into 应用 Truncate table 绑定变量与非绑定变量之比较 取不重复的记录行 查询具有相同薪水的职工 统计 EBS 表数量及 Oracle 概念 Oracle 死锁之解决方法 PL/SQL 过程调用表示法 PL/SQL 调用 Java 类 PL/SQL 操作 EXCEL PL/SQL 异常机制 PL/SQL 面向对象编程 PL/SQL 实现字符串转成数组 PowerDesigner ORA-01403 未找到数据之解决方法 PL/SQL 细粒度事务控制 物化视图 通过游标更新数据 给 PACKAGE 加密 Oracle Advanced Queue 跨数据库的 SQL ORACLE 高级复制 查询某一表或视图中的触发器 EBS 开发基础 开发工具安装 Oracle EBS 工具集 EBS 二次开发包注册 2 31 31 32 33 33 33 34 34 34 34 34 35 35 36 36 36 37 38 40 42 42 42 44 45 45 46 47 47 51 55 56 57 58 59 60 61 62 62 63 65 66 68 68 68 69 72
Author:JarWang(王重东) Email:Jarwang@sina.com QQ:Jarwang@sina.com 利用 TEMPLATE.fmb 模板来开发 Form 注册表单 FORM 注册请求 注册职责 注册值集 注册主从值集 通过应用开发员取得系统管理员职责 查询视图时没有显示数据 注册报表(report) 请求的输出及日志 实现手动提交请求 手动提交请求示例 客制化菜单 客制化右键菜单 客制化工具栏 调用 EBS 日期控件 查询数据时限定语言环境 实现历史记录查询 实现文件夹功能 实现手电筒查找的功能 记录指示器切换标签页 EBS 的条件查询方法 自定义代码 通过科目编码取科目描述 Fnd_Profile 之使用 Form 之间共享参数组织 ID 弹性域 注册关键性弹性域 注册说明性弹性域 条件控制说明性弹性域 PO 行界面启用弹性域 调用会计科目弹性域 EBS11i Form 开发实现 MVC 模式 EBS 预警功能自定义开发 EBS 自定义邮件通知 EBS 配置文件(Profile)常用设置 设置菜单导出的文件格式 IE 打不开 EBS 一个职责下打开多个 FORM 界面 获取 EBS 的查询语句 EBS 调用 JSP 页面 OAF 页面查看历史信息 定义文件夹的管理权限 判断 EBS 提交请求是否成功 FORM 更新多表视图 WorkFlow 3 73 78 80 82 84 87 89 90 90 93 94 95 97 99 99 100 101 101 102 107 110 111 112 115 116 116 117 117 118 120 121 123 124 125 128 132 132 133 133 133 134 136 136 139 140 143
Author:JarWang(王重东) Email:Jarwang@sina.com QQ:Jarwang@sina.com EBS WorkFlow WorkFow builder 安装 Workflow 查看工作流权限 Workflow Builder 打开 PO 审批流时报错 Workflow 启动报错 Oracle BPM BPM 安装 BPM 基本使用 Discoverer 工具 Discoverer 安装设置 Discoverer 快速入门示例 Discoverer 工作表数值型显示 通过工作簿找到对应的 Discoverer 职责 Discoverer JOIN 之使用 Discoverer 数值型无法正确显示 Discoverer 上钻/下钻 Discoverer 条件 LOV Discoverer 分类汇总求 AP 供应商余额 Oracle DBI 工具 DBI 工具之配置 DBI 之报表开发 DBI 简单报表开发 DBI 维度报表开发 Oracle BIEE 工具 BIEE 工具之安装 BIEE 工具之体念 BI Publisher 工具之体念 数据导入工具 Dataload Loadrunner Oracle ADI GL 日记帐导入 Oracle ADI-客户化开发 Other Notes 前言 143 143 143 144 145 145 145 146 146 146 147 150 151 151 153 154 155 156 157 158 160 160 165 171 171 172 173 174 174 175 178 179 180 180 偶是 2008 年才开始接触,这个传说中的 Oracle ERP。而在此前四年间,特别是在做 JAVA 程序员二 年多的时间中,养成了一种对架构、模式、面向对象的狂热追求,导致对 EBS 亦常失望。因为 EBS11i 没 有软件模式、设计、分层等,只有象面条般的 PL/SQL 语句。 4
Author:JarWang(王重东) Email:Jarwang@sina.com QQ:Jarwang@sina.com 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,甚至只是一个功能好一点的记账软件。 5
Author:JarWang(王重东) Email:Jarwang@sina.com QQ:Jarwang@sina.com 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,即来之,则安之。停止比较,重新学习吧。 Oracle Forms 基础 Forms 设置部份 Forms 基本对象概念 FORMS 的基本对象说明 FORM: 可以有多个 Window。 Window: 只能有一个 CANVAS,但是还可以包括其他的类型的 CANVAS, 比如 CANVAS_STACKED,这种 Canvas 类型将在后面的章节中讲到。 Canvas: Canvas is a surface where visual objects,such as graphics and items,are arranged. 和 Block 没有直接的对应关系,而是直接和 Item 对应。一个 Canvas 上面可以有来自不同的 Block 的多 个 Item.,是我们对 Item 进行位置调整的平台。 Block: Logical owner of items,items in one block are logically related.There are two main tupes of blocks:data block and control block Item: Form 中最基本的组织元素,我们设计的最小单元 Parameter:相当于全局变量,其作用是传递参数,Oracle 标准的 Form 也有单独建一个 Block(多个 I tem)来 传递参数的例子。 Record Group: 主要应用是可以提供给 LOV 与 list item,ftree 作为数据源 A record group is internal Form Builder data structure that has a column/row.framework similar to a database table LOV:List Of Value,会直接对应到 Text Item 上面,点击后会弹出给用户选择数据。 Attached Libraries:存放的是 Oracle 标准的一些 PLL 文件。 Property Classes:Oracle 标准的一些属性类,我们在建立 Window、Canvas、Data Block 等都会选择一个属性类 以继承一些属性和方法 明白了上面的基本概念,就可以开工了。 6
Author:JarWang(王重东) Email:Jarwang@sina.com QQ:Jarwang@sina.com 设置 ITEM 为必填项 Setup: Effect: 此效果与是 set_item_property('test.l_test',required,property_true)一样的。 设置 ITEM 的初始值为当前日期 实现按“ENTER”自动跳至下一条记录 设置 BLOCK 属性:导航器风格:改变记录。 7
Author:JarWang(王重东) Email:Jarwang@sina.com QQ:Jarwang@sina.com 使用堆叠画布 Effect: 1.先将数据块、画布布局好(用向导的方式就可以了,具体操作就不用讲了吧)。 2.在画布中创建一个堆叠画布。 3.将项的画出属性更为堆叠画布(这一步最关键了)。 4.调整后得到下面这效果了。 8
分享到:
收藏