EBS中发布WEBSERVICE接口的方法.docx
《EBS中发布WEBSERVICE接口的方法.docx》由会员分享,可在线阅读,更多相关《EBS中发布WEBSERVICE接口的方法.docx(10页珍藏版)》请在冰豆网上搜索。
![EBS中发布WEBSERVICE接口的方法.docx](https://file1.bdocx.com/fileroot1/2022-12/1/bb2d43b4-0157-4518-afa0-4c5038c4e795/bb2d43b4-0157-4518-afa0-4c5038c4e7951.gif)
EBS中发布WEBSERVICE接口的方法
在OracleEBS二次开发中,PL/SQL程序是开发人员使用频率最高的开发语言,同时也是大家最容易掌握的工具之一了,而我们也很希望将自己编写的PL/SQL程序发布为Web服务来提供给客户端程序使用,同时也可以实现和外围系统的集成,有了irep_parser这个工具,我们就可以将自己编写的PL/SQL程序发布到OracleIntegrationRepositoy中。
OracleIntegrationRepositoy中集成接口的来源都是Oracle,客户化的程序发布上去的为Custom:
下面描述如何将PL/SQL程序接口发布到OracleIntegrationRepositoy中作为集成接口供第三方程序集成调用
一、给EBS系统打补丁
参考如下安装文档:
二、添加客户化应用到ProductFamily
客户化应用设置好之后,它没有归属于任何的产品家族,如我的客户化应用CUX,因此发布在客户化应用下的集成接口在OracleIntegrationRepositoy中无法方便的查看,如下图:
如果客户化集成接口是组织到自己的应用下就需要先注册一个产品家族,下面将CUXDeveloper(CUX)应用注册到CUXDeveloper(cux_pf)这个产品家族下作为例子进行演示:
1,添加产品家族CUXDeveloper(cux_pf)
--添加产品家族
begin
--Calltheprocedure
ad_pa_insert_package.insert_ad_pm_product_info(x_product_abbreviation=>'cux_pf',
x_pseudo_product_flag=>'N',
x_product_family_flag=>'Y',
x_application_short_name=>NULL,
x_product_name=>'CUXDeveloper',
x_product_family_abbreviation=>NULL,
x_product_family_name=>NULL,
x_aru_update_date=>to_char(SYSDATE,'YYYY-MM-DDHH24:
MI:
SS'),
x_currdate=>to_char(SYSDATE,'YYYY-MM-DDHH24:
MI:
SS'),
x_last_updated_by=>-1,
x_created_by=>-1);
COMMIT;
end;
2,注册CUXDeveloper(CUX)应用到产品家族中
--注册CUX应用到产品家族中
begin
--Calltheprocedure
ad_pa_insert_package.insert_ad_pm_product_info(x_product_abbreviation=>'cux',
x_pseudo_product_flag=>'N',
x_product_family_flag=>'N',
x_application_short_name=>'CUX',
x_product_name=>'CUXDeveloper',
x_product_family_abbreviation=>NULL,
x_product_family_name=>NULL,
x_aru_update_date=>to_char(SYSDATE,'YYYY-MM-DDHH24:
MI:
SS'),
x_currdate=>to_char(SYSDATE,'YYYY-MM-DDHH24:
MI:
SS'),
x_last_updated_by=>-1,
x_created_by=>-1);
COMMIT;
end;
3,关联CUXDeveloper应用到产品家族CUXDeveloper下
--关联CUX应用到产品家族CUXDeveloper下
begin
--Calltheprocedure
ad_pa_insert_package.insert_ad_pm_prod_family_map(x_product_abbreviation=>'cux',
x_product_family_abbreviation=>'cux_pf',
x_aru_update_date=>to_char(SYSDATE,'YYYY-MM-DDHH24:
MI:
SS'),
x_currdate=>to_char(SYSDATE,'YYYY-MM-DDHH24:
MI:
SS'),
x_last_updated_by=>-1,
x_created_by=>-1);
COMMIT;
end;
执行完成后通过下面2条SQL验证是否添加成功,查出3条数据表示添加成功。
SELECT*FROMad_pm_product_infoxWHEREx.product_nameLIKE'CUX%';
SELECT*FROMad_pm_prod_family_mapmWHEREm.product_abbreviationLIKE'cux%';
完成后如果应用下有集成接口可以看到如下的产品家族信息:
三、按照集成接口标记规范编写PL/SQL程序
按照业务逻辑的要求编写PL/SQL程序,除了需要在PL/SQL程序的声明中按照集成接口标记的要求添加标记注释之外,其它和一般的程序没有任何区别,如下是一个用来实现查询PMP中WBS计划的程序:
CREATEORREPLACEPACKAGECUX_PMP_PKG6AS
/*$Header:
$*/
/*#
*ThispackageusingPMPapplicationcuxdeveloper
*@rep:
scopepublic
*@rep:
productcux
*@rep:
lifecycleactive
*@rep:
displaynamecuxpmpapplication6
*@rep:
compatibilityS
*@rep:
categoryBUSINESS_ENTITYCUX_DEVELOPER
*/
TYPEt_cursorISREFCURSOR;
/*#
*query_wbs_plans
*@paramplans_listoutplanslist
*@paramresult_codeoutresultflag
*@paramp_user_nameloginusername
*@paramp_project_nameprojectname
*@rep:
scopepublic
*@rep:
lifecycleactive
*@rep:
displaynamequery_wbs_plans
*/
PROCEDUREquery_wbs_plans(plans_listOUTt_cursor,
result_codeOUTVARCHAR2,
p_user_nameINVARCHAR2,
p_project_nameINVARCHAR2);
ENDCUX_PMP_PKG6;
关键几个标记描述:
@rep:
productCUX代表集成接口注册到CUX应用中,必须是系统中存在的应用简称
@rep:
displaynamecuxpmpapplication6集成接口的名称
@param存储过程和方法的参数,都需要标注出来供调用服务的客户端查看
@rep:
categoryBUSINESS_ENTITYCUX_DEVELOPER业务实体的类型,CUX_DEVELOPER必须在BUSINESS_ENTITY值列表类型下定义存在,否则无法通过验证
四、验证集成接口标记并生成iLDT文件
将编写好的PLSQL声明定义保存为.pls文件(CUX_PMP_PKG6.pls),并将其上传到服务器的$FND_TOP/bin目录下,通过Telnet使用命令来验证和生成集成接口标记文件,成功验证后会有如下的日志生成,同时会生成iLDT文件oracleseeker_emp_pkg_pls.ildt,如果标记存在问题会打印出对应的错误信息,需要注意查看错误消息并进行修正。
命令如下:
$IAS_ORACLE_HOME/perl/bin/perl$FND_TOP/bin/irep_parser.pl-g-v-username=sysadminar:
patch/115/sql:
CUX_PMP_PKG6.pls:
12.0=CUX_PMP_PKG6.pls
五、将iLDT文件上传到OracleIntegrationRepositoy中
将上面生成的iLDT文件通过FNDLOAD命令工具上传到OracleIntegrationRepositoy中,命令如下:
FNDLOADapps/apps0YUPLOAD$FND_TOP/patch/115/import/wfirep.lctCUX_PMP_PKG6_pls.ildt
成功上传之后通过OracleIntegrationRepositoy可以查看如下的集成接口信息
六、发布WEBSERVICE接口
按照如下截图,首先产生WDSL文件,然后部署,最后创建授权.注意:
创建授权时如果给新加的用户授权,需要给用户添加”集成SOA网关”和”应用开发员职责”,如果加完职责还不能调用接口,需要清理缓存或者重启环境.
六、使用SOAPUI工具测试
1.新建一个PROJECT.
2.输入PROJECTNAME后点击OK
3.选择新增的project,点击右键,增加WSDL地址
4.查看接口的WSDL地址,然后把地址复制过来
5.添加成功后,工具给每个接口生成一个测试方法.
6.参考如下例子,输入相应的参数即可测试.
Username>为EBS中用户名,需要是接口中授权的用户
Password>为上面输入用户对应的密码.
Envelopexmlns:
soapenv="http:
//schemas.xmlsoap.org/soap/envelope/"xmlns:
cux="xmlns:
quer="
Header>
SOAHeader>
--Optional:
-->
Responsibility>APPLICATION_DEVELOPER
Responsibility>
--Optional:
-->
RespApplication>FND
RespApplication>
--Optional:
-->
SecurityGroup>STANDARD
SecurityGroup>
--Optional:
-->
NLSLanguage>AMERICAN
NLSLanguage>
--Optional:
-->
Org_Id>81
Org_Id>
SOAHeader>
Securityxmlns:
wsse="http:
//docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"mustUnderstand="1">
UsernameToken>
Username>test
Username>
PasswordType="http:
//docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">123456
Password>
UsernameToken>
Security>
Header>
Body>
InputParameters>
--Optional:
-->
P_USER_NAME>luojing
P_USER_NAME>
--Optional:
-->
P_PROJECT_NAME>PMP17-WBS测试
P_PROJECT_NAME>
--Optional:
-->
P_TASK_NUMBER>1.1.2
P_TASK_NUMBER>
InputParameters>
Body>
Envelope>