Á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

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:

  

Estrutura dos Fontes

O fonte do cadastro de clientes em MVC foi dividido com a seguinte estrutura:

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

Localização Padrão + Guatemala

CRMA980GUA.PRWEstrutura do MVC contendo: ModelDef, ViewDef e MenuDef
CRM980EventGUA.PRWTRegras de Negócio válidas para todos os módulos e localização Guatemala

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.


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	:= 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


Pontos de Entrada

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]/Alteração/Exclusão

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

Reescrita do Cadastro de Clientes para MVC.

O menu padrão do sistema não será substituído.

Para receber esta nova funcionalidade, basta substituir no menu a chamada MATA030 por CRMA980.