Get a first look at what's coming. The Developer Passport Australia Release Preview kicks off March 12. Dive in! 

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 ACCEPTED SOLUTION

Brad Bowman
Mega 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.

 

View solution in original post

1 REPLY 1

Brad Bowman
Mega 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.