Pular para o conteúdo

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

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:

Workflow Queue do E-Business Suite

Clicar em Notification Mailer, e depois parar o componente.

image 7

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;
image 8

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

image 9

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);
image 10

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…

image 11

Chegamos ao fim do nosso procedimento !

Sergio Willians

Sergio Willians

Sergio Willians é o fundador do GPO (Grupo de Profissionais Oracle) e possui quase 30 anos de experiência em tecnologias Oracle, sendo especialista em desenvolvimento Forms/Reports, PL/SQL e EBS (E-Business Suite) nos módulos Receivables, Payables e General Ledger. Atualmente trabalha na Scania Latin America, onde se dedica à área de integração de dados com Confluent Kafka. Sua paixão é compartilhar conhecimento com a comunidade Oracle, contribuindo para o crescimento e a excelência da plataforma.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress