HAND-深入浅出Oracle EBS之Web ADI HAND-深入浅出Oracle EBS之Web ADI_第1页
HAND-深入浅出Oracle EBS之Web ADI HAND-深入浅出Oracle EBS之Web ADI_第2页
HAND-深入浅出Oracle EBS之Web ADI HAND-深入浅出Oracle EBS之Web ADI_第3页
HAND-深入浅出Oracle EBS之Web ADI HAND-深入浅出Oracle EBS之Web ADI_第4页
HAND-深入浅出Oracle EBS之Web ADI HAND-深入浅出Oracle EBS之Web ADI_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

OracleERP最佳技术实践E-BUSINESSSUITEXX100–应用技术bADIAuthor:黄建华Jianhua.HuangMSN:huajhua@CreationDate:October16,2005LastUpdated:December14,2006DocumentRef:<DocumentReferenceNumber>Version:DRAFT1Aals <Approver <Approver2>CopyNumber_____OracleERP最佳技术实践DocRef:<DocumentReferenceNumber>December14,20063DateDateAuthorVersionChangeReference16-Oct-05Jianhua.HuangDraft1aNoPreviousDocumentNameitionCopyNo.NameLocation1LibraryMasterProjectLibrary2ProjectManager34Ifyoureceiveanelectroniccopyofthisdocumentandprintitout,pleasewriteyournameontheequivalentofthecoverpage,fordocumentcontrolpurposes.Ifyoureceiveahardcopyofthisdocument,pleasewriteyournameonthefrontcover,fordocumentcontrolpurposes.WebADIDocumentControliiFileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyWebADIDocumentControliiiFileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceNumber>December14,2006tents WebADI 1.1.总体说明 11.2.必要设置 1 62.2.如何查询、建立Integrator和Function的关系 7如何自定义菜单,简化操作 72.4.如何处理Update 82.5.如何修改字段的Prompt 8 3.1.功能概要 103.2.创建数据库对象(Required) 103.3.自定义Document(Required) 113.4.MaintainIntegratorFormFunction(Required) 133.5.定义Layout(Required) 153.6.定义Mapping(Optional) 173.7.定义查询条件(Optional) 18 —进阶 22 5.OpenandClosedIssuesforthisDeliverable 23 ClosedIssues 231.WebADI基础1.1.总体说明针对11.5.10,其它低版本需要打补丁,请上Metalink查。目前Bug比较多,功能有限,如不能自己定义Lov;其他的控件也需直接插表完成。数据量大,不推荐使用WebADI。美的项目用来导数据,后来后悔使用,遇到的问题是:后台还在运行,前台已显示出Oracle有标准的UserGuide和ImplementationGuide,但不涉及客户化开发。1.2.必要设置IE全性N:IE/Tools/Option/Security/Internet/自定义级别把“对没有标记为安全的ActivveX控件进行初始化和脚本运行”设置为提示。OracleERP最佳技术实践DocRef:<DocumentReferenceNumber>December14,OracleERP最佳技术实践如果没有装Office没有装VBA,请安系统提示插入安装盘安装。N:EXCEL/Tools/宏/安全性勾选“信任对于VisualBasic项目的访问”。1.3.先睹为快:一个简单例子.如何使用N:BNE/CreateDocument选择客户端程序N:NextWebADIWebADI基础2of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceNumber>DecemberOracleERP最佳技术实践gViewerExcelN:Next选择功能;我们选择GeneralLedger-Journals。N:Next选择布局,相当于子功能;我们选择FunctionalActuals-Single。N:Next选择内容,选None就创建新的。ActiveX化N:NextWebADIWebADI基础3of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceNumber>DecemberOracleERP最佳技术实践统自动创建文档N:NextExcelN:Next我们输入一张凭证,随便,和在Forms或者客户端方式的ADI上输入几乎一样。上传到EBSN:Excel/Oracle/UploadWebADIWebADI基础4of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceNumber>DecemberOracleERP最佳技术实践Upload成上传。N:GLWebADIWebADI基础5of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceNumber>December14,20062.WebADI设置和常见功能说明2.1.如何设置权限ProfileName说明BNEAllowNoSecurityRuleIntegrator必须创建SecurityRule,否则报Youdonothavepermissiontoaccessthisfunctionality。Y:那么没有创建SecurityRule可以访问;有SecurityRule的OnceasecurityruleisdefinedtheprofileoptionBNEAllowNoSecurityRuleisignoredN用Function控制安全性299818.1WebADI的权限控制方式之一就是判断Integrator对应的Function是否包含在当前菜单下。以HR为例,默认情况下用HR相关的Integrator,会报如下错误:最简单的解决办法是:把菜单HRADISeededIntegratorFormFunctions加到运行CreateDocument的菜单的子菜单中,不要填Prompt。如:WebADIWebADI设置和常见功能说明6of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceNumber>December14,OracleERP最佳技术实践不过这样把HR所有的Integrator都“授权给”这个Menu了(上面例子是OracleWebADIMenu)。个办法就是根据需要仅添加Function:注:不用打补丁就可以通过这个方法使用HR相关的Integrator了。用Function控制安全性是我们都熟悉的逻辑,那么Integrator和Function又是如何关联tegratorSELECT* FROMbne_security_rulesbsr WHEREbsr.security_value='SCF_WEBADI_DEMO'2.3.如何自定义菜单,简化操作前面步骤从选择CreateDocument到最后打开Excel,中间需要经过很多步骤。当然我们可以采用把Excel文件保存到本地的做法来简化步骤;另外一个终极解决办法是定义一个Function,然后把上面每步选择的结果直接作为Function的参数,这样我们就可以在ERP中点击菜单直接出来Excel文件!PageParameterRemarkbne:pageCreateDocumentCreateDocumentDefineLayoutDefineMappingManageDocumentLinksBneDefineLayoutBneMappingTemplateBneMailMergeWebADIWebADI设置和常见功能说明7of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceNumber>December14,2006OracleERP最佳技术实践PageParameterPageRemarkViewerPageBne:viewer来源bne_viewers_vl,如EXCEL2003ViewerPageIntegratorPageLayoutPageContentPageMapPageMapPageBne:reportingBne:integratorBne:layoutBne:mapBnectl:fileY或者N格式“应用短名:Integrator代码”格式“应用短名:Layout代码”可选,格式“应用短名:Content代码”Reviewpagebne:noreviewtrue或者falseShortCut义一个Function。实例:具体可看标准ImplementationGuide的4.2CreatingNewFormFunctions。API接收到的参数,没有Create和Update标志,即到底是新行和旧行,是没有标志对于Create类型的API比较好写,但对于Update类型的就不好处理,为此可通过:2、Mapping的时候,把View中的ID字段Mapping到主键ID参数 Excel列的题头和API的参数一样,需要加以修改,需直接更新表bne_interface_cols_bUPDATEbne_interface_cols_vlinc SETmpt_left='ÄÚ²¿ID',mpt_above='ÄÚ²¿ID' WHEREerface_col_name='P_ID' ANDEXISTS(SELECT* FROMbne_integrators_vlbni,bne_interfaces_vlinf WHEREbni.application_id=egrator_app_id ANDegrator_code=egrator_code ANDinf.application_id=inc.application_id ANDerface_code=erface_code ANDbni.user_name='SCFADIDemo');WebADIWebADI设置和常见功能说明8of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践2.6.如何设置字段只读、必须等DocRef:<DocumentReferenceNumber>December14,2006colsbUPDATEbne_interface_cols_binc SETinc.read_only_flag='Y' WHEREerface_col_name='P_ID' ANDEXISTS(SELECT* FROMbne_integrators_vlbni,bne_interfaces_vlinf WHEREbni.application_id=egrator_app_id ANDegrator_code=egrator_code ANDinf.application_id=inc.application_id ANDerface_code=erface_code ANDbni.user_name='SCFADIDemo');2.7.注意上传错误提示在每个Excel行的最后,有Message列,该列不可编辑,专门用来显示错误信息。如:当然,在客户化开发中,该Message通过fnd_message包抛出来即可,这个和通常的处CreateDocument生成的Excel文件可以保存到本机,以后可以直接用,只要输入用户名/密码、选择职责即可。WebADIWebADI设置和常见功能说明9of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceNumber>December14,20063.客户化开发3.1.功能概要 3.2.创建数据库对象(Required)创建客户化表并注册PS--CreatetablecreatetableSCF.CUX_ADI_DEMO( ADI_IDNUMBER, ADI_CODEVARCHAR2(30), ADI_DATEDATE--CreatesynonymCREATEPUBLICSYNONYMcux_adi_demoFORscf.cux_adi_demo;CREATESEQUENCEscf.cux_adi_demo_s;CREATEPUBLICSYNONYMcux_adi_demo_sFORscf.cux_adi_demo_s;--InsertdemodataINSERTINTOcux_adi_demoVALUES(1,'JustTest',SYSDATE);COMMIT;--RegistertableBEGIN COMMIT;END;--CreatedemoviewCREATEORREPLACEVIEWCUX_ADI_DEMO_VASSELECTcad.adi_id, e e SYSDATE-cad.adi_datetest_dates FROMcux_adi_democad;创建上传处理程序包PSCREATEORREPLACEPACKAGEcux_adi_demo_pkgISAuthor:Jianhua.Huang--Created:2005-11-122:29:01客户化开发10客户化开发10of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyPROCEDUREupload_data(p_codep_datep_idINVARCHAR2,INPROCEDUREupload_data(p_codep_datep_idINVARCHAR2,INDATEDEFAULTSYSDATE,INNUMBERDEFAULTNULL)ISdoherecad--doanythingyouwanttoIFp_idISNULLTHENINSERTINTOcux_adi_demoSELECTcux_adi_demo_s.NEXTVAL,p_code,p_dateFROMdual;cux_adi_democadcad.adi_code=p_code,cad.adi_date=p_datecad.adi_id=p_id;UPDATESETWHEREPurpose:PROCEDUREPROCEDUREupload_data(p_codeINVARCHAR2,p_dateINDATEDEFAULTSYSDATE,p_idINNUMBERDEFAULTNULL);END;/CREATEORREPLACEPACKAGEBODYcux_adi_demo_pkgISBBEGINEELSEENDENDIF;COMMIT; END;END;/DocRef:<DocumentReferenceNumber>December14,2006N:BNE/CreateDocument选择客户端程序N:NextgViewerExcelN:Next选择功能;这一步很关键,要选择HRIntegratorSetup。报错:没有权限N:NextN:NextWebADI客户化开发11of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践None新的。ActiveX化DocRef:<DocumentReferenceNumber>December14,2006N:Next开ExcelN:Next我们输入以下内容:(最好双击单元格,出来LOV再选择)ValueRemarkMetadataTypeUPDATELOVCreate仅新增Download仅查询Update查询并修改ApplicationShortNameIntegratorUserNameViewNameFormNameAPIPackageNameAPIProcedureNameInterfaceUserNameInterfaceParameterListNameAPITypeAPIReturnTypeSCFSCFADIDemoCUX_ADI_DEMO_VGENERALCUX_ADI_DEMO_PKGUPLOAD_DATASCFADIDemoInterfaceParameterListNamePROCEDURELOV的Integrator名称用APPS下的视图名!如果是LOV,表hr_adi_lov_form_nameLOVAPIType为Function才需要上传到EBSN:Excel/Oracle/UploadWebADI客户化开发12of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceOracleERP最佳技术实践December14,2006Upload成上传。如果出现以下错误,估计是填错东西了,比如我在ViewName里面填写了实际的表:如何从后台查选SQL:N:BNE/CreateDocument选择客户端程序N:NextgViewerExcelN:Next选择功能;这一步很关键,要选择HRMaintainIntegratorFormFunctionAssociations。MappingN:NextWebADI客户化开发13of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceNumber>December14,2006ActiveX化N:Next开ExcelN:Next我们输入以下内容:(最好双击单元格,出来LOV再选择)ValueRemarkFormFunctionListSCF_WEBADI_DEMO之前需要在EBS中建立该Function,Type为Subfunction上传到EBSN:Excel/Oracle/UploadUpload成上传。如何从后台查选SQL:SELECT* FROMbne_security_rulesbsr WHEREbsr.security_code='GENERAL_1_INTG';WebADI客户化开发14of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践uiredDocRef:<DocumentReferenceNumber>December14,2006IntegratorYoudonothavepermissiontoaccessthisfunctionality。一是把Profile“BNEAllowNoSecurityRule”设为Y。Function前面的权限问题。N:BNE/DefineLayoutN:点击DefineLayout。实际可以定义多个供用户使用N:Excel局,显示哪些字段,哪些显示在头,哪些显示在行。输入SCFADIDemoLayout/SCF_ADI_DEMO_LAYOUT。ContinueWebADI客户化开发15of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceNumber>December14,2006OracleERP最佳技术实践要区分两种Filed:一种是从APIProcedureName的参数列表中自动带出来的,并且自P是ViewName的视图字段。RequiredFields区域的字段是APIProcedureName的参数列表中没有Default值的;ional我们可以安排这些字段显示在Header还是Line,Header和Line仅仅是在Excel中的布局问题,实际都是作为Line一起传给API,一行一次。至于在APIProcedureName代码里面,我们又可以自己人为区分出头子段和行字段,aultValueWebADISELECTDISTINCTt.default_type,t.default_valueFROMFROMbne_interface_cols_vltWHEREt.default_typeISNOTNULL;表性的设置如下DefaultTypeDefaultValueCONSTANT1CONSTANTBEGINENVIRONMENTDATABASEENVIRONMENTOAUSER.IDENVIRONMENTSOB.SetOfBooksNameENVIRONMENTSOB.currencycodeENVIRONMENTSYSDATEJAVAegrator.validators.gl.BneOAAccountingDateGeneratorJAVA_OVERRIDEegrator.validators.gl.BneOAGroupIdGeneratorPARAMETER$PARAM$.bne:arg1PROFILEGLDI_CATEGORYSQLSELECTadb_flagFROMgl_sets_of_booksWHEREset_of_books_id=:SOB_IDWebADI客户化开发16of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceNumber>December14,2006DefaultTypeDefaultValueTABLELOOKUP$FA$.FA_MASS_ADDITIONS.POSTING_STATUSTABLELOOKUP$TABLE$.INSERT_BATCH_LINES.P_DATE_EFFECTIVE设置ID参数为只读UPDATEbne_interface_cols_binc SETinc.read_only_flag='Y' WHEREerface_col_name='P_ID' ANDEXISTS(SELECT* FROMbne_integrators_vlbni,bne_interfaces_vlinf WHEREbni.application_id=egrator_app_id ANDegrator_code=egrator_code ANDinf.application_id=inc.application_id ANDerface_code=erface_code ANDbni.user_name='SCFADIDemo');N:BNE/DefineMappingN:fineMappingN:可以看到,系统已经有默认的Mapping——视图字段自己的Mapping。选择Update:WebADI客户化开发17of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceNumber>DecemberOracleERP最佳技术实践Next:我们增加3行,把视图出来的值传给Procedure的参数。这里需要着重理解Dowload的时候,数据是从View中出来,并且只有Required以及Display的Optiaonal字段,其Mapping的SourceColumn才会Select出来,具体是:Select<sourcecolumn1>as<targetcolumn1>,<sourcecolumn2>as<targetcolumn2>,……from……3.7.定义查询条件(Optional)N:BNE/CreateDocument选择客户端程序N:NextgViewerExcelN:Next选择功能;这一步很关键,要选择HRCreateStandaloneQuery。WebADI客户化开发18of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceNumber>DecemberOracleERP最佳技术实践如果以后要修改则改用HRMaintainStandaloneQuery。不过修改的时候比较讨厌,我们定的第一个参数会被挪到第二个,第一个参数变为hr:extra;需要把第一个参数清N:NextApplicationShortName输入SCF。ActiveX化N:Next开ExcelN:Next我们输入以下内容:(最好双击单元格,出来LOV再选择)ValueRemarkSQLWHEREclause1stParameterName1stParameterType1stParameterPrompt……5stParameterName5stParameterType5stParameterPromptwhereADI_CODElikenvl($PARAM$.SCF:P_ADI_CODE,ADI_CODE)orderbyADI_IDSCF:P_ADI_CODEVarchar2ADICode式LOV上传到EBSN:Excel/Oracle/UploadWebADI客户化开发19of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践3.8.使用DocRef:<DocumentReferenceNumber>December14,2006N:BNE/CreateDocument选择客户端程序N:NextgViewerExcelN:NextN:NextActiveX化N:Next开ExcelN:NextWebADI客户化开发20of26FileRef:深入浅出OracleEBS之WebADI.doc(v.DRAFT1A)CompanyConfidential-ForinternaluseonlyOracleERP最佳技术实践DocRef:<DocumentReferenceNumber>December14,2006我们新输入以下内容:(最好双击单元格,出来LOV再选择)ValueRemarkCodeateDTest_DatesJustTest12006-11

温馨提示

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

评论

0/150

提交评论