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