Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
|---|
Especificação | |||
Produto | MICROSIGA PROTHEUS | Módulo Todos |
|
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>. | ||
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 ).
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:
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 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:
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:
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
CRMA980 | [Inclusão] | [CRM > Atualizações > Vendas > Contas > Clientes] |
|