Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Capture value with client script

Ariomar de Deus
Tera Contributor

I'm having trouble capturing the original value of the func_matricula field before the replace and before the glideajax. Could you help me? I need to insert the value into the v_chaves_fta field.

function onChange(control, oldValue, newValue, isLoading) {
    if (isLoading || newValue == '') {
        return;
    }
 
    var paraQuem = g_form.getValue('para_quem_ser_pedido');
    var matricula = g_form.getValue('func_matricula').replace(/\D/g, '').slice(0, -1);
    var matricula2 = g_form.getValue('matri_estagiario');
    
 
    if (paraQuem == 'para_mim_mesmo') {
 
        g_form.setValue('v_chaves_fta', matricula3);
 
        //console.log('API entrou na condição para mim mesmo');    
        var ga1 = new GlideAjax('InforComplementar');
        ga1.addParam('sysparm_name', 'chamarAPIConsultarInfor');
        ga1.addParam('sysparm_numero_matricula', matricula);
 
        ga1.getXMLAnswer(function(resposta) {
 
            //console.log('API Dados Funcionarios ' + matricula);
 
            if (!resposta) {
                alert("Sem dados da API");
                return;
            }
            if (!matricula) {
                alert('Campo matricula está vazio');
            }
            try {
                var dados = JSON.parse(resposta);
                //console.log(' JSON retornado e interpretado ', dados);
                var msg = dados.message.trim().toLowerCase();
 
                if (dados.return_code == '200') {
 
                    if (msg.indexOf('funcionario nao consta do cadastro.') !== -1) {
                        // console.log('Resposta vindo da API GA1: ', dados.message);
                        alert('Este usuário não possui cadastro');
                        return;
                    }
                    g_form.setValue('prefixo_de_lotacao', dados.codigo_dependencia_lotacao);
                    g_form.setValue('nome_dependencia_lotacao', dados.nome_dependencia_lotacao);
                    g_form.setValue('data_da_posse', dados.data_posse_banco);
                    g_form.setValue('message', dados.message);
                    //console.log('Data da posse retornada na API ' + dados.data_posse_banco);
                } else {
                    //console.log('Resposta vindo da API GA1: ', dados.message);
                    g_form.setValue('message', dados.message);
                    //alert('Funcionario nao consta do Cadastro.');
                }
            } catch (erro) {
                g_form.setValue('message', 'Erro a resposta da API');
                //console.log('Erro ao processar JSON :' + erro.message);
            }
        });
 
        // obter retorno da API dados complementares
        var ga2 = new GlideAjax('InforComplementar');
        ga2.addParam('sysparm_name', 'chamarAPIcomplementares');
        ga2.addParam('sysparm_numero_matricula_user', matricula2);
        ga2.addParam('sysparm_numero_matricula_fun', matricula2);
 
        ga2.getXMLAnswer(function(resposta) {
 
            if (!resposta) {
                alert("Sem dados da API");
                return;
            }
 
            try {
                var dados = JSON.parse(resposta);
                //console.log(' JSON retornado e interpretado ', dados);
                var msg = dados.message.trim().toLowerCase();
 
                if (dados.return_code == '200') {
                    // console.log('Resposta vindo da API GA2 - MSG:', msg);
                    g_form.setValue('tipo_sanguineo', dados.codigo_tipo_sangue);
                    g_form.setValue('prefixo_do_malote', dados.codigo_dependencia_responsavel);
                    g_form.setValue('nome_do_prefixo_do_malote', dados.nome_dependencia_responsavel);
                    g_form.setValue('message', dados.message);
                    //console.log('Data da posse retornada na API ' + dados.data_posse_banco)
                } else {
                    //console.log('Resposta vindo da API GA2: ', dados.message);
                    g_form.setValue('message', dados.message);
                    // alert('Funcionario nao consta do Cadastro.');
                }
            } catch (erro) {
                g_form.setValue('message', 'Erro a resposta da API');
                alert('Erro na resposta da API');
                //console.log('Erro ao processar JSON :' + erro.message);
            }
        });
 
        var codigoUor = g_form.getValue('codigo_uor_unidade');
        var ga3 = new GlideAjax('InforComplementar');
        ga3.addParam('sysparm_name', 'chamarAPIundOrganizacional');
        ga3.addParam('sysparm_codigo_uor', codigoUor);
 
        ga3.getXMLAnswer(function(resposta3) {
 
            if (!resposta3) {
                alert("Sem dados da API");
                return;
            }
            if (!codigoUor) {
                alert('Campo "Código Uor/Unidade" está vazio');
            }
            try {
                var dados3 = JSON.parse(resposta3);
                //console.log(' JSON retornado e interpretado ', dados);
 
                if (dados3.return_code == '200') {
                    g_form.setValue('uf_do_prefixo_de_lotacao', dados3.sigla_uf_uor);
                    g_form.setValue('message', dados3.message);
                } else {
                    //console.log('Resposta vindo da API GA1: ', dados.message);
                    g_form.setValue('message', dados3.message);
                }
            } catch (erro) {
                g_form.setValue('message', 'Erro a resposta da API');
                //console.log('Erro ao processar JSON :' + erro.message);
            }
        });
 
 
    } else {
        // console.log('entrou no else');
    }
}
 

 

1 REPLY 1

Brad Bowman
Kilo Patron
Kilo Patron

Just use

var matricula3 = g_form.getValue('func_matricula');

if this is the field/variable that is triggered by the onChange script, use oldValue instead.  As posted, you're attempting to set the field value to an undefined script variable.