Fluxo de trabalho - Global

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 10 min. de leitura
  • . Fluxo de trabalho A inclusão de script fornece métodos que fazem interface com o mecanismo de fluxo de trabalho.

    Use estes métodos para manipular fluxos de trabalho.

    Fluxo de trabalho - broadcastEvent(cadeia de caracteres contextId, cadeia de caracteres eventName)

    Envia o evento especificado (mensagem) para o contexto do fluxo de trabalho para passar para as atividades em execução.

    O uso típico desse método é habilitar atividades que aguardam a ocorrência de alguma ação antes de prosseguir. Para obter informações adicionais sobre como usar BroadcastEvent , consulte Funções específicas do evento de fluxo de trabalho .

    Para obter uma lista dos eventos OOB disponíveis, consulte Eventos de fluxo de trabalho no sistema de base .

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    contextId Cadeia de caracteres O ID do contexto.
    eventName Cadeia de caracteres O nome do evento.
    Tabela 2. Retornos
    Tipo Descrição
    vazio
    //where current is a task record with a workflow context
          var wf = new Workflow().getRunningFlows(current);
          while(wf.next()) {     
              new Workflow().broadcastEvent(wf.sys_id, 'resume');
          }

    Cancelar ( registro GlideRecord)

    Cancela todos os fluxos de trabalho em execução neste registro transmitindo o. cancelevento para atividades em todos os fluxos de trabalho em execução neste registro.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    registro GlideRecord GlideRecord em qualquer tabela. Todos os fluxos de trabalho em execução neste registro serão cancelados.
    Tabela 4. Retornos
    Tipo Descrição
    vazio
    //get workflow helper
          var workflow = new Workflow();
          //cancel all the workflows, where current is a task record with a workflow context
          workflow.cancel(current);
          gs.addInfoMessage(gs.getMessage("Workflows for {0} have been cancelled", current.getDisplayValue()));

    Fluxo de trabalho - cancelContext ( contexto GlideRecord)

    Cancela este contexto de execução transmitindo um cancelevento para atividades neste contexto de fluxo de trabalho.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    contexto GlideRecord GlideRecord do contexto em execução a ser cancelado.
    Tabela 6. Retornos
    Tipo Descrição
    vazio
    // If a workflow has started for this item, cancel it, where current is a task record with a workflow context
          if ((current.stage == 'Request Cancelled') && current.context 
              && !current.context.nil()) {
          var w = new Workflow();
          var now_GR = new GlideRecord('wf_context');
          
          if (now_GR.get(current.context)) 
              w.cancelContext(now_GR);
          }

    Fluxo de trabalho - deleteWorkflow (GlideRecord atual)

    Exclui todos os fluxos de trabalho no registro.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    atual GlideRecord GlideRecord para o qual o solicitante deseja excluir todos os fluxos de trabalho. Qualquer registro em qualquer tabela.
    Tabela 8. Retornos
    Tipo Descrição
    vazio
    //where current is a task record with a workflow context
          var wkfw = new Workflow();
          wkfw.deleteWorkflow(current);
        

    Fluxo de trabalho - fireEvent(GlideRecord eventRecord, cadeia de caracteres eventName, Object eventParms)

    Aciona o evento nomeado de um fluxo de trabalho em execução no registro de entrada.

    Usado em atividades Coordenador de aprovação , Temporizador , Bloqueio e alguns outros.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    EventRecord GlideRecord Registro de evento listado na tabela Fluxo de trabalho executando atividades [wf_executing].
    eventName Cadeia de caracteres O nome do evento a ser enviado para o fluxo de trabalho em execução.
    EventParms Objeto Opcional. Parâmetros no formato JSON usados pelo evento.
    Tabela 10. Retornos
    Tipo Descrição
    vazio  
    // where current is a task record with a workflow context
      var w = new Workflow(); 
      w.fireEvent(current, 'execute');

    Fluxo de trabalho - fireEventById(cadeia de caracteres eventRecordId, cadeia de caracteres eventName)

    Aciona o evento nomeado no registro especificado pelo ID do registro.

    Usado em atividades Coordenador de aprovação , Temporizador , Bloqueio e alguns outros.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    EventRecordId Cadeia de caracteres O sys_id do registro do glide.
    eventName Cadeia de caracteres O nome do evento a ser enviado para o fluxo de trabalho em execução.
    Tabela 12. Retornos
    Tipo Descrição
    vazio
    var wkfw = new Workflow();
          wkfw.fireEventById('f2400ec10b0a3c1c00ca5bb5c6fae427','Timer');

    Fluxo de trabalho - getContexts ( registro GlideRecord)

    Retorna todos os contextos de fluxo de trabalho para um registro especificado.

    Tabela 13. Parâmetros
    Nome Tipo Descrição
    registro GlideRecord GlideRecord para o qual o solicitante deseja uma lista de todos os contextos de fluxo de trabalho. Qualquer registro em qualquer tabela para a qual o solicitante deseja os contextos de fluxo de trabalho em execução.
    Tabela 14. Retornos
    Tipo Descrição
    GlideRecord GlideRecord na tabela Contexto de fluxo de trabalho [wf_context] filtrada para todos os contextos de fluxo de trabalho do registro especificado (em qualquer estado, como em execução, cancelado, concluído).
    //where current is a task record with a workflow context
    var wkfw = new Workflow();
    var context = wkfw.getContexts(current);
    while (context.next())
      gs.print(context.started);

    Fluxo de trabalho - getEstimatedDeliveryTime (cadeia de caracteres workflowId)

    Obtém o tempo estimado para a conclusão de um fluxo de trabalho.

    Tabela 15. Parâmetros
    Nome Tipo Descrição
    workflowId Cadeia de caracteres Sys_id do fluxo de trabalho (tabela wf_workflow) para obter o tempo de execução estimado.
    Tabela 16. Retornos
    Tipo Descrição
    Cadeia de caracteres Valor de exibição de um GlideDuration (por exemplo, 3 dias) ou em branco se desconhecido.
    var wkfw = new Workflow();
          gs.print(wkfw.getEstimatedDeliveryTime('b99a866a4a3623120074c033e005418f'));

    2 dias

    Fluxo de trabalho - getEstimatedDeliveryTimeFromWFVersion(GlideRecord wfVersion)

    Obtenha o tempo de execução decorrido estimado para a versão do fluxo de trabalho.

    Tabela 17. Parâmetros
    Nome Tipo Descrição
    WfVersion GlideRecord GlideRecord na tabela wf_workflow_version de uma versão de fluxo de trabalho específica para a qual o solicitante deseja a estimativa durante a execução.
    Tabela 18. Retornos
    Tipo Descrição
    Cadeia de caracteres Valor de exibição de um GlideDuration (por exemplo, 3 dias) ou em branco se desconhecido.
    //where current is a task record with a workflow context
          var wkfw = new Workflow();
          var context = wkfw.getContexts(current);
          gs.print(wkfw.getEstimatedDeliveryTimeFromWFVersion(context.wf_version));

    Fluxo de trabalho - getReturnValue(cadeia de caracteres workflowID, valor numérico, resultado booliano)

    Obtém o valor de retorno do fluxo de trabalho apropriado para o ID do fluxo de trabalho de entrada. Este é o fluxo de trabalho submetido a check-out pelo usuário atual ou o fluxo de trabalho publicado com a data mais recente.

    Este é o fluxo de trabalho submetido a check-out pelo usuário atual ou o fluxo de trabalho publicado com a data mais recente. Este método está disponível a partir da versão Fuji.

    Tabela 19. Parâmetros
    Nome Tipo Descrição
    WorkflowID Cadeia de caracteres O sys_id do fluxo de trabalho (tabela wf_workflow)
    valor Número valor
    resultado Booliano Verdadeiro , se verdadeiro
    Tabela 20. Retornos
    Tipo Descrição
    ??? O valor de retorno do fluxo de trabalho conforme especificado pela atividade Valor de retorno. Fluxos de trabalho sem uma atividade de valor de retorno retornam um valor nulo.
    var wkfw = new Workflow();
          wkfw.getReturnValue('context');
    Saída:
    *** Script: b99a866a4a3623120074c033e005418f
          

    Fluxo de trabalho - getRunningFlows ( registro GlideRecord)

    Obtém todos os contextos de fluxo de trabalho em execução no momento para o registro de entrada.

    O registro de entrada é qualquer registro em qualquer tabela para a qual o solicitante deseja os contextos de fluxo de trabalho em execução.

    Tabela 21. Parâmetros
    Nome Tipo Descrição
    registro GlideRecord GlideRecord do registro para o qual o solicitante deseja uma lista de todos os fluxos de trabalho em execução.
    Tabela 22. Retornos
    Tipo Descrição
    GlideRecord GlideRecord na tabela wf_context e filtrado para todos os contextos de fluxo de trabalho em execução.
    //where current is a task record with a workflow context
          var wf = new Workflow().getRunningFlows(current);
          while(wf.next()) {     
              new Workflow().broadcastEvent(wf.sys_id, 'pause');
          }

    Fluxo de trabalho - getVersion (cadeia de caracteres workflowID)

    Obtém a versão do fluxo de trabalho apropriada para o ID do fluxo de trabalho de entrada. Este é o fluxo de trabalho submetido a check-out pelo usuário atual ou o fluxo de trabalho publicado com a data mais recente.

    Este é o fluxo de trabalho submetido a check-out pelo usuário atual ou o fluxo de trabalho publicado com a data mais recente.

    Tabela 23. Parâmetros
    Nome Tipo Descrição
    WorkflowID Cadeia de caracteres O sys_id do fluxo de trabalho (tabela wf_workflow)
    Tabela 24. Retornos
    Tipo Descrição
    nenhum
    var wkfw = new Workflow();
          wkfw.getVersion('b99a866a4a3623120074c033e005418f');

    Fluxo de trabalho - getVersionFromName(cadeia de caracteres workflowName)

    Retorna a versão do fluxo de trabalho apropriada para o nome do fluxo de trabalho de entrada.

    Consulte GetVersion() para obter mais informações.

    Tabela 25. Parâmetros
    Nome Tipo Descrição
    WorkflowName Cadeia de caracteres Nome do fluxo de trabalho (tabela wf_workflow)
    Tabela 26. Retornos
    Tipo Descrição
    vazio
    var wkfw = new Workflow();
          wkfw.getVersionFromName('Emergency Change');

    Fluxo de trabalho - getWorkflowFromName(cadeia de caracteres workflowName)

    Retorna o sys_id do fluxo de trabalho associado ao nome do fluxo de trabalho especificado.

    Tabela 27. Parâmetros
    Nome Tipo Descrição
    WorkflowName Cadeia de caracteres Nome do fluxo de trabalho.
    Tabela 28. Retornos
    Tipo Descrição
    Cadeia de caracteres O sys_id do fluxo de trabalho associado ao nome passado.
    var wflw = new Workflow();
          gs.print(wflw.getWorkflowFromName('Emergency Change'));

    Fluxo de trabalho - hasWorkflow ( registro GlideRecord)

    Determina se um registro especificado tem contextos de fluxo de trabalho associados a ele.

    Isso inclui contextos de fluxo de trabalho em execução e concluídos.

    Tabela 29. Parâmetros
    Nome Tipo Descrição
    registro GlideRecord GlideRecord sob análise. Isso GlideRecord pode ser de qualquer tabela.
    Tabela 30. Retornos
    Tipo Descrição
    Booliano Verdadeiro, se o registro tiver fluxo de trabalho associado; caso contrário, retornará Falso.
    var wkfw = new Workflow();
          gs.print(wkfw.hasWorkflow('f2400ec10b0a3c1c00ca5bb5c6fae427'));

    falso

    RestartWorkflow (GlideRecord Current, boolian maintainStateFlag)

    Recalcula as aprovações e tarefas de um fluxo de trabalho adicionando novas aprovações e tarefas, sem redefinir aprovações e tarefas atuais.

    Você pode usar este método para executar tarefas como adicionar uma empresa a uma solicitação de mudança, sem redefinir as aprovações atuais das empresas que já estão no fluxo de trabalho.

    Tabela 31. Parâmetros
    Nome Tipo Descrição
    atual GlideRecord GlideRecord do registro que este fluxo de trabalho está executando. Isso pode ser feito por qualquer registro em qualquer tabela.
    MaintainStateFlag Booliano Sinalizador que indica se todas as aprovações e tarefas devem ser mantidas em seu estado atual.
    Valores válidos:
    • Verdadeiro: Mantenha todas as aprovações e tarefas em seu estado atual.
    • Falso: Atualize todos os estados de aprovação e tarefa.
    Tabela 32. Retornos
    Tipo Descrição
    vazio

    Este exemplo mostra o fluxo de trabalho sendo reiniciado com o arquivo de aprovação mudando de Rejeitado para Solicitado.

    (function(){
      var comment = 'Workflow Restarted - the Approval Field changing from Rejected to Requested';
      var gLock = new GlideRecordLock(current);
        gLock.setSpinWait(50);
      if (gLock.get()) {
        new Workflow().restartWorkflow(current, false);
        current.setDisplayValue('approval_history', comment);
      }
    })

    Fluxo de trabalho - runFlows (registro GlideRecord, operação de cadeia de caracteres)

    Executa todos os fluxos de trabalho de um determinado registro em uma determinada tabela e suas tabelas descendentes.

    O uso de amostra pode ser visto nas inclusões de script "SNC - Executar fluxos de trabalho primários" e "SNC - Executar fluxos de trabalho primários (aprovação)".

    Tabela 33. Parâmetros
    Nome Tipo Descrição
    registro GlideRecord GlideRecord para executar fluxos de trabalho.
    operação Cadeia de caracteres Operação do banco de dados.
    Valores válidos:
    • inserir
    • atualizar
    • excluir
    Tabela 34. Retornos
    Tipo Descrição
    vazio
    var now_GR = new GlideRecord('wf_test');
    now_GR.addQuery('parent', current.parent);
    now_GR.addQuery('sys_id','!=',current.sys_id);
    now_GR.query();
    while(now_GR.next()) {
        new Workflow().runFlows(now_GR, 'update');
    }

    StartFlow (cadeia de caracteres workflowId, GlideRecord atual, operação de cadeia de caracteres, variáveis de matriz)

    Inicia um fluxo de trabalho especificado.

    Consulte o script Incluir WorkflowScheduler e Regra de negócio "Iniciar fluxo de trabalho" na tabela sc_req_item para obter exemplos de uso.

    Tabela 35. Parâmetros
    Nome Tipo Descrição
    workflowId Cadeia de caracteres O sys_id do fluxo de trabalho a ser iniciado. Este sys_id se refere à tabela wf_workflow.
    atual GlideRecord O registro a ser usado como atual neste fluxo de trabalho. Normalmente, é do Tablecampo das propriedades de fluxo de trabalho deste fluxo de trabalho.
    operação Cadeia de caracteres A operação a ser executada em current. Valores possíveis: inserir , atualização , excluir .
    variáveis Matriz Coleção de variáveis a serem adicionadas ao fluxo de trabalho
    ////where current is a task record with a workflow context
          var w = new Workflow();
          var context = w.startFlow(id, current, current.operation(), getVars());

    Fluxo de trabalho - startFlowFromContextInsert(contexto GlideRecord, operação de cadeia de caracteres)

    Método auxiliar para regra de negócio Auto start on context.

    Tabela 36. Parâmetros
    Nome Tipo Descrição
    contexto GlideRecord GlideRecord na tabela wf_context de um novo registro (o registro "atual" na regra de negócio).
    operação Cadeia de caracteres Operação de banco de dados em execução. Um de insert, update, delete.
    Tabela 37. Retornos
    Tipo Descrição
    vazio
    //where current is a task record with a workflow context
          current.name = current.workflow_version.name;
          current.started_by.setValue(gs.userID());
          
          if (gs.nil(current.id)) {
            var now_GR = new GlideRecord('wf_workflow_execution');
            now_GR.name = current.name;
            now_GR.insert();
          
            current.table = 'wf_workflow_execution';
            current.id = now_GR.sys_id;
          }
          
          var wf = new Workflow();
          wf.startFlowFromContextInsert(current, current.operation())

    StartFlowRetroactive(String workflowId, Number retroactiveMSecs, GlideRecord Current, String Operation, Array, ??)

    Usado pela regra de negócio Start Workflowna tabela task_sla. Um fluxo de trabalho é iniciado e os argumentos extras desse método são usados pela atividade "Temporizador" para pausar a execução do fluxo de trabalho por algum tempo.

    Tabela 38. Parâmetros
    Nome Tipo Descrição
    WorkflowID Cadeia de caracteres O sys_id do fluxo de trabalho a ser iniciado. Este sys_id se refere à tabela wf_workflow.
    MSecs retroativos Número Atraso em milissegundos usado pela atividade Temporizador .
    atual GlideRecord GlideRecord do registro a ser usado como atual neste fluxo de trabalho. Normalmente, é do Tablecampo das propriedades de fluxo de trabalho deste fluxo de trabalho
    operação Cadeia de caracteres Operação de banco de dados sendo executada.Uma de insert, update, delete.
    variáveis Matriz Coleção de variáveis a serem adicionadas ao fluxo de trabalho.
    ComProgramação ??? Programação usada pela atividade Temporizador
    Tabela 39. Retornos
    Tipo Descrição
    GlideRecord GlideRecord na tabela wf_context no registro inserido para este contexto de fluxo de trabalho recém-criado.
    // is this a retroactive start?
          ////where current is a task record with a workflow context
          var msecs = new GlideDateTime().getNumericValue() - current.start_time.getGlideObject().getNumericValue();
          
          // treat this as a retroactive workflow start if the SLA started more than 5 seconds ago
          var w = new Workflow();
          if (msecs <= 5000)
            w.startFlow(id, current, current.operation());
          else
            w.startFlowRetroactive(id, msecs, current, current.operation());
          
          // update the record in case the workflow changed some values
          current.update();
          
        

    Fluxo de trabalho - Fluxo de trabalho ()

    Construtor para Fluxo de trabalho classe.

    Tabela 40. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 41. Retorna
    Tipo Descrição
    vazio
    var w = new Workflow();