Flux - Inclus dans le champ d’application (obsolète)
L’API Flow fournit des méthodes pour exécuter des flux activés Studio de workflow .
Cette API est obsolète et remplacée par les ScriptableFlowRunner : dans le champ d’application API and ScriptableFlowRunnerResult : inclus dans l’étendue.
L’API de flux ne peut être utilisée que dans les scripts serveur.
Utiliser l’espace de noms sn_fd pour accéder à l’API de flux .
Avant d’interagir avec un flux à l’aide de l’API de flux , vous devez d’abord créer et activer le flux dans l’interface Studio de workflow . Étant donné que l’API Flow n’interagit qu’avec des flux prédéfinis, il n’existe aucun constructeur pour la classe.
Flux : startAsync(String scopeName.flowName, mapper flowInputs)
Ignore le déclencheur et exécute un flux activé de manière asynchrone.
Les appels asynchrones ne sont pas bloquants, ce qui permet au client d’exécuter d’autres codes dans le script sans avoir à attendre la fin du flux.
| Nom | Type | Description |
|---|---|---|
| scopeName.flowName | Chaîne | Le périmètre de l’application pour le flux et le nom interne du flux à exécuter. Si scopeName n’est pas inclus, le champ d’application de l’utilisateur actuellement connecté est utilisé. Récupérez le nom interne du flux à l’aide de la colonne Nom interne de la Studio de workflow page de destination. |
| entrées de flux | Carte | Paires nom-valeur au format <chaîne, objet> qui définissent les entrées de flux basées sur les enregistrements.Pour appeler un flux avec un déclencheur basé sur les enregistrements, utilisez le format suivant :
L’objet GlideRecord doit être nommé « actuel ». Pour appeler un flux avec un Catalogue de services déclencheur, utilisez le format suivant :
L’objet GlideRecord doit être nommé « request_item ». |
| Type | Description |
|---|---|
| Objet | Objet PlanResponse contenant les propriétés suivantes :
Une exception se produit lorsque le flux :
|
//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);
}
})();