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

Cross Segmentos - TOTVS Backoffice (Linea Protheus) - MI - Facturación (SIGAFAT) - Cuál es el funcionamiento del punto de entrada MT410VAR en los pedidos de venta


relogio_tempo_leitura_2.png Tiempo aproximado de lectura 00:05:00 min

Duda
¿Cuál es el funcionamiento del punto de entrada MT410VAR en los pedidos de venta?

Entorno
Cross Segmentos - TOTVS Backoffice (Linea Protheus) - MI - Facturación (SIGAFAT) - A partir de la versión 12.1.2410

Solución
El punto de entrada MT410VAR permite manipular los arrays del encabezado e items que se enviarán a la rutina automática de MATA410 durante la integración mediante el mensaje único SalesOrder, lo que permite añadir, modificar o eliminar campos.

No se permite eliminar solo uno o varios items del pedido de venta en el proceso de integración del mensaje SALESORDER; para llevar a cabo la eliminación, es necesario eliminar el pedido de venta y crear uno nuevo indicando únicamente los items deseados.

Existe la posibilidad de utilizar este punto de entrada (MT410VAR) que permite excluir solo uno o varios items en la modificación. Para ello, será necesario manipular el array aItens, incluyendo la información de LINPOS y AUTODELETA según el ejemplo documentado a continuación en el punto 0.

PARAMIXB Vector con los datos del pedido que se está procesando en el mensaje único SalesOrder, a saber:
[ 01 ] - aCab - Tipo: Matriz - Lista de campos correspondientes al encabezado del pedido.
[ 02 ] - aItens - Tipo: Matriz - Lista de campos correspondientes a los items del pedido.
[ 03 ] - cJson - Tipo: Carácter - Devuelve la cadena con el mensaje JSON.

Retorno aRet Matriz que contiene los datos de los campos que se procesarán en la rutina Pedido de ventas.

Exemplo:
#Include'Totvs.ch'

User Function MT410VAR
   Local aCab       := aClone(PARAMIXB[1]) //Cabeçalho
   Local aItens     := aClone(PARAMIXB[2]) //Itens
   Local aRet       := {} //Retorno das Customizações do usuário
   Local nPosCli    := Ascan(aCab,{ |X| X[1] == "C5_CLIENTE" })
   Local nPosCPag   := Ascan(aCab,{ |X| X[1] == "C5_CONDPAG" })
   Local nPosNum    := 0
   Local nPosProd   := 0
   Local nPosCC     := 0
   Local nPosDes    := 0
   Local nX         := 0

   oJson := fwEAIobj():new()
   oJson:Activate()
   oJson:loadJson(PARAMIXB[3]) //JSON

   If cEvent == "UPSERT" //Inclusão ou Alteração
       If (nPosNum := Ascan(aCab,{ |X| X[1] == "C5_NUM" })) > 0 //Alteração
           If aCab[nPosCli][2] == "FAT001"
               aCab[nPosCPag][2] := "001"
           EndIf

           For nX:= 1 To Len(aItens)
               If (nPosProd := Ascan(aItens[nX],{ |X| X[1] == "C6_PRODUTO" })) > 0
                   If aItens[nX][nPosProd][2] == "FATR00000000000000000000000001"
                       If (nPosCC := Ascan(aItens[nX],{ |X| X[1] == "C6_CC" })) > 0
                           aItens[nX][nPosCC][2] := "FAT000002"
                       Else
                           aAdd( aItens[nX], { "C6_CC", "FAT000002", Nil } )
                       EndIf
                   EndIf
               EndIf
           Next
       Else //Inclusão
           If aCab[nPosCli][2] == "FAT001"
               aCab[nPosCPag][2] := "002"
           EndIf

           For nX:= 1 To Len(aItens)
               If (nPosProd := Ascan(aItens[nX],{ |X| X[1] == "C6_PRODUTO" })) > 0
                   If aItens[nX][nPosProd][2] == "FATR00000000000000000000000001"
                       If (nPosCC := Ascan(aItens[nX],{ |X| X[1] == "C6_CC" })) > 0 //C6_VALDESC
                           aItens[nX][nPosCC][2] := "FAT000001"
                       Else
                           aAdd( aItens[nX], { "C6_CC", "FAT000001", Nil } )
                       EndIf
                   EndIf
               EndIf
           Next
       EndIf
   ElseIf cEvent == "DELETE" //Exclusão
       For nX:= 1 To Len(aItens)
           If (nPosProd := Ascan(aItens[nX],{ |X| X[1] == "C6_PRODUTO" })) > 0
               If aItens[nX][nPosProd][2] == "FATR00000000000000000000000001"
                   If (nPosDes := Ascan(aItens[nX],{ |X| X[1] == "C6_VALDESC" })) > 0
                       aItens[nX][nPosDes][2] := 0
                   EndIf
               EndIf
           EndIf
       Next
   EndIf

   aRet := {aCab,aItens}

Return aRet
¿Fue útil este artículo?
Usuarios a los que les pareció útil: 0 de 0

0 Comentarios

Inicie sesión para dejar un comentario.
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 _

Rellene los campos siguientes para iniciar el chat:

Chat _