Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmento - TOTVS Backoffice Linha Protheus - ADVPL - Gatilho Mata103 não executado na importação de pedido

Ocorrência
Criamos um gatilho para trazer uma informação em um campo customizado da MATA103, porém quando eu clica em Outras Ações/Pedido para realizar a importação do Pedido de Venda já realizado a um fornecedor, o gatilho não é executado, desta forma, não preenchendo o campo customizado.

Ambiente
Cross Segmento - TOTVS Backoffice (Linha Protheus) - ADVPL – A partir da versão 11.80

Causa
Este comportamento ocorre devido ao preenchimento das linhas ser realizado diretamente na variável aCols, deste modo, não passando pelas funções de validação de linha da classe MsGetDados().

Solução
Utilizar o ponto de entrada MT103FRE que é chamando após a execução da função Processa() (ao clicar em Salvar na tela seleção de pedido de compras) e antes de retornar o controle para o usuário na tela da rotina de Documento de Entrada (MATA103).

Exemplo
No exemplo abaixo é realizado o preenchimento de um campo de descrição com base no código do produto informado na variável aCols:

// BIBLIOTECAS NECESSÁRIAS
#Include "TOTVS.ch"

// FUNÇÃO PRINCIPAL
User Function MT103FRE()
Local aParam := PARAMIXB // RATEIO DE FRETE
Local aAreaTOT := GetArea() // TABELA POSICIONADA NO MOMENTO
Local aAreaSB1 := {} // POSICIONAMENTO DA TABELA A SER MANIPULADA
Local nPosDesc := 0 // ARMAZENA A POSIÇÃO DO CAMPO CUSTOMIZADO D1_XPDDESC (DESTINO)
Local nPosProd := 0 // ARMAZENA A POSIÇÃO DO CAMPO PADRÃO D1_COD (ORIGEM)
Local nX := 0 // CONTROLADOR DO LAÇO DE REPETIÇÃO

// ARMAZENA O ESTADO DA ÁREA CORRENTE DA TABELA SB1
DbSelectArea("SB1")
aAreaSB1 := SB1->(GetArea())

// ARMAZENA AS POSIÇÕES DOS CAMPOS D1_COD E D1_XPDDESC COM BASE NA AHEADER
nPosDesc := AScan(aHeader, {|x| AllTrim(x[2]) == "D1_XPDDESC"})
nPosProd := AScan(aHeader, {|x| AllTrim(x[2]) == "D1_COD"})

// LAÇO DE REPETIÇÃO PREENCHENDO O CAMPO CUSTOMIZADO COM O CONTEÚDO DO POSICIONE EM B1_DESC
For nX :=1 To Len(aCols)
aCols[nX][nPosDesc] := Posicione("SB1", 1, FwXFilial("SB1") + aCols[nX][nPosProd], "B1_DESC")
Next nX

// RESTAURAÇÃO DA ÁREA DE SB1 E DA ÁREA ANTERIOR
RestArea(aAreaSB1)
RestArea(aAreaTOT)
Return (aParam)


Saiba mais
MT103FRE - Ponto de Entrada para Manipulação do Frete no Documento de Entrada

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _