1

我创建了一个 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;
4

2 回答 2

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 应该是一个自定义对象,其中包含您要返回的数据。

于 2013-09-19T11:39:45.407 回答
0

删除您在 EBS 实例的PLSQL文件夹中部署的包的生成 xml 文件中的IrepOverloadSeq标记(procedure_name.xml),该文件夹位于SOA文件夹下。保存文件并再次测试。

于 2015-02-23T09:11:21.383 回答