Oracle E-Business Suite: Oracle Report Builder: Ferramentas para criação de relatórios

Dicas para a construção de relatórios para o Oracle Applications usando o Oracle Report Builder

Autor: Sandro Marques

 

Alba Spectrum Technologies

São Paulo +55-11-3571-4992, USA 1-866-528-0577, 1-630-961-5918, help@albaspectrum.com

O Oracle Report Builder é a ferramenta mais utilizada para a construção dos relatórios nativos do Oracle Applications. O objetivo deste artigo é comentar dois pontos importantes na utilização desta ferramenta para a criação de relatórios customizados que estendam as funcionalidades do Oracle Applications:

1) Parâmetro obrigatório do relatório

Deve ser criado um parâmetro de relatório, no Report Builder, chamado P_CONC_REQUEST_ID com o tipo ‘Number’. Através deste parâmetro o gerenciador de processos concorrentes do Oracle Applications passará o ID do processo executado para o programa escrito no Oracle Report.

 

 

2) Chamadas de função obrigatórias

Para que o relatório construído possa ser executado como um processo concorrente no Oracle Applications, é necessário que seja chamada a função SRW.USER_EXIT(‘FND SRWINIT’) no início do relatório, e a mesma função com o parâmetro ‘FND SRWEXIT’ no final do relatório A função SRW.USER_EXIT(‘FND SRWINIT’) inicializa os valores das opções do perfil do usuário e permite ao Oracle Application Object Library detectar que as funções de saída para o usuário serão chamadas de um programa do Oracle Report. Esta função deve ser chamada no gatilho de relatório “BEFORE REPORT” através do seguinte código:

SRW.USER_EXIT('FND SRWINIT');

A chamada desta função da forma acima descrita funciona quando o relatório é executado dentro do ambiente do Oracle Applications, mas gera o erro REP-1415 caso o relatório seja executado dentro do ambiente do Report Builder. Por essa razão, quando o relatório é executado no ambiente do Oracle Report Builder (para teste, por exemplo) esta chamada deve ser omitida e antes da geração da versão final a ser instalada no Applications, esta chamada de função deve ser recolocada.

Uma forma de evitar que este problema aconteça é inserir um novo parâmetro no relatório para que omita essa chamada automaticamente. O código abaixo é uma alternativa a essa implementação, que considera a criação de um parâmetro chamado “P_APPS_ENV”. Quando o relatório é executado dentro do ambiente do Report Builder o valor informado para o parâmetro deve ser nulo ou diferente de “Y”. No caso do relatório ser executado de dentro do ambiente do Applications, o valor do parâmetro deve ser igual a “Y” (neste caso, pode-se cadastrar um parâmetro no Applications com valor default igual a “Y”). Para esta solução, o seguinte código poderia ser utilizado, considerando inclusive o tratamento de exceção:

BEGIN

IF NVL(:P_APPS_ENV,'Y') = 'Y' THEN

     :P_APPS_ENV := 'Y';

     SRW.USER_EXIT('FND SRWINIT');

ELSE

     :P_APPS_ENV := 'N';

END IF;

EXCEPTION

     WHEN SRW.USER_EXIT_FAILURE THEN

                SRW.MESSAGE (1000,'Failed in BEFORE REPORT trigger');

     RETURN (FALSE);

END;

A chamada da função SRW.USER_EXIT(‘FND SRWEXIT’) ao final da execução do relatório garante que toda a memória alocada pela Oracle Application Object Library para a saída do usuário seja liberada apropriadamente. Esta função deve ser chamada no gatilho de relatório “After Report” com o seguinte código e respectivo tratamento de exceção:

BEGIN

SRW.USER_EXIT('FND SRWEXIT');

EXCEPTION

   WHEN SRW.USER_EXIT_FAILURE THEN

      SRW.MESSAGE(1,'FAILED IN AFTER REPORT TRIGGER');

    RETURN (FALSE);

END;

Caso sua empresa precise desenvolver relatórios customizados para o Oracle E-Business Suite, os dois pontos citados acima devem ser considerados. Considere a alternativa de utilização de nossa fábrica de software. Utilizamos processo padrão, baseado em um método de previsibilidade aberto e de fácil entendimento. Adequamos, com agilidade, o processo às necessidades da empresa cliente, com previsibilidade, comprometimento de prazos e custos e garantia da qualidade.

 

Você sempre poderá contar com a nossa ajuda e experiência em nossos escritórios: São Paulo +55-11-3444-4949, EUA +1-866-528-0577 ou +1-630-961-5918, México +52-55-535-04027, Europa +44-20-8123-2580 ou +45-36-96-5520 ou pelo email help@albaspectrum.com

 

Sandro Marques é consultor em ERP para a Divisão Latino América da  Grupo Alba Spectrum Technology ( http://www.albaspectrum.com ) -  SAP Business One, Oracle: Oracle E-Business Suite, Oracle Financials, Microsoft Business Solutions: Microsoft Great Plains (Microsoft Dynamics GP), Microsoft CRM (Microsoft Dynamics CRM), Microsoft Navision (Microsoft Dynamics NAV), Microsoft Axapta (Microsoft Dynamics AX). Atendemos clientes em São Paulo, Rio de Janeiro, Salvador, Porto Alegre, Curitiba, Belo Horizonte, Recife, Manaus e demais cidades do Brasil e o resto do mundo.