Flow – Bereichsbezogen (veraltet)
Die Flow -API bietet Methoden zum Ausführen von aktivierten Workflow-Studio -Flows.
Diese API ist veraltet und wird durch die APIs ScriptableFlowRunner : Bereichsbezogen und ScriptableFlowRunnerResult : Bereichsbezogenersetzt.
Die Flow API kann nur in Serverskripts verwendet werden.
Verwenden Sie den Namespace sn_fd, um auf die Flow -API zuzugreifen.
Bevor Sie mit einem Flow über die Flow -API interagieren, müssen Sie den Flow zuerst in der Schnittstelle Workflow-Studio erstellen und aktivieren. Da die Flow API nur mit vorgefertigten Flows interagiert, gibt es keinen Konstruktor für die Klasse.
Flow – startAsync(String scopeName.flowName, Zuordnung flowInputs)
Ignoriert den Auslöser und führt einen aktivierten Flow asynchron aus.
Asynchrone Aufrufe sind nicht-blockierend, sodass der Client anderen Code im Skript ausführen kann, ohne auf den Abschluss des Flow warten zu müssen.
| Name | Typ | Beschreibung |
|---|---|---|
| scopeName.flowName | Zeichenfolge | Der Anwendungsbereich für den Flow und der interne Name des auszuführenden Flows. Wenn scopeName nicht enthalten ist, wird der Bereich des aktuell angemeldeten Benutzers verwendet. Rufen Sie den internen Namen des Flows mit der Spalte Interner Name auf der Workflow-Studio-Zielseite ab. |
| flowInputs | Zuordnung | Name-Wert-Paare im Format <String, Objekt>, die datensatzbasierte Flow-Eingaben definieren.Um einen Flow mit einem datensatzbasierten Auslöser aufzurufen, verwenden Sie das Format:
Das GlideRecord-Objekt muss als „current“ bezeichnet werden. Um einen Flow mit einem Servicekatalog-Auslöser aufzurufen, verwenden Sie das Format:
Das GlideRecord-Objekt muss als „request_item“ bezeichnet werden. |
| Typ | Beschreibung |
|---|---|
| Objekt | PlanResponse-Objekt, das die folgenden Eigenschaften enthält:
Eine Ausnahme tritt auf, wenn der Flow:
|
//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);
}
})();