Histórico da Página
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Informações Gerais
Especificação | |||
Produto | Logix | Módulo | Framework |
Segmento Executor | Tecnologia | ||
Projeto | LD_FRW_FRW001 | IRM | PCREQ-4887 |
Requisito | PCREQ-4888 | Subtarefa | PDR_LD_FRW001-68 |
Release de Entrega Planejada | 12.1.7 | ||
País | (X) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros |
Objetivo
Unificar as bibliotecas e componentes de framework compartilhados entre os produtos Protheus e Logix para que não haja qualquer incompatibilidade ou conflito na unificação dos mesmos em um repositório de objetos (RPO) único.
(Obrigatório)
Definição da Regra de Negócio
<Regra de negócio é o que define a forma de fazer o negócio, o processo definido e/ou as regras que devem ser contempladas. Devem ser descritas restrições, validações, condições e exceções do processo. Caso necessário, incluir neste capítulo também regras de integridade que devem ser observadas no momento do desenvolvimento>.
<Na tabela abaixo informe quais são as rotinas envolvidas, o tipo de operação, a opção de menu e se necessário uma breve descrição das regras de negócio relacionadas a rotina>.
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
[ACAA040 – Parâmetros] | [Alteração] | [Atualizações -> Acadêmico-> Tesouraria] | - |
[ACAA050 – Negociação Financeira] | [Envolvida] | [Atualizações -> Acadêmico-> Tesouraria] | - |
[ACAA060 – Cadastro de Pedidos] | [Criação] | [Atualizações -> Acadêmico-> Cadastros] | - |
Exemplo de Aplicação:
- Criar o campo “% Mínimo Espécie” (AAA_PERESP) onde o usuário informará o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação.
- Criar o campo “Referência Mínima para Cálculo” (AAA_REFCAL) onde o usuário informará um dos 4 valores disponíveis para pagamento das mensalidades como a referência mínima para calcular o débito total do aluno.
- Criar o parâmetro MV_ACPARNE que definirá se as informações de “% Mínimo Espécie” e “Referência Mínima para Cálculo” serão obrigatórias.
- O parâmetro MV_ACPARNE deve ter as seguintes opções: 1=Obrigatório e 2=Opcional. Deve ser inicializado como opcional>.
Tabelas Utilizadas
- SE2 – Cadastro de Contas a Pagar
- FI9 – Controle de Emissão de DARF>.
Atualmente no Logix são utilizadas diversas bibliotecas que foram duplicadas do Protheus, porém com a unificação dos frameworks, estes fontes irão conflitar com os já existentes no Protheus. Para evitar tais conflitos, as bibliotecas utilizadas no Logix serão revisadas conforme as necessidades abaixo:
- Adequação:
Funções do Logix com nomes iguais a funções do Protheus serão renomeadas ou serão retirados do código fonte do Logix. - Renomeação:
Caso o código fonte utilizado pelo Logix sofreu muitas alterações, o mesmo será renomeado e todos os outros fontes que o utilizam serão alterados. - Verificação de produto:
Caso o código fonte não possa ser renomeado, será feita uma alteração para verificar o produto em questão, executando a lógica conforme o resultado.
Para outras bibliotecas que não sofreram alterações, será apenas necessário readequar o local em que se encontra o código fonte - os mesmos deverão permanecer na pasta de códigos fontes do Protheus.
Adequação
No Logix existem funções que possuem nomes iguais as já existentes no Protheus (pode-se perceber isto durante a unificação do RPO), estas são funções copiadas de códigos fontes do Protheus ou por coincidência foram criadas com o mesmo nome. Neste caso deve-se avaliar cada uma das funções conflitantes para que a mesma seja renomeada, alterada para estática ou retirada do código fonte de Logix para que o mesmo passe a utilizar a função que se encontra no Protheus.
Código Fonte: LPrinterBase.prw
Conflito: Funções GetCoefFromIni, GetPrinterSession, PrinterSetup e IsPrinterOK já existentes no Protheus.
Solução: Remover estas funções do fonte LPrinterBase.prw e recolocá-las como estáticas no fonte LReportFile.prw que é onde são utilizadas.
Código Fonte: LNumericField.prw
Conflito: Função RemoveChar já existe no Protheus.
Solução: Remover a função do fonte LNumericField.prw, esta função não está sendo mais utilizada no Logix.
Código Fonte: miscfunctions.prw
Conflito: Função LoadBitmap já existe no Protheus.
Solução: Remover a função do fonte miscfunctions.prw e alterar os fontes do Logix para utilizar a função original do Protheus.
Fontes afetados | ||
LTable.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
LTableColumnEx.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
------------------------------- | ---------------------------------------------------------------------------------------------------------- |
Código Fonte: string.prw
Conflito: Função Capital já existe no Protheus.
Solução: Remover a função do fonte string.prw, os fontes do Logix que a utilizam passarão a usar a função original do Protheus.
Código Fonte: version.prw
Conflito: Função GetVersao já existe no Protheus.
Solução: Remover a função do fonte version.prw, os fontes do Logix que a utilizam passarão a usar a função original do Protheus.
Código Fonte: mail.prw
Conflito: Include já existe com este mesmo nome no Protheus.
Solução: Renomear as funções de envio de e-mail.
Fontes afetados | ||
LConfiguratorEmail.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/configurator | |
LMail.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
log5600.4gl | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/log/funcoes | |
log5600.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/log/funcoes | |
------------------------------- | ---------------------------------------------------------------------------------------------------------- |
Renomeação
Com a evolução de ambos os produtos, algumas bibliotecas duplicadas para uso no Logix foram alteradas com diversas correções e melhorias inviabilizando a combinação entre os códigos fontes. Para que não haja qualquer impacto tanto no produto Logix quanto no Protheus, o código fonte alterado será renomeado, criando-se assim uma nova classe ou biblioteca específica para o produto Logix.
Código Fonte: style.ch
Conflito: Include já existe com este mesmo nome no Protheus.
Solução: Renomear a include de style.ch para logixstyle.ch.
Fontes afetados | ||
eai.ch | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/include | |
framework.ch | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/include | |
log8100.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/audit_trail | |
log8110.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/audit_trail | |
log8120.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/audit_trail | |
log8130.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/audit_trail | |
log8140.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/audit_trail | |
tinterop4gl.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/lib/generico | |
tlocalfile.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/menu10R2 | |
tpmenugroup.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/menu10R2 | |
tpmenuitem.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/menu10R2 | |
------------------------------- | ---------------------------------------------------------------------------------------------------------- |
Código Fonte: FWChart.prw, FWChartBar.prw, FWCharColor.prw, FWChartFactory.prw, FWChartLegend.prw, FWChartLine.prw, FWChartPie.prw, FWChartSerie.prw
Conflito: Foram realizadas diversas melhorias e correções nos componentes, inviabilizando a combinação entre os fontes Logix e Protheus.
Solução: Renomear os componentes FWChart* para LFWChart* e revisar os fontes que o utilizam no Logix.
Fontes afetados | ||
LBarChart.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
LChart.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
LLineChart.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
LPieChart.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
------------------------------- | ---------------------------------------------------------------------------------------------------------- |
Código Fonte: FWLayer.prw, FWLayerCollumn.prw, FWLayerWindow.prw
Conflito: Foram realizadas diversas melhorias e correções nos componentes, inviabilizando a combinação entre os fontes Logix e Protheus.
Solução: Renomear os componentes FWLayer* para LFWLayer* e revisar os fontes que o utilizam no Logix.
Fontes afetados | ||
LLayer.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
LLayerCollumn.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
LLayerPanel.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
------------------------------- | ---------------------------------------------------------------------------------------------------------- |
Código Fonte: FWWindow.prw
Conflito: Foram realizadas diversas melhorias e correções nos componentes, inviabilizando a combinação entre os fontes Logix e Protheus.
Solução: Renomear os componentes FWWindow para LFWWindow e revisar os fontes que o utilizam no Logix.
Fontes afetados | ||
FWLayerWindow.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/lib/component | |
------------------------------- | ---------------------------------------------------------------------------------------------------------- |
Código Fonte: xtree.prw
Conflito: Foram realizadas diversas melhorias e correções nos componentes, inviabilizando a combinação entre os fontes Logix e Protheus.
Solução: Renomear os componentes XTree para LXTree e revisar os fontes que o utilizam no Logix.
Fontes afetados | ||
LTree.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
LTreeItem.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
LTreeEx.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
LTreeItemEx.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
LTreeNodeEx.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/free_form | |
menulogix110.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/menu11R0 | |
------------------------------- | ---------------------------------------------------------------------------------------------------------- |
Código Fonte: Transparent.prw
Conflito: As funções do fonte Transparent.prw foram completamente alteradas para que fossem utilizadas no Logix.
Solução: Criar um novo fonte com outro nome e recriar as funções do Transparent.prw com outros nomes neste novo fonte.
Fontes afetados | ||
LConfiguratorIdentity.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/configurator | |
login.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/lib/login | |
------------------------------- | ---------------------------------------------------------------------------------------------------------- |
Código Fonte: FWSCIMSystray.prw
Conflito: As funções do fonte FWSCIMSystray.prw foram alteradas para que fossem utilizadas no Logix.
Solução: Renomear o fonte FWSCIMSystray.prw para LFWSCIMSystray.prw e revisar os fontes que o utilizam no Logix.
Fontes afetados | ||
LConfiguratorIdentity.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/configurator | |
------------------------------- | ---------------------------------------------------------------------------------------------------------- |
Verificação do Produto
Em casos específicos, como serviços WebServices (WS) SOAP e REST, não é possível renomear o código fonte e suas funções - o mesmo código fonte deve ser utilizado por ambos os produtos. Para isso, estas bibliotecas serão alteradas para verificar se o produto em execução é Logix ou Protheus e executará a lógica conforme o resultado.
A verificação poderá consistir o produto conforme uma chave encontrada no arquivo APPSERVER.INI, conforme exemplo abaixo:
Bloco de código | ||||
---|---|---|---|---|
| ||||
Function FWIsLogix(cSection)
Local lRet := .F.
If Empty(cSection)
lRet := Upper( GetPvProfString( "GENERAL" , "SERVERTYPE" , "" , GetAdv97() ) ) == "4GL" .Or. ;
Upper( GetPvProfString( "GENERAL" , "DATEZERO" , "" , GetAdv97() ) ) == "4GL
If !lRet
lRet := Upper( GetPvProfString( GetEnvServer() , "SERVERTYPE" , "" , GetAdv97() ) ) == "4GL"
Upper( GetPvProfString( GetEnvServer() , "DATEZERO" , "" , GetAdv97() ) ) == "4GL
EndIf
Else
lRet := GetPvProfString( cSection, "LOGIX" , "0" , GetAdv97() ) == "1"
EndIf
Return lRet |
Nota |
---|
É importante lembrar que a verificação acima deve ser realizada nos códigos fontes do Protheus. |
Os serviços WS SOAP e REST abaixo do Logix serão renomeadas para funções, a chamada para elas, a partir desta alteração, será realizada pelo serviço do Protheus:
Fontes afetados | ||
EAIService.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/eai2/nucleo | |
LSCIMEntitlements.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/fluig/identity | |
LSCIMPing.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/fluig/identity | |
LSCIMResources.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/fluig/identity | |
LSCIMSync.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/fluig/identity | |
LSCIMUsers.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/fluig/identity | |
FWQuickSearch.prw | $/Logix/Fontes_Doc/Sustentacao/10R2-11R0/10R2-11R0/framework/fluig/quicksearch | |
------------------------------- | ---------------------------------------------------------------------------------------------------------- |
Alguns outros fontes, serão renomeados por já existirem o fonte com o mesmo nome no Protheus, como:
Nome atual | Nome novo |
---|---|
EAIService.prw | EAIServiceLogix.prw |
FWHTTPAuth.prw | FWHTTPAuthLogix.prw |
FWSAMLSession.prw | FWSAMLSessionLogix.prw |
------------------------------- | ---------------------------------------------------------------------------------------------------------- |
Abaixo segue um exemplo de como ficará a chamada do EAIService do Logix de dentro do Protheus:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
WSMETHOD receiveMessage WSRECEIVE inMsg WSSEND outMsg WSSERVICE EAIService
Local lRetorno := .T.
If FWIsLogix()
lRetorno := EAIReceiveMessageLogix(self)
Else
/* Código Protheus */
lRetorno := .T.
EndIf
Return lRetorno |
Aviso | ||
---|---|---|
| ||
Devido a todas estas reestruturações de códigos fontes e funções, podem haver problemas de conflitos de funções duplicadas na aplicação do pacote no RPO. |
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|