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 !

Formado em Gestão em Tecnologia da Informação, com sólidos conhecimentos em SQL, PL/SQL, Oracle Forms, Reports e E-Business Suite (AP,AR e GL).
Foi durante 3 anos gerente de tecnologia de grande empresa do setor de saúde, e atualmente atua como Analista de Sistema Sênior na Scania Latin America e também como Diretor-fundador do GPO (Grupo de Profissionais Oracle).