Erro "Is not defined" na atividade do fluxo de trabalho
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-05-2023 08:12 AM
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.
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-05-2023 09:03 AM
Se o código for literalmente esse, tente colocar isso: "u_sem_sucesso"
Está faltando as aspas na string de comparação.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-05-2023 09:16 AM
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.
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.
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-11-2023 08:07 AM
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.