Fluxo de trabalho - Global

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 11 min. de leitura
  • Os scripts de fluxo de trabalho fornecem uma interface com o mecanismo de fluxo de trabalho.

    Use esses métodos para manipular fluxos de trabalho.

    Fluxo de trabalho - transmissãoEvent(cadeia de caracteres contextId, cadeia de caracteres eventName)

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

    O uso típico deste método é habilitar atividades que aguardam a ocorrência de alguma ação antes de prosseguir. Para obter informações adicionais sobre como usar transmissãoEvent, consulte Funções específicas de evento de fluxode 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 de contexto.
    eventName Cadeia de caracteres O nome do evento.
    Tabela 2. Retorna
    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');
          }

    Workflow - cancel(registro GlideRecord)

    Cancela todos os fluxos de trabalho em execução neste registro, transmitindo o evento cancel 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. Retorna
    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 de GlideRecord)

    Cancela este contexto em execução transmitindo um evento cancel 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. Retorna
    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 current)

    Exclui todos os fluxos de trabalho do registro.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    atual GlideRecord GlideRecord para o qual o solicitante deseja excluir todos os fluxos de trabalho. Pode ser qualquer registro em qualquer tabela.
    Tabela 8. Retorna
    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, Objeto 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, Bloqueioe alguns outros.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    registro do evento GlideRecord Registro de evento listado na tabela Atividades de execução de fluxo de trabalho [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. Retorna
    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 de registro.

    Usado em Atividades Coordenador de aprovação, Temporizador, Bloqueioe alguns outros.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    idRecorddoevento 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. Retorna
    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 de 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. Pode ser qualquer registro em qualquer tabela para a qual o solicitante queira os contextos de fluxo de trabalho em execução.
    Tabela 14. Retorna
    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. Retorna
    Tipo Descrição
    Cadeia de caracteres Exiba o valor 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. Retorna
    Tipo Descrição
    Cadeia de caracteres Exiba o valor de 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 for verdadeiro
    Tabela 20. Retorna
    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. Retorna
    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 de 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. Retorna
    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. Retorna
    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. Retorna
    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 algum contexto de fluxo de trabalho associado 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. Este GlideRecord pode ser de qualquer tabela.
    Tabela 30. Retorna
    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

    Fluxo de trabalho - reiniciarWorkflow(GlideRecord current, Boolean identifyStateFlag)

    Recalcula as aprovações e tarefas de um fluxo de trabalho adicionando novas aprovações e tarefas, sem redefinir as 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 para 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.
    mainStateFlag Booliano Sinalizador que indica se todas as aprovações e tarefas devem ser mantidas em seu estado atual.
    Valores válidos:
    • verdadeiro: mantém todas as aprovações e tarefas em seu estado atual.
    • falso: atualize todos os estados de aprovação e tarefa.
    Tabela 32. Retorna
    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 para um determinado registro em uma determinada tabela e suas tabelas descendentes.

    A amostra de uso pode ser vista 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 de banco de dados.
    Valores válidos:
    • inserir
    • atualizar
    • excluir
    Tabela 34. Retorna
    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');
    }

    Fluxo de trabalho - startFlow(cadeia de caracteres workflowId, GlideRecord atual, operação de cadeia de caracteres, variáveis de matriz)

    Inicia um fluxo de trabalho especificado.

    Consulte a inclusão de script WorkflowScheduler e a 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 campo Table das propriedades deste fluxo de trabalho.
    operação Cadeia de caracteres A operação a ser realizada em current. Valores possíveis: inserir, atualizar, 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 de GlideRecord, operação de cadeia de caracteres)

    Método auxiliar para regra de negócios 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 que está sendo executada. Um de insert, update, delete.
    Tabela 37. Retorna
    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())

    Fluxo de trabalho - startFlowRetroactive(cadeia de caracteres workflowId, número retroactiveMSecs, GlideRecord current, operação de cadeia de caracteres, matriz, ???)

    Usado pela regra de negócios Start Workflow na tabela task_sla. Isso inicia um fluxo de trabalho e os argumentos extras para este 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 pelo Temporizadorde atividades.
    atual GlideRecord GlideRecord do registro a ser usado como atual neste fluxo de trabalho. Normalmente, é do campo Table das propriedades deste fluxo de trabalho
    operação Cadeia de caracteres Operação de banco de dados que está sendo realizada.Um de insert, update, delete.
    variáveis Matriz Coleção de variáveis a serem adicionadas ao fluxo de trabalho.
    comProgramação ??? Programação usada pelo Temporizadorde atividades
    Tabela 39. Retorna
    Tipo Descrição
    GlideRecord Um 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 da classe Fluxo de trabalho.

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