HAND-Oracle EBS Forms开发指南(入门)_第1页
HAND-Oracle EBS Forms开发指南(入门)_第2页
HAND-Oracle EBS Forms开发指南(入门)_第3页
HAND-Oracle EBS Forms开发指南(入门)_第4页
HAND-Oracle EBS Forms开发指南(入门)_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息技术最佳实践

ORACLE核心应用技术

E-BUSINESSSUITE

Forms开发指南

Author:黄建华

CreationDate:October16,2006

LastUpdated:March25,2023

DocumentRef:〈DocumentReferenceNumber>

Version:DRAFT1A

Approvals:

<Approver1>

<Approver2>

CopyNumber

DocumentControl

ChangeRecord

DateAuthorVersionChangeReference

16-Oct-<36Jianhua.HuangDraftlaNoPreviousDocument

Reviewers

NamePosition

Distribution

CopyNo.NameLocation

1LibraryMasterProjectLibrary

2ProjectManager

3

4

NoteToHolders:

Ifyoureceiveanelectroniccopyofthisdocumentandprintitout,pleasewriteyour

nameontheequivalentofthecoverpage,fordocumentcontrolpurposes.

Ifyoureceiveahardcopyofthisdocument,pleasewriteyournameonthefront

cover,fordocumentcontrolpurposes.

Contents

DocumentControlii

1.开发背景与基础2

1.1.读者基础要求2

1.2.用户和常用工具2

1.3.AOL开发框架2

1.4.多组织支持6

1.5.主要实例6

2.基于EBS的Forms开发过程8

2.1.Form文件类型8

2.2.FormsBuilder安装8

23.下我Template相关文件12

2.4.一个简单的例子.创建数据库对象14

2.5.一个简单的例子.从模版开始设计25

2.6.一个简单的例子.编写数据操作触发器32

2.7.一个简单的例子.上传&编译37

2.8.一个简单的例子.在EBS中注册运行37

3.参数、List、LOV、字段和记录控制、日历40

3.1.例子:Parameter参数40

32例子;List值列表41

3.3.例子:LOV窗口式值列表42

3.4.例子:字段和记录控制44

3.5.例子:日历45

3.6.上传&编译&运行46

4.行指示符、主.从块、滚动条、Stacked&Tab画布、多行文本47

4.1.例子:销售订单行47

4.2.例子:Master-Detail主从块49

4.3.例子:滚动条51

4.4.例子:Stacked画布52

4.5.画布小结57

4.6.例子:Tab画布59

4.7.例子:控制Tab画布62

4.8.例子:多行文本框63

5.Lov查询、块查询、Button65

5.1.查询原理65

5.2.例子:Lov查询65

5.3.例子:块查询67

5.4.例子:Button69

6.触发器层次关系、常用触发器编写规范70

6.1.理解层次关系70

6.2.触发器原理70

6.3.基于EBS模版开发的触发器71

6.4.一些触发器的理解72

7.描述性弹性域、Key弹性域、Key弹性域查询74

7.1.描述性弹性域开发步骤74

7.2.Key弹性域开发步骤77

附录:我开始学习Form时的笔记1,仅供参考,未必100%正确80

附录:我开始学习Form时的笔记2,仅供参考,未必100%正确83

8.OpenandClosedIssuesforthisDeliverable86

OpenIssues86

ClosedIssues86

1.开发背景与基础

1.1.读者基础要求

1、有EBS的使用经验,尤其是Form的使用经验

2、创建客户化应用,参考《深入浅HlOracleEBS之全模块设置详例》第一章节

3、熟悉PL/SQL

4、熟悉Telnet和FTP工具,热悉Windows常规操作

5、理解或开发过数据库应用系统

6、有Form开发经验则更佳

1.2.用户和常用工具

1.2.1.区分3类用户

1、OS用户:包括超级用户root,应用OS用户如applprod,数据库OS用户如

oraprodo后两个用户具体由dba安装环境时创嶷,名字不定。

2、数据库用户:包括内置管理用户sys、system,EBS用户apps,EBS各模块用户

applsys、gl、inv、po^ar、ap等等,EBS网关用户applsyspub。

3、EBS用户:也叫OA用户、应用用户、ERP用户,包括默认超级用户sysadmin,其

他内置用户(参见《深入浅出OracleEBS之安全机制探索》),企业实施、使用过

程中创建的用户。

1.2.2.Form开发使用的用户和工具

Forms开发过程中需要具体使用如下3个用户。

1、应用OS用户:用telnet工具如SecureCRT登录服务器,获得各$XXX_TOP的具体

路径、编译form和pH:用FTP如cuteftp连接服务器,下载必要文件、上传开发的

form。

2、APPS:用PL/SQLDeveloper登录数据库,创建各类数据库对象,

3、sysadmin或者拥有应用开发员和系统管理员职责的等价用户:注册form等各AOL

对象、测试form。

13AOL开发框架

1.3.1.再说Navigator

Forms自身菜单其实和传统菜单一样:

Si深入演出OmdeEB5之Forms要点荟萃.docMicrosoftWord

爻"®搁■a)视图W)到入(I)格式@)工耳(I)表格®雷口(X)帮助加AdobePDFAcrobatOnents

然而EBS中基本摒弃Forms自身的菜单功能,而是专门开发「一个Navigator界面,采

用树形结构显示菜单,每个菜单项对应一个Forms:

这里的菜单是可随意组织的,因此非常灵活,而不用如传统菜单那样要么写死要么用

代码控制。

实际上,该方式完成了EBS最主要的安全性控制一一功能安全性,为什么这么说呢?

1.3.2.AOL开发框架:EBS功能安全性基本原理

这里仅说明Forms部分,其他的可参考《深入浅出OracleEBS之安全机制探索》。

安全性最终都要落实到“用户”身上,即某一用户是否具有某一权限;功能安全性的

核心就是某一用户是否具有运行某一个Forms的权限。

为了方便管理,分类维护,EBS在“用户”和“Fonns”之间加了几个层次。考察如下

过程:

1、“用户”如sysadmin登录,系统验证其用户名/密码

2、如果OK,系统列出其拥有的所有角色,在EBS中叫“职责”(Responsibility),

而每个职责,都对应一个定义好的“菜单”

3、当用户选择相应的职责进入“Navigator”后,显示的就是此菜单的内容

4、每个底层菜单项,还不是直接对应Forms,而是先对应一个“功能”

(Function),由功能再去对应一个具体的“Forms”。这里的好处是,在功能上

可以定义参数比如查询条件、控制码等,然后传递给Forms,当然大部分情况是不

定义参数,所以功能和Forms基本上是一一对应关系

5、用户点击菜单项,到定义Forms时指定的应用的TOP下,找到“fmx文件”执行之

所以,反过来,如果我们开发好一个Forms,要在EBS中跑起来,完整的过程就是为该

“Forms”定义“功能”,定义“菜单”调用该功能,定义“职责”使用该菜单,最

后把职责分配给“用户”等一系列无Coding的定义工作。

1.3.3.Template.fmb

专业的软件系统,其操作方式、界面风格总是非常统一,即便是后来收购集成进来的

模块,经过调整优化后,风格也基本一致。那么如何才能做到统一呢?一是依赖于规

范文档,大家老老实实照标准开发;二是采用更加直接有效的办法一一模版。

OracleEBS的Forms,基本上都是从Template.fmb开始,该模版预先定义了:

1、各种界面元素的属性集一一子类

2、常用的控件一一日历、进度条

3、一系列Form级触发器,统一处理各种未被明确处理的事件

4、丰富的PLL库函数,大大超越了FormsBuilder内置的函数

所以,我们基于EBS的开发,当然也是从Template.fmb开始

1.3.4.EBS文件系统

EBS文件系统,指其以怎样的目录结构组织各种可执行文件、命令文件、配置文件

的。

从整个EBS的角度看,分DB、APP两部分、五个大目录:

DatabaseApplicationTier

ServerServers

IIi

DATADBAPPLORACOMM

Oracle9:OracleHomeOracle1AS80.6Common

databasefilesfortheApplicationsOracleHomesfiles,suchis

usedbyOracle%productfilesfortheOraclelog.output.

OracleRDBMSApplicationsHTML,and

ApplicationsTechnologyJavafiles

Stack

其中COMN目录(对应环境变量$。3>皿0?>1」0口)存放服务启停脚本和基于HTML

的应用文件(Java类、JSP页等):

COMMON.TOP

APPL(对应环境变:t$APPL_TOP)则存放配置文件、各种管理脚本、各模块应用代

码:

APPI.TOP

(otherprodtct

<CONTEXTJiAME>jenvdirectories)

adminauInd

APPS--CONTEXTNAME”m

】1JQ11.5.0B3.0

「I,

(otherproductsubdirectoriesandfiles)

APPL下的各个应用模块目录,则是本次介绍的主角了:

AU模块存放fmb、plkplx文件、各应用模块存放fmx文件,具体是:

$AU_TOiyresource:pll文件、plx文件

$AU_TOiyforms/US:英文fmb文件

$AU_TOiyformy<语言代码〉:特定语种(如ZHS)的fmb文件

$〈应用简称>_TOI7forms/US:各模块英文fmx文件录

$<应用简称>」(^^00«5/〈语言代码〉:特定语种(如ZHS)fmb文件

上面(应用简称〉,如INV、GL、AP、AR等等,在SystemAdministrator职责下的

Application/Register中定义。

通常各个企业都会创建一个客户化应用来管理二次开发的所有代码和设置,比如

CUX、HAND等,下面以CUX(客户化的意思)为例。

总之我们需要的模版及相关文件在AL_TOP下:我们开发的fmb文件呢,也应根据上

述规则传至临AU_TOP/forms的相关语言路径卜,不过为管理、备份方便,实际开发

中可能故意违反EBS的规则,与fmx一起放在$(21^」€^/£0门1^的相关语言路径下。

详情川参考:Arone的《lliConcepts.ppt》或Oracle的《OracleApplications

Concepts))PDF。

1.4.多组织支持

1.4.1.说明

Oracle的多组织数据屏蔽,设计要点如下:

1、核心层次:业务组BG-账套SOB-法人实体LE-经营单位OU->库存组织INV,

这些层次统称为组织,可通过视图org_organization_dcfinitions直看关系。

2、数据级别:表中设计有组织ID来解敝:小同模块因为针对的层次小同,其组织1D

含义不同,比如HR的表用Business_Group」d,GL的表用Sct_Of_Book」d,

AR/AP/PO/OM等表用经营单位Orgjd,INV/MRP/WIP/BOM等模块用库存

组织Organization」d。

3、程序级别:用户登录、选择职责后,其所能操作的业务组、账套、法人实体、经

营单位就确定了,这个是通过相关的Profile来设置的:当进入制造和库存相关模

块,需要通过ChangeOrganization菜单来获得可操作的库存组织。Oracle标准的

Package、Form、Java等程序,都是严格根据当前用户的参数来过滤各模块表数

据。

1.5.主要实例

本文档主要围绕开发销售订单来介绍Form开发过程中涉及的关键技术点。

1.5.1.销售订单

销售厂单最核心的内容为:某客户,在某天,以何价格,购买多少数量的哪些商品。

一张销售订单,客户是一定的,俏售员可能有多个,这里假定只记录主销售员,所以

这两个信息构成销售订单的“头信息”:一次订单,客尸通常会同时购买多种商品,

并且未必是同一天要货,这样需求日期、商品、数量、价格构成销售订单的“行信

息”。

1.5.2.开发需求分析

销售订单还需要记录其它重要的内容,这个可直接参照EBS的“SalesOrder”,为学

习方便,这里仅加入如下不完整、不严谨的信息。

头信息:订单编号、订单日期、内销还是外销、所采用的价目表、总价、币别、订单

状态;非''录入"的不能删除,“部分履行”或“完全履行”的不能修改。

订单状态:录入、确定、部分履行、完全履行。

行信息:发货日期、收款日期:如果已发货,商品和数量不能修改,记录不能删除:

如果已收款,整条记录都不能修改、不能删除。

全部行都已发货、己收款则订单状态为“完全履行”,部分发货或部分收款,则订单

状态为“部分履行”。

订单查询:需要提供按订单号、订单日期、客户、销售员、销售类型、商品、是否发

货、是否收款等条件进行组合杳询,杳询表现方式分为Folder形式和Grid形式。

1.5.3.其它说明

本文档使用“SCF”客户化应用做开发,不过数据库对象仍然沿用“CUX”前缀:没

有建立专门的索引表空间。

2.基于EBS的Forms开发过程

2.1.Form文件类型

2.1.1.Form文件类型

.fmb:源文件,目前是二进制格式,也可以转成早期版本的ASCH格式

.fmx:可执行文件,类似VB的.exe文件,其也需要在FormsRuntime环境中运行

.pH:库函数源文件,类似所有开发语言的库函数,如VC的.cpp文件

.plx:库函数可执行文件

调用关系:fmb文件可以引用其他fmb文件、pll文件,pH文件可以进一步引用其他pll

文件,引用是可以嵌套的。所以要成功打开一个forms源文件,必须保证其直接引用、

间接引用的fmb、pH文件均存在。

怎样才叫“存在”呢?类似各种语言如C的IncludePath或Java的ClassPath,Formst±l

有一个参数一一注册表FORMS60_PATH来指示引用的路径,只要需要的文件在该路

径下即可。

22FormsBuilder安装

22L版本

尽管Oracle的Developer工具已经升级到9i、10g,但EBS中使用的FormsServer和

FormsBuilder版本还是6i,今后的开发将逐步转移到Java,Oracle将来也不会在EBS中

使用高于6i的Forms。

可以从http:///EPD/Search/getformI'载,其包含在EBSfor

Wind。ws版本的下载列表中。

2.2.2.OracleHome

OracleHome:Oracle产品的根目录及其名称;不同产品可以装到不同的目录,拥有

各自的OracleHome:通过安装目录下的bin\oracle.key来指示使用哪个注册表项。

DefaultHome:指所有OracleHome中,哪个是Default,其名字则未必叫Default。

Developer6i的安装不够友好,必须安装到DefaultHome,为避免手工修改注册表的

烦恼,最好先安装6i,再安装其他Oracle产品。

2.2.3.基本安装过程,请采用Custom

1、运行Setup,选择安装目录和语言,建议采用English:

2、选择OracleFormsDeveloper:

Tips:待装完FormsDeveloper,需要重新运行Setup来安装ReportsDeveloper,至于

两个Server,基于EBS的开发不需要,装了也用不了。

3、选择安装类型,请采用Custom:

InstallationOptionsxj

Whattypeofinstallationwouldyouliketo

perform?

「Typical

<•Custom^

帮助国)返回以确定Q)取消©)

4、选择安装FormsBuilder,将自动分析并安装需要的相关组件和文件:

5SoftwareAssetManagerxj

Arailabl*Prednet&atC:\forasr•p0rtsPr«dart£tat

AssistftntComonFil«s1010.0

HUtiba”Tables6.0800

♦GUICowonPil«s605.35Oc

N^vij&3or60.3.00

JavtCTfl)RuntineEnvironntnt1.1,715.1

JDKAppletViever31。

LoaiBalancerCl>ent6.0610

LoalBalancerServer6.0.61.0

■OrazleFonts6.0811.3

FontsAPI1.3

_______Fom二AppletJarFile」1.3

FormsCuaCwdSoundFilas6.0.811.4

FornzDatabg。Tabloi6.0.8.11.3

FormsJftVftCLASSSupportFil«s608110

FormsSuppl«n«nt608117

Forns6.08H3

Fom备S*rv4r8113

Fom*Y-bCGICirtri<U<608.11.3

♦Ora:leFon>s"Documentation60.8114

0««.lePvi5nde«5eMvlesC.0.011.4

♦Or«:leGraphics6.0.810.1

Ora:leInstaller3

OrazleJimtiator1。

SpaceRequired

Spac«r«quiradis:5Nin1ProductsAvailobi«Spac。784W

SelectedProducts

For®:Builder:FormsRuntineallow二youtorunadvancedfoms-basedApplicationscreatedwithth*FornsDesigner.

<1I2J

HipIViLog..|Options...IR«stor«IconsIExit

如果系统足够“干净”,通常•路OK就能顺利安装;点击Exit退出。

5、请从头开始,安装ReportsDeveloper:

夕JftlabI-H凶

ATailablePredvctsatC:\£«rasre>orIsProductsInstalledatD:\orant

♦OrslcExpressConnectionEditor6.20.01+GUIContionF:14E60.535Oc

HJr»eleGraphics60.8101Infori»atior»H&uigNor6030.0

0r»d.eInstaller3.3.1.2.4JDKAppletViewer1.1.7.31o

♦OroclaKet8Products8.060.0-1181195+0rftclaFortts6.0.8113

OracleOCXPack60.000♦OracleForr»s-Docwentatioo608114

Or»=l©ODBCDriverforRdb2.10.13.0*OracleGraphics6.0.810.1

♦Org】。Op«nClientAdapterforODBC605.290OracleNan«dPipesProtocolAdapt”80.60O-!18!

♦VreeleUpenLnteri&cesb.U.3.UUUracleWeWUiientb.U6U.U-1W11«>

*Or必QProcedureBuilder6.0.811.0449OracleQueryBuilder6.0.5.32.0

♦OreeleProjectBuilder60572Or^cloTCP/IPProtocolAdapter80600T181195

♦OracleQueryBuilder6.OS.32.0OracleTraceCollectionServices80.6.00-991006

QueryBuilderComponent6.0.5.32.0

RtQuirtdSupportFiles80.600-1154153

ReportsCueCardSoundPiles6.0.8.11.4SystenSupportFiles6.0.8.00

ReportsDatobaxTftbl«z6.0.811.3+TOO156.0.532Oj

ReportsLtnguM/Suppl60.8117

ReportsRuntine1.3

。—・—一▲一<*・­.《.eno••。

2.2.4.打Patch,请采用Typical

上述安装的Developer6i的版本是6.081L3,在编辑比较复杂的Form时会报错退出,

需要打Patch,我打的是6.0825。

1、运行Setup,选择安装目录和语言,默认即可。

2、选择安装类型,请采用Typical:

通常•路OK就能顺利安装。

2.2.5.配置TNSNAME

从DBA或他人索要SQLNET.ORA和TNSNAMES.ORA,直接覆盖到安装目录的

NET8D\ADMIN下。

SQLNET.ORA是OracleSQL*Nct协议配置文件,样例如下:

SQLNET.AUTHENTICAT1ON_SERVICES=NONE

NAMES.DIRECTORY_PATH=(TNS7AMES,ONAMES,HOSTNAME)

SQLNET.EXPIRE_TIME=1

TNSNAMES.ORA是OracleSQL*Net数据库服务解析文件,样例如下:

PROD=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=tcp)(HOST=HUAJHUA.)(PORT=1521))

(CONNECT_DATA=

(SERVICE_NAME=PROD)

(INSTANCE_NAME=PROD)

)

)

2.2.6.配置FORMS60PATH

基于EBS的Forms开发,需要从服务器上下载必要的fmb和pH文件到本地,比如两类文

件都放在d:\oracle\resource,那么需要添加注册表的字符串值FORMS60_PATH,类

似C语言的IncludeDirectory或者Java的ClassPath:

H0ORACLE■anti

0CJALL_HOMES

EE-dIDO

(JHOMEDant\

fc)CJORACLE_HOMES

CJORACLEO

GBQPolicies

RogramGroups

(•ICJratDVD

ant

fflQRealNetworks

L»:Wraht\

(SCJRkyX

也1560REG_EXPAND_SZD:\oraht\

(i)Cj邛iKjmberyw©VG56O

REG_EXPAND_SZD:\oraht\

CjSecure

ffloSMesoft当FORMS60_PATHREGJZ

2.27配置NLSLANG

修改注册表:LocalMachine/Software/Oracle/NLS_LANG

改为AMERICAN_AMERICA.ZHS16GBK,这样开发IDE使用英文,字符集可满足英

文、简体中文、繁体中文的需要。

为NET80REG.EXPAND.SZD:\orantVJET8O

TCjIHerVideo

®NLS_LANGAMERICAN_AMER!CA.WE8ISO8859PI

+CJLenovoREG_EXRAND_5Z

WJNLSRTL33REG_EXPAND_5ZD:\orantVlSRTL33

由OMacromedia

iyocLeo

I__|NacserlenREG-EXPAND.SZD:\orant\GRAPH60

至]OIN

3CJMAXSOFT-OCRONREG.EXPANO.SZD:\orant\OIN

由QMDC回OIN60REGEXPANDSZD:\orant\OIN60

4CJM>crosoft5RTL33\DATA

王I__|MorticeKernSystemsWindowsNT

EOMozlaPlugins

由CJODBCiOME

百日ORACLE除

0_JALL_HOMESNIT

,□HOMEOReports6i\devp6i\INSTALL

H_JORACLE.HOMES

N

+CJPolices

FRACE8O

LJFro夕amGroups

现PISQL80REG.EXPAND.SZD:\orant\PLSQL80

用LJratDVD

现PRO80REGEXPANDSZD:\orant\PRO60

习惯上也同时修改其他子分支下的NLSJLANG。

2.3.下载Template相关文件

用FTF以应用操作系统用户登录EBS服务费,进入到$AU_TOP目录下。

2.3.1.下载TEMPLATE.fmb

从$人111(^/侬1^/135下载TEMPLATE.fmb到FORMS60_PATH对应的目录下。

2.3.2.启动FormBuilder

通过开始菜单启动:

福程序(中ThnkVantage

-启动

e文档(3目

u3游戕

o二

-

s口,设置⑸远程协助

s眼

gWindowsLiveMessenger

J

O户搜索(C)OracleForms6i的FormBuilder

QdZ#才。

XOracleForms&Reports6i歌rmCompiler

切帮助和支持(由0国反篁Wqant'BirTI

SOracleForms&Reports61Doc

M

O0

P口运行…OracleOlapCbent2.2

U®0

-OracleReports6i

关机/“、…V

去掉Displayatstartup,点击Cancel:

2.3.3.打开TEMPLATE.fmb及报错分析

N:点击Open,打开TEMPLATE.fmb

本地仅有TEMPLATE,fmb,将报fmb文件找不到SourceModule后就是form文件

名:

Forms凶

FRM-18108:Failedtoloadthefollowingobjects.

SourceModule:APPSTAND

SourceObject:STANDARD_PC_AND_VA

SourceModule:APPSTAND

QSourceObject:5TANDARD_TOOLBAR

SourceModule:APPSTAND

SourceObject:STANDARD_CALENDAR

.|Help|

点击。K,再报pH文件找不到一一PL/SQLlibrary后面就是就是pH文件名:

Forms

FRM-19102:CannotattachPL/SQLlibraryAPPCORE.Thislibrary.

attachmentwillbelostiFthemoduleissave

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论