Como funciona a lógica aplicada no exemplo

Identificando clientes do mesmo grupo empresarial

No exemplo apresentado, o desenvolvedor utiliza a variável MV_X_MSMCL para armazenar uma lista de clientes considerados parte do mesmo grupo econômico. Isso permite classificar automaticamente o tipo de documento financeiro com base no cliente responsável pela nota. Essa abordagem evita erros manuais e padroniza processos internos.

Ajustando o E1_TIPO dinamicamente

A variável MVNOTAFIS é a chave do processo. Alterar seu conteúdo dentro do ponto de entrada faz com que o Protheus utilize o código de tipo de documento indicado no momento de gerar o título. Dessa forma, clientes de um mesmo grupo podem ter um tipo diferenciado, enquanto os demais continuam seguindo o padrão da empresa.

Retorno mantendo o fluxo padrão

O ponto de entrada precisa devolver a data de condição para completar o processo de forma íntegra. O código mantém esse retorno padrão, garantindo que o comportamento original do sistema não seja impactado além do necessário.

Código completo utilizado no exemplo

O código abaixo é exatamente o mesmo disponível no conteúdo original, sem qualquer modificação. Ele aplica condicionalmente o tipo do título com base na identificação do cliente, utilizando M460COND como ponto de entrada.

#Include "TOTVS.ch"

/*/{Protheus.doc} User Function M460COND
Ponto de entrada para alterar a data que irá considerar para gerar as parcelas e vencimentos
@type  Function
@author Atilio
@since 16/06/2023
@see https://tdn.totvs.com/pages/viewpage.action?pageId=6784176
/*/

User Function M460COND()
    Local aArea     := FWGetArea()
    Local aAreaSC5  := SC5->(FWGetArea())
    Local dDataCond := ParamIXB[1] //Por padrão pega do SF2->F2_EMISSAO
    Local cCliMV    := SuperGetMV("MV_X_MSMCL", .F., "000001;") //Se for clientes que são do mesmo grupo de empresa

    //Se for clientes do mesmo CNPJ, muda o tipo para MSM (para lembrar que é do MESMO grupo)
    If Alltrim(SF2->F2_CLIENTE) $ cCliMV
        MVNOTAFIS := AvKey("MSM", "E1_TIPO")
    Else
        MVNOTAFIS := AvKey("NF",  "E1_TIPO")
    EndIf

    FWRestArea(aAreaSC5)
    FWRestArea(aArea)
Return dDataCond

Analisando o comportamento do código linha a linha

Preservação da área de trabalho

O uso de FWGetArea e FWRestArea garante que a execução do ponto de entrada não altere ou prejudique as áreas de trabalho em memória. Essa é uma prática indispensável quando manipulamos tabelas dentro de funções de sistema, principalmente em rotinas sensíveis como as do financeiro.

Uso da ParamIXB

ParamIXB pega como base a data de emissão da nota, garantindo que o comportamento padrão de geração de vencimentos seja mantido. Isso evita problemas com parcelas incorretas ou desvios de fluxo.

SuperGetMV como controle de lógica

Buscar a informação em uma MV torna o código mais flexível e permite que o usuário, via parametrização, ajuste quais clientes pertencem ao grupo sem modificar o fonte. Essa abordagem é preferível quando o cenário de negócio pode mudar com frequência.

Atribuição do tipo de documento

MVNOTAFIS recebe o valor gerado pelo AvKey, garantindo que o sistema identifique corretamente o tipo de documento E1_TIPO durante o processo financeiro. O método AvKey é usado para garantir que a chave seja convertida no formato esperado pelo Protheus.

Conclusão: quando vale a pena aplicar essa lógica

Essa solução é recomendada em cenários onde existe a necessidade de classificar automaticamente documentos financeiros para clientes específicos, principalmente em operações que envolvem grupos empresariais. Além disso, por ser um ajuste localizado e de baixo impacto, tende a ser uma alternativa segura e eficiente para empresas que preferem evitar customizações profundas.

Alterar o E1_TIPO pelo M460COND é um exemplo de como pequenas intervenções podem alinhar processos internos com a operação real da empresa, garantindo mais organização, rastreabilidade e automação dentro do financeiro do Protheus.

Index

Categorias

Sobre o Autor

Foto do Autor
Fábio Hayama

Apaixonado por gestão, tecnologia e inovação, Fábio Hayama possui mais de 15 anos de experiência no universo do ERP Protheus, estratégia empresarial e automação de processos.

Leia mais sobre o Fábio

Entre em contato conosco

Veja mais artigos relacionados

{{brizy_dc_image_alt entityId=
Como corrigir a rejeição 1155 no Protheus (sem travar seu faturamento)
Se você trabalha com faturamento no Protheus, sabe como é: está tudo certo, pedido pronto, nota gerada… e quando vai transmitir, toma uma rejeição do nada. E não é qualquer rejeição.É aquela que trava tudo: “1155 – Data de previsão de entrega anterior ao permitido” E aí começa a correria. Neste artigo, vou te mostrar […]
{{brizy_dc_image_alt entityId=
Tendências para ERP no Brasil em 2026: o que sua empresa precisa fazer agora para não ficar para trás
2026 não é o futuro — já começou Se tem uma coisa que muitas empresas ainda não perceberam é que 2026 não está “chegando”. Ele já começou. E isso fica ainda mais claro quando falamos de ERP. O sistema que antes era visto como um simples “registrador de dados” virou, na prática, o coração da […]
{{brizy_dc_image_alt entityId=
Como validar informações do XML no Documento de Entrada do Protheus usando TOTVS Transmite
Quem trabalha com Protheus no dia a dia sabe que a entrada de notas fiscais pode virar um problema quando os valores digitados no documento não batem com as informações que vieram no XML. E isso acontece mais do que deveria. TES errada, imposto diferente, valor de mercadoria divergente… tudo isso pode gerar inconsistência contábil, […]
{{brizy_dc_image_alt entityId=
Protheus lento? Como melhorar a performance do Protheus em ambientes com muitos usuários
Quando o Protheus começa a ficar lento Existe um momento muito comum na vida de empresas que utilizam ERP. No começo, tudo funciona bem. O sistema responde rápido, as rotinas executam sem problemas e os usuários trabalham normalmente. Mas conforme a empresa cresce, algo começa a mudar. Mais usuários entram no sistema, mais processos passam […]