Я звоню в веб-службу 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, изменять его не рекомендуется.