Skip to main content

Olá, pessoal!!!



Executando a seguinte function, teremos o seguinte retorno no Whatsapp:





function run(responseConsultaUsuario) {



var json = JSON.parse(responseConsultaUsuario).result;



return json;



}





Então obtenho o seguinte resultado:



e

{

"number":"INC0010141",

"priority":"2",

"business_duration":"1970-01-01 05:05:33",

"short_description":"shipments issue",

},

{

"number":"INC0010155",

"priority":"2",

"business_duration":"1970-01-01 00:00:00",

"short_description":"shipments issue"

},

{

"number":"INC0010008",

"priority":"5",

"sys_domain_path":"/",

"business_duration":"1970-01-06 09:39:35",

"short_description":"estou com problemas"

}

]



Eu gostaria de extrair apenas number e priority de cada parte do JSON, e exibir para o usuário no Whatsapp. Mas não obtive sucesso.



Tentei fazer um loop for, mas parece que o builder não aceita o comando console.log.



Alguma dica de como eu poderia apresentar esses dados ao usuário?

Ola @ralsouza fiz esse Script que acho que vai da certo para você:



function run(responseConsultaUsuario) {

var newTxt = JSON.parse(responseConsultaUsuario);

var consultas = "";

for(i = 0; i < newTxt.length; i++){

consultas += "Consulta " + (i+1) + " nº " + newTxtxi].number + ", Prioridade: " + newTxtxi].priority + "! \n"

}

return consultas;

}



O resultado dele imprime assim:





image




Olá @igor_junio_dos_santo, baita solução!



Estou testando o script no builder, mas o bot não responde.



Será que existe alguma restrição com o uso de loops?


Cara não sei, eu me deparei uma vez com um problema de um rapaz aqui no grupo, e também não conseguia usar o loop, em node funcionava, no playcode.io funcionava, mas no builder não!



Mas deu certo? Não entendi! rs


@ralsouza qual o tamanho que esse length retorna?



Por uma questão de segurança, o BLiP faz apenas 1000 operações por script. Levando em consideração que em um for desses são feitas umas 3 ou 4 operações, daria no máximo umas 200 e poucas iterações.


@ralsouza outro script seria esse:



function run(responseConsultaUsuario) {

var newTxt = JSON.parse(responseConsultaUsuario);

var consultas = "";



for([i,txt] of newTxt.entries()){

consultas += "Consulta " + (i+1) + " nº " + txt.number + ", Prioridade: " + txt.priority + "! \n"

}

return consultas;

}



Olá @igor_junio_dos_santo, obrigado pelo apoio.



Hoje tentei o script abaixo, mas quando adiciono o operador += o erro abaixo é gerado.



erro_blip


Oi @BrunoC, estou limitando para apenas 10 loops no JSON.


@igor_junio_dos_santo e @BrunoC, agora funcionou… Vai entender rs



erro_blip


@ralsouza muito bom o script.


Como você apresenta as informações deste parse para o usuário?


Olá @UILIAM_MARCOS_MENON, obrigado!



O script final ficou assim:



function run(responseConsultaUsuario) {



var json = JSON.parse(responseConsultaUsuario)



var result = '';



for(i = 0; i < 10; i++) {



result += 'Ticket: ' + json.resultti]]'number'] + '\n Descrição Resumida: ' + json.resultui]['short_description'] + '\n Aberto em: ' + json.resultui]['sys_updated_on'] + '\n'+'\n';

}



return result;



}



Como os dados são incrementados e existe a quebra de linha, a saída para o usuário fica assim:



Ticket: 1111111

Descrição Resumida: Está em atendimento

Aberto em: 2019-09-11



Ticket: 222222

Descrição Resumida: Está parado

Aberto em: 2019-09-11



Ticket: 333333333

Descrição Resumida: Está em análise

Aberto em: 2019-09-11



... Até os 10 mais recentes...



Quando o usuário solicita que sejam apresentados os tickets que estão abertos em seu nome, o bot responde esta estrutura:




Muito bom mesmo!!! Obrigado pelo retorno!!


Comente