Páginas filhas
  • ER_PCREQ-4888_Unificar_bibliotecas_compartilhadas_dos_frameworks_Logix_Protheus

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

 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

 

(Obrigatório)

Objetivo

 

<Nesta etapa informar o objetivo da especificação do requisito, ou seja, o que a funcionalidade deve fazer. Exemplo: Permitir que o usuário defina o percentual mínimo em espécie (dinheiro), a referência mínima para calculo dos débitos do aluno e o período de validade do parâmetro de negociação>.

(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>.

Opcional

Protótipo de Tela

 

<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.

 

Protótipo 01

 

 

 Image Removed

 

 

 

 

 

 

Opcional

Fluxo do Processo

 

<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>. 

Opcional

Dicionário de Dados

 

Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/

  

Índice

Chave

01

<FI9_FILIAL+FI9_IDDARF+FI9_STATUS>

02

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF>

03

<FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO>

Campo

<AAA_PERESP>

Tipo

<N>

Tamanho

<6>

Valor Inicial

<Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. 

Mandatório

Sim (  ) Não (  )

Descrição

<Referência Mínima para Cálculo>

Título

<Ref.Calc.>

Picture

<@E999.99>

Help de Campo

<Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação>

 

(Opcional)

Grupo de Perguntas

 

<Informações utilizadas na linha Protheus>.

 

Nome: FINSRF2

X1_ORDEM

01

X1_PERGUNT

Emissão De

X1_TIPO

D

X1_TAMANHO

8

X1_GSC

G

X1_VAR01

MV_PAR01

X1_DEF01

Comum

X1_CNT01

'01/01/08'

X1_HELP

Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório 

 

(Opcional)

Consulta Padrão

<Informações utilizadas na linha Protheus>

 

Consulta: AMB

Descrição

Configurações de Planejamento

Tipo

Consulta Padrão

Tabela

“AMB”

Índice

“Código”

Campo

“Código”; ”Descrição”

Retorno

AMB->AMB_CODIGO

 


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.


Definição da Regra de Negócio

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:

  1. 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.
  2. 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.
  3. 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
Revisar as chamadas da função LoadBitmap no Logix.

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
Revisar as chamadas das funções de envio de e-mail.

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
Alterar chamada da include style.ch para logixstyle.ch.

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
Rever a utilização dos componentes.

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
Rever a utilização dos componentes.

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
Rever a utilização dos componentes.

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
Rever a utilização dos componentes.

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
Rever a utilização das funções.

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
Rever a utilização das funções.

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
titleFWIsLogix
linenumberstrue
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
Renomear fontes conflitantes do Logix.

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 atualNome novo
EAIService.prwEAIServiceLogix.prw
FWHTTPAuth.prwFWHTTPAuthLogix.prw
FWSAMLSession.prwFWSAMLSessionLogix.prw
-----------------------------------------------------------------------------------------------------------------------------------------

 

Abaixo segue um exemplo de como ficará a chamada do EAIService do Logix de dentro do Protheus:

Bloco de código
titleEAIService.prw
firstline43
linenumberstrue
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
titleImportante

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.
Pensando nisto, será criado um pacote de acerto para ser aplicado antes da atualização oficial nos casos em que ocorrer este tipo de problema.

(Opcional)

Estrutura de Menu

 

<Informações utilizadas na linha Datasul>.

 

Procedimentos

 

Procedimento

 

 

 

Descrição

(Max 40 posições)

(Max 40 posições)

(Max 40 posições)

Módulo

 

 

 

Programa base

 

 

 

Nome Menu

(Max 32 posições)

(Max 32 posições)

(Max 32 posições)

Interface

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

Registro padrão

Sim

Sim

Sim

Visualiza Menu

Sim/Não

Sim/Não

Sim/Não

Release de Liberação

 

 

 

 

 

 

Programas

 

Programa

 

 

 

Descrição

(Max 40 posições)

(Max 40 posições)

(Max 40 posições)

Nome Externo

 

 

 

Nome Menu/Programa

(Max 32 posições)

(Max 32 posições)

(Max 32 posições)

Nome Verbalizado[1]

(Max 254 posições)

(Max 254 posições)

(Max 254 posições)

Procedimento

 

 

 

Template

(Verificar lista de opções no man01211)

(Verificar lista de opções no man01211)

(Verificar lista de opções no man01211)

Tipo[2]

Consulta/Manutenção/ Relatório/Tarefas

Consulta/Manutenção/ Relatório/Tarefas

Consulta/Manutenção/ Relatório/Tarefas

Interface

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

GUI/WEB/ChUI/Flex

Categoria[3]

 

 

 

Executa via RPC

Sim/Não

Sim/Não

Sim/Não

Registro padrão

Sim

Sim

Sim

Outro Produto

Não

Não

Não

Visualiza Menu

Sim/Não

Sim/Não

Sim/Não

Query on-line

Sim/Não

Sim/Não

Sim/Não

Log Exec.

Sim/Não

Sim/Não

Sim/Não

Rotina (EMS)

 

 

 

Sub-Rotina (EMS)

 

 

 

Localização dentro da Sub Rotina (EMS)

 

 

 

Compact[4]

Sim/Não

Sim/Não

Sim/Não

Home[5]

Sim/Não

Sim/Não

Sim/Não

Posição do Portlet[6]

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

0 – Top Left

1 – Top Right

2 – Bottom Left

3 – Bottom Right

Informar os papeis com os quais o programa deve ser vinculado

 

 

 

 

Cadastro de Papéis

<O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>.

<Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.

 

Código Papel

(máx 3 posições)

Descrição em Português*

 

Descrição em Inglês*

 

[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.

[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante

[3] Categorias são obrigatórias para os programas FLEX.

[4] Obrigatório quando o projeto for FLEX

[5] Obrigatório quando o projeto for FLEX

[6] Obrigatório quando o projeto for FLEX

 Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico.