Fluxo de trabalho - Global
. 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 .
| Nome | Tipo | Descrição |
|---|---|---|
| contextId | Cadeia de caracteres | O ID do 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');
}
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.
| 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 GlideRecord)
Cancela este contexto de execução transmitindo um cancelevento 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 atual)
Exclui todos os fluxos de trabalho no registro.
| Nome | Tipo | Descrição |
|---|---|---|
| atual | GlideRecord | GlideRecord para o qual o solicitante deseja excluir todos os fluxos de trabalho. 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, 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.
| 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. |
| 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.
| 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. |
| 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.
| 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. |
| 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 | 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.
| 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 | 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.
| 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 |
| 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 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.
| 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 contextos de fluxo de trabalho associados 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. Isso 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
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.
| 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:
|
| 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)".
| 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:
|
| 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.
| 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.
| 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. |
| 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.
| 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 |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| vazio |
var w = new Workflow();