🔎 Ponto de Entrada M410FSQL: Filtro de Pedidos de Venda no Protheus


📅 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 _vpFiltro recebe 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


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