发布PL/SQL API成Webservice,并注册到IR(Oracle Integration Repositoy)中

本文讲解一下如何把自定义的PLSQL的Package发布成Webservice,并在Oracle Integration Repositoy里注册


1.创建Product Family

Product Family用于管理几个功能相近的Product(也可以立即为模块),统一管理客户化的Webservice接口

BEGIN
-- Call the procedure
AD_PA_INSERT_PACKAGE.INSERT_AD_PM_PRODUCT_INFO(X_PRODUCT_ABBREVIATION => 'pc_pf',
X_PSEUDO_PRODUCT_FLAG => 'N',
X_PRODUCT_FAMILY_FLAG => 'Y',
X_APPLICATION_SHORT_NAME => NULL,
X_PRODUCT_NAME => 'Paul Custom Application Product Family',
X_PRODUCT_FAMILY_ABBREVIATION => NULL,
X_PRODUCT_FAMILY_NAME => NULL,
X_ARU_UPDATE_DATE => to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),
X_CURRDATE => to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss'),
X_LAST_UPDATED_BY => -1,
X_CREATED_BY => -1);
COMMIT;
END;


2.注册Product

BEGIN
-- Call the procedure
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 => 'My Custom Application',
X_PRODUCT_FAMILY_ABBREVIATION => NULL,
X_PRODUCT_FAMILY_NAME => NULL,
X_ARU_UPDATE_DATE => TO_CHAR(SYSDATE,
'yyyy-mm-dd hh24:mi:ss'),
X_CURRDATE => TO_CHAR(SYSDATE,
'yyyy-mm-dd hh24:mi:ss'),
X_LAST_UPDATED_BY => -1,
X_CREATED_BY => -1);
COMMIT;
END;


3.关联Product:cux到Product Family:pc_pf

BEGIN
-- Call the procedure
AD_PA_INSERT_PACKAGE.INSERT_AD_PM_PROD_FAMILY_MAP(X_PRODUCT_ABBREVIATION => 'cux',
X_PRODUCT_FAMILY_ABBREVIATION => 'pc_pf',
X_ARU_UPDATE_DATE => TO_CHAR(SYSDATE,
'yyyy-mm-dd hh24:mi:ss'),
X_CURRDATE => TO_CHAR(SYSDATE,
'yyyy-mm-dd hh24:mi:ss'),
X_LAST_UPDATED_BY => -1,
X_CREATED_BY => -1);
COMMIT;
END;


4.增加一个BUSINESS_ENTITY的lookup code(应用开发员职责->应用产品 -> 代码->Oracle Application Object),这个Lookup会用在下一步的API中的@rep:category BUSINESS_ENTITY


5.编写PL/SQL API Specification,这里以一个物料服务为例

CREATE OR REPLACE PACKAGE PAUL_ITEM_PKG AS
/* $Header: $ */
/*#
* This package using create the item information
* @rep:scope public
* @rep:product CUX
* @rep:lifecycle active
* @rep:displayname Paul Item Maintainance Service
* @rep:compatibility S
* @rep:category BUSINESS_ENTITY PAUL_BUSINESS_ENTITY
*/
/*#
* Create an Item
* @param p_itemno Item Number
* @param p_itemdesc Item Descripiton
* @param p_itemqty Item Quantity
* @rep:scope public
* @rep:lifecycle active
* @rep:displayname Create Item Webservice
*/
PROCEDURE CREATE_ITEM(P_ITEMNO VARCHAR2,
P_ITEMDESC VARCHAR2,
P_ITEMQTY VARCHAR2);
END PAUL_ITEM_PKG;


需要注意Package中的注释并不是随便填写的,每一个注释都会对应到Oracle Integration Repositoy接口的说明上去,对于要注册成Webservice的PL/SQL API必须按照要求来填写。注释标签具体的含义需要参考《Oracle E-Business Suite Integrated SOA Gateway Developer's Guide

Required Class-level Annotations

Optional Class-level Annotations

Required Method-level Annotations

Optional Method-level Annotations

6.验证PLSQL接口文件,并生成ildt文件

将编写好的PLSQL声明定义保存为.pls文件(PAUL_ITEM_PKG.pls),并将其上传到服务器应用$CUX_TOP/patch/115/sql目录下,然后执行下边的命令生成ildt文件

perl $FND_TOP/bin/irep_parser.pl -g -v -username=sysadmin cux:patch/115/sql:PAUL_ITEM_PKG.pls:12.0=PAUL_ITEM_PKG.pls

# Interface Repository Annotation Processor, 12.0.0

#
# Generating annotation output.
# Processing file 'PAUL_ITEM_PKG.pls'.
# Using YAPP-based parser.
#  Found a package-level annotation for 'PAUL_ITEM_PKG'.
#  Found a detail-level annotation...
# Found a procedure named 'CREATE_ITEM'.
# Done all files.

7.将iLDT文件上传到Oracle Integration Repositoy

FNDLOAD apps/password 0 Y UPLOAD $FND_TOP/patch/115/import/wfirep.lct PAUL_ITEM_PKG_pls.ildt
Log filename : L5750778.log


Report filename : O5750778.out

8.在对应的Product Family和Product下就能看到你的接口


接下来如果和其他系统集成的话,可以参见另外一篇文章


Reference:http://docs.oracle.com/cd/E18727_01/doc.121/e12065/T511473T545912.htm#5466320

https://blogs.oracle.com/integration_repository_customization/entry/integration_repository_customization


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值