Submetendo relatório XML Publisher (Via PL/SQL)

Bom dia!

Você que precisa submeter um Relatório XML Pusblisher via PL/SQL e está sem saber como utilizar o template, aqui vai a dica! Basicamente você irá utilizar o ADD_LAYOUT antes do SUBMIT_REQUEST.

Veja o exemplo:

DECLARE
--
l_responsibility_id  NUMBER;
l_application_id     NUMBER;
l_user_id            NUMBER;
l_request_id         NUMBER;
l_layout             NUMBER;
--
BEGIN
  --
  -- Preisamos SETAR User/Responsabilidade para fazer isto via PL/SQL. Portanto vamos pegar os IDs e setar o APPS INITIALIZE
  -- Informacoes Responsabilidade
  SELECT DISTINCT 
         fr.responsibility_id,
         frx.application_id
    INTO l_responsibility_id,
         l_application_id
    FROM fnd_responsibility frx,
         fnd_responsibility_tl fr
   WHERE fr.responsibility_id = frx.responsibility_id
     AND fr.responsibility_name LIKE ('INFORME SUA RESPONSABILIDADE');
     
  -- Informacoes Usuario
   SELECT user_id 
     INTO l_user_id 
     FROM fnd_user 
    WHERE user_name = 'INFORME SEU USUARIO';
    
  --
  -- Setando contexto
  --
  fnd_global.apps_initialize (l_user_id
                             ,l_responsibility_id
                             ,l_application_id);
  
  --
  -- Submetendo Layout
  --
  l_layout := fnd_request.add_layout(template_appl_name => 'XXBRA',
                                     template_code      => 'XXCONCCODE',
                                     template_language  => 'ptb',
                                     template_territory => 'BR',
                                     output_format      => 'EXCEL');
  --
  -- Submetendo Concurrent
  --
  l_request_id := fnd_request.submit_request (application   => 'XXBRA', 
                                              program       => 'XXCONCCODE', 
                                              description   => 'XX Relatorio Teste', 
                                              start_time    => SYSDATE, 
                                              sub_request   => FALSE,
                                              argument1     => 'Parametro do seu concurrent');
  
  -------
  COMMIT;
  -------
  
  IF l_request_id = 0
  
  THEN
     dbms.output.put_line ('Concurrent não foi submetido - ' || SQLERRM);
  ELSE
     dbms_output.put_line('');
  END IF;
  
EXCEPTION
   WHEN OTHERS THEN
      dbms_output.put_line('Erro ao submeter o programa concorrente: '||TO_CHAR(SQLCODE)||'-'||SQLERRM);
END;

Apoio: http://prasanthapps.blogspot.com.br/

Abs,
Junio Vitor

Deixe uma resposta

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


Por favor, utilize o captcha para tornar mais seguro o seu comentário!

Por favor, digite os caracteres desta imagem na caixa de entrada