Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


...

ÍNDICE

  1. Dados GeraisDatos generales
  2. DescriçãoDescripción
  3. SintaxeSintaxis
  4. ParâmetrosParámetros
  5. RetornoRespuesta
  6. ExemploEjemplo

01. 

...

DATOS GENERALES

Produto BackofficeLinha ProdutoLinha FaturamentoFunção Mensagem Única Venda AbrangênciasMicrosiga Protheus VersõesMicrosiga Protheus Compatível OperacionaisCompatível com as Bases de DadosNível AcessoNível Acesso

Producto:

Backoffice de TOTVS

Línea de

producto:

Línea Protheus

Segmento:

Backoffice

Módulo:

SIGAFAT -

Facturación

Función:

MT410EAI -

Mensaje Único Pedido de

Venta (Order

Alcances:

Microsiga Protheus 12

Versiones:

Microsiga Protheus 12

Países compatibles:

Todos

Sistemas

operativos:

Todos

Compatible con las bases de datos:

Todos 

Nivel de

acceso:

Nivel 1 (

Acceso Clientes)

Idiomas:

Todos


02. 

...

DESCRIPCIÓN

O ponto El punto de entrada MT410EAI permite manipular os arrays de cabeçalho e itens que serão enviados para a rotina automática do MATA410 durante a integração manejar los array del encabezado e ítems que se enviarán a la rutina automática del MATA410 durante la integración (MATI410 / MATI410O ), permitindo inclusão, alteração ou exclusão de esto permite incluir, modificar o eliminar campos.

Dica

O tratamento para edição do array pode ser feita com base no JSON ou XML enviado para a mensagem única. O JSON ou XML enviado na requisição é encaminhado ao Ponto de Entrada através das variáveis oXml e oLtOfItem onde permite ser feito um tratamento dentro do PE para adicionar ou manipular informações de cabeçalho ou itens a ser enviado a rotina MATA410 e permite alteração ou exclusão de apenas um item conforme o mensagem única enviadaEl tratamiento de edición de matrices se puede realizar en base a JSON o XML enviado al mensaje único. El JSON o XML enviado en la solicitud se reenvía al punto de entrada a través de las variables oXml y oLtOfItem donde se permite realizar un tratamiento dentro del PE para agregar o manejar información del encabezado o ítems que se enviará a la rutina MATA410 y le permite cambiar o eliminar solo un elemento de acuerdo con el único mensaje enviado.

Aviso
titleImportante

Não é permitido realizar a exclusão de apenas itemNo se permite realizar solamente la eliminación de ítem(s) do del Pedido de Venda no processo de integração da mensagem Venta en el proceso de integración del mensaje ORDER, para realizar o processo el proceso de exclusão, é necessário excluir o Pedido de Venda, e criar um novo informando apenas os itens desejados.eliminación, es necesario eliminar el pedido de venta y crear uno nuevo, informando solamente los ítems deseados.

Existe la posibilidad de utilizar este punto Existe a possibilidade da utilização desse ponto de entrada (MT410EAI) que permite exclusão de apenas itemeliminar solamente ítem(s) na alteração. Para isso será necessário a manipulação do en la modificación. Para esto, es necesario manejar el array aItens, incluindo as informações incluyendo las informaciones de LINPOS e AUTODELETA conforme o exemplo documentado abaixo no Item y AUTODELETA según el siguiente ejemplo documentado en el ítem 06.

03. 

...

SINTAXIS

MATI410() ---> aRet

04. 

...

PARÁMETROS


NomeDescriçãoDefaultObrigatórioReferênciaVetor com os dados do Pedido que está sendo executado na mensagem única Order, sendo Relação ao cabeçalho do Relação aos itens do Xml com os dados relacionados a mensagem única Order Json com os dados relacionados a mensagem única

Nombre

Tipo

Descripción

Estándar

Obligatorio

Referencia

PARAMIXB

Vetor

Vector

Vector con los datos del pedido que se está ejecutando en el mensaje único Order, donde:
[ 01 ] - aCab - Tipo: Array -

Relación de campos referente

al encabezado del pedido.
[ 02 ] - aItens - Tipo: Array -

Relación de campos referente

a los ítems del pedido.




oXml

             Objeto

Objeto

XML con los datos relacionados con el mensaje único de orden.




oLtOfItem

             Objeto

Objeto

JSON con los datos relacionados con el mensaje único Order.




05. 

...

RESPUESTA

RetornoDescrição contendo os dados dos campos que serão processados na rotina Pedido de Vendas

Devolución

Tipo

Descripción

Obrigatório

aRet

Array

Array

que contiene los datos de los campos que se procesarán en la rutina Pedido de Ventas.

Sim


06. EXEMPLO

Bloco de código
languagecpp
titleExemploEjemplo:
Ejemplo:
#Include'Totvs.ch'

User Function MT410EAI
	Local aCab       := aClone(PARAMIXB[1])
	Local aItens     := aClone(PARAMIXB[2])
	Local nTamC6ITEM := GetSx3Cache("C6_ITEM","X3_TAMANHO")
	Local nI         := 1
	Local oXmlAux	 := Nil
	Local oJsonAux	 := Nil
	Local aRet       := {} //CustomizaçõesPersonalizaciones dodel usuáriousuario
    Local nPosCli    := 0
    Local nPosCPag   := 0

	IF FWIsInCallStack("MATI410")

        //Verificaverifica oel Cabeçalhoencabezado dodel Pedidopedido de Vendasventas 
        nPosCli  := Ascan(aCab,{ |X| X[1] == "C5_CLIENTE" })
        nPosCPag := Ascan(aCab,{ |X| X[1] == "C5_CONDPAG" })
        If aCab[nPosCli][2] == "FAT001"
            Aadd(aCab,{"C5_DESCONT", 5, NIL})
        EndIf

		For nI := 1 To Len(oXml:_TOTVSMessage:_BusinessMessage:_BusinessContent:_SalesOrderItens:_Item)
			oXmlAux := oXml:_TOTVSMessage:_BusinessMessage:_BusinessContent:_SalesOrderItens:_Item[nI]
			
			//Verifica sesi existe ala TAG Customizada <ItemDeleted>1</ItemDeleted> nopersonalizada en el XML. 
			If Type("oXmlAux:_ItemDeleted:Text") != "U" 
				//CasoSi ala TAG personalizada Customizadade <ItemDeleted> sejaes 1, seráeste excluidoítem essese itemeliminará, casosi sejaes diferente de 1, oel itemítem apenassolo seráse alteradomodificará.
				If  oXmlAux:_ItemDeleted:Text == "1"
					aItens[nI][AsCan(aItens[nI][1],"C6_ITEM")] :={"LINPOS","C6_ITEM",PadR(oXmlAux:_OrderItem:Text, nTamC6ITEM)}
					Aadd(aItens[nI],{"AUTDELETA", "S", NIL})
				Else
					aItens[nI][AsCan(aItens[nI][1],"C6_ITEM")] :={"LINPOS","C6_ITEM",PadR(oXmlAux:_OrderItem:Text, nTamC6ITEM)}
					Aadd(aItens[nI],{"AUTDELETA", "N", NIL})
				EndIf
			EndIf
		Next

	ElseIf FWIsInCallStack("MATI410O")

	  	//Verificaverifica oel Cabeçalhoencabezado dodel Pedidopedido de Vendasventas 
        nPosCli  := Ascan(aCab,{ |X| X[1] == "C5_CLIENTE" })
        nPosCPag := Ascan(aCab,{ |X| X[1] == "C5_CONDPAG" })
        If aCab[nPosCli][2] == "FAT001"
            aCab[nPosCPag][2] := "001"
        EndIf 

		For nI := 1 To Len(oLtOfItem)
			oJsonAux := oLtOfItem[nI]
			
			//Verifica sesi existehay auna TAG Customizada<ItemDeleted> <ItemDeleted>1<</ItemDeleted> personalizada noen el JSON. 
			If Type("oJsonAux:getPropValue('ItemDeleted')") != "U" 
				//CasoSi ala TAG Customizadapersonalizada <ItemDeleted> sejAes 1, seráeste excluidoítem essese itemeliminará, casosi sejaes diferente de 1, oel itemítem apenassolo seráse alteradomodificará.
				If oJsonAux:getPropValue('ItemDeleted') == "1"
					aItens[nI][AsCan(aItens[nI][1],"C6_ITEM")] :={"LINPOS","C6_ITEM",PadR(oJsonAux:getPropValue("OrderItem"), nTamC6ITEM)}
					Aadd(aItens[nI],{"AUTDELETA", "S", NIL})
				Else
					aItens[nI][AsCan(aItens[nI][1],"C6_ITEM")] :={"LINPOS","C6_ITEM",PadR(oJsonAux:getPropValue('OrderItem'), nTamC6ITEM)}
					Aadd(aItens[nI],{"AUTDELETA", "N", NIL})
				EndIf
			EndIf
		Next

	EndIf
		
	aRet := {aCab,aItens}

Return aRet