GPO ( Grupo de Profissionais Oracle )
A maior comunidade Oracle do Brasil !

Purge nas Notificações de e-mail no Workflow Queue do E-Business Suite R12

Olá pessoal !

Hoje eu vou mostrar como dar um purge nas notificações de e-mail no Workflow queue do E-Business Suite R12.

Primeiramente, vamos parar o componente Workflow Notification Mailer. Você pode fazer isso através do caminho abaixo:

Clicar em Notification Mailer, e depois parar o componente.

Ou simplesmente rodar o script abaixo:

-- Start/Stop Component        

DECLARE

   p_retcode  NUMBER;

   p_errbuf   VARCHAR2(100);

   v_ID       FND_SVC_COMPONENTS.component_id%TYPE;

   v_CS       FND_SVC_COMPONENTS.component_status%TYPE;

   v_CN       FND_SVC_COMPONENTS.component_name%TYPE := 'Workflow Notification Mailer';


BEGIN

   SELECT a.component_id,a.component_status 

   INTO   v_ID

         ,v_CS

   FROM   fnd_svc_components a

   WHERE  a.component_name = v_CN;

   -- Stop Component

   IF v_CS IN ('STOPPED','DEACTIVATED_USER')

   THEN

      DBMS_OUTPUT.put_line('Starting ' || v_CN || '...');

      FND_SVC_COMPONENT.start_component

         (

          v_ID

         ,p_retcode

         ,p_errbuf

         );

   ELSIF v_CS IN ('RUNNING')

   THEN

      DBMS_OUTPUT.put_line('Stopping ' || v_CN || '...');

      FND_SVC_COMPONENT.stop_component

         (

          v_ID

         ,p_retcode

         ,p_errbuf

         );

   ELSE

      DBMS_OUTPUT.put_line('No Action to ' || v_CN || '...');

   END IF;

   COMMIT;

END;

Esse script server para parar e para iniciar o componente. Vamos executar o bloco PL/SQL e pará-lo.

Stopping Workflow Notification Mailer...

Vamos verificar se o componente já está parado, para isso, rode a consulta SQL abaixo:

-- Verify Component Status

SELECT b.component_name

      ,b.startup_mode

      ,b.component_status

FROM   APPS.fnd_concurrent_queues_vl a

      ,fnd_svc_components b

WHERE  b.concurrent_queue_id = a.concurrent_queue_id(+)

ORDER BY b.component_status 

        ,b.startup_mode 

        ,b.component_name;

Observe que o serviço foi desativado. Agora vamos descobrir quais e-mails estão na fila de notificação:

Observe que existem 2 e-mails no queue. Se não houver erros ao reiniciar, o componente irá enviá-los assim que for ativado novamente. Para evitar isso, vamos mudar o MAIL_STATUS para SENT.

-- Update Mail Status

UPDATE wf_notifications 

SET    mail_status = 'SENT' 

WHERE  mail_status = 'MAIL'

AND    notification_ID IN(2148588,2148590);

2 rows updated.

Vamos verificar novamente o status:

SELECT notification_id,status,mail_status,begin_date 

FROM  wf_notifications 

WHERE status      = 'OPEN'

AND   notification_id IN (2148588,2148590);

Pronto ! Assim que o componente for iniciado, esses e-mails que estavam no queue não serão mais enviados.

Vamos reiniciar o componente. Para isso, execute o mesmo script que utilizamos para pará-lo.

Starting Workflow Notification Mailer...

Vamos verificar o status do componente e ver se já foi iniciado…

Chegamos ao fim do nosso procedimento !

 

Share

You may also like...

Deixe um comentário

O seu endereço de e-mail não será publicado.