0

我正在尝试从 Oracle APEX 调用 EBS REST Web 服务“assign_role”。我已经在 EBS 中部署了这个网络服务并获得了 WADL 链接。

现在,通过此链接,我可以通过提供以下 JSON 消息成功地使用 Postman 工具调用 Web 服务:

{
        "InputParameters": {
            "P_REGISTRATION_DATA": [{
                    "P_REGISTRATION_DATA_ITEM": [{
                            "ATTR_NAME": "requested_for_user_id",
                            "ATTR_VALUE": 4901
                        },
                        {
                            "ATTR_NAME": "wf_role_name",
                            "ATTR_VALUE": "FND_RESP|XXA|CUSTOM_ADFIN|STANDARD"
                        },
                        {
                            "ATTR_NAME": "requested_start_date",
                            "ATTR_VALUE": "2019/01/09 15:00:00"
                        },
                        {
                            "ATTR_NAME": "justification",
                            "ATTR_VALUE": "TEST BRLEBRUYN"
                        }
                    ]
                }
            ]
        }

    }

但是当我尝试调用 APEX_WEB_SERVICE.make_rest_request 过程时,我不确定如何提供参数列表(p_parm_name),因为参数是表格类型。(webservice内部调用标准EBS ORacle包UMX_REGISTRATION_PVT.assign_role)

   apex_web_service.make_rest_request(
          p_url => 'https://ofd.ntwerpen.be/webservices/rest/XXUA_UMX_PUB/assign_role/',
          p_http_method => 'POST',
          **p_parm_name** => apex_util.string_to_table('requested_for_user_id:wf_role_name:requested_start_date:justification'),              
          p_parm_value => apex_util.string_to_table(l_user_id||':'||l_role_name||':'||l_requested_start_date||':'||l_justification));

有人可以帮我编写正确的代码来调用这个程序吗?我相信,如果我能够正确地给出参数名称

    p_parm_name => apex_util.string_to_table('requested_for_user_id:wf_role_name:requested_start_date:justification') 

那么它会正常工作。

请建议。

谢谢

4

1 回答 1

0

正如您提到的,您通过提供 JSON 作为输入来使用 POST 方法调用 Web 服务。您可以使用要传递的值构造 JSON 并将其传递给过程的P_BODY参数APEX_WEB_SERVICE.MAKE_REST_REQUEST

要构建 JSON,您可以使用APEX_JSONpackage.json 。

希望它有效..

于 2019-03-26T09:01:07.650 回答