Как передать ИД пользователя EBS при вызове веб-сервисов EBS из Oracle APEX - PullRequest
0 голосов
/ 22 мая 2019

Я звоню в веб-службу EBS «Назначить роли» из Oracle APEX.Он успешно вызывается и назначает роль нужному пользователю.Но если я пойду и проверю таблицу «wf_user_role_assignments», то поле create_by имеет идентификатор пользователя для пользователя Apex, а не для пользователя EBS.Как я могу это сделать?

Я передаю EBS_ user_id при вызове веб-службы из APEX.Я отладил код, который вызывается из веб-службы.

Он вызывает пакет «UMX_REGISTRATION_PVT», который, в свою очередь, вызывает «wf_local_synch.propagateUserRole».Но передаваемые параметры не включают в себя поле create_by.

 wf_local_synch.propagateUserRole (
    p_user_name        => l_requested_for_user_name,
    p_role_name        => l_wf_role_name,
    p_start_date       => l_requested_start_date,
    p_expiration_date  => l_requested_end_date,
    p_raiseErrors      => true,
    p_assignmentReason => l_justification);

Таким образом, когда этот процесс на самом деле вызывается, он принимает значение NULL в качестве параметра «create_by».

После этого, когда этот процесс вызывает WF_Directory.CreateUserRole, он присваивает

l_creatby := nvl(CreateUserRole.created_by,WFA_SEC.USER_ID);

, который принимает значение пользователя APEX.

Я хочу, чтобы идентификатор пользователя EBS заполнялся в созданном поле в таблице "wf_user_role_assignments"?Как я могу это сделать, так как "wf_local_synch.propagateUserRole" не включает этот параметр при вызове, я не могу передать правильное значение.А поскольку это стандартный пакет Oracle, изменять его не рекомендуется.

1 Ответ

0 голосов
/ 24 мая 2019

Поле create_by - это стандартное поле аудита (известное как столбец who) в EBS - это внешний ключ для FND_USER и должно соответствовать пользователю EBS.Веб-служба работает как центральный пользователь EBS с дополнительными привилегиями, и система будет устанавливать значение для этого столбца как пользователь, от имени которого выполняется код, а не как пользователь, для которого выполняется код.

Было бы нецелесообразно делать это, поскольку вы обходили бы намерение столбца аудита.Итак, лучший вопрос, почему вы хотите это сделать?И можете ли вы получить информацию из другого места?

...