Árvore de páginas

Esta AAtrTempo aproximado para leitura: 00 min

ÍNDICE

  1. Instalação e configuração via servidor

  2. Checklist para geração dos relatórios

  3. Lentidão na geração dos relatórios (Performance)

  4. Ajustes no BDE

  5. 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:

  1. 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.
  2. 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.
  3. 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\.
  4. 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.
  5. Caso existam outros APPSERVER (Balance), verifique se não é necessária a cópia dos arquivos para os demais.
  6. 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:

Exibindo image.png

-Acessar o menu arquivo → Configuração da Página → Marcar a opção 'Sem Impressora (otimizar para exibição na tela)".

image.png

  • Ajustes ODBC:
  1. 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 executar relatórios customizados é possível utilizar a função CallCrys.


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.


CallCrys x JCallCrys

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. Portanto, caso esteja utilizando a função JCallCrys em uma customização que precisa de impressão em Excel, recomendamos a utilização da função CallCrys, atentando para o preenchimento dos parâmetros conforme citado acima.