Вызов стандартного веб-сервиса Oracle EBS в oracle apex с помощью apex_web_service.make_rest_request - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь вызвать веб-сервис EBS REST 'assign_role' из Oracle APEX. Я развернул этот веб-сервис в EBS и получил ссылку WADL.

Теперь по этой ссылке я могу успешно вызвать веб-сервис с помощью инструмента Postman, предоставив ниже JSON-сообщение:

{
        "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. (Веб-служба внутренне вызывает стандартный пакет 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') 

тогда все будет работать нормально.

Пожалуйста, предложите.

Спасибо

1 Ответ

0 голосов
/ 26 марта 2019

Как вы упомянули, вы вызываете веб-сервис, используя метод POST, предоставляя JSON в качестве входных данных. Вы можете создать JSON со значениями для передачи и передать его параметру P_BODY процедуры APEX_WEB_SERVICE.MAKE_REST_REQUEST.

Для построения JSON вы можете использовать пакет APEX_JSON.

Надеюсь, что это работает ..

...