您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > ORACLE ERP开发基础之EBS开发基础
ORACLEERP开发基础之EBS开发基础OracleERPORACLEERP开发基础之前言(一)Forms设置部分(二)FORMS代码部份://tech.it168.com/a2009/0429/274/000000274343.shtmlORACLEERP开发基础之Oracle数据库基础,非常古老。因为是转手过来的机器,开发工具都是安装好了,所以也没去在意这工具的安装。今天系统重装了,才知道这工具安装起来也是特烦人的。先安装FORMS6i与REPORT6i,安装完后一定要打补丁。否则会出现一大堆莫名的错误。接着安装discoverer。安装discoverer时先将注册表备份出来,因为discoverer不能和Forms安装在同一目录。然后再安装discoverer的补丁,接着再将注册表恢复回来。大致这样可以了。注意顺序一定要不能错了,否则又会出现一堆无聊的错误。唉!developer6i是98年的工具。盼着EBSR12应该是用DEVELOPER10g吧。EBS二次开发包注册2.1从Server中下载ERPLibrary(.pll),存放于本机ServerPath:/u01/au/11.5.0/resourceForm文件与Library文件要存放在固定目录例如:Form存放在d:\ErpForm\FormLibrary存放在d:\ErpForm\Library;2.2在RegeditHKEY_LOCAL_MACHINESOFTWAREORACLEFORMS60_PATH加入client端存放Form及Library的路径(如图)例如:d:\ErpForm\Library;d:\ErpForm\Form(建议要加在最前面)利用TEMPLATE.fmb模板来开发FormOracle已经为我们提供了一个Form的开发模板,(/data/deve/devappl/au/11.5.0/forms/ZHS/TEMPLATE.fmb)我们的开发实际要基于这个模板,这个模板里面已经存在了我们将会用到的Oracle标准的对象,我们需要做的,就是这这个模板的基础上面,添加我们自己的对象。这也是人家说二次开发没啥技术含量的重大原因。但如果真让你出写那么PL包,估计也没几人能写好。人有时就是这样,让你站在巨人的肩膀,还在抱怨这抱怨那的。我也是这类人啦。出出气呀。^_^!1、更改template.fmb文件名,同时删除一些无用的样本对象。OracleERP2、增加数据块一路照做就可以了,步骤太简单就不用讲了吧。完成后,选择“仅创建数据块”。3、增加一个画布选择工具菜单上面的布局向导来做。注意:选择画布时,选择新画布。如上图。显示记录数一般为10就可以了。如上图。注:将画布名称改成与数据块的名称一致4、增加一个窗口注:窗口尽量保持与画面一致,同时选择相应的主画布。对应的画布那边也要选择主窗口5、选择对象的子类信息所有的对象都应选择相对的子类信息,这边仅以BLOCK为例。6、调整布局不需要显示到画布的ITEM,可以将ITEM的画布属性设成空7、修改触发器(这一步很关键!)8、选择第一导航块9、上传及编译FORMS9.1先将FORMS上传至/data/deve/devappl/au/11.5.0/forms/ZHS/9.2telnet至server,进入/data/deve/devappl/au/11.5.0/forms/ZHS/目录目录:cd/data/deve/devappl/au/11.5.0/forms/ZHS/编译:f60genFRMSTONE.fmbapps/apps复制:cpFRMSTONE.fmx/data/deve/deveappl/hek/11.5.0/forms/ZHS/注:一定要进入FORM的目录,再进行编译。否则编译也可以通过,但会出现奇怪的问题。这个问题折腾了我二天时间,才发现是ORACLE的BUG。好了,一个最基本的EBSFORM就开发完成了。OracleERP注册表单FORM1.定义表单操作路径:应用开发员=应用产品=表单填写说明如下:表单:FORMS文件名应用:HEK惠尔康客户化应用用户表单名:这个参数与“功能”中的表单名是相关联的。2.定义功能操作路径:应用开发员=应用产品=功能2.12.22.33.定义菜单操作路径:应用开发员=应用产品=菜单注:“子菜单”是指菜单可以将另一个菜单的功能全部包含进来。也就是父菜单的关系。5.完成设置,效果如下:OracleERP注册请求1.定义可执行路径:系统管理员-并发-方案-可执行注意:定义成请求的过程或函数,必须加入(ErrbufOutVarchar2,RetcodeOutNumber)两个形参。2.定义并发程序路径:系统管理员-并发-方案-可执行注意:并发程序界面的可执行组中的“名称”,与上面的可执行并发程序界面的“简称”是一致的。注意:如果要传入参数到PL/SQL包中,点击《参数》按钮进行设置。也可以为参数赋给默认值,例:默认取得用户ID如果要限定参数的取数范围,则要定义值集(如何定义?请参考后面的定义值集)。3.定义请求组路径:系统管理员-安全性-责任-请求4.将请求组置于职责下系统管理员-安全性-责任-定义OracleERP注册职责1.新建菜单操作路径:应用开发员=应用产品=应用菜单2.新建一个职责操作路径:系统管理员=安全性=责任=定义将职责分配给用户操作路径:系统管理员=安全性=用户=定义3.转到EBS主页,多显示一个职责。OracleERP注册值集1.定义集操作路径:总帐=设置=财务系统=验证=集1.1如果值的来源于数据表,则值的验证类型选择“表”,然后点击“编辑信息”。注:如果要实现请求参数的值集来源,作前后过滤条件的话。其语法:wherehead.customer_number=:$FLEX$.HEK_OM_KHJGB_ACCT_CUSTandhead.created_by=:$FLEX$.HEK_OM_FHD_CREATE_BYandTO_CHAR(head.ordered_date,'YYYYMMDD')=:$FLEX$.HEK_DAY_TIME_IDORDERBYHEAD.ORDER_NUMBER:$FLEX$.为参数界面的名称HEK_OM_KHJGB_ACCT_CUST为某个参数的值集名称。1.2实现的效果如下:1.3定义多列值集1.4实现效果1.5从属2.定义值2.1如果值的来源固定的某些值,那么可以直接定义值。将值的验证类型选择=独立2.2定义集所对应的值操作路径:操作路径:总帐=设置=财务系统=验证=值OracleERP通过应用开发员取得系统管理员责任一般公司都有区分DBA与DEVELOPER的,业务机上一般是APPS用户由DBA掌握,诸如用户管理也是DBA来负责的。developer是不知道没有APPS密码,也没有‖SYSTEMADMINISTTRATOR―职责的。也就是说DEVELOPER只有‖ApplicationDeveloper―这个职责。同理,应用开发员是没有权限给终端用户加权限的。但我今天测试了一下,developer虽然没直接加职责的权限,但developer有‖ApplicationDeveloper―职责,这个职责下面有注册菜单的权限,完全可以通过注册菜单将SYSTEMADMINISTROR加进来。如图:查询视图时没有显示数据在EBS以外的地方(含report),如果确认SQL语句没有问题,这主要是因为视图是OU屏蔽的,因此需要初始化身份。例如:PO_HEADERS。有两种方法,方法一适用于知道相应的组织代码,方法二就比较通用了。方法一:BEGINDBMS_APPLICATION_INFO.set_client_info(122);--122代表具体的组织代码,不同公司,代码是不同。END;方法二:BEGINAPPS.FND_GLOBAL.apps_initialize(user_id=APPS.FND_GLOBAL.user_id,resp_id=APPS.FND_GLOBAL.resp_id,resp_appl_id=APPS.FND_GLOBAL.resp_appl_id);END;注册报表(report)路径:系统管理员-并发-方案-可执行注册报表与注册请求的步骤是差不多的。定义并发路径:系统管理员-并发-方案-定义定义报表参数点击上图的参数按钮。注:这边与注册请求不一样的就是,要填写变量栏(变量名称就是REPORT中的变量名称)定义请求组操作路径:系统管理员-安全性-责任-请求将请求组置于职责下系统管理员-安全性-责任-定义OK,完成了报表的注册。OracleERP请求的输出及日志1、Effect:OracleEBS会在EBS的安装目录,保存查看输出及日志之文件。查看具体目录:selectt.logfile_name,t.outfile_namefromfnd_concurrent_requeststwheret.request_id=_request_id2、当我们自行定义了一个并发请求时,也经常需要使用上面的方式进行一些调试。请求的输出:apps.Fnd_File.Put_line(apps.FND_FILE.OUTPUT,'请求的输出');请求的日志:apps.Fnd_File.Put_line(apps.FND_FILE.LOG,'请求的日志');对于报表,一般情况是把报表的内容输出到OUTPUT,把报表中间的debug逻辑输出到日志中。对于请求包,一般情况是输出到日志中。OUTPUT就不用管了。实现手动提交请求在Form里面,我们可以用APPS.FND_REQUEST.SUBMIT_REQUEST提交一个Request到OracleRequestManager。如果提交成功,该函数返回RequestID,否则,返回0。1、初始化在提交一个Request之前,我们会调用OracleStandard的Procedure对这个Request做一些基本的参数的初始化。APPS.FND_GLOBAL.apps_initialize(user_id=APPS.FND_GLOBAL.user_id,resp_id=APPS.FND_GLOBAL.resp_id,resp_appl_id=APPS.FND_GLOBAL.resp_appl_id);注:这个初始化不是必须的,之所以要初始化,是因为视图是OU屏蔽的。上述语句等同于dbms_application_info.set_client_info;2、函数介绍2.1函数APPS.FND_REQUEST.SUBMIT_REQUEST有105个参数:APPS.FND_REQUEST.SUBMIT_REQUEST(APPLICATIONINVARCHAR2DEFAULTNULL,PROGRAMINVARCHAR2DEFAULTNULL,DESCRIPTIONINVARCHAR2DEFAULTNULL,START_TIMEINVARCHAR2DEFAULTNULL,SUB_REQ
本文标题:ORACLE ERP开发基础之EBS开发基础
链接地址:https://www.777doc.com/doc-14664 .html