Informações Gerais
Especificação | ||
Segmento Executor | SERVIÇOS | |
Projeto1 | DSERFAT | |
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 proporciona funcionalidades nativas deste Framework com os seguintes recursos:
- Pontos de entrada padronizados para cada evento da aplicação
- Web Services para sua utilização
- Importação ou exportação de mensagens XML
- Serviço RESTFul
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.PRW | Estrutura do MVC contendo: ModelDef, ViewDef e MenuDef |
CRM980EventDEF.PRW | Regras de Negócio válidas para todos os módulos e países (Padrão) |
CRM980EventDEFCRM.PRW | Regras de Negócio específicas do módulo CRM |
CRM980EventDEFEIC.PRW | Regras de Negócio específicas do módulo Controle de Importações / Exportação |
CRM980EventDEFFAT.PRW | Regras 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.PRW | Regras 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.PRW | Regras de Negócio específicas do módulo Gestão de Distribuição |
CRM980EventDEFTMS.PRW | Regras 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.PRW | Regras de Negócio válidas para todos os módulos e localização Brasil |
CRM980EventBRAFIS.PRW | Regras de Negócio específicas do módulo Fiscal localização Brasil |
Localização Padrão + Argentina | |
CRMA980ARG.PRW | Estrutura do MVC contendo: ModelDef, ViewDef e MenuDef |
CRM980EventARG.PRW | Regras de Negócio válidas para todos os módulos e localização Argentina |
Localização Padrão + Colômbia | |
CRMA980COL.PRW | Estrutura do MVC contendo: ModelDef, ViewDef e MenuDef |
CRM980EventCOL.PRW | Regras 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.
Rotina Automática
O novo fonte contempla também a rotina automática e a mesma deve ser chamada da seguinte forma:
//------------------------------------------------------------------- /*/{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 aSA1Auto := {} Local aAI0Auto := {} Local nOpcAuto := MODEL_OPERATION_INSERT Local lRet := .T. Private lMsErroAuto := .F. lRet := RpcSetEnv("T1","D MG 01","Admin") If lRet //---------------------------------- // Dados do Cliente //---------------------------------- aAdd(aSA1Auto,{"A1_COD" ,"XBX139" ,Nil}) aAdd(aSA1Auto,{"A1_LOJA" ,"01" ,Nil}) aAdd(aSA1Auto,{"A1_NOME" ,"ROTINA AUTOMATICA" ,Nil}) aAdd(aSA1Auto,{"A1_NREDUZ" ,"ROTAUTO" ,Nil}) aAdd(aSA1Auto,{"A1_TIPO" ,"F" ,Nil}) aAdd(aSA1Auto,{"A1_END" ,"BRAZ LEME" ,Nil}) aAdd(aSA1Auto,{"A1_BAIRRO" ,"CASA VERDE" ,Nil}) aAdd(aSA1Auto,{"A1_EST" ,"SP" ,Nil}) aAdd(aSA1Auto,{"A1_MUN" ,"SAO PAULO" ,Nil}) //--------------------------------------------------------- // Dados do Complemento do Cliente //--------------------------------------------------------- aAdd(aAI0Auto,{"AI0_SALDO" ,30 ,Nil}) //------------------------------------ // Chamada para cadastrar o cliente. //------------------------------------ MSExecAuto({|a,b,c| CRMA980(a,b,c)}, aSA1Auto, nOpcAuto, aAI0Auto) If lMsErroAuto lRet := lMsErroAuto 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:
- 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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:
PE CRM980BFil Adiciona filtro no browse do cadastro de clientes
Substitui o PE MA030BRW - Filtro de browsePE 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árioPE CRM980BLabel Adiciona legendas no browse do cadastro de clientes
Substitui o PE MA030COR - Adicionar legendas à mBrowse- Substitui o PE MA030ROT - Inclusão de novas rotinas
Pontos de entrada que funcionam para os dois cadastros CRMA980 e MATA030:
- CRMBRWVIEW - Substituição das Visões Padrão do CRM
- MA030REF - Restringir exibição de campos
- MA030BUT - Adicionar botões no cadastro de clientes
- M030SAO - Gravação das Referências do Cliente
- MATA030IPG - Controle de manutenção na integração com o GFE
- MA030DBT - Remover botões de Outras Ações
- 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. |
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.