Fluxo de trabalho - Global
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.
| Nome | Tipo | Descrição |
|---|---|---|
| contextId | Cadeia de caracteres | O ID de contexto. |
| eventName | Cadeia de caracteres | O nome do evento. |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| registro | GlideRecord | GlideRecord em qualquer tabela. Todos os fluxos de trabalho em execução neste registro serão cancelados. |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| contexto | GlideRecord | GlideRecord do contexto em execução a ser cancelado. |
| 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.
| 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. |
| 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.
| 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. |
| 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.
| 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. |
| 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.
| 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. |
| 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.
| 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. |
| 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.
| 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. |
| 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.
| 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 |
| 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');
*** 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.
| 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. |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| workflowID | Cadeia de caracteres | O sys_id do fluxo de trabalho (tabela wf_workflow) |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| workflowName | Cadeia de caracteres | Nome do fluxo de trabalho (tabela wf_workflow) |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| workflowName | Cadeia de caracteres | Nome do fluxo de trabalho. |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| registro | GlideRecord | GlideRecord sob análise. Este GlideRecord pode ser de qualquer tabela. |
| 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.
| 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:
|
| 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)".
| 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:
|
| 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.
| 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.
| 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. |
| 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.
| 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 |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| vazio |
var w = new Workflow();