Histórico da Página
Esta AAtrTempo aproximado para leitura: 00 min
ÍNDICE
Instalação e configuração via servidor
Checklist para geração dos relatórios
Lentidão na geração dos relatórios (Performance)
Ajustes no BDE
Customizações - Pontos importantes
01. INSTALAÇÃO E CONFIGURAÇÃO VIA SERVIDOR
Para possibilitar a instalação do Protheus Crystal Integration, primeiramente é necessário realizar o download do instalador no Portal da TOTVS (Área de Download, pacote do Crystal Integration - "protheus_crystal_integration.msi" - com data igual ou superior à Out/2013).
A instalação deve ser feita no servidor onde será executada a aplicação do Protheus.
O parâmetro MV_JCRYSER deve ser configurado com conteúdo .T..
O parâmetro MV_CRYSTAL deve ser configurado com o nome de uma pasta dentro do RootPath, por default o conteúdo é "\CRYSTAL\". Importante verificar se a pasta existe, caso não houver criar.
Os arquivos de relatório devem estar no diretório mencionado acima.
Em seguida, copie os arquivos citados abaixo, normalmente existentes no diretório \SMARTCLIENT\ para o \APPSERVER\:
- APAPI.DLL
- APCONN.DLL
- CRYSINI.INI - Este arquivo é criado através de um Wizard, caso não exista. Também é possível criá-lo manualmente, conforme modelo abaixo, respeitando os diretórios da sua instalação. Procure utilizar o caminho através do DRIVE (C:\...) e não de REDE (\\SERVIDOR\...):
[PATH]
SXS=C:\TOTVS\P11\Protheus_Data\system
DATA=C:\TOTVS\P11\Protheus_Data
EXPORT=C:\TOTVS\P11\Protheus_Data\spool
PATHLOG=C:\TOTVS\P12Local\Protheus_data\crystal
LOG=1
AUTO=0
- CRWINI.INI - É possível criar este arquivo manualmente, conforme modelo abaixo, respeitando os diretórios da sua instalação.
[SXS]
SX1=1
SX2=0
- SGCRYS32.EXE
Após as configurações acima, incluir em cada ambiente (environment) do APPSERVER.INI a linha abaixo:
CRWINSTALLPATH=<caminho do appserver, exemplo C:\TOTVS\P11\Protheus\AppServer\>
No servidor de aplicação, deverá ser criada uma conexão ODBC para o banco de dados. O Crystal Reports utiliza uma conexão criada no ODBC32.
Caso o Windows seja 32 bits, o ODBC32 estará na pasta ...\SYSTEM32\, se for 64 bits, pasta ...\SYSWOW64\;
Após criar a conexão ODBC, na aba "Workarounds" desabilite a opção "Disable RULE hint";
Verifique se os arquivos de relatórios (.rpt) estão apontados para a conexão existente no ODBC. A conexão pode ser a mesma da aplicação, desde que essa esteja criada no ODBC32.
Após todas as configurações acima efetivadas, abrir o SmartClient e executar a função "CRYSCONFIG". Na próxima tela informa o usuário senha do Protheus e após o usuário se senha do banco de dados.
OBSERVAÇÕES:
- Nas estações de trabalho, nenhuma configuração é necessária quando utilizada a impressão via servidor. Isto é, a criação de ODBC, instalação do Crystal Integration e compartilhamento para a pasta CRYSTAL são dispensáveis.
- O relatório será gerado no servidor, convertido para PDF e transferido para a estação, portanto é importante existir o Adobe Acrobat Reader instalado no servidor.
- Observe que se a chamada da rotina (padrão ou customizada) não estiver preparada para ser executada via servidor, as configurações acima não surtirão efeito e, como consequência, os arquivos serão buscados no \SMARTCLIENT\.
- Caso seja ativado o log no arquivo CRYSINI.INI (LOG=1), o arquivo CRLOG será criado no C:\ (caso não seja definido um path diferente) e pode ser bem útil durante o processo de configuração.
- Caso existam outros APPSERVER (Balance), verifique se não é necessária a cópia dos arquivos para os demais.
- Caso seja percebido que os arquivos utilizados são do SMARTCLIENT, provavelmente o parâmetro MV_JCRYSER não foi criado, ou está como .F. (falso).
02. CHECKLIST PARA GERAÇÃO DO RELATÓRIO
Caso o relatório em Crystal não esteja sendo gerado, abaixo temos alguns pontos que devem ser verificados:
- Para o relatório de pré-fatura (JU201), no cadastro Tipo de Relatório de Pré-fatura (JURA196) verificar se o campo Nome Arq. está preenchido. Caso esteja preenchido, verificar se existe o arquivo com esse mesmo nome no diretório Crystal do servidor. Exemplo: JU201.RPT
- Para o relatório de pré-fatura (JU201), caso o campo Nome Arq esteja vazio, a rotina irá considerar o nome JU201 para chamada do processamento do relatório. Todavia, é necessário que não exista o arquivo ".RPT" (sem nome) no diretório Crystal.
- Gerar o relatório direto pelo Crystal Reports com base nos parâmetros passados no arquivo CRLOG (Parâmetro 17) para garantir que o relatório está correto.
- Analisar o arquivo de log (CRLOG.LOG) para checar qual mensagem de erro está sendo gerada, sendo que para o caminho deste arquivo fica na chave PATHLOG do arquivo CRYSINI.INI.
- Verificar se a quantidade de parâmetros que está sendo passada via Protheus é a mesma que está sendo recebida no relatório.
- A pasta criada com os arquivos do "smartclient.exe" não pode ter espaçamento no endereço completo do caminho, por exemplo: "C:\SmartCliente TOTVS". Obrigatoriamente o caminho deve ser sem espaços, exemplo: "C:\SmartClient_TOTVS" (Utilizado o underline no lugar do espaço).
03. LENTIDÃO NA GERAÇÃO DOS RELATÓRIOS (PERFORMANCE)
Para aumento no ganho de performance na geração dos relatórios foram identificados os pontos abaixo:
- Ajustes nos relatórios utilizando a ferramenta Crystal Reports:
1. Acessar o menu Arquivo e em seguida a opção Opções de Relatório:
2. Desabilitar as opções:
-Verificar na primeira atualização
-Exibir alertas na atualização
Observação: Essas configurações devem ser feitas para cada arquivo do relatório Crystal.
3. Ao abrir o relatório via Crystal Reports, caso seja exibido a mensagem "Este relatório utiliza uma impressora inválida. A impressora padrão será utilizada no lugar."
-Mensagem de alerta ao abrir o relatório:
-Acessar o menu arquivo → Configuração da Página → Marcar a opção 'Sem Impressora (otimizar para exibição na tela)".
- Ajustes ODBC:
- Selecionar a conexão ODBC da fonte de dados e clicar na opção configurar:
2. Em seguida, na aba Workarounds desabilitar a opção 'Disable RULE Hint':
04. AJUSTES NO BDE
Quando o volume de impressão de relatórios é muito alto, pode ocorrer problema na alocação de memória do Windows para o BDE. Com isso, pode ocorrer o erro "An error occurred while attempting to initialize the Borland Database Engine (error $210D)".
Para corrigir o problema, por favor realizar os ajustes conforme as instruções do link.
05. CUSTOMIZAÇÕES - PONTOS IMPORTANTES
Para relatórios customizados é possível utilizar a função CallCrys
Expandir | |||||
---|---|---|---|---|---|
| |||||
Procedimentos para Utilização: Crie uma rotina AdvPL que utilize a função CallCrys para gerar um relatório Crystal Reports, informando o valor .T. para o sexto parâmetro da função. A parametrização da função CallCrys é a seguinte: CallCrys(<cRpt>,<cParams>,<cOptions>, [lWaitRun], [lShowGauge], [lRunOnServer], [lExportFromServer], [aTables]) Sendo: <cRpt> = Nome do relatório. <cParams> = Parâmetros do relatório, separados por vírgula (,) ou ponto e vírgula (;). Caso este parâmetro seja marcado, serão desconsiderados os parâmetros marcados no SX1. <cOptions> = Opções para não se mostrar a tela de configuração de impressão no formato <x>;<y>;<z>;<w>. Sendo: x = Impressão em Vídeo(1), Impressora(2), Impressora(3), Excel(4), Excel Tabular(5), PDF(6), Texto(7) e Word(8). y = Atualiza Dados(0) ou não(1). z = Número de cópias. Para exportação este valor sempre deverá ser 1. w = Título do Report. Para exportação este será o nome do arquivo sem extensão. <lWaitRun> = Indica se deve interromper a execução da função CallCrys até o fechamento do relatório. <lShowGauge> = Indica se a barra de progressão da geração do relatório deve ser exibida. <lRunOnServer> = Indica se a execução do relatório deve ser feita no servidor (Envie sempre .T. nesse parâmetro). <lExportFromServer> = Indica que será feita exportação do arquivo do relatório no servidor, neste modo o relatório não é exibido para o usuário final. <aTables> = Define que as tabelas nele inclusas não receberão tratamento de filial e de deleção. Formato: {'tabela1', 'tabela2', 'tabela3' ...} Exemplo: {'SA1', 'SB1'} As rotinas que fazem uso da função CallCrys devem ser executas em ambientes que tenham interface com o usuário. Existe uma função do padrão do módulo SIGAPFS chamada JCallCrys utilizada para essa integração. Por padrão, em sua utilização via WebApp (SmartClient HTML), a impressão via Excel não está ativada. Portando caso esteja utilizando a função JCallCrys e a customização for de uma impressão em Excel, recomendamos a utilização da função CallCrys, atentando para preencher os parâmetros conforme citado acima.
|
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Procedimentos para Utilização:
Crie uma rotina AdvPL que utilize a função CallCrys para gerar um relatório Crystal Reports, informando o valor .T. para o sexto parâmetro da função.
A parametrização da função CallCrys é a seguinte:
CallCrys(<cRpt>,<cParams>,<cOptions>, [lWaitRun], [lShowGauge], [lRunOnServer], [lExportFromServer], [aTables])
Sendo:
<cRpt> = Nome do relatório.
<cParams> = Parâmetros do relatório, separados por vírgula (,) ou ponto e vírgula (;). Caso este parâmetro seja marcado, serão desconsiderados os parâmetros marcados no SX1.
<cOptions> = Opções para não se mostrar a tela de configuração de impressão no formato <x>;<y>;<z>;<w>. Sendo:
x = Impressão em Vídeo(1), Impressora(2), Impressora(3), Excel(4), Excel Tabular(5), PDF(6), Texto(7) e Word(8) .
y = Atualiza Dados(0) ou não(1)
z = Número de cópias. Para exportação este valor sempre deverá ser 1.
w = Título do Report. Para exportação este será o nome do arquivo sem extensão.
<lWaitRun> = Indica se deve interromper a execução da função CallCrys até o fechamento do relatório.
<lShowGauge> = Indica se a barra de progressão da geração do relatório deve ser exibida.
<lRunOnServer> = Indica se a execução do relatório deve ser feita no servidor.
<lExportFromServer> = Indica que será feita exportação do arquivo do relatório no servidor, neste modo o relatório não é exibido para o usuário final.
<aTables> = Define que as tabelas nele inclusas não receberão tratamento de filial e de deleção. Formato: {'tabela1', 'tabela2', 'tabela3' ...} Exemplo: {'SA1', 'SB1'}
As rotinas que fazem uso da função CallCrys devem ser executas em ambientes que tenham interface com o usuário.
Existe uma função do padrão do módulo SIGAPFS chamada JCallCrys utilizada para essa integração.
Por padrão, em sua utilização via WebApp (SmartClient HTML), a impressão via Excel não está ativada. Portando caso esteja utilizando a função JCallCrys e a customização for de uma impressão em Excel, recomendamos a utilização da função CallCrys, atentando para preencher os parâmetros conforme citado acima.
|