Fluxo de trabalho - Global
A inclusão de script de fluxo de trabalho fornece métodos que fazem interface com o mecanismo de fluxo de trabalho.
Use esses 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 de fluxo de trabalho para passar para as atividades em execução.
O uso típico deste método é para 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 de 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 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');
}
Fluxo de trabalho - 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(GlideRecord context)
Cancela este contexto de 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 no 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)
Dispara 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 |
|---|---|---|
| EventRecord | GlideRecord | Registro de eventos 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)
Dispara 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 |
|---|---|---|
| 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 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(String 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 for 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 for 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 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 de 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 escrutínio. Este GlideRecord pode ser de qualquer tabela. |
| Tipo | Descrição |
|---|---|
| Booliano | Verdadeiro, se o registro tiver fluxo de trabalho associado; caso contrário, retorna Falso. |
var wkfw = new Workflow();
gs.print(wkfw.hasWorkflow('f2400ec10b0a3c1c00ca5bb5c6fae427'));
falso
Fluxo de trabalho - restartWorkflow(GlideRecord current, booliano manterStateFlag)
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. |
| manterStateFlag | 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 a mudança do arquivo de aprovação 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.
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 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 de fluxo de trabalho para este fluxo de trabalho. |
| operação | Cadeia de caracteres | A operação a ser executada 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 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())
Fluxo de trabalho - startFlowRetroactive(cadeia de caracteres workflowId, número retroativoMSecs, GlideRecord atual, operação de cadeia de caracteres, matriz, ???)
Usado pela regra de negócio 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 em execução.Uma de insert, update, delete. |
| variáveis | Matriz | Coleção de variáveis a serem adicionadas ao fluxo de trabalho. |
| withSchedule | ??? | 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 - Workflow()
Construtor da classe Fluxo de trabalho.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| vazio |
var w = new Workflow();