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.

Replace doesn't work in client script.

Ariomar de Deus
Tera Contributor

I have a client script that triggers an include script to convert base64 to image, however my client script has two IF statements, the first IF (if (crachaEstagiario)) is working as expected, while the second IF (else if (crachaFuncionario)) works partially, but the replace does not work. Could someone help me?

function onChange(control, oldValue, newValue, isLoading) {
 
    if (isLoading || newValue == '') {
 
        return;
 
    }
 
    var nomeArquivo = 'imagem_cracha.jpg';
    var tipoMime = 'image/jpeg';
    var tabelaDestino = 'x_bdb_anexo_imagem';
 
    var ga = new GlideAjax('global.AnexoImagem');
 
    ga.addParam('sysparm_name', 'anexarImagemBase64Client');
    ga.addParam('sysparm_base64', newValue);
    ga.addParam('sysparm_nome', nomeArquivo);
    ga.addParam('sysparm_mime', tipoMime);
    ga.addParam('sysparm_tabela', tabelaDestino);
 
    ga.getXMLAnswer(function(response) {
 
        if (response) {
 
            try {
 
                var result = JSON.parse(response);
 
                if (result && result.anexoSysId) {
 
                    var v_sys_id_imagem_base64 = result.anexoSysId;
 
                    g_form.setValue('v_sys_id_imagem_base64', v_sys_id_imagem_base64);
 
                    var crachaEstagiario = g_form.getValue('selecione_a_cor_do_seu_novo_cracha_estagiario');
 
                    var crachaFuncionario = g_form.getValue('selecione_novo_cracha_funcionario');
 
                    if (crachaEstagiario) {
 
                        var templateHTML = g_form.getDisplayValue(crachaEstagiario);
 
                        templateHTML = templateHTML.replace('cracha', v_sys_id_imagem_base64);
                        alert(templateHTML);
 
                        g_form.setValue(crachaEstagiario, templateHTML);
 
                    } else if (crachaFuncionario) {
                   
                        var templateHTML = g_form.getValue(crachaFuncionario);
 
                        templateHTML = templateHTML.replace('cracha', v_sys_id_imagem_base64);
                        alert(templateHTML);
 
                        g_form.setValue(crachaFuncionario, templateHTML);
 
                    }
 
                    g_form.showFieldMsg('v_imagem_em_base64', 'Imagem anexada com sucesso!', 'info');
 
                } else {
 
                    g_form.showFieldMsg('v_imagem_em_base64', 'Erro ao anexar imagem.', 'error');
 
                    return;
 
                }
 
            } catch (e) {
 
                g_form.showFieldMsg('v_imagem_em_base64', 'Resposta inválida do servidor.', 'error');
 
                return;
 
            }
 
        } else {
 
            g_form.showFieldMsg('v_imagem_em_base64', 'Nenhuma resposta do servidor.', 'error');
 
            return;
 
        }
 
    });
 
}
 
1 ACCEPTED SOLUTION

@Ariomar de Deus 

does that variable have value?

try this and share your findings

function onChange(control, oldValue, newValue, isLoading) {

    if (isLoading || newValue == '') {

        return;

    }

    var nomeArquivo = 'imagem_cracha.jpg';
    var tipoMime = 'image/jpeg';
    var tabelaDestino = 'x_bdb_anexo_imagem';

    var ga = new GlideAjax('global.AnexoImagem');

    ga.addParam('sysparm_name', 'anexarImagemBase64Client');
    ga.addParam('sysparm_base64', newValue);
    ga.addParam('sysparm_nome', nomeArquivo);
    ga.addParam('sysparm_mime', tipoMime);
    ga.addParam('sysparm_tabela', tabelaDestino);

    ga.getXMLAnswer(function(response) {

        if (response) {

            try {

                var result = JSON.parse(response);

                if (result && result.anexoSysId) {

                    var v_sys_id_imagem_base64 = result.anexoSysId;

                    g_form.setValue('v_sys_id_imagem_base64', v_sys_id_imagem_base64);

                    var crachaEstagiario = g_form.getValue('selecione_a_cor_do_seu_novo_cracha_estagiario');

                    var crachaFuncionario = g_form.getValue('selecione_novo_cracha_funcionario');

                    alert('crachaFuncionario value is' + crachaFuncionario);

                    if (crachaEstagiario) {

                        var templateHTML = g_form.getDisplayValue(crachaEstagiario);

                        templateHTML = templateHTML.replace('cracha', v_sys_id_imagem_base64);
                        alert(templateHTML);

                        g_form.setValue(crachaEstagiario, templateHTML);

                    } else if (crachaFuncionario != '' && crachaFuncionario != undefined) {

                        var templateHTML = g_form.getValue(crachaFuncionario);

                        templateHTML = templateHTML.replace('cracha', v_sys_id_imagem_base64);
                        alert(templateHTML);

                        g_form.setValue(crachaFuncionario, templateHTML);

                    }

                    g_form.showFieldMsg('v_imagem_em_base64', 'Imagem anexada com sucesso!', 'info');

                } else {

                    g_form.showFieldMsg('v_imagem_em_base64', 'Erro ao anexar imagem.', 'error');

                    return;

                }

            } catch (e) {

                g_form.showFieldMsg('v_imagem_em_base64', 'Resposta inválida do servidor.', 'error');

                return;

            }

        } else {

            g_form.showFieldMsg('v_imagem_em_base64', 'Nenhuma resposta do servidor.', 'error');

            return;

        }

    });

}

💡 If my response helped, please mark it as correct and close the thread 🔒— this helps future readers find the solution faster! 🙏

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

5 REPLIES 5

Chris Terzian1
Tera Contributor

Hola @Ariomar de Deus  - Check these values...


var crachaEstagiario = g_form.getValue('selecione_a_cor_do_seu_novo_cracha_estagiario');
var crachaFuncionario = g_form.getValue('selecione_novo_cracha_funcionario');
if (crachaEstagiario) {
var templateHTML = g_form.getDisplayValue(crachaEstagiario);
templateHTML = templateHTML.replace('cracha', v_sys_id_imagem_base64);
alert(templateHTML);
g_form.setValue(crachaEstagiario, templateHTML); //CT - "crachaEstagario" should be a field name value.  Appears to be a value of a field name rather than the field name itself, i.e.  selecione_a_cor_do_seu_novo_cracha_estagiario

REPLACE WITH

var ce = "selecione_a_cor_do_seu_novo_cracha_estagiario"; //field name
var crachaEstagiario = g_form.getValue(ce);
var crachaFuncionario = g_form.getValue('selecione_novo_cracha_funcionario');
if (crachaEstagiario) {
var templateHTML = g_form.getDisplayValue(crachaEstagiario);
templateHTML = templateHTML.replace('cracha', v_sys_id_imagem_base64);
alert(templateHTML); 
g_form.setValue(ce, templateHTML);