Flux : inclus dans le champ d’application (déconseillé)
L’API de flux fournit des méthodes pour exécuter les flux activés Concepteur de flux .
Cette API est déconseillée et remplacée par les ScriptableFlowRunner : inclus dans le périmètre API et ScriptableFlowRunnerResult : inclus dans le périmètre.
L’API de flux ne peut être utilisée que dans les scripts serveur.
Utilisez 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 Concepteur de flux . Étant donné que l’API de flux n’interagit qu’avec des flux prédéfinis, il n’existe aucun constructeur pour la classe.
Flux inclus dans le périmètre : startAsync(String scopeName.flowName, Map 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 page de Concepteur de flux 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é « current ». 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);
}
})();