我创建了一个plsql包并将其上传到集成的SOA网关。我生成了WSDL并部署了服务。但是当我通过使用soap ui调用它来测试服务时,回复的响应是空的,如下所示。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body/>
</soapenv:Envelope>
现在我尝试从另一个块调用包中的过程,发现数据正好在那里。
但是当我在SOA监视器中搜索并发现收到的请求状态为“成功”且响应为空时。
我的包装规格如下。
CREATE OR REPLACE
PACKAGE XX_FS_ALL_TASKS_PUB AS
/* $Header: $ */
/*#
* This package is the public interface for Dynamic Field Service Tasks Data.
* @rep:scope public
* @rep:product csf
* @rep:displayname XX_FS_ALL_TASKS_PUB
* @rep:lifecycle active
* @rep:compatibility S
* @rep:category BUSINESS_ENTITY CSF_TASK_DEBRIEF
*/
/*#
* Use this procedure to get dynamic Field Service details
* @param p_assignee_id Assignee id
* @param x_task_rec Task details
* @param x_return_code Error Code details
* @rep:displayname get_tasklist
*/
PROCEDURE get_tasklist (
p_assignee_id IN NUMBER,
x_task_rec OUT xx_fs_mob_loc_rec.all_task_tab,
x_return_code OUT VARCHAR2
);
END XX_FS_ALL_TASKS_PUB;
答案 0 :(得分:1)
你应该创建一个函数,而不是像这样的
/*#
* Use this procedure to get dynamic Field Service details
* @param p_assignee_id Assignee id
* @return Status
* @rep:displayname get_tasklist
* @rep:scope public
* @rep:category BUSINESS_ENTITY CSF_TASK_DEBRIEF
*/
FUNCTION get_tasklist (
p_assignee_id IN NUMBER,
) return x_result;
和x_result应该是一个自定义对象,其中包含您要返回的数据。
答案 1 :(得分:0)
删除您在EBS实例的 PLSQL 文件夹中所部署的程序包(procedure_name.xml)的生成的xml文件中的 IrepOverloadSeq 标记,该文件位于< strong> SOA 文件夹。保存文件并再次测试。