Árvore de páginas

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

MICROSIGA PROTHEUS

Módulo Todos

 

Segmento Executor

SERVIÇOS

Projeto1

DSERFAT

Epichttp://jiraproducao.totvs.com.br/browse/DSERFAT-450

 

País

(  ) Brasil  (  ) Argentina  (  ) Mexico  (  ) Chile  (  ) Paraguai  (  ) Equador

(  ) USA  (  ) Colombia   (x  ) Outro: Todos.

Outros

<Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>.

Objetivo

O projeto do novo cadastro de Clientes é iniciativa TOTVS cujo objetivo é reescrever o antigo cadastro de Clientes ( MATA030 ) para um padrão de arquitetura de software chamada MVC ( Model-View-Controller ).

Definição da Regra de Negócio

Utilizamos o padrão de desenvolvimento MVC ( Model-View-Controller ) no novo cadastro de Clientes para separar a lógica de negócio da lógica de apresentação ( a interface ), para permitir o desenvolvimento, testes e manutenção de forma isolada. Visando ganho de produtividade no desenvolvimento de regras de negócios padrões do produto  e das possíveis customizações de nossos Clientes utilizando POO ( Programação Orientada Objetos ). Além disso o MVC nos proporcionam funcionalidades nativas deste Framework com os seguintes recursos:

O fonte do cadastro de clientes em MVC será o CRM980.PRW. Este fonte foi dividido com a seguinte estrutura:

Localização Padrão ( Todos os Países )
CRM980
CRMA980.PRW
-
Estrutura do MVC contendo: ModelDef, ViewDef e MenuDef
.
CRM980EventDEF.PRW -
Interceptação dos eventos gerados pelo MVC para
desenvolvimentos
desenvolvimento das regras de negócios
para todos
CRM980EventDEF.PRWTodos os módulos do Microsiga Protheus
.
CRM980EventDEFCRM.
PRW  - Interceptação dos eventos gerados pelo MVC para desenvolvimentos das regras de negócios específicos do módulo de CRM.CRM980EventDEFEIC.PRW  - Interceptação dos eventos gerados pelo MVC para desenvolvimentos das regras de negócios específicos do módulo de
PRWCRM ( Customer Relationship Management ).
CRM980EventDEFEIC.PRW
Controle de Importações / Exportação
.
CRM980EventDEFFAT.
PRW  - Interceptação dos eventos gerados pelo MVC para desenvolvimentos das regras de negócios específicos do módulo de Faturamento.
  • CRM980EventDEFFIN.PRW  - Interceptação dos eventos gerados pelo MVC para desenvolvimentos das regras de negócios específicos do módulo do Financeiro.
  • CRM980EventDEFFIS.PRW  - Interceptação dos eventos gerados pelo MVC para desenvolvimentos das regras de negócios específicos do módulo do Fiscal.
  • CRM980EventDEFGFE.PRW  - Interceptação dos eventos gerados pelo MVC para desenvolvimentos das regras de negócios específicos do módulo do Gestão de Frete Embarcador.
  • CRM980EventDEFINT.PRW  - Interceptação dos eventos gerados pelo MVC para desenvolvimentos das regras de negócios específicos para Integrações de Softwares de Terceiros. 
  • CRM980EventDEFJUR.PRW  - Interceptação dos eventos gerados pelo MVC para desenvolvimentos das regras de negócios específicos do módulo do Jurídico.
  • CRM980EventDEFLOJ.PRW  - Interceptação dos eventos gerados pelo MVC para desenvolvimentos das regras de negócios específicos do módulo de Controle de Lojas.
  • CRM980EventDEFOMS.PRW  - Interceptação dos eventos gerados pelo MVC para desenvolvimentos das regras de negócios específicos do módulo de Gestão de Distribuição.
  • CRM980EventDEFTMS.PRW  -
    PRWFaturamento
    CRM980EventDEFFIN.PRW Financeiro
    CRM980EventDEFFIS.PRW Fiscal
    CRM980EventDEFGFE.PRWGestão de Frete Embarcador
    CRM980EventDEFINT.PRW Softwares de Terceiros
    CRM980EventDEFJUR.PRW Jurídico
    CRM980EventDEFLOJ.PRW Controle de Lojas
    CRM980EventDEFOMS.PRWGestão de Distribuição
    CRM980EventDEFTMS.PRWGestão de Transporte
    Localização Padrão + Brasil
    CRMA980BRA.PRW Estrutura do MVC contendo: ModelDef, ViewDef e MenuDef
    Interceptação dos eventos gerados pelo MVC para
    desenvolvimentos
    desenvolvimento das regras de negócios
    específicos do módulo de Gestão de Transporte.
    CRM980EventBRA.PRWTodos os módulos do Microsiga Protheus
    CRM980EventBRAFIS.PRWFiscal
    Localização Padrão + Argentina
    CRMA980ARG.PRWEstrutura do MVC contendo:

    Localização Brasil ( Contendo as regras de negócio da localização Padrão + Brasil )CRMA980BRA.PRW - Estrutura MVC contendo
    ModelDef, ViewDef e MenuDef
    .
    CRM980EventBRA.PRW -
    Interceptação dos eventos gerados pelo MVC para
    desenvolvimentos
    desenvolvimento das regras de negócios
    para todos
    CRM980EventARG.PRWTodos os módulos do Microsiga Protheus
    .
    Localização
    Argentina ( Contendo as regras de negócio da localização
    Padrão +
    Argentina )
    Colômbia
    CRMA980ARG
    CRMA980COL.PRW
    Estrutura do MVC contendo: ModelDef, ViewDef e MenuDef
    Interceptação dos eventos gerados pelo MVC para desenvolvimento das regras de negócios
    CRM980EventCOL.
    CRM980EventARG.PRW -
    PRWTodos os módulos do Microsiga Protheus
    Localização Padrão + Guatemala
    CRMA980COL.PRWTodos os módulos do Microsiga Protheus
    Interceptação dos eventos gerados pelo MVC para
    desenvolvimentos
    desenvolvimento das regras de negócios
    para todos
    CRM980EventGUA.PRWTodos os módulos do Microsiga Protheus
    .

    O novo fonte contempla também a rotina automática e a mesma deve ser chamada da seguinte forma:

    Bloco de código
    languagecpp
    themeConfluence
    linenumberstrue
    //-------------------------------------------------------------------
    /*/{Protheus.doc} MyCRMA980
    Função de exemplo para utilização da rotina automática de Clientes.
    @param		Nenhum
    @return	Nenhum
    @author 	Squad CRM / FAT
    @version	12.1.17 / Superior
    @since		24/05/2017 
    /*/
    //-------------------------------------------------------------------
    User Function MyCRMA980()
    Local aRotAuto	:= {} 
    Local nOpcAuto	:= MODEL_OPERATION_INSERT
    Local lRet			:= .T.
    Private lMsErroAuto := .F.
    lRet := RpcSetEnv("T1","D MG 01","Admin")
    If lRet 
    	
    	//----------------------------------
    	// Campos da tabela de Clientes
    	//----------------------------------
    	aAdd(aRotAuto,{"A1_COD"		,"693848"				,Nil})
    	aAdd(aRotAuto,{"A1_LOJA"		,"01"					,Nil})
    	aAdd(aRotAuto,{"A1_NOME"		,"ROTINA AUTOMATICA"  ,Nil})
    	aAdd(aRotAuto,{"A1_NREDUZ"	,"ROTAUTO"			,Nil})
    	aAdd(aRotAuto,{"A1_END"		,"BRAZ LEME"			,Nil})
    	aAdd(aRotAuto,{"A1_TIPO"		,"F"					,Nil})
    	aAdd(aRotAuto,{"A1_CGC"		,"39346482000171"		,Nil})
    	aAdd(aRotAuto,{"A1_EST"		,"SP"					,Nil})
    	aAdd(aRotAuto,{"A1_MUN"		,"SAO PAULO"			,Nil})
    	
    	//----------------------------------
    	// Cadastro de Clientes.
    	//----------------------------------
    	MSExecAuto({|a,b| CRMA980(a,b)}, aRotAuto, nOpcAuto) 
    	 
    	If lMsErroAuto	 
    		lRet := .F.
    		MostraErro()
    	Else
    		Conout("Cliente incluído com sucesso!")
    	EndIf
    	
    EndIf
    RpcClearEnv()
                 
    Return lRet

    Para o novo fonte, alguns pontos de entrada não foram mantidos já que os pontos de entradas nativos do MVC permitem a customização sem a necessidade dos pontos de entrada na rotina.São eles:

    1. Adicionar Visões e Gráficos no Browse
      CRMBRWVIEW - Substituição das Visões Padrão do CRM
    2. Referências restringir exibição de campos
      MA030REF - Restringir exibição de campos
    3. Adicionar novas rotinas dentro do formulário do cadastro
      MA030BUT - Adicionar botões no cadastro de clientes
    4. Referências Exclusão
      M030SAO - Exclusão de dados
    5. Controla se a manutenção do cadastro de clientes é efetuada na Integração com GFE mediante tabela GU3 - Cadastro de Emitente
      MATA030IPG - Controle de manutenção na integração com o GFE
    6. Validação antes da abertura do formulário do cadastro antes da inclusão
      PE Nativo do MVC ( ID - MODELVLDACTIVE ) tem o mesmo propósito do Ma030VInc(Versão 12 ) - Validação no botão de inclusão de clientes mais informações Pontos de Entrada Nativos do MVC
    7. Validação antes da abertura do formulário do cadastro antes da alteração.
      PE Nativo do MVC ( ID - MODELVLDACTIVE ) tem o mesmo propósito do M030ALT - Validação de alterações mais informações Pontos de Entrada Nativos do MVC
    8. Validação antes da abertura do formulário do cadastro antes da exclusão.
      PE Nativo do MVC ( ID - MODELVLDACTIVE ) tem o mesmo propósito do M030DEL - Exclusão de clientes mais informações Pontos de Entrada Nativos do MVC
    9. Permite alteração do cadastro para registros gerados via integração quando a origem e de integração (SA1->A1_ORIGEM== "S1")
      PE Nativo do MVC ( ID - MODELVLDACTIVE) tem o mesmo propósito do DT_PE_MT030INT_Permite a alteração do cadastro de cliente para registros gerados via integração mais informações Pontos de Entrada Nativos do MVC 
    10. Inclusão de dados após a gravação dos dados do produto padrão dentro da transação
      PE Nativo do MVC ( ID - MODELCOMMITTTS ) tem o mesmo propósito do M030INC - Inclusão de dados mais informações Pontos de Entrada Nativos do MVC 
    11. Alteração de dados após a gravação dos dados do produto padrão dentro da transação
      PE Nativo do MVC ( ID - MODELCOMMITTTS ) tem o mesmo propósito do MALTCLI mais informações Pontos de Entrada Nativos do MVC
    12. Exclusão de dados após as regras de exclusão do produto padrão dentro da transação
      PE Nativo do MVC ( ID - MODELCOMMITTTS ) tem o mesmo propósito do M030EXC - Exclusão de dados mais informações Pontos de Entrada Nativos do MVC
    13. Alteração de dados após a gravação dos dados do produto padrão fora da transação
      PE Nativo do MVC ( ID - MODELCOMMITNTTS ) tem o mesmo propósito do M030PALT - Validação da alteração de clientes. mais informações Pontos de Entrada Nativos do MVC
    14. Validação do formulário antes de confirmar a Inclusão, Alteração e Exclusão
      PE Nativo do MVC ( ID - FORMPOS ) tem o mesmo propósito do MA030TOK - Inclusão e alteração / VBTOK030 - Validação do botão Ok  mais informações Pontos de Entrada Nativos do MVC

    Foram criados apenas pontos de entrada que existem no fonte MATA030 e que não permite customização por meio dos pontos de entrada do MVC, são eles: 

    1. PE CRM980BFil Adiciona filtro no browse do cadastro de clientes

      Substitui o PE MA030BRW - Filtro de browse
    2. PE CRM980MMEN Adiciona campos memo de usuário no padrão de gravação SYP

      Substitui o PE MA030MEM - Definição de campos memo de usuário
    3. PE CRM980BLabel Adiciona legendas no browse do cadastro de cliente

    4. PE CRM980MDEF Adiciona novas funcionalidades em Ações Relacionadas no browse

      Substitui o PE MA030ROT - Inclusão de novas rotinas

    Rotina

    Tipo de Operação

    Opção de Menu

    Regras de Negócio

    CRMA980

    [Inclusão]

    [CRM > Atualizações > Vendas > Contas > Clientes]

    • Reescrita do Cadastro de Clientes para MVC.