📅 Data de publicação
19/03/2026
🎯 Objetivo
Apresentar o funcionamento do ponto de entrada M410FSQL, utilizado para aplicar filtros na listagem de pedidos de venda no Protheus, destacando as diferenças de comportamento entre as versões P11 e P12, além de demonstrar um exemplo prático de uso em ADVPL.
🧩 Visão geral
O ponto de entrada M410FSQL permite personalizar o filtro dos pedidos de venda exibidos na rotina de consulta. Sua principal finalidade é restringir os registros apresentados ao usuário conforme regras específicas do negócio.
Esse ponto de entrada possui comportamentos diferentes dependendo da versão do Protheus:
No Protheus 11, o filtro deve ser retornado em expressão SQL.
No Protheus 12, o filtro deve ser retornado em expressão ADVPL.
Essa diferença ocorre porque cada versão utiliza classes distintas para a exibição dos dados.
🏢 Ambiente
Cross Segmento - Backoffice (Linha Protheus) – ADVPL
Disponível a partir da versão 11.80
⚙️ Como funciona o M410FSQL
📌 Comportamento na versão P11
Na versão P11, o ponto de entrada permite filtrar os pedidos de venda exibidos na mBrowse, devendo retornar uma expressão SQL.
Retorno esperado:cFilSQL — caractere — expressão SQL
📌 Comportamento na versão P12
Na versão P12, o ponto de entrada permite filtrar os pedidos de venda exibidos na FWMBrowse, devendo retornar uma expressão ADVPL.
Retorno esperado:cFilSQL — caractere — expressão ADVPL
💡 Exemplo prático em Protheus 12
Abaixo, um exemplo de customização para utilização do ponto de entrada M410FSQL no Protheus 12:
#INCLUDE "PROTHEUS.CH"
#INCLUDE "rwmake.ch"
User Function M410FSQL()
Local _vpFiltro := ""
Alert("M410FSQL")
_vpFiltro := "C5_CLIENTE = 'CL0003'"
_vpFiltro := "C5_NUM > '000015' .and. C5_TIPO == 'N'"
_vpFiltro := "C5_CLIENT $ 'CL0007|CL0003|'"
Return(_vpFiltro)
🛠️ Entendendo o exemplo
No exemplo apresentado, a função retorna uma expressão que será usada como filtro na rotina de pedidos de venda. Alguns pontos importantes:
A variável
_vpFiltrorecebe a condição de filtro.No exemplo, são mostradas diferentes possibilidades de expressão.
O retorno da função deve conter apenas a condição que será efetivamente aplicada.
Em P12, essa condição precisa estar em sintaxe compatível com ADVPL.
📍 Exemplos de filtros possíveis
Filtrar por cliente específico
_vpFiltro := "C5_CLIENTE = 'CL0003'"
Filtrar por número do pedido e tipo
_vpFiltro := "C5_NUM > '000015' .and. C5_TIPO == 'N'"
Filtrar múltiplos clientes
_vpFiltro := "C5_CLIENT $ 'CL0007|CL0003|'"
⚠️ Atenções importantes
Ao implementar o ponto de entrada M410FSQL, é importante observar:
A sintaxe do retorno deve ser compatível com a versão do Protheus em uso.
Em P11, usar expressão SQL.
Em P12, usar expressão ADVPL.
A expressão retornada deve refletir corretamente a regra de negócio desejada.
Testes devem ser realizados em ambiente controlado antes da publicação em produção.
✅ Benefícios do uso
A utilização do ponto de entrada M410FSQL pode trazer vantagens como:
Maior controle sobre os pedidos exibidos ao usuário.
Adequação da rotina às regras específicas da empresa.
Redução de visualização de pedidos fora do escopo operacional.
Melhoria na produtividade e na governança da informação.
❓ FAQ
1. O ponto de entrada M410FSQL existe somente no Protheus 12?
Não. Ele também existe em versões anteriores, porém o comportamento muda conforme a versão utilizada.
2. Qual a principal diferença entre P11 e P12 nesse ponto de entrada?
Na P11, o retorno deve ser uma expressão SQL. Na P12, o retorno deve ser uma expressão ADVPL.
3. Onde o filtro é aplicado?
O filtro é aplicado na listagem de pedidos de venda exibida na rotina de consulta.
4. Posso usar esse ponto de entrada para restringir pedidos por cliente?
Sim. Esse é um dos usos mais comuns, podendo também ser combinado com outras condições.
5. O nome da variável de retorno precisa ser cFilSQL?
O retorno esperado do ponto de entrada é do tipo caractere, normalmente tratado conforme a documentação da rotina. O importante é que a função retorne corretamente a expressão que será aplicada no filtro.
🧾 Conclusão
O ponto de entrada M410FSQL é um recurso importante para personalizar a exibição de pedidos de venda no Protheus. Seu uso exige atenção especial à versão do sistema, pois a forma de construção do filtro muda entre P11 e P12. Quando bem implementado, esse ponto de entrada contribui para uma operação mais aderente às regras do negócio e melhora a experiência de uso da rotina.
✍️ Autor
Fabrizio Augusto Ventavolo
Consultor Especialista TOTVS — Mastersiga Consultoria