🎨 Ponto de Entrada MA410COR na Protheus 12

Data de publicação: 27/03/2026

📘 Visão Geral

O ponto de entrada MA410COR é utilizado na rotina de Pedidos de Venda para alterar as cores exibidas no cadastro do status do pedido. Na versão Protheus 12, houve mudança no comportamento desse ponto de entrada, pois o PARAMIXB passa a trazer uma estrutura com 5 itens no array padrão, tornando necessário validar corretamente o conteúdo da legenda antes de incluir novas condições de cor. (TDN)

Essa alteração é importante para ambientes que possuem customizações voltadas à identificação visual do status do pedido, especialmente quando há necessidade de destacar situações específicas, como pedidos em aberto, liberados, encerrados ou bloqueados por regras internas. (TDN)

⚙️ Objetivo do Ponto de Entrada

O MA410COR permite personalizar a lógica de cores aplicada aos pedidos de venda, facilitando a leitura operacional da rotina e melhorando a identificação rápida dos status pelos usuários.

Na prática, o ponto de entrada permite:

  • Definir condições específicas para cada status

  • Associar uma cor a cada condição

  • Criar diferenciações visuais conforme regras de negócio

  • Complementar a apresentação com legendas personalizadas por meio do MA410LEG (TDN)

🧩 Comportamento na Protheus 12

Na P12, o retorno do ponto de entrada deve considerar a nova estrutura tratada via PARAMIXB. Isso significa que a customização não deve simplesmente acrescentar elementos sem avaliar a composição existente, pois a legenda e as condições podem depender da ordem e da montagem correta do array retornado. (TDN)

Outro ponto importante é que, quando houver necessidade de alterar os textos apresentados na legenda das cores, deve-se utilizar também o ponto de entrada MA410LEG, que atua em conjunto com o MA410COR. (TDN)

🛠️ Exemplo de implementação do MA410COR

User Function MA410COR()
Local aCores := {} // PARAMIXB traz a estrutura do array padrão

Alert("MA410COR")
aAdd(aCores, {"C5_TESTE == 'C'", "BR_PRETO", "Teste 01"})
aAdd(aCores, {"Empty(C5_LIBEROK).And.Empty(C5_NOTA) .And. Empty(C5_BLQ)", "ENABLE", "Pedido em Aberto"})
aAdd(aCores, {"!Empty(C5_NOTA).Or.C5_LIBEROK=='E' .And. Empty(C5_BLQ)", "DISABLE", "Pedido Encerrado"})
aAdd(aCores, {"!Empty(C5_LIBEROK).And.Empty(C5_NOTA).And. Empty(C5_BLQ)", "BR_AMARELO", "Pedido Liberado"})
aAdd(aCores, {"C5_BLQ == '1'", "BR_AZUL"})
aAdd(aCores, {"C5_BLQ == '2'", "BR_LARANJA"})

Return aCores

🏷️ Exemplo de implementação do MA410LEG

#INCLUDE 'protheus.ch'

User Function MA410LEG()

Local aLegenda := PARAMIXB

aLegenda := {}
AADD(aLegenda,{"BR_PINK" ,"Pedido Bloqueado (Crédito Cliente)"})
AADD(aLegenda,{"BR_CANCEL" ,"Pedido Rejeitado (Regras Dipil)"})
AADD(aLegenda,{"BR_PRETO" ,"Pedido Bloqueado (Regras Dipil)"})
AADD(aLegenda,{"ENABLE" ,"Pedido de Venda em aberto"})
AADD(aLegenda,{"DISABLE" ,"Pedido de Venda encerrado"})
AADD(aLegenda,{"BR_AZUL" ,"Pedido Bloqueado por Regra"})
AADD(aLegenda,{"BR_LARANJA" ,"Pedido Bloqueado por Verba"})
AADD(aLegenda,{"BR_AMARELO" ,"Pedido de Venda liberado"})

Return(aLegenda)

Os exemplos acima demonstram que o MA410COR trata a lógica das cores e condições, enquanto o MA410LEG controla os textos apresentados na legenda correspondente. (TDN)

🔎 Boas práticas de uso

Ao implementar esse ponto de entrada, recomenda-se observar os seguintes cuidados:

  • Validar corretamente a estrutura retornada na versão P12

  • Garantir que a condição nova esteja posicionada corretamente na lógica de avaliação

  • Testar a ordem das condições para evitar sobrescrições indesejadas

  • Utilizar o MA410LEG quando houver necessidade de ajustar a descrição textual das legendas

  • Realizar depuração do ponto de entrada sempre que o resultado visual não corresponder ao esperado

  • Preferir compilação em ambiente compatível, conforme orientação técnica publicada pela TOTVS, com menção ao uso do TDS 11.2 ou 11.3 no contexto do exemplo apresentado (TDN)

✅ Conclusão

O ponto de entrada MA410COR é um recurso importante para personalizar visualmente o status dos pedidos de venda no Protheus. Na versão P12, essa customização exige atenção especial à nova estrutura tratada por PARAMIXB, principalmente quando houver inclusão de novas regras de cor e necessidade de sincronismo com as legendas apresentadas ao usuário. (TDN)

Quando bem implementado, esse recurso melhora a usabilidade da rotina, facilita a análise operacional e torna o acompanhamento dos pedidos mais claro e objetivo para os usuários do sistema.

❓ FAQ

1. O que faz o ponto de entrada MA410COR?

Ele permite alterar as cores exibidas no cadastro do status do pedido de venda, conforme regras definidas na customização. (TDN)

2. O que mudou no MA410COR na Protheus 12?

Na versão P12, o PARAMIXB passou a trazer 5 itens no array, exigindo maior cuidado na validação da legenda e na montagem da estrutura retornada. (TDN)

3. O MA410COR altera também os textos das legendas?

Não. Para alterar os textos das legendas, deve-se utilizar o ponto de entrada MA410LEG. (TDN)

4. Posso criar novas condições de status com cores diferentes?

Sim. A customização permite incluir novas condições e associar cores específicas, desde que a lógica seja construída corretamente. (TDN)

5. O que fazer quando a regra não funciona como esperado?

A recomendação é realizar o debug do ponto de entrada e verificar se a nova condição está posicionada adequadamente na avaliação da rotina. (TDN)

👤 Autor

Fabrizio Augusto Ventavolo
Consultor Especialista TOTVS — Mastersiga Consultoria


Atualizado em 27/03/2026
Este artigo foi útil?  
Agradecemos sua avaliação.