《深入浅出oracle之forms开发指南》由会员分享,可在线阅读,更多相关《深入浅出oracle之forms开发指南(143页珍藏版)》请在金锄头文库上搜索。
1、Doc Ref: Oracle ERP最佳技术实践十二月 13, 2012Oracle ERP最佳技术实践E-Business SuiteOracle核心应用技术Forms开发指南Author:黄建华Creation Date:October 16, 2006Last Updated:十二月 13, 2012Document Ref: Version:DRAFT 1AApprovals: Copy Number_Document ControlChange Record5DateAuthorVersionChange Reference16-Oct-06Jianhua.HuangDraft 1
2、aNo Previous DocumentReviewersNamePositionDistributionCopy No.NameLocation1Library MasterProject Library2Project Manager34Note To Holders:If you receive an electronic copy of this document and print it out, please write your name on the equivalent of the cover page, for document control purposes.If
3、you receive a hard copy of this document, please write your name on the front cover, for document control purposes.ContentsDocument Controlii1.开发背景与基础21.1.读者基础要求21.2.用户和常用工具21.3.AOL开发框架21.4.多组织支持61.5.主要实例62.基于EBS的Forms开发过程82.1.Form文件类型82.2.Forms Builder安装82.3.下载Template相关文件122.4.一个简单的例子.创建数据库对象142.5
4、.一个简单的例子.从模版开始设计252.6.一个简单的例子.编写数据操作触发器322.7.一个简单的例子.上传&编译372.8.一个简单的例子.在EBS中注册运行373.参数、List、LOV、字段和记录控制、日历403.1.例子:Parameter参数403.2.例子:List值列表413.3.例子:LOV窗口式值列表423.4.例子:字段和记录控制443.5.例子:日历453.6.上传&编译&运行464.行指示符、主从块、滚动条、Stacked&Tab画布、多行文本474.1.例子:销售订单行474.2.例子:Master-Detail主从块494.3.例子:滚动条514.4.例子:Sta
5、cked画布524.5.画布小结574.6.例子:Tab画布594.7.例子:控制Tab画布624.8.例子:多行文本框635.Lov查询、块查询、Button655.1.查询原理655.2.例子:Lov查询655.3.例子:块查询675.4.例子:Button696.触发器层次关系、常用触发器编写规范706.1.理解层次关系706.2.触发器原理706.3.基于EBS模版开发的触发器716.4.一些触发器的理解727.描述性弹性域、Key弹性域、Key弹性域查询747.1.描述性弹性域开发步骤747.2.Key弹性域开发步骤778.Folder、JTF Grid808.1.Folder开发步
6、骤(从头开始)808.2.Folder问题858.3.Folder开发步骤(基于模版)858.4.JTF Grid开发步骤889.多语言开发929.1.国际化支持929.2.Form自身的多语言版本929.3.数据多语言开发步骤929.4.EBS启用新语言时的考虑10010.附件开发10210.1.关于附件10210.2.标准附件设置10211.Javabean10711.1.Form与Java10711.2.例子:Hello World10911.3.例子:执行PC本地命令11211.4.例子:读取PC文本文件11511.5.例子:CSV通用导入11812.Form个性化12212.1.Fo
7、rm个性化原理12212.2.例子:修改字段Prompt12312.3.例子:有条件显示消息12412.4.例子:调用数据库Package12512.5.例子:添加菜单12512.6.例子:打开功能12612.7.例子:执行查询12712.8.例子:Instance间迁移12813.技巧、常用代码13013.1.Form中的变量13013.2.初始值、格式掩码13013.3.消息处理13113.4.Special菜单13113.5.库存组织访问13113.6.MFG_ORGANIZATION_ID相关问题13213.7.常用内置过程13313.8.待续133附录:我开始学习Form时的笔记1,
8、仅供参考,未必100%正确134附录:我开始学习Form时的笔记2,仅供参考,未必100%正确13714.Open and Closed Issues for this Deliverable140Open Issues140Closed Issues140Open and Closed Issues for this Deliverable 139Forms开发指南File Ref: Fa89078a78941aea4c9d5f80894db0b6.pdf (v. DRAFT 1A )Company Confidential - For internal use only1. 开发背景与基础
9、1.1. 读者基础要求1、 有EBS的使用经验,尤其是Form的使用经验2、 创建客户化应用,参考深入浅出Oracle EBS之全模块设置详例第一章节3、 熟悉PL/SQL4、 熟悉Telnet和FTP工具,熟悉Windows常规操作5、 理解或开发过数据库应用系统6、 有Form开发经验则更佳1.2. 用户和常用工具1.2.1. 区分3类用户1、 OS用户:包括超级用户root,应用OS用户如applprod,数据库OS用户如oraprod。后两个用户具体由dba安装环境时创建,名字不定。2、 数据库用户:包括内置管理用户sys、system,EBS用户apps,EBS各模块用户applsy
10、s、gl、inv、po、ar、ap等等,EBS网关用户applsyspub。3、 EBS用户:也叫OA用户、应用用户、ERP用户,包括默认超级用户sysadmin,其他内置用户(参见深入浅出Oracle EBS之安全机制探索),企业实施、使用过程中创建的用户。1.2.2. Form开发使用的用户和工具Forms开发过程中需要具体使用如下3个用户。1、 应用OS用户:用telnet工具如SecureCRT登录服务器,获得各$XXX_TOP的具体路径、编译form和pll;用FTP如cuteftp连接服务器,下载必要文件、上传开发的form。2、 APPS:用PL/SQL Developer登录数
11、据库,创建各类数据库对象。3、 sysadmin或者拥有应用开发员和系统管理员职责的等价用户:注册form等各AOL对象、测试form。1.3. AOL开发框架1.3.1. 再说NavigatorForms自身菜单其实和传统菜单一样:然而EBS中基本摒弃Forms自身的菜单功能,而是专门开发了一个Navigator界面,采用树形结构显示菜单,每个菜单项对应一个Forms:这里的菜单是可随意组织的,因此非常灵活,而不用如传统菜单那样要么写死要么用代码控制。实际上,该方式完成了EBS最主要的安全性控制功能安全性,为什么这么说呢?1.3.2. AOL开发框架:EBS功能安全性基本原理这里仅说明For
12、ms部分,其他的可参考深入浅出Oracle EBS之安全机制探索。安全性最终都要落实到“用户”身上,即某一用户是否具有某一权限;功能安全性的核心就是某一用户是否具有运行某一个Forms的权限。为了方便管理,分类维护,EBS在“用户”和“Forms”之间加了几个层次。考察如下过程:1、 “用户”如sysadmin登录,系统验证其用户名/密码2、 如果OK,系统列出其拥有的所有角色,在EBS中叫“职责”(Responsibility),而每个职责,都对应一个定义好的“菜单”3、 当用户选择相应的职责进入“Navigator”后,显示的就是此菜单的内容4、 每个底层菜单项,还不是直接对应Forms,
13、而是先对应一个“功能”(Function),由功能再去对应一个具体的“Forms”。这里的好处是,在功能上可以定义参数比如查询条件、控制码等,然后传递给Forms,当然大部分情况是不定义参数,所以功能和Forms基本上是一一对应关系5、 用户点击菜单项,到定义Forms时指定的应用的TOP下,找到“fmx文件”执行之所以,反过来,如果我们开发好一个Forms,要在EBS中跑起来,完整的过程就是为该“Forms”定义“功能”,定义“菜单”调用该功能,定义“职责”使用该菜单,最后把职责分配给“用户”等一系列无Coding的定义工作。1.3.3. Template.fmb专业的软件系统,其操作方式、
14、界面风格总是非常统一,即便是后来收购集成进来的模块,经过调整优化后,风格也基本一致。那么如何才能做到统一呢?一是依赖于规范文档,大家老老实实照标准开发;二是采用更加直接有效的办法模版。Oracle EBS的Forms,基本上都是从Template.fmb开始,该模版预先定义了:1、 各种界面元素的属性集子类2、 常用的控件日历、进度条3、 一系列Form级触发器,统一处理各种未被明确处理的事件4、 丰富的PLL库函数,大大超越了Forms Builder内置的函数所以,我们基于EBS的开发,当然也是从Template.fmb开始1.3.4. EBS文件系统EBS文件系统,指其以怎样的目录结构组织各种可执行文件、命令文件、配置文件的。从整个EBS的角度看,分DB、