




已阅读5页,还剩115页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Doc Ref: Oracle ERP最佳实践十二月 11, 2014Oracle ERP最佳实践E-BUSINESS SUITE ORACLE核心应用技术OAF开发参考Author:赵振坤Creation Date:April 26, 2013Last Updated:十二月 11, 2014Document Ref: Version:1.0Approvals:Copy Number_Document ControlChange Record3DateAuthorVersionChange ReferenceReviewersNamePositionDistributionCopy No.NameLocation1234Note 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 you receive a hard copy of this document, please write your name on the front cover, for document control purposes.ContentsOpen and Closed Issues for this Deliverable 118ORACLE核心应用技术OAF开发参考F476cb274a6cf92578ca19a27cb5b62a.pdf (v. 1.0 )Company Confidential For internal use onlyDocument Controlii1.深入浅出OAF 入门篇21.1.OAF简介21.2.环境搭建51.3.HelloWorld81.4.一个简单的查询171.5.应用发布261.6.编码规范292.深入浅出OAF -基础篇302.1.实现增删改302.2.数据校验522.3.常用布局552.4.常用组件682.5.常用JAVA代码792.6.使用CSS和JS813.深入浅出OAF -中级篇823.1.纯代码添加组件823.2.PPR的使用823.3.OAF和Form相互调用853.4.OAF个性化874.深入浅出OAF 高级篇934.1.探究MVC934.2.实体对象974.3.视图对象1024.4.BC4J对象缓存1064.5.解析OAF页面元数据结构1095.Reference1146.Open and Closed Issues for this Deliverable115Open Issues115Closed Issues1151. 深入浅出OAF 入门篇1.1. OAF简介1.1.1. 概述1) Oracle Application Framework(OA Framework)是Oracle提供的基于HTML应用的开发和发布平台2) OA Framework由一系列的中间层服务和Oracle JDeveloper的扩展(Oracle Applications Extension, OA Extension)组成3) OAF使用Oracle Business Components for JAVA(BC4J)框架作为其模型部分,来实现业务逻辑和数据操作。4) OAF使用元数据库支持的(整个页面由XML来定义,定义存储于Oracle数据库中)UIX框架作为其视图部分,将BC4J中的数据展示给用户。OAF页面是通过JDeveloper工具定义XML结构,一般情况下不需要编程实现。1.1.2. 特征1) 良好的用户体验例如页面局部刷新、翻页、LOV(值列表)选择、统一的CSS风格。2) 企业级可靠性给多数用户提供次秒级响应时间,页面第一次载入的时间比较长,之后一些公共信息(例如用户信息)会被中间层缓存,从而实现快速响应。3) 提高开发者效率OAF基于Model-View-Controller (MVC) 的架构设计,使用OAF设计的用户界面以符合业界标准的XML格式存在,借助OAF开发人员可以方便扩展Oracle E-Business Suite。4) 开放标准OAF基于J2EE,很多特征都符合业界标准(例如:XML, HTML, Java, JSP, SQL 、 Web Services)。1.1.3. 框架结构OA Framework是基于工业标准J2EE MVC设计模式的1) OA Framework 模型通过BC4J(Oracle Business Components for Java) 来实现,是一个管理持久性数据和实现业务逻辑的框架,主要包括以下对象:实体对象、实体关联对象、视图对象、视图链接对象、应用模块对象、事务对象等。2) OA Framework 视图通过UIX(UI XML)实现,以XML来描述页面。3) OA Framework 控制器通过Java类来实现,简单的页面流程直接使用控制器对象实现,实现对Request/Response逻辑处理;而复杂的则使用Oracle Workflow来实现。1.1.4. 版本查看EBS中有关OAF组件版本的方法如下1) 登录进去EBS环境2) 在页面左下角,有“关于此页”的链接,点击进入,(如果没有此链接,参考本文档3.4.1)3) 点击“技术组件”,就会看到有关OAF组件版本的基本信息。第一个便是OAF版本信息,它决定了开发工具的版本。1.1.5. OAF与ADF在开发OAF开始前,明确一个问题。有些部分同学会搞不懂OAF、ADF有什么联系?1) ADF:Application Developer Framework.可以任何Java环境中运行,属于Oracle中间件。2) OAF:Oracle Application Framework.只能在EBS环境中运行,属于Oracle EBS。两者都是基于MVC原理的框架3) 二者本质上并没有什么区别。我觉得两者关系有点类似于Oracle Form与Oracle EBS-Form。当然ADF的技术范围比较广。1.1.6. 学习基础1) SQL、PL/SQL基础呵呵,不解释。2) JAVA基础OAF技术采用的是JAVA开发语言,所以在您学习OAF之前,必须先掌握JAVA开发语言的基础知识3) J2EE MVC基础(非必须)MVC是一个基于组件的设计模式,M代表的是Module层,用于执行应用逻辑处理;V代表的是View层,是应用功能的用户操作界面;C代表的是Control层,用于处理用户界面操作和业务流转。OAF是基于工业标准J2EE MVC设计模式的,如果有J2EE MVC的基础,学习起来会很好理解OAF的结构和对象。4) XML基础(非必须)OAF中大量使用XML来完成配置,包括页面结构、lov、AM server、VO、EO等等,但是XML结构非常简单,OAF中也不用手动编写,看懂即可。1.2. 环境搭建1.2.1. 安装JDeveloper1) 下载p9879989_R12_GENERIC.zip(可以从metalink下载,搜索“416708.1”即可找到相关下载界面,要根据不同版本的EBS环境,选择不同版本的JDeveloper开发工具)。2) 将p9879989_R12_GENERIC.zip解压到一个目录下,如D:(注意:解压的目录不能含有空格、中文等)jdevbin中是jdeveloper10g with OA Extension的程序文件和OAF的类库jdevdoc中存放Javadoc手册和OAF培训文档jdevhome存放OAF用户文件和虚拟的OAF环境3) 在Windows系统的环境变量中配置JDEV_USER_HOME,值为:D:p9879989_R12_GENERICjdevhomejdev4) JDeveloper的执行程序为 jdevbinjdevbinjdevw.exe,可将其建立桌面快捷方式5) 初次打开JDeveloper,会有“是否从之前版本移植”的提示,选否6) 打开之后,如果是win7系统,会发现win7透明效果消失,有些难看,可以修改配置文件jdevbinjdevbinjdev.conf,将“# AddVMOption -Dsun.java2d.noddraw=true”注释打开即可。1.2.2. 获取了DBC文件1) 登陆应用层的$FND_SECURE目录,下载*.dbc文件至jdevhomejdevdbc_filessecure2) 打开dbc文件,找到APPS_JDBC_URL,可看到含有很多“”,把所以的“”都去掉(注:该操作只针对APPS_JDBC_URL属性)1.2.3. 配置数据库连接1) 打开JDeveloper,在左侧导航栏有Applications和Connections,Applications是项目目录,Connections是数据库目录,进入Connections2) 右键DatabaseCreate Data Connection,可以为此Connection起个名字,我用默认的DBConnection1,Connection Type选默认值Oracle(JDBC),下一步3) 输入链接数据库的用户名和密码(一般情况用户名选apps),Role为Normal,选择Deploy Password,可记住密码4) 输入连接数据库的信息5) 进行测试,返回success则说明连接成功1.3. HelloWorld1.3.1. 创建OA Project1) 在JDeveloper左侧导航栏进入Applications2) 右键ApplicationsNew OA Workspace,为Application起个名字,其他默认3) 随之会跳出新建OA Project的对话框,为Project起个名字,下一步4) 勾选Use Repository for Design Time,Connection选择刚刚创建的DBConnection1,下一步5) DBC File Name选择jdevhomejdevdbc_filessecure目录下的dbc文件,User Name和Password是登录EBS使用的用户名和密码,Application Short Name和Responsibility Key是EBS环境定义职责时的应用产品简称和责任关键字,下一步,完成。1.3.2. 设置项目1) 选中刚创建的项目,ToolsProject Propertise,进入设置界面2) 在左侧,打开Oracle Applications,下边有三个子目录,Database Connections和Runtime Connections已在上一步创建项目时进行了设置,打开Run Option,一般情况下,开启开发测试模式和OA诊断来帮助开发人员检查输出,进行调试。选择:OADeveloperMode and OADiagnostic,确定1.3.3. 创建页面至此,进入OAF真正的主题1) 右键项目,选New,选择OA ComponentPage,确定2) Name输入:HelloWorldPG ,Package输入:mycompany.oracle.apps.cux.hello.webui,一般Package输入格式为:.oracle.apps.webui,其中应用简称依据项目而定,如ar、ap、eam,这里用cux代替3) 点击HelloWorldPG.xml,下边出现Structure导航,这是该页面的结构,可以看到含有一个region1,单击,JDeveloper右侧出现Property Inspector导航,这是它对应的属性,可以进行修改4) 右键hello,点击New Application Module5) Package输入mycompany.oracle.apps.cux.hello.server,Name输入HelloAM,下一步,保持默认值,到完成6) 修改region1属性属性值说明Window TitleHelloWorld浏览器窗口名称TitleHello页面标题AM Definationmycompany.oracle.apps.cux.hello.server.HelloAM7) 右键HelloWorldPG,run,运行页面可看到运行结果至此,初步运行成功!1.3.4. 几个问题1) 关于dbc文件,从服务器下载后,需要进行修改,已在1.2.2进行此过程。此外,如果运行时浏览器报“找不到服务器”这样的错误,应查看dbc文件,看DB_HOST和DB_PORT是否正确,能否ping通,以及APPS_JDBC_URL是否正确。2) 运行时出现“检测到意外的 URL 参数,它将被忽略”错误,页面回到EBS 登录主页,如下图进行如下设置,在JDeveloper中,ToolsEmbedded OC4J Server Preferences,左侧选择Startup,选择Default Local IP Address,重新运行3) JDeveloper默认打开系统默认浏览器,如果有浏览器兼容问题,可以在JDeveloper中手动设置浏览器,在目录Tools Preferences,左侧选择Web Browser and Proxy,手动设置浏览器位置即可1.3.5. 添加item1) 我们要在页面添加一个输入框和一个按钮,方法是在HelloWorldPG的regin1下添加两个item,分别设置属性属性值说明IDHelloNameItem StylemessageTextInputPromptPlease Input your name:属性值说明IDGoBtnItem StylesubmitButton提交按钮PromptGO按钮显示2) 运行HelloWorldPG,可以看到运行结果,但是点击GO,没有任何反应1.3.6. 添加CO1) 右键region1,点击Set New Controller2) Package Name输入mycompany.oracle.apps.cux.hello.webui,Class Name输入HelloWorldCO,一般来说,CO和Page名字设置相同,后缀固定,为CO、PG,之后还有EO、VO等等。3) 可以看到JDeveloper生成了一个HelloWorldCO的java文件,这个类似于web里的servelet,CO里默认有两个方法,processRequest和processFormRequest,processRequest在页面加载时自动调用,processFormRequest是在页面提交时调用。4) 我们在processFormRequest方法里加上如下代码(注:不要去掉super方法)if (pageContext.getParameter(GoBtn) != null) /检测GO按钮被点击 String userName = pageContext.getParameter(HelloName);/获得name String message = Hello, + userName + ! ; System.out.println(message);/输出5) 再次运行HelloWorldPG,输入一个name,点击GO, 在JDeveloper后台可看到输出,如下图至此,HelloWorld结束,相信大家对OAF有了初步了解。1.4. 一个简单的查询1.4.1. 创建组件1) 创建AM,名字为SearchAM,路径为mycompany.oracle.apps.cux.search.server2) 创建VO(View Object),名字为EmployeeVO,路径为mycompany.oracle.apps.cux.search.server,其它保持默认值,一直下一步,到第5步,SQL Statement,输入如下SQLSELECT ppf.person_id,ppf.date_of_birth,ppf.employee_number,ppf.full_nameFROM per_people_f ppf WHERE SYSDATE BETWEEN ppf.effective_start_date AND ppf.effective_end_date然后下一步,选择数据库连接DBConnection1,确定,然后下一步到结束。3) 双击AM,弹出AM设置对话框,将刚创建EmployeeVO加入到SearchAM中,点击确定。4) 创建PG,名字为SimpleSearchPG,路径为mycompany.oracle.apps.cux.search.webui5) 修改SimpleSearchPG中的region1属性属性值说明IDPageLayoutRNWindow Title简单查询Title员工AM Definationmycompany.oracle.apps.cux.search.server.SearchAM1.4.2. 基于结果的查询1) 在PageLayoutRN下创建Region,修改属性属性值说明IDQueryRNRegion StylequeryConstruction ModeresultsBasedSearch基于结果的查询Include Simple PanelTrue简单搜索Include Views PanelTrueInclude Advanced PanelTrue高级搜索2) 接下来创建员工列表Region右键QueryRN,New Region Using Wizard,AM选择mycompany.oracle.apps.cux.search.server.SearchAM,在 Available View Objects 列表中选择视图对象实例 EmployeeVO,下一步,在 Region Properties页中设置 Region ID 的值为 ResultsTable,Region Style 的值为 table,下一步,在 View Attributes 页中,选择 Available View Attributes 列表中的所有属性到 Selected View Attributes 列表中下一步,在 Region Items 页中,设置如下的属性值IDPromptStyleData TypePersonIdPersonIdmessageStyledTextNUMBERDateOfBirthBirthdaymessageStyledTextDATEEmployeeNumberNumbermessageStyledTextVARCHAR2FullNameNamemessageStyledTextVARCHAR2下一步,完成。3) 修改ResultsTable属性属性值说明IDResultsTableRegion StyletableAM Definition必须为空,如果有值则删除Additional Text员工列表Records Displayed10每页显示数量Width100%4) 分别修改PersonId、EmployeeNumber属性值属性值说明IDPersonIdSearch Allowed True可搜索Selective Search Criteria True搜索时,如果无任何条件,这个item是必输可选项之一属性值说明IDEmployeeNumberSearch Allowed TrueSelective Search Criteria True5) 运行,并且可以从数据库查出正确数据,表明成功。1.4.3. 使用自动客户化查询条件由于查询条件是基于结果的,但是我们经常查询的条件有范围,还有通过LOV选择,这种简单的查询已不能满足,接下来我们使用“自动客户化查询条件”模式。1) 首先修改QueryRN属性,调整为“自动客户化查询”模式属性值说明IDQueryRNRegion StylequeryConstruction ModeautoCustomizationCriteria自动客户化查询Include Simple PanelTrueInclude Views PanelFalseInclude Advanced PanelFalse2) 增加一个简单的查询区域右键QueryRN , New simpleSearchPanel ,一个header区域(region2)和messageComponentLayout 区域(region1)自动创建改变region2的ID为SimpleSearchHdr改变region1的ID为EmployeeSimpleSearch3) 创建PersonId查询项目右键EmployeeSimpleSearch,New messageTextInput,并改变属性属性值说明IDSearchPersonIdRegion StylemessageTextInput文本输入Data TypeNUMBER与数据库一致PromptPerson Id4) 创建EmployeeNumber查询项目右键EmployeeSimpleSearch,New messageTextInput,并改变属性属性值说明IDSearchEmployeeNumberRegion StylemessageTextInput文本输入Data TypeVARCHAR2与数据库一致PromptEmployee Number5) 建立查询条件和查询结果表之间的映射右键Query Components 文件夹,New simpleSearchMappings,选择 simpleSearchMappings 下的默认映射,并设置其属性为下列值:属性值说明IDPersonIdMapSearch ItemSearchPersonIdResult ItemPersonId右键simpleSearchMappings,New queryCriteriaMap,并设置属性属性值说明IDEmployeeNumberMapSearch ItemSearchEmployeeNumberResult ItemEmployeeNumber6) 运行SimpleSearchPG页面1.4.4. 添加LOV接下来,为Person Id添加LOV。在LOV中,Person Id的值来自fnd_user表的employee_id字段1) 首先创建LOV所需的VO。名字为EmployeeIdVO,路径为mycompany.oracle.apps.cux.search.lov.server,其它保持默认值,一直下一步,到第5步,SQL Statement,输入如下SQLSELECT fu.user_name,fu.employee_idFROM fnd_user fuWHERE fu.employee_id IS NOT NULL2) 双击SearchAM,弹出AM设置对话框,将刚创建EmployeeIDVO加入到SearchAM中,点击确定。3) 新建一个Region,作为LOV的弹出页面名字为EmployeeIdRN,路径为mycompany.oracle.apps.cux.search.lov.webui,Style为listOfValues。新建后,设置EmployeeIdRN的属性。属性值说明IDEmployeeIdRNScopePublicAdvanced Search AllowedTrue右键EmployeeIdRN,New table Using WizardAM选SearchAM,VO选EmployeeIdVO下一步,在 Region Properties页中设置 Region ID 的值为 EmployeeIdVO,Region Style 的值为 table,下一步,在 View Attributes 页中,选择 Available View Attributes 列表中的所有属性到 Selected View Attributes 列表中下一步,在 Region Items 页中,设置如下的属性值IDPromptStyleData TypeUserNameUser NamemessageStyledTextVARCHAR2EmployeeIdEmployee IdmessageStyledTextNUMBER下一步,完成。在结构窗口中选择 UserName和EmployeeId项目,设置他们的 Search Allowed 和 Selective Search Criteria 的属性值为 True 。第一个属性是让用户在 LOV 的值中进行查询选择;第二个属性保证了用户至少输入一个查询条件,防止盲目的查询。4) 设置 SearchPersonId 能够使用 LOV设置SearchPersonId的属性如下属性值说明IDSearchPersonIdItem StylemessageLovInputExternal LOV/mycompany/oracle/apps/cux/search/lov/webui/EmployeeIdRNDisable ValidationFalse值校验5) 此时在SearchPersonId下有个lovMappings,这是lov取到值后映射到界面的设置,在它下可添加lovMap,默认已经有一个,设置其属性属性值说明IDPersonIdLovMapLOV Region ItemEmployeeIdLOV的值Return ItemSearchPersonId返回到的itemCriteria ItemSearchPersonId6) 运行SimpleSearchPG页面(注:浏览器可能会阻止弹出页面,会有提示,允许弹出即可)1.5. 应用发布1.5.1. 上传进入jdevhomejdevmyclasses mycompanyoracleapps 目录。将整个cux目录上传到EBS应用层的$JAVA_TOPmycompanyoracleapps目录,服务器没有该目录则手动创建。1.5.2. 编译需要编译的是页面,有两个,SimpleSearchPG和EmployeeIdRN,编译命令如下:java oracle.jrad.tools.xml.importer.XMLImporter $JAVA_TOP/mycompany/oracle/apps/cux/search/webui/SimpleSearchPG.xml -rootdir $JAVA_TOP -username apps -password apps -dbconnection (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=syfdemo)(PORT=1521)(CONNECT_DATA=(SID=VIS)java oracle.jrad.tools.xml.importer.XMLImporter $JAVA_TOP/mycompany/oracle/apps/cux/search/lov/webui/EmployeeIdRN.xml -rootdir $JAVA_TOP -username apps -password apps -dbconnection (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=syfdemo)(PORT=1521)(CONNECT_DATA=(SID=VIS)导入成功即可看到:1.5.3. 挂菜单进入EBS环境,应用开发员应用产品功能,添加功能属性值说明功能CUXEMP用户功能名CUX_员工查询类型SSWA jsp 函数HTML 调用OA.jsp?page=/mycompany/oracle/apps/cux/search/webui/SimpleSearchPG进入:应用开发员应用产品菜单,新建菜单CUX_OAF,添加功能CUX_员工查询,保存。将CUX_OAF作为子菜单添加到CUX_客户化开发的主菜单即可。1.5.4. 重启oacore因为OAF的运行机制是应用启动时,会把所需的OAF界面、class、js等web元素全部加载到缓存中,所以OAF不像FORM那样,编译后即可显示结果。关闭服务器cd $ADMIN_SCRIPTS_HOMEadoacorectl.sh stop 开启服务器cd $ADMIN_SCRIPTS_HOMEadoacorectl.sh start1.5.5. 查看结果正确运行,发布成功!1.6. 编码规范1.6.1. OAF编码规范OAF开发所有包和命名规则(类、方法和UI 组件)都应遵循了OAF文件标准。主要有:1) Oracle Browser Look-and-Feel (BLAF) UI 准则这是Oracle 公司为基于浏览器应用所设计的UI 标准2) Oracle Applications Java 编码标准在Oracle 产品中编写Java代码的标准和准则3) OAF 模型编码标准使用在MVC应用中的OAF模型编码标准4) OAF 视图编码标准使用在MVC应用中的OAF视图编码标准5) OAF 控制器编码标准使用在MVC应用中的OAF控制器编码标准1.6.2. JSR2271) JSR:Java Specification Requests,是经Java社区组织(JCP)投票通过的Java规范。2) JCP官方主页:/en/home/index。3) Oracle号称ADF(或者OAF)是JSR227的实现。那JSR227到底规范了什么呢?呵呵!原来JSR227是Oracle发起的。很有意思的是IBM、BEA投了反对票(那时BEA还未被Oracle收购!)。2. 深入浅出OAF -基础篇2.1. 实现增删改2.1.1. 创建客户化表创建两张客户化表,部门和员工,为头行结构。1) 部门表CREATE TABLE CUX.CUX_OAF_TEST_DEPARTMENT( DEPARTMENT_ID NUMBER NOT NULL, DEPARTMENT_NUMBER VARCHAR2(100) NOT NULL, DEPARTMENT_NAME VARCHAR2(100) NOT NULL, DEPARTMENT_DESC VARCHAR2(240), CREATION_DATE DATE DEFAULT SYSDATE NOT NULL, CREATED_BY NUMBER DEFAULT -1 NOT NULL, LAST_UPDATED_BY NUMBER DEFAULT -1 NOT NULL, LAST_UPDATE_DATE DATE DEFAULT SYSDATE NOT NULL, LAST_UPDATE_LOGIN NUMBER, ATTRIBUTE_CATEGORY VARCHAR2(30), ATTRIBUTE1 VARCHAR2(240), ATTRIBUTE2 VARCHAR2(240), ATTRIBUTE3 VARCHAR2(240), ATTRIBUTE4 VARCHAR2(240), ATTRIBUTE5 VARCHAR2(240), ATTRIBUTE6 VARCHAR2(240), ATTRIBUTE7 VARCHAR2(240), ATTRIBUTE8 VARCHAR2(240), ATTRIBUTE9 VARCHAR2(240), ATTRIBUTE10 VARCHAR2(240), ATTRIBUTE11 VARCHAR2(240), ATTRIBUTE12 VARCHAR2(240), ATTRIBUTE13 VARCHAR2(240), ATTRIBUTE14 VARCHAR2(240), ATTRIBUTE15 VARCHAR2(240);ALTER TABLE CUX.CUX_OAF_TEST_DEPARTMENT ADD CONSTRAINT CUX_OAF_TEST_DEPARTMENT_PK PRIMARY KEY (DEPARTMENT_ID);CREATE UNIQUE INDEX CUX.CUX_OAF_TEST_DEPARTMENT_U1 ON CUX.CUX_OAF_TEST_DEPARTMENT(DEPARTMENT_NUMBER) TABLESPACE CUXIDX;CREATE SEQUENCE CUX.CUX_OAF_TEST_DEPARTMENT_S START WITH 10001;CREATE SYNONYM APPS.CUX_OAF_TEST_DEPARTMENT_S FOR CUX.CUX_OAF_TEST_DEPARTMENT_S;CREATE SYNONYM APPS.CUX_OAF_TEST_DEPARTMENT FOR CUX.CUX_OAF_TEST_DEPARTMENT;2) 员工表CREATE TABLE CUX.CUX_OAF_TEST_EMPLOYEE( EMPLOYEE_ID NUMBER NOT NULL, EMPLOYEE_NUMBER VARCHAR2(100) NOT NULL, EMPLOYEE_NAME VARCHAR2(100) NOT NULL, EMPLOYEE_DESC VARCHAR2(240), EFFECTIVE_DATE_FROM DATE NOT NULL, EFFECTIVE_DATE_TO DATE, DEPARTMENT_ID NUMBER NOT NULL, CREATION_DATE DATE DEFAULT SYSDATE NOT NULL, CREATED_BY NUMBER DEFAULT -1 NOT NULL, LAST_UPDATED_BY NUMBER DEFAULT -1 NOT NULL, LAST_UPDATE_DATE DATE DEFAULT SYSDATE NOT NULL, LAST_UPDATE_LOGIN NUMBER, ATTRIBUTE_CATEGORY VARCHAR2(30), ATTRIBUTE1 VARCHAR2(240), ATTRIBUTE2 VARCHAR2(240), ATTRIBUTE3 VARCHAR2(240), ATTRIBUTE4 VARCHAR2(240), ATTRIBUTE5 VARCHAR2(240), ATTRIBUTE6 VARCHAR2(240), ATTRIBUTE7 VARCHAR2(240), ATTRIBUTE8 VARCHAR2(240), ATTRIBUTE9 VARCHAR2(240), ATTRIBUTE10 VARCHAR2(240), ATTRIBUTE11 VARCHAR2(240), ATTRIBUTE12 VARCHAR2(240), ATTRIBUTE13 VARCHAR2(240), ATTRIBUTE14 VARCHAR2(240), ATTRIBUTE15 VARCHAR2(240);ALTER TABLE CUX.CUX_OAF_TEST_EMPLOYEE ADD CONSTRAINT CUX_OAF_TEST_EMPLOYEE_PK PRIMARY KEY (EMPLOYEE_ID);CREATE UNIQUE INDEX CUX.CUX_OAF_TEST_EMPLOYEE_U1 ON CUX.CUX_OAF_TEST_EMPLOYEE(EMPLOYEE_NUMBER) TABLESPACE CUXIDX;CREATE SEQUENCE CUX.CUX_OAF_TEST_EMPLOYEE_S START WITH 10001;CREATE SYNONYM APPS.CUX_OAF_TEST_EMPLOYEE_S FOR CUX.CUX_OAF_TEST_EMPLOYEE_S;CREATE SYNONYM APPS.CUX_OAF_TEST_EMPLOYEE FOR CUX.CUX_OAF_TEST_EMPLOYEE;2.1.2. 插入这里以新建部门为例,并实现部门和员工的关联,从而可新建员工。1) 创建AM。名称为TestAM,路径为mycompany.oracle.apps.cux.test.server。2) 创建EO。右键test,New Entity Object,跳过欢迎页。名称为DepartmentEO,路径为mycompany.oracle.apps.cux.test.schema.server,Schema Object为CUX.CUX_OAF_TEST_DEPARTMENT下一步,点击New from Table,一般会勾选所有字段,确定。一直下一步,到第4步,勾选Create Method,Validation Method和Remove Method。下一步到完成。使EO在创建时,其ID自动获取sequence的值点击DepartmentEO,双击DepartmentEOImpl.java找到方法public void create(AttributeList attributeList),在super.create(attributeList);后加入:this.setDepartmentId(this.getOADBTransaction().getSequenceValue(CUX_OAF_TEST_DEPARTMENT_S);3) 创建VO。名称为DepartmentVO,路径为mycompany.oracle.apps.cux.test.server,这里的VO不仅仅是查询功能,它要与EO关联,实现增删改功能,所以在第二步选择刚刚创建的DepartmentEO下一步,选择所有属性一路下一步,到完成。4) 将DepartmentVO加入到TestAM中,确定。5) 创建PG。名称为CreateOrUpdateDepartmentPG,路径
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深海风电项目环境风险评估与生态保护措施:2025年海上风能资源评估与发展规划研究报告
- 2025年安庆市交通控股集团有限公司公开选聘工作人员6名备考考试题库附答案解析
- 2025云南大理州宾川县妇幼保健院面向社会招聘编外人员3人备考考试题库附答案解析
- 2025河南昌市特招医学院校毕业生和特岗全科医生招聘157人考试参考题库及答案解析
- 2025年新能源电动汽车安全性能技术创新产品调整市场研究报告001
- 2025江苏南京鼓楼医院招聘高层次人才95人考试参考题库及答案解析
- 2025年8月杭州市采荷中学编外教师招聘5人备考模拟试题及答案解析
- 网络商城用户协议法律风险防范
- 2025年马鞍山当涂县面向全省公开选调事业单位工作人员7名考试参考题库及答案解析
- 2025河南信阳潢川县档案馆招聘全日制公益性岗位1人考试参考题库及答案解析
- 北师大版四年级上册数学(全册)同步随堂练习一课一练
- 精美的个人简历封面 (4)应聘招聘投递简历模板找工作
- K2FastWave中文操作手册
- 地热井常见主要问题分析与研究_图文
- 教育学 德育PPT课件
- 保利房地产产品设计标准
- 科学引文索引(SCI)投稿指南及主要医学信息资源
- 《广告策划概述》PPT课件.ppt
- 财务用原始凭证、发票分割单范本2
- BS EN13900-5:2021标准中文版(压滤值测试)
- 亲子游戏的活动设计及指导
评论
0/150
提交评论