[Resolvido] {JS} Retornar mensagem de erro ao usuário


#1

Fala pessoal, fiz uma consulta simplificada ao nosso sistema de ponto da empresa.
Objetivo: Colaborador fala sua matrícula e o bot retorna o resultado.

Funcionou muito bem, mas me deparei com um problema. Quando o user digita uma matrícula que não existe o bot “trava” fica “no limbo”. Ou seja: Não tratei o erro no script. Estou tentando resolver isto mas não estou conseguindo. Alguém pode dar uma dica?

O Script que estou utilizando é este:

function run(externalId) {
    if (externalId.lenght > 0 ){
        var saldo = JSON.parse(externalId)[0].hoursBalance;
        return Math.round(saldo/3600)        
}   else {
        window.alert("Matrícula não encontrada. Digite novamente")
   }
 
}

Mas estou recebendo este erro:


#2

Olá Luis,

O seu script faz referência ao objeto window que não existe no contexto da execução. Lembrando que o Javascript do builder suporta a versão ECMAScript 5.1. Os objetos do DOM (window ou document por exemplo) são parte do browser, e não do ECMAScript.


#3

Obrigado @andreb. Me sugere alguma forma de eu “destravar” o bot?
Se eu mantenho meu código assim:

function run(externalId) {
var saldo = JSON.parse(externalId)[0].hoursBalance;
return Math.round(saldo/3600)
}

Ele retorna o resultado esperado:

Mas se eu digitar uma matrícula que não existe, ele não me informa nenhuma mensagem de erro, logo a pessoa fica “presa” no bot, veja:

Obrigado.


#4

Tentei desta maneira, mas também não consigo “printar” um erro para o usuário. Alguma alternativa?

function run(response) {
try {
var balance = JSON.parse(response)[0].hoursBalance;
return Math.round(balance/3600) }
catch(err) {
alert(“Invalid employee Id number. Try again”)
}
}


#5

Consegui assim:
Resolvido.

function run(response) {
try {
var balance = JSON.parse(response)[0].hoursBalance;
return Math.round(balance/3600) }
catch(err) {
return “Matrícula inválida, por favor insira outro número.”
}
}