Histórico da Página
...
- Dados Gerais
- Descrição
- Sintaxe
- Parâmetros
- Retorno
- Exemplo
01. DADOS GERAIS
Produto: | TOTVS Backoffice |
---|---|
Linha de Produto: | Linha Protheus |
Segmento: | Backoffice |
Módulo: | SIGAFAT - Faturamento |
Função: | MT410EAI - Mensagem Única Pedido de Venda (Order) |
Abrangências: | Microsiga Protheus 12 |
Versões: | Microsiga Protheus 12 |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
Compatível com as Bases de Dados: |
Todos | |
Nível de Acesso: | Nível 1 (Acesso Clientes) |
---|---|
Idiomas: | Todos |
02. DESCRIÇÃO
O ponto 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 (MATI410 / MATI410O ), permitindo inclusão, alteração ou exclusão de campos.
...
Aviso | ||
---|---|---|
| ||
Não é permitida permitido realizar a exclusão de apenas um item do pedido(s) do Pedido de Venda no processo de integração da mensagem ORDER, para realizar esse processo pode ser excluído o pedido e criado um novo com os itens corretos ou pode ser utilizado esse ponto de entrada para manipulação do array aItens o processo de exclusão, é necessário excluir o Pedido de Venda, e criar um novo informando apenas os itens desejados. Existe a possibilidade da utilização desse ponto de entrada (MT410EAI ) que permite exclusão de apenas item(s) na alteração. Para isso será necessário a manipulação do array aItens, incluindo as informações de LINPOS e AUTODELETA conforme o exemplo documentado abaixo no Item 06. |
03. SINTAXE
MATI410() ---> aRet
04. PARÂMETROS
Nome | Tipo | Descrição | Default | Obrigatório | Referência |
---|---|---|---|---|---|
PARAMIXB | Vetor | Vetor com os dados do Pedido que está sendo executado na mensagem única Order, sendo: [ 01 ] - aCab - Tipo: Array - Relação de campos referente ao cabeçalho do pedido. [ 02 ] - aItens - Tipo: Array - Relação de campos referente aos itens do pedido. | |||
oXml | Objeto | Objeto Xml com os dados relacionados a mensagem única Order. | |||
oLtOfItem | Objeto | Objeto Json com os dados relacionados a mensagem única Order. |
05. RETORNO
Retorno | Tipo | Descrição | Obrigatório |
---|---|---|---|
aRet | Array | Array contendo os dados dos campos que serão processados na rotina Pedido de Vendas. | Sim |
06. EXEMPLO
Bloco de código | ||||
---|---|---|---|---|
| ||||
#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ções do usuário Local nPosCli := 0 Local nPosCPag := 0 IF FWIsInCallStack("MATI410") //Verifica o Cabeçalho do Pedido de Vendas 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 se existe a TAG Customizada <ItemDeleted>1</ItemDeleted> no XML. If Type("oXmlAux:_ItemDeleted:Text") != "U" //Caso a TAG Customizada <ItemDeleted> seja 1 será excluido esse item, caso seja diferente de 1 o item apenas será .And.alterado. 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") //Verifica o Cabeçalho do Pedido de Vendas 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 se existe a TAG Customizada <ItemDeleted>1</ItemDeleted> no JSON. If Type("oJsonAux:getPropValue('ItemDeleted')") != "U" .And. //Caso a TAG Customizada <ItemDeleted> sejA 1 será excluido esse item, caso seja diferente de 1 o item apenas será alterado. 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 |