Resposta rápida
- Pergunta
- para uma tela nova, PO UI ou MVC?
- Resposta curta
- se a tela é um cadastro ou manutenção de tabela usada pelo usuário dentro do Protheus, comece pelo MVC. Se a tela precisa de fluxo próprio, de outro público ou de rodar fora do Protheus, PO UI entra, mas com uma API por trás.
- Atenção
- os dois não são alternativas do mesmo nível. Um é framework do próprio Protheus; o outro é uma biblioteca de interface.
Nesta página5 seções
Não são a mesma coisa
O MVC do Protheus é escrito em ADVPL/TLPP e cobre menu, regra e tela. O ModelDef cuida da gravação, então você não escreve o RecLock.
O PO UI, segundo o README do repositório oficial, é uma biblioteca de componentes de UI para Angular, com licença MIT. Componentes de template, como página de login e tabela dinâmica, ficam num pacote separado. O README não menciona Protheus.
Consequência prática: PO UI desenha a tela e não grava nada sozinho. Os dados vêm de uma API, por exemplo uma API REST em TLPP, e a regra de negócio e a gravação continuam no lado Protheus. Escolher PO UI é escolher também escrever e manter essa API.
Matriz de decisão
Esta matriz é critério do autor, não posição da TOTVS nem fato medido. Serve para organizar a conversa com a equipe.
| Critério | MVC tende a servir quando… | PO UI tende a servir quando… |
|---|---|---|
| Tarefa do usuário | Cadastro, manutenção de tabela, pai e filho, validação de campo | Painel, fluxo em passos, tela com interação que o browse padrão não dá |
| Onde o usuário trabalha | Dentro do menu do Protheus | Fora do Protheus ou embutido numa experiência própria |
| Integração | A tela e a regra falam com o dicionário e com os eventos do modelo | A tela consome API; o mesmo backend pode atender outros clientes |
| Gravação | Você quer que o framework grave (MPFormModel) | Você aceita escrever a API de gravação, o tratamento de erro e a autenticação |
| Manutenção | Só ADVPL/TLPP; um fonte, um deploy | Dois projetos (front e API), dois ciclos de deploy, dependências de Node a acompanhar |
| Equipe | Quem já programa Protheus | Existe quem mantenha Angular e TypeScript, e não só quem o escreveu |
| Ponto de entrada de terceiros | Só vale se você reaproveitar uma rotina padrão: várias rotinas padrão, inclusive com modelo MVC, chamam PEs | Em geral, uma tela e uma API novas só passam por PE se a API chamar a rotina padrão; a confirmar no seu caso |
Como ler a matriz
- Um “sim” para PO UI não basta. A linha de manutenção pesa: uma tela PO UI muda quando a API muda, e o contrário. No MVC, alterar o modelo altera a tela que o consome.
- Regra fora do dicionário cabe nos dois lados, mas de formas diferentes. No MVC entra como evento do modelo; no PO UI, na API.
- Tela de cadastro simples em PO UI costuma ser mais trabalho do que o equivalente em MVC, porque a tela, a API e a gravação passam a ser peças separadas. Esta é uma avaliação editorial, não medição.
- Pai e filho já têm caminho pronto no MVC: cabeçalho e itens.
Uma regra para decidir
- Descreva a tarefa em uma frase. Se a frase é “manter o cadastro de X”, vá de MVC: primeiro cadastro do zero.
- Se a frase inclui “fora do Protheus” ou “para quem não usa o menu”, PO UI é candidato.
- Antes de aprovar PO UI, responda: quem mantém o front daqui a um ano, e onde a API roda e como autentica? Sem resposta, o custo real ainda não foi estimado.
O que este artigo não afirma
Não há aqui versão de Angular, de PO UI ou de Protheus recomendada, nem descrição de como o app é publicado dentro do Protheus ou de como autentica. Nada disso foi verificado para este texto; veja o README do projeto para os requisitos vigentes.
Referências
Outrogithub.com
GitHub — po-ui/po-angularREADME: biblioteca de componentes de UI para Angular, licença MIT, pacote de templates à parte.
Continue por aqui
- Vídeo
DesenvolvimentoReferência técnica
F340VALOK: o ponto de entrada que barra o OK da compensação a pagar
F340VALOK roda ao clicar OK na lista de títulos da compensação a pagar, recebe a lista em PARAMIXB e, retornando .F., mantém o usuário na lista.
- Vídeo
DesenvolvimentoReferência técnica
F340VLD: o ponto de entrada que barra a compensação no Contas a Pagar
F340VLD roda ao confirmar a primeira tela da compensação a pagar (FINA340), sem PARAMIXB. Retornando .F., a tela não fecha e nenhum título chega a ser listado.
- Vídeo
DesenvolvimentoReferência técnica
F40DELPR: o ponto de entrada que troca a baixa do provisório pela exclusão
F40DELPR roda ao abrir a substituição de título provisório no Contas a Receber, sem PARAMIXB. Retornando .T., o provisório é excluído em vez de baixado.