Árvore de páginas

Versões comparadas

Chave

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

...

Produto:

TOTVS Backoffice

Linha de Produto:

Linha Protheus

Segmento:

Backoffice

Módulo:SIGAFAT - Faturamento
Função:MATI040O - Mensagem Única Vendedor (Seller) via JSON
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

...

Ponto de Entrada utilizado para alterar o array que será usado com os dados que serão usados no processamento da rotina de Vendedores.

Com o PE compilado é possível realizar a inclusão de campos customizados no processo de EAI Seller, quando o formato utilizado no envio é JSON.

Dica

O tratamento para edição do array de campos da SA3 pode ser feita com base no Json JSON enviado para a mensagem única. Como ele O JSON enviado na requisição é encaminhado ao PE Ponto de Entrada através do parâmetro (array) "paramixb" na posição [3]" pode , e pode ser feito um tratamento dentro do PE para que pegue o dado customizado do Json e alimente o contido no JSON seja adicionado no array de retorno.

Aviso
titleImportante

Não é permitida a alteração de informações como Filial e Código do vendedor através do PE, caso seja feito, a mensagem ira Ponto de Entrada. Caso isso ocorra o sistema irá retornar uma mensagem de erro e abortará o processo.

...

Nome

Tipo

Descrição

Default

Obrigatório

Referência

aParamIXBVetorVetor com os dados do vendedor que esta está sendo executado na mensagem única Seller, sendo:
[ 01 ] - aDadosSA3 - Tipo: Array - Relação de campos e seus respectivos conteúdos que serão processados.
[ 02 ] - nOpcx - Tipo: Numérico - Identificador da operação que esta sendo realizada (3 - Inclusão, 4 - Alteração e 5 - Exclusão)
[ 03 ] - cJson - Tipo: Caracter - String contendo o json recebido na requisição da mensagem única



05. RETORNO

Retorno

Tipo

Descrição

Obrigatório

aRetArrayArray contendo os dados dos campos que serão processados na gravação do cadastro do vendedor (SA3)Sim

...

Bloco de código
languagecpp
titleExemplo:
#INCLUDE 'PROTHEUS.CH'
#INCLUDE "FWMVCDEF.CH"
   
User Function M040OEAI()
 
   Local aArea       := GetArea()
 
   Local aParam      := PARAMIXB
 
   Local aRet     aDadosSA3   := aParam[1]
   Local nOpcx  nPosIni     := 0aParam[2]
   Local nPosFimcJson       := 0aParam[3]
   Local oJson cContIni      := ""JsonObject():New()

   Local cCampo1  cConteudo   := "XCampo1"

   //BuscaraLocal acCampo2 posição inicial do dado customizado (Ex: Custom) na string Json= "XCampo2"
   nPosIniLocal :=cCampo3 At( 'Custom', aParam[3])+Len('Custom')+3 //Somando o tamanho da descrição e caractes especiais temos a posição inicial do conteúdo
   := "XCampo3"

   Local cValCampo1  := ""
   Local nValCampo2  := 0
   IfLocal nPosInidValCampo3 > 0
 := CToD("   /  //Recortamos os dados da string")

 a partir da posição do dado que buscamos oJson:fromJson(cJson)

   If oJson["Content"]:HasProperty(cCampo1)
      cContInicValCampo1 := Substr(aParam[3],nPosIni)oJson["Content"][cCampo1]
   
   AAdd(aDadosSA3, {"A3_XCAMPO1",  //Encontramos o fim do dado que buscamoscValCampo1, Nil})
   EndIf

      nPosFim := At('"',cContIni) 
If oJson["Content"]:HasProperty(cCampo2)
      //Recortamos apenas o dado que buscavamos da stringnValCampo2 := oJson["Content"][cCampo2]
      cConteudo := SubStr(aParam[3], nPosIni, nPosFim-1)

      //Adicionamos o campo customizado e o conteudo fornecido pela string do json ao array de retornoAAdd(aDadosSA3, {"A3_XCAMPO2", nValCampo2, Nil})
   EndIf

   If oJson["Content"]:HasProperty(cCampo3)
      dValCampo3 := CToD(oJson["Content"][cCampo3])
      aAddAAdd(aRetaDadosSA3, {"A3_CUSTOMXCAMPO3",cConteudo dValCampo3, Nil})
   EndIFEndIf

   RestArea(aArea)
 
Return aRetaDadosSA3