Após salvar vamos inserir as variáveis, em variables clique em new:
Conforme o exemplo abaixo repita para todas as outras variáveis ficando atento as condições das colunas acima, os nomes devem estar exatamente iguais para que o Client Script consiga localizar.
Agora vamos configurar o Script Include que será responsável pela integração com a ViaCep.
Nesse passo é necessário acessar aqui Consumindo API de CEP via Servicenow Rest Message para gerar a sua integração, após ter realizado esse passo com sucesso você vai extrair o código que será usado no Script Include.
Crie um novo Script Include, insira o nome conforme a imagem abaixo e salve para continuar na página, após isso a estrutura do script auto gerada.
Agora volte na Rest Message responsável pela integração gerada anteriormente e clique em Default Get, na Related List clique em Preview Script Usage.
Copie o código gerado para ser utilizado no Script Include.
O código que estiver depois do // pode ser excluído, o código será modificado para deixar a busca dinâmica.
searchForCEP: function() {
var cep = this.getParameter('sysparm_cep'); // Parâmetro recebido
try {
var r = new sn_ws.RESTMessageV2('CEP', 'Default GET');
r.setStringParameterNoEscape('cep', cep); // Parâmetro que será recebido
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
return responseBody; //Retorno dos dados
} catch (ex) {
var message = ex.message;
gs.info('Erro CEP_Client: ' + message); // Menssagem indicando o erro
}
},
Clique em Catalog Client Script e em new, preencha as informações conforme a imagem abaixo.
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ga = new GlideAjax('global.CEP_Client');
ga.addParam('sysparm_name', 'searchForCEP');
ga.addParam('sysparm_cep', newValue);
ga.getXML(callback);
function callback(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
var data = JSON.parse(answer.replace(/\r?\n|\r/g, ''));//Remove as quebras de linha
g_form.setValue('logradouro', data.logradouro);
g_form.setValue('bairro', data.bairro);
g_form.setValue('localidade', data.localidade);
g_form.setValue('uf', data.uf);
}
}
Nenhum comentário:
Postar um comentário