Ponto de Entrada M310CABEC: Personalizando a Transferência Entre Filiais no Protheus

Tempo de leitura: 4 minutos

O processo de Transferência entre Filiais no Protheus é crucial para empresas com múltiplas unidades (Multifilial), permitindo o controle de estoque e a movimentação de mercadorias entre as diferentes unidades do grupo. As rotinas MATA310 (Saída) e MATA311 (Entrada) gerenciam essa operação no módulo Estoque (SIGAEST).

Para garantir que essa transferência atenda às regras de negócio específicas da sua empresa, o ponto de entrada (P.E.) M310CABEC é a ferramenta ideal.


 

O que é o M310CABEC e onde ele atua?

O ponto de entrada M310CABEC é disparado na montagem do cabeçalho da transferência (registro SD3), logo após a leitura e confirmação dos dados iniciais da tela de Transferência.

Ele é utilizado primariamente para:

  1. Validar ou Modificar Campos: Alterar campos do cabeçalho (ex: Motivo da Transferência, Condição de Pagamento, ou campos ZZ) antes que a transferência seja efetivamente gravada.
  2. Impedir a Continuação: Barrar a gravação da transferência se alguma regra de negócio específica não for atendida (ex: bloquear a transferência de um produto para uma filial específica).
  3. Definir Valores Padrão: Popular campos ZZ automaticamente com base na lógica customizada.

 

Detalhes Técnicos do Ponto de Entrada

Propriedade Detalhe
Ponto de Entrada M310CABEC
Módulos Estoque/Custos (SIGAEST)
Rotinas MATA310 (Saída) e MATA311 (Entrada)
Disparo Na confirmação do cabeçalho da transferência.
Parâmetros de Entrada Nenhum
Parâmetros de Saída lRet (Lógico) – .T. (Continua), .F. (Cancela/Bloqueia)

💻 Exemplo Prático em ADVPL

Imagine que a ProtheusAdvpl possui uma regra onde, para qualquer transferência entre filiais, o campo Motivo da Transferência (Campo

1
D3_MOTIVO
na tabela
1
SD3
) deve ser preenchido com um código padrão
1
99
quando o valor total ultrapassar R$ 10.000,00, e o usuário deve ser notificado.

#include "protheus.ch"
#include "parmtype.ch"

/*/{Protheus.doc
@Inscreva-se no Blog ProtheusAdvpl:
https://www.protheusadvpl.com.br
@Inscreva-se no Canal ProtheusAdvpl:
https://www.youtube.com/protheusadvpl
@Siga-nos no Instagram:
https://www.instagram.com/protheusadvpl
@Conheça os Cursos do ProtheusAdvpl:
https://cursos-e-formacoes-protheusadvpl.gr-site.com/
@Participe de nossas comunidades no WhatsApp:
-Comunidade Protheus Backoffice:https://chat.whatsapp.com/KMUIAjwZ6EZ6eAHsLkPTyb
-Comunidade Protheus-RH:https://chat.whatsapp.com/L5dUyAna6xU4ylG5DUgfOW
-Comunidade Protheus-Programação:https://chat.whatsapp.com/LsD6z0apdqKHlOz67bcaEn
-Comunidade Protheus-Framework:https://chat.whatsapp.com/BzUFpjaSnTC3vtsfa77jmG

|Se esse conteúdo foi útil pra você nos ajude divulgando 
ele e nossas redes sociais!!|
@version 1.0
@author ProtheusAdvpl
@since 05/11/2025
@function M310CABEC
@description Ponto de Entrada disparado na gravacao do cabecalho (SD3) das rotinas MATA310/MATA311.
@return lRet, Logico, .T. continua, .F. cancela.
@example
User Function M310CABEC()
Local lRet := .T.
Local nTotal := 0
Local cMotivoPadrao := "99" // Motivo de Transferencia Padrão

// A area de trabalho da SD3 (cabecalho) ja esta aberta e posicionada
// A variavel do ambiente (MV_PAR07) contem o valor total da transferencia
nTotal := MV_PAR07

// Verifica se o valor total da transferencia ultrapassa R$ 10.000,00
If nTotal > 10000.00
    // Altera o campo de motivo na SD3 antes da gravacao
    MsPutField("D3_MOTIVO", cMotivoPadrao)

    // Notifica o usuario
    Alerta("ATENCAO: Transferencia acima de R$ 10.000,00." + Chr(13) + ;
           "Motivo padrao '" + cMotivoPadrao + "' aplicado automaticamente.")

    // Se a regra fosse para BLOQUEAR a transferencia
    // lRet := .F.
    // Alerta("ERRO: Transferencia acima do limite permitido! Bloqueada.")
Endif

Return lRet
*/
User Function M310CABEC()
Local lRet := .T.
Local nTotal := 0
Local cMotivoPadrao := "99"

// Variavel de ambiente que contem o valor total da transferencia
nTotal := MV_PAR07

// Verifica se o valor total ultrapassa R$ 10.000,00
If nTotal > 10000.00
    // Define o campo D3_MOTIVO com o código padrao
    MsPutField("D3_MOTIVO", cMotivoPadrao)

    Alerta("ATENCAO: Transferencia de alto valor. Motivo '" + cMotivoPadrao + "' aplicado.")
Endif

Return lRet

Por Que Usar Este Ponto de Entrada?

O uso do

1
M310CABEC
é essencial para implementar governanca no processo de movimentação de estoque entre filiais.

Benefícios:

  • Conformidade Fiscal: Garante que informações fiscais ou gerenciais obrigatórias sejam preenchidas.

  • Controle de Alçada: Permite implementar regras de bloqueio (além do padrão Protheus) baseadas em critérios complexos, como a combinação de produto e filial.

  • Melhoria de Processo: Automatiza o preenchimento de campos, reduzindo a chance de erro manual.


 

Receba as últimas atualizações do ProtheusAdvpl
Deixe seu melhor email
Nós respeitamos sua privacidade.

Link(s) de referência(s): https://tdn.totvs.com/pages/releaseview.action?pageId=236603630

Bem, finalizamos mais um post aqui do Blog ProtheusAdvpl.

Se esse conteúdo lhe foi útil nos ajude compartilhando ele em suas redes sociais do TOTVS Protheus.

Grande abraço e fica com Deus.

 

Aprenda ADVPL, TLPP e os Processos de Negócio do Protheus de Forma Acelerada!

Deseja dominar a linguagem ADVPL/TLPP e, ao mesmo tempo, entender profundamente os fluxos dos principais módulos do Protheus como Compras (SIGACOM), Estoque e Custos (SIGAEST), Faturamento (SIGAFAT), Financeiro (SIGAFIN) e Gestão de Pessoal (SIGAGPE)?

Conheça o Portal ProtheusAdvpl, a plataforma completa que combina a programação com o conhecimento de processos de negócio. Clique e comece a acelerar sua carreira no Protheus hoje mesmo!

➡️ Acesse a Plataforma Agora: https://go.hotmart.com/O10336806O?dp=1

Receba as últimas atualizações do ProtheusAdvpl
Deixe seu melhor email
Nós respeitamos sua privacidade.