Esto es un bug de Oracle que se da al ejecutar
fnd_global.apps_initialize dentro del contexto de un trigger. Pero teniendo en cuenta el código ORA-04092, un error conocido cuando se intenta hacer un commit o rollback dentro de un trigger, es probable que el bug esté en el diseño de las transacciones del paquete fnd_global, lo que podrías evitar (en teoría) con el código:
Código:
FUNCTION Set_Context(i_User_Name IN Varchar2,
i_Resp_Name IN Varchar2,
i_Org_Id IN Number) RETURN Varchar2 IS
...
Begin
...
/*Fnd_Global.Apps_Initialize(User_Id => v_User_Id,
Resp_Id => v_Resp_Id,
Resp_Appl_Id => v_Resp_Appl_Id);*/
/*procedimiento para llamar a fnd_global.apps_initialize*/
proc1 (User_Id => v_User_Id,
Resp_Id => v_Resp_Id,
Resp_Appl_Id => v_Resp_Appl_Id);
...
End Set_Context;
PROCEDURE Proc1 (i_User_Name IN Varchar2,
i_Resp_Name IN Varchar2,
i_Org_Id IN Number) IS
pragma autonomous_transaction;
Begin
fnd_global.APPS_INITIALIZE(p_user_id,1,1);
commit;
End Proc1;
El pragma autonomous_transaction hace que un procedimiento se ejecute en una transacción independiente del proceso que lo invoca.
Saludos