The CreatorCon Call for Content is officially open! Get started here.

Erro "Is not defined" na atividade do fluxo de trabalho

Alan Carvalho
Tera Contributor

Olá comunidade!

 

Estou elaborando um fluxo de trabalho que precisa ser revertido caso a segunda tarefa encerrada como "Sem sucesso" no campo Código de fechamento. Essa condição encontra-se na atividade "Se" e quando o fluxo atinge a mesma o erro abaixo é apresentado.

AlanCarvalho_0-1680707446571.png

 

Segue o script da cláusulo "Se":

answer = ifScript();

function ifScript() {
var grScTask = new GlideRecord('sc_task');

if (current.u_codigo_de_fechamento != u_sem_sucesso) {
return 'yes';
}else {
return 'no';
}
}

 

Além de me ajudarem com a análise desse erro, podem checar se o script acima irá atender a minha necessidade ou se está faltando alguma linha de código?

 

Desde já muito obrigado.

3 REPLIES 3

Elicio_Junior
Tera Contributor

Se o código for literalmente esse, tente colocar isso: "u_sem_sucesso"

Está faltando as aspas na string de comparação.

Camilo Moraes
Kilo Guru

Boa tarde Alan,

 

Partindo da premissa que sua condição esteja correta. Posso contribuir com os pontos abaixo.

 

O problema ocorre por que você está tentando fazer uma comparação no "if" do script com algo que não foi declarado em seu código. Como está fora das aspas é considerado como uma variável e não como string.

 

CamiloMoraes_1-1680710419581.png

 

Caso você tenha criado um campo customizado na tabela "sc_task" você deve salvar o Sys ID da tarefa em uma variável no scratchpad do workflow para realizar a consulta na atividade "Se".

 

1. Salvando o Sys ID da task no campo "Advanced Script" da atividade da tarefa.

CamiloMoraes_0-1680709778822.png

 

2. Script da atividade "Se" para obter o valor do campo da tarefa. Recomenda-se usar o ".getValue()" em consultas GlideRecord:

 

answer = ifScript();

function ifScript() {
    var resp = 'no';
    var idTask = workflow.scratchpad.sys_id_task;

    var grScTask = new GlideRecord('sc_task');
    grScTask.get(idTask);
    if (grScTask.isValidRecord()) {
        if (grScTask.getValue("u_codigo_de_fechamento ") != "u_sem_sucesso") {
            resp = 'yes';
        }
    }

    return resp;
}

Caso o campo que você está tentando consultar na tarefa seja uma variável do item de catálogo, o script da atividade "Se" fica um pouco diferente.

answer = ifScript();

function ifScript() {
    var resp = 'no';
    var idTask = workflow.scratchpad.sys_id_task;

    var grScTask = new GlideRecord('sc_task');
    grScTask.get(idTask);
    if (grScTask.isValidRecord()) {
        if (grScTask.variables.u_codigo_de_fechamento.getValue() != "u_sem_sucesso") {
            resp = 'yes';
        }
    }

    return resp;
}

 

Espero ter ajudado.

 

Att,

Camilo M.

Alan Carvalho
Tera Contributor

Olá comunidade!

 

Atualizando vocês sobre esse tema, decidi elaborar esse fluxo pelo Flow Designer e utilizei a lógica "Fazer o seguinte até" para solucionar a minha necessidade.