Se alguma pergunta ou resposta lhe foi útil, não deixe de dar seu voto positivo!

FWREST Retorna status 200 mas não atualiza via post

Bom dia, tudo bem?? Sou novo em programação ADVPL e estou com uma dúvida relacionado ao POST Json. Estou enviando um Json utilizando a classe FWREST, o retorno que recebo é o 200, utilizando getResult eu recebo as atualizações, porém quando vou lá no site e vejo o post, e eu não tenho atualização alguma. Alguém sabe me dizer o que pode ser isso??Segue montagem e envio do Json

// Montagem Json

Static Function SendTableMob(oObj)

    Local nI
    Local nX := 1
    Local oMobAgile as object
    // Local oJson    as object
    Local oModelCab := oObj:GetModel( "DA0MASTER" )
    Local oModelIte := oObj:GetModel( "DA1DETAIL" )
    Local nQtdLinhas := oModelIte:GetQtdLine()


     U_SendMobPro(oModelCab:GetValue("DA0_CODTAB"))

    oMobAgile := JsonObject():New()
    oMobAgile["produtos"] := {}


    For nI:= 1 to nQtdLinhas

        If nX == 1


            oMobAgile[‘codtab‘]       := oModelCab:GetValue("DA0_CODTAB")

           // oMobAgile["produtos"] := {}
        EndIf

        aAdd(oMobAgile["produtos"], JsonObject():new())

        oMobAgile["produtos"][len(oMobAgile["produtos"])][‘cod‘]   := AllTrim(oModelIte:GetValue("DA1_CODPRO",nI))
        oMobAgile["produtos"][len(oMobAgile["produtos"])][‘prc‘]   := oModelIte:GetValue("DA1_PRCVEN",nI)
        oMobAgile["produtos"][len(oMobAgile["produtos"])][‘sts‘]   := AllTrim(oModelIte:GetValue("DA1_ATIVO",nI))


// Enviando de 200 em 200 devido a timeout ao enviar um json maior do que isso.
        If nX == 200
        //If nX == 10
            U_JsonMobAgile("DA0",oMobAgile )
            FreeObj( oMobAgile)
            oMobAgile := JsonObject():New()
            oMobAgile["produtos"] := {}
            nX := 0
        Endif
        nX ++
    Next
    If Len(oMobAgile["produtos"]) > 0
        U_JsonMobAgile("DA0",oMobAgile )
        FreeObj(oMobAgile)
    Endif
return


// POST da função JsonMobAgile

REENCHE CABECALHO DA REQUISICAO

aHeader := {}

    AAdd(aHeader, "Content-Type: application/json; charset=UTF-8")
    AAdd(aHeader, "Accept: application/json")
     Aadd(aHeader,‘Authorization: Bearer ‘ + cToken)


     // INFORMA O RECURSO E INSERE O JSON NO CORPO (BODY) DA REQUISIÇÃO
    //oRest:nTimeOut := 900000
    //cJson := oJson:ToJson()
    oRest:SetPath(cEndPoint)
    oRest:SetPostParams(oJson:ToJson())

    // REALIZA O M TODO POST E VALIDA O RETORNO
     if oRest:Post(aHeader)
          cError := ""
          nStatus := HTTPGetStatus(@cError)
        oRest:GetResult()
          if ! nStatus >= 200 .And. nStatus <= 299
          //      MsgInfo("Registro enviado ao MobAgile.")
          // else
               MsgStop("Falha ao Enviar Dados: " + cError)
               lRetorno := .F.
          endif
     else
          lRetorno := .F.
          oParseJSON := JsonObject():new()
          oParseJSON:fromJson(oRest:CRESULT)
          If(Valtype(oParseJSON:GetJsonText("message")) == "U")
               MsgStop("Falha ao Enviar Dados: " + oRest:getLastError() + CRLF + DecodeUTF8(oRest:getResult(), "cp1252"))
          Else
               MsgStop("Falha ao Enviar Dados: " + oRest:getLastError() + CRLF + DecodeUTF8(oParseJSON:GetJsonText("message"), "cp1252"))
          EndIf               
     endif
compartilhar
  • Olá, por favor, faça um teste utilizando o método SetChkStatus e enviando falso para ele, antes de chamar o método Post da FWREST.

    Daniel Mendes   10 de Mar de 2023
  • Olá, Daniel. FIquei um tempo sem meus acessos Mas o que resolveu foi eu enviar parcelado de 50 em 50 ai consegui enviar

    psneves   03 de May de 2023
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags advpl fwrest api ou faça a sua própria pergunta.