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