Á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 proporciona funcionalidades nativas deste Framework com os seguintes recursos:

Estrutura dos Fontes

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

  • CRM980.PRW - model / view e menudef.
  • Localização Padrão ( Todos os Países )

    CRMA980.PRWEstrutura do MVC contendo: ModelDef, ViewDef e MenuDef
    CRM980EventDEF.PRWRegras de Negócio válidas para todos os módulos e países (Padrão)
    CRM980EventDEFCRM.PRWRegras de Negócio específicas do módulo CRM 
    CRM980EventDEFEIC.PRWRegras de Negócio específicas do módulo Controle de Importações / Exportação
    CRM980EventDEFFAT.PRWRegras de Negócio específicas do módulo Faturamento
    CRM980EventDEFFIN.PRW Regras de Negócio específicas do módulo Financeiro
    CRM980EventDEFFIS.PRW Regras de Negócio específicas do módulo Fiscal
    CRM980EventDEFGFE.PRWRegras de Negócio específicas do módulo Gestão de Frete Embarcador
    CRM980EventDEFINT.PRW Regras de Negócio específicas do módulo Softwares de Terceiros
    CRM980EventDEFJUR.PRW Regras de Negócio específicas do módulo Jurídico
    CRM980EventDEFLOJ.PRW Regras de Negócio específicas do módulo Controle de Lojas
    CRM980EventDEFOMS.PRWRegras de Negócio específicas do módulo Gestão de Distribuição
    CRM980EventDEFTMS.PRWRegras de Negócio específicas do módulo Gestão de Transporte

    Localização Padrão + Brasil

    CRMA980BRA.PRW Estrutura do MVC contendo: ModelDef, ViewDef e MenuDef
    CRM980EventBRA.PRWRegras de Negócio válidas para todos os módulos e localização Brasil
    CRM980EventBRAFIS.PRWRegras de Negócio específicas do módulo Fiscal localização Brasil

    Localização Padrão + Argentina

    CRMA980ARG.PRWEstrutura do MVC contendo: ModelDef, ViewDef e MenuDef
    CRM980EventARG.PRWRegras de Negócio válidas para todos os módulos e localização Argentina

    Localização Padrão + Colômbia

    CRMA980COL.PRWEstrutura do MVC contendo: ModelDef, ViewDef e MenuDef
    CRM980EventCOL.PRWRegras de Negócio válidas para todos os módulos e localização Colômbia

    Referencia: Interceptação do Commit e Validação MVC - FWModelEvent

    O demais países não especificados neste documento não possuem regras específicas.

    CRMA980BRA - localização Brasil.

    Rotina Automática


    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 :=
    
    
    Local aSA1Auto	:= {} 
    Local aAI0Auto	:= {} 
    Local nOpcAuto	:= MODEL_OPERATION_INSERT

    
    Local lRet		:= .T.

     

    
    
    Private lMsErroAuto := .F.

     

    
    
    lRet := RpcSetEnv("T1","D MG 01","Admin")

     

    If lRet
     
    
    If lRet 
    	
    	//----------------------------------

    // Campos da tabela de Clientes
    
    	// Dados do Cliente
    	//----------------------------------

    
    	aAdd(
    aRotAuto
    aSA1Auto,{"A1_COD"		,"
    693848
    XBX139"				,Nil})

    
    	aAdd(
    aRotAuto
    aSA1Auto,{"A1_LOJA"	,"01"					,Nil})

    
    	aAdd(
    aRotAuto
    aSA1Auto,{"A1_NOME"	,"ROTINA AUTOMATICA"	,Nil})

    
    	aAdd(
    aRotAuto
    aSA1Auto,{"A1_NREDUZ"	,"ROTAUTO"				,Nil})

    	
    	aAdd(
    aRotAuto
    aSA1Auto,{"A1_
    END
    TIPO"	,"
    BRAZ LEME"
    F"					,Nil})

    
    	aAdd(
    aRotAuto
    aSA1Auto,{"A1_
    TIPO
    END"		,"
    F"
    BRAZ LEME"			,Nil})

    	
    	aAdd(
    aRotAuto
    aSA1Auto,{"A1_
    CGC
    BAIRRO"	,"
    39346482000171"
    CASA VERDE"			,Nil})

    	
    	aAdd(
    aRotAuto
    aSA1Auto,{"A1_EST"		,"SP"					,Nil})

    
    	aAdd(
    aRotAuto
    aSA1Auto,{"A1_MUN"		,"SAO PAULO"			,Nil})
    	
    	//---------------------------------------------------------
    	// Dados do Complemento do Cliente
    	//---------------------------------------------------------
    	aAdd(aAI0Auto,{"AI0_SALDO"	,30						,Nil})

    
    	
    	//------------------------------------

    // Cadastro de Clientes.
    
    	// Chamada para cadastrar o cliente.
    	//----------------------------------

    --
    	MSExecAuto({|a,b,c| CRMA980(a,b,c)},
    aRotAuto
     aSA1Auto, nOpcAuto
    )
    If lMsErroAuto
    lRet := .F.
    MostraErro()
    Else
    Conout(STR0041)//"Cliente incluído com sucesso!"
    EndIf
    EndIf
    , aAI0Auto) 
    	 
    	If lMsErroAuto	 
    		lRet := lMsErroAuto	
    	Else
    		Conout("Cliente incluído com sucesso!")
    	EndIf
    	
    EndIf
    
    RpcClearEnv()
                 
    Return lRet

    Pontos de Entrada

     

    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:

     

  • Adicionar Visões e Gráficos no Browse
    CRMBRWVIEW - Substituição das Visões Padrão do CRM
  • Referências restringir exibição de campos
    MA030REF - Restringir exibição de campos
  • Adicionar novas rotinas dentro do formulário do cadastro
    MA030BUT - Adicionar botões no cadastro de clientes
  • Referências Exclusão
    M030SAO - Exclusão de dados

    1. 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
    2. 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
    3. 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
    4. 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
    5. 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 
    6. 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 
    7. 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
    8. 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
    9. 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
    10. 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

      clientes

    Pontos de entrada que funcionam para os dois cadastros CRMA980 e MATA030:

    1. CRMBRWVIEW - Substituição das Visões Padrão do CRM
    2. MA030REF - Restringir exibição de campos
    3. MA030BUT - Adicionar botões no cadastro de clientes
    4. M030SAO - Gravação das Referências do Cliente
    5. MATA030IPG - Controle de manutenção na integração com o GFE
    6. MA030DBT - Remover botões de Outras Ações
    7. MT030INT - Permite a alteração do cadastro de clientes para registros gerados via integração

    Rotina

    Tipo de Operação

    Opção de Menu

    Regras de Negócio

    CRMA980

    [

    Inclusão

    ]

    /Alteração/Exclusão

    [

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

    ]

    Reescrita do Cadastro de Clientes para MVC.

     

     

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

    O menu padrão do sistema não foi substituído.

    Para receber esta nova funcionalidade, basta habilitar o parâmetro MV_MVCSA1 = .T. e substituir no menu a chamada MATA030 por CRMA980.