我试图从Oracle APEX调用EBS REST Web服务'assign_role'。我已经在EBS中部署了这个Web服务并获得了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),因为参数是Table类型。 (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')
然后它会正常工作。
请建议。
谢谢
正如您所提到的那样,您通过提供JSON作为输入来使用POST方法调用Web服务。您可以使用要传递的值构造JSON,并将其传递给P_BODY
过程的APEX_WEB_SERVICE.MAKE_REST_REQUEST
参数。
要构建JSON,可以使用APEX_JSON
包。
希望它有效..