Jun 2, 2015

¿Problemas con el workflow notification service de E-business Suite de Oracle?

¿Problemas con el workflow notification service de E-business Suite de Oracle?

Quizás alguien más ya haya tenido alguna dificultad con este componente de la plataforma de E-business de Oracle. Bueno si alguien ya ha tenido algún problema les comento un tips para encontrar rápidamente  cual puede ser la causa del inconveniente.

Será necesario primero averiguar en que status se encuentra el workflow con la siguiente consulta que debe ser ejecutada en la base de datos que utiliza el E-business:

set pagesize 999
set lines 400
col component_name format a70
select component_name,upper(component_status) as component_status from apps.fnd_svc_components --where component_name = 'Workflow Notification Mailer'
La anterior consulta muestra cual es el status de los servicios, si alguno de ellos tiene algún problema puede ser revisado en el archivo log que entrega la siguiente consulta (este archivo se debe encontrar en el servidor aplicativo del e-business suite)
SELECT fcp.logfile_name
FROM apps.fnd_concurrent_queues fcq, apps.fnd_concurrent_processes fcp, apps.fnd_lookups flkup
WHERE concurrent_queue_name in ('WFMLRSVC')
AND fcq.concurrent_queue_id = fcp.concurrent_queue_id
AND fcq.application_id = fcp.queue_application_id
AND flkup.lookup_code=fcp.process_status_code
AND lookup_type ='CP_PROCESS_STATUS_CODE'AND meaning='Active';

Este archivo contiene información importante de todo el comportamiento del workflow de la plataforma.

Como tips adicional adjunto la consulta con la cual el componente afectado puede ser levantado:

-- aqui definimos el nombre del esquema de E-business deberia ser APPS
alter session set current_schema=apps;
 declare
      p_retcode number;
      p_errbuf varchar2(100);
      m_mailerid apps.fnd_svc_components.component_id%TYPE;
 begin
      select component_id
        into m_mailerid
        from apps.fnd_svc_components
-- aqui va el nombre del componente tal cual como aparece en la primera imágen
-- se trata de los nombres que se observan en la columna COMPONENT_NAME
       where component_name = 'NOMBRE_DEL_COMPONENTE_AFECTADO';
      apps.fnd_svc_component.start_component(m_mailerid, p_retcode, p_errbuf);
      commit;
 end;
/
exit;

Aquí un segundo tips para reiniciar el workflow pero esta vez con salida por pantalla de posibles errores:
set serveroutput on size 1000000
declare
n_component_id number;
v_component_status varchar2(40);
l_errcode number;
l_errstr varchar2(4000);
v_time varchar2(60);
begin
select component_id,component_status into n_component_id,v_component_status from fnd_svc_components
where component_name='Workflow Notification Mailer';
dbms_output.put_line(n_component_id||' '||v_component_status);
select to_char(sysdate,'DD-MON-YYYY HH24:MI:SS') into v_time from dual;
dbms_output.put_line(v_time);
dbms_output.put_line('Stopping Notification Mailer');
FND_SVC_COMPONENT.stop_Component(n_Component_Id, l_errcode, l_errstr);
commit;
dbms_output.put_line(n_component_id||' '||l_errcode||l_errstr);
dbms_lock.sleep(90);
dbms_output.put_line(n_component_id||' '||v_component_status);
select to_char(sysdate,'DD-MON-YYYY HH24:MI:SS') into v_time from dual;
dbms_output.put_line(v_time);
dbms_output.put_line('Starting Notification Mailer');
FND_SVC_COMPONENT.start_Component(n_Component_Id, l_errcode, l_errstr);
commit;
dbms_output.put_line(n_component_id||' '||l_errcode||l_errstr);
dbms_lock.sleep(65);
dbms_output.put_line(n_component_id||' '||v_component_status);
select to_char(sysdate,'DD-MON-YYYY HH24:MI:SS') into v_time from dual;
dbms_output.put_line(v_time);
end;
/

Espero haya sido de utilidad estos scripts.


No comments:

Post a Comment