Ver Mensaje Individual
  #2 (permalink)  
Antiguo 22/11/2011, 17:04
Avatar de matanga
matanga
 
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Fnd_Request.Submit_Request desde Trigger en R12

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