Fluxo - com escopo (descontinuado)
A Flow API fornece métodos para executar Workflow Studio fluxos ativados.
Esta API está obsoleta e foi substituída pelas APIs ScriptableFlowRunner - com escopo e ScriptableFlowRunnerResult - com escopo.
A Flow API só pode ser usada em scripts de servidor.
Use o namespace sn_fd para acessar a Flow API.
Antes de interagir com um fluxo usando a Flow API, você deve primeiro criar e ativar o fluxo na interface Workflow Studio. Como a Flow API só interage com fluxos pré-criados, não há construtor para a classe.
Fluxo - startAsync(String scopeName.flowName, Map flowInputs)
Ignora o gatilho e executa um fluxo ativado de forma assíncrona.
As chamadas assíncronas não são bloqueadas, permitindo que o cliente execute outro código no script sem ter que esperar a conclusão do fluxo.
| Nome | Tipo | Descrição |
|---|---|---|
| scopeName.flowName | Cadeia de caracteres | O escopo da aplicação para o fluxo e o nome interno do fluxo a ser executado. Se scopeName não estiver incluído, o escopo do usuário conectado no momento será usado. Recupere o nome interno do fluxo usando a coluna Nome interno na página principal Workflow Studio. |
| flowInputs | Mapa | Pares de nome-valor em<String, Object> formato que define entradas de fluxo baseadas em registro.Para chamar um fluxo com um gatilho baseado em registro, use o formato:
O objeto GlideRecord deve ser chamado de "atual". Para chamar um fluxo com um gatilho Catálogo de serviços, use o formato:
O objeto GlideRecord deve ser chamado de "request_item". |
| Tipo | Descrição |
|---|---|
| Objeto | Objeto PlanResponse que contém as seguintes propriedades:
Uma exceção ocorre quando o fluxo:
|
//Example 1: Run a flow with a record-based trigger
(function startFlowAsync() {
try {
// You MUST fetch the GlideRecord that will be passed to the flow
var glideRecordInput = new GlideRecord('sys_user');
glideRecordInput.get('62826bf03710200044e0bfc8bcbe5df1');
var flowInputs = {};
flowInputs['current'] = glideRecordInput;
flowInputs['table_name'] = glideRecordInput.getTableName();
var result = sn_fd.Flow.startAsync('global.recordtriggeredflow', flowInputs);
//The Sys ID of a flow execution (contextId)
var contextId = result.contextId;
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
//Example 2: Run a flow with a schedule-based trigger
(function startFlowAsync() {
try {
var result = sn_fd.Flow.startAsync('global.scheduletriggeredflow');
//The Sys ID of a flow execution (contextId)
var contextId = result.contextId;
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
//Example 3: Run a flow with a Service Catalog trigger
(function startFlowAsync() {
try {
// You MUST fetch the GlideRecord that will be passed to the flow
var glideRecordInput = new GlideRecord('sc_req_item');
glideRecordInput.get(aeed229047801200e0ef563dbb9a71c2);
var flowInputs = {};
flowInputs['request_item'] = glideRecordInput;
flowInputs['table_name'] = glideRecordInput.getTableName();
var result = sn_fd.Flow.startAsync('global.catalogtriggeredflow', flowInputs);
//The Sys ID of a flow execution (contextId)
var contextId = result.contextId;
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
//Example 4: Run a flow with a MetricBase trigger
(function startMetricBaseFlowAsync() {
try {
var oilLevelTriggerRecord = new GlideRecord('oil_levels');
oilLevelTriggerRecord.get('a4b3622bc72113007b237f48cb97635f');
var metricTriggerDefinition = new GlideRecord('sys_metric_trigger_definition');
metricTriggerDefinition.get('21f2eae7c72113007b237f48cb976352');
var event_time = oilLevelTriggerRecord.getValue('sys_created_on');
var level = 4;
var metricBaseFlowInputs = {};
//The record that triggered the metric event
metricBaseFlowInputs['current'] = oilLevelTriggerRecord;
//The MetricBase Trigger Definition record
metricBaseFlowInputs['metric'] = metricTriggerDefinition;
//The time that the 'record' reached a specific metric event level and triggered this flow
metricBaseFlowInputs['event_time'] = event_time;
//The target event level to reach in order for a metric flow to trigger
metricBaseFlowInputs['level'] = level;
var result = sn_fd.Flow.startAsync('global.metricbasedtriggeredflow', metricBaseFlowInputs);
//The Sys ID of a flow execution (contextId)
var contextId = result.contextId;
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();