Builder - Post em API com Array no JSON


Prezados, boa noite!


Tenho uma variável no builder que armazena um JSON ARRAY e conforme o usuário vai preenchendo algumas perguntas, eu vou atualizando esse array com o valor preenchido. Após o preenchimento eu preciso fazer o POST para uma API enviando alguns dados e também esse array armazenado. Abaixo o meu JSON a ser enviado (builder.json):


{

“idTipoOcorrencia”: “{{idtipoocorrencia}}”,

“idEmpresa”: “{{idempresa}}”,

“idCliente”: “{{idcliente}}”,

“idOpcao”: “{{idopcao}}”,

“descricao”: “{{descricaoocorrencia}}”,

“dataOcorrencia”: “{{ocorrenciadatahoraiso}}”,

“ocorrencia_TextoList”: “{{ocorrenciatexto}}”

}


O último campo “ocorrencia_TextoList” é o array que eu tenho na variável “ocorrenciatexto”. Quando eu pego o que tem dentro da variável e testo pelo postman funciona, então o array está correto. Segue abaixo valor da variável no momento do POST:


ocorrenciatexto: [{“idTexto”:18,“textoOrdem”:1,“textoNome”:“Nome da Loja”,“textoDescricao”:null,“textoValor”:“A”},{“idTexto”:21,“textoOrdem”:2,“textoNome”:“Nome Funcionário”,“textoDescricao”:null,“textoValor”:“B”}]


Abaixo o erro que eu recebo. Parece que é no script, mas não chega a fazer o POST. Obs.: Eu tenho outros POSTs funcionando e fiz da mesma forma. O erro que retorna é muito genérico.


Failed: ExecuteScript action in 3 milliseconds


order: 0


type: “ExecuteScript”


parsedSettings: {“function”:“run”,“source”:"/**\n * All input variables needs to be passed as function param;\n * Objects received as param needs to be parsed. Ex.: JSON.parse(inputVariable1);\n * Objects returned needs to be stringfied. Ex.: JSON.stringify(inputVariable1);\n **/\n\nfunction run(responsecliente, statuscliente) {\n var obj = JSON.parse(responsecliente);\n //debugger;\n var saida = ‘’;\n //for(var i = 0; i < obj[“result”].length; i++) \n //if(obj[“result”].length == 1)\n //{\n if (statuscliente == 200) {\n if (obj[“success”]) {\n if (obj[“result”] != null && obj[“result”] != undefined) {\n saida = 'Cadastro efetuado com sucesso em nossa plataforma, por favor, guarde o seu protocolo: ’ + obj[“result”][“idOcorrencia”];\n }\n }\n else\n {\n if (obj[“errors”] != null && obj[“errors”] != undefined) {\n for(var iError = 0; iError < obj[“errors”].length; iError++)\n {\n saida += obj[“errors”][iError] + “\n”;\n }\n }\n }\n }\n else\n {\n saida = ‘Houve um erro ao conectar com nossos servidores, por favor, contate o administrador do sistema’;\n }\n //}\n\n // for(var i = 0; i < obj[“result”].length; i++) \n // {\n // teste += ‘’ + obj[“result”][i][“nome”] + ’ - ’ + obj[“result”][i][“email”] + “\n”;\n // }\n\n return saida; //Return value will be saved as “Return value variable” field name\n}",“inputVariables”:[“responseocorrenciacreate”,“statusocorrenciacreate”],“outputVariable”:“ocorrencia”}


continueOnError: false


timestamp: “2020-08-14T00:21:37.842Z”


elapsedMilliseconds: 3


error: “SyntaxError: Unexpected token ‘<’”


5 comentários

Reputação 7

Olá @Rodrigo_Rangel_Ritte tudo bem? Desculpa a demora em responder, mas você conseguiu atualizações sobre este caso?

Estava precisando dessa solução também. Preciso enviar um array de strings via blip e não posso mexer na api para tratar o caso.

E ai pessoal @Rodrigo_Rangel_Ritte e @BrunoC conseguiram alguma atualização sobre este caso, estou tentando fazer envio de array dentro do json também.

Crachá

Boa tarde pessoal!!


Um padrão que costumo adotar aqui em Take Blip é construir o body necessário para a requisição dentro de um script. Com isso, a variável de saída do script irá para o body da request, requisitando passar somente uma única variável.

Consegui dessa forma que você falou. Obrigado.

Comente