Histórico da Página
...
Produto: |
| |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Linha de Produto: |
| |||||||||||||
Segmento: |
| |||||||||||||
Módulo: |
| |||||||||||||
Função: | Demonstrativo do Efetivo de Pessoal (FP6800), Demonstrativo por Motivo de Desligamento (FP6810), Demonstrativo do Absenteísmo (FP6820), Demonstrativo Horas Extras (FP6830), Demonstrativo Movimentações de Pessoal (FP6840), Demonstrativo Folha de Pagamento (FP6850), Demonstrativo por Custos Rescisão (FP6860), Demonstrativo por Benefícios (FP6870), Demonstrativo Treinamento (FP6880), Demonstrativo Extrato (FP6890), Demonstrativo por Motivo de Admissão (FP6900), Demonstrativo Controle de Frequência (FP6910). | |||||||||||||
País: | Brasil | |||||||||||||
Ticket: | DRHROTDTS-10561 | |||||||||||||
Requisito/Story/Issue (informe o requisito relacionado) : |
|
02. SITUAÇÃO/REQUISITO
Ao testarmos o Progress 12 64Bits, detectamos algumas DLLs que pararam de funcionar, apresentando problemas de compatibilidade, onde alguns parâmetros da DLL passaram de LONG para INT64. A fim de corrigir esse problema, temos que realizar alguns ajustes nessas assinaturas das DLLs. Esses ajustes têm que ser feitos em tempo de execução, pois os “.r” são únicos para as duas arquiteturas.
Substituir os componentes kernel32.dll - GetShortPathNameA dos programas listados abaixo e substituí-los de acordo com a orientação do framework.
Identificar alternativas para os programas da linha Datasul consigam ser executados com o Client 64 bits do Progress Openedge, sem apresentar problemas de execução ou erros devido a estar rodando em uma arquitetura 64 bits.
Procuramos a substituição das DLLs utilizados no produto da linha Datasul, que atualmente rodam em 32 Bits, para rodar em 64 Bits, com o menor impacto possível para os Times.
Em testes realizados, ficou identificado que existem muitas bibliotecas utilizadas que são fornecidas por terceiros, através de uma DLL, onde apresentam problemas ao serem executados devido a eles terem sido construídos com uma arquitetura 32 bits.
A lista de programas identificados utilizando DLLs está disponível na área de Documentos Relacionados.
A issue DRHROTDTS-10561 trata os erros de execução relacionados ao uso de procedures externas com o Client 64 bits do Progress Openedge,.
Com a execução em arquitetura de 64 bits, algumas procedures externas, de DLLs, apresentaram problemas de compatibilidade.
Visto que, em alguns casos, os parâmetros para a execução com a arquitetura de 64 bits são diferentes, em relação aos parâmetros para a execução com a arquitetura de 32 bits.
No caso das Dentre as Rotinas Datasul, existe apenas uma procedure externa utilizada que apresenta estes problemas de compatibilidade, "GetShortPathNameA" , da DLL "kernel32", que apresenta estes problemas de compatibilidade.
Onde os parâmetros "lpszShortPath", "cchBuffer" e "lenBuffer", da procedure em questão, apresentam o tipo "LONG", compatível com a arquitetura de 32 bits, mas, no caso, não compatível com a arquitetura de 64 bits.
Todas as Rotinas que apresentam o uso de "GetShortPathNameA" devem ser ajustadas para execução em 64 bitsÉ necessário ajustar a assinatura da função. Para a arquitetura de 32 bits serão definidos parâmetros do tipo "LONG" e para a arquitetura de 64 bits serão definidos parâmetros do tipo "INT64".
Os compilados são únicos, utilizados em ambas as arquiteturas, desta forma os ajustes precisam ser fetos em tempo de execução.
03. SOLUÇÃO
Para solucionar este requisito aplicamos a Técnica de Execução 32Bits e 64Bits para DLL, disponibilizada no espaço "Engenharia-Segmentos".
04. ASSUNTOS RELACIONADOS
...