---
sourceDocument: Référence de l’API Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Référence de l’API Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Flux : inclus dans le champ d'application (déconseillé)

# Flux : inclus dans le champ d'application (déconseillé) {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes de lecture

L'API de flux fournit des méthodes pour exécuter les flux activés Studio de workflow .

Cette API est obsolète et remplacée par l'API [ScriptableFlowRunner : inclus dans le champ d'application](https://servicenow-prod.fluidtopics.net/y_Pt5_W4y28guQ~D0QOqyA#ScriptableFlowRunnerScopedAPI "Crée un objet générateur utilisé pour définir les paramètres du flux, du flux secondaire et de l’exécution de l’action. Vous pouvez spécifier un flux à exécuter dans un domaine particulier. Démarrez l’exécution du flux, du flux secondaire ou de l’action directement à partir du générateur et affichez les résultats dans un objet ScriptableFlowRunnerResult.") and [ScriptableFlowRunnerResult : inclus dans le champ d'application](https://servicenow-prod.fluidtopics.net/pTD2tyX_YnFqf_cAvzx9Lw#ScriptableFlowRunnerResultScopedAPI "Capture le résultat de l’utilisation de ScriptableFlowRunner pour exécuter un flux, un flux secondaire ou une action. Inclut des données telles que l’ID de contexte, le domaine et toutes les sorties de l’exécution du flux.").

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 Studio de workflow . Étant donné que l'API de flux n'interagit qu'avec des flux prédéfinis, il n'existe aucun constructeur pour la classe.  
Remarque :  
Pour optimiser les performances de l'instance, évitez d'appeler ces méthodes à partir d'un script de règle métier asynchrone. Au lieu de cela, créez un enregistrement de tâche planifiée dans l'interface Studio de workflow utilisateur.

## Flux : startAsync(String, scopeName.flowName, Map, flowInputs) {#ariaid-title2}

Ignore le déclencheur et exécute un flux activé de façon 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.
{#FlowScoped-startAsync_S_GR__table_s1t_yn5_ncb__entry__3}

| 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 sur 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 : var flowInputs = {}; flowInputs['current'] = glideRecord; flowInputs['table_name'] = glideRecord.getTableName(); L'objet GlideRecord doit être nommé \<\< current \>\>. Pour appeler un flux avec un Catalogue de services déclencheur, utilisez le format suivant : var flowInputs = {}; flowInputs['request_item'] = glideRecord; flowInputs['table_name'] = glideRecord.getTableName(); L'objet GlideRecord doit être nommé \<\< request_item \>\>. |
[Tableau 1. Paramètres]

{#FlowScoped-startAsync_S_GR__table_s1t_yn5_ncb} {#FlowScoped-startAsync_S_GR__table_t1t_yn5_ncb__entry__2}

| Type | Description |
|-|-|
| Objet | Objet PlanResponse contenant les propriétés suivantes : * contextId : sys_id de l'enregistrement des détails d'exécution pour le flux exécuté. Accédez aux détails de l'exécution en accédant à l'onglet Exécutions de flux et Studio de workflow en filtrant par sys_id. {#FlowScoped-startAsync_S_GR__ul_bd2_k2v_ncb} Une exception se produit lorsque le flux : * N'existe pas dans le périmètre de l'application spécifié, ou le nom du flux ou du périmètre a été mal orthographié. * N'est pas activé. * Dépasse la limite de récursivité définie par la com.glide.hub.flow_engine.indirect_recursion_limit propriété système. La valeur par défaut est trois. {#FlowScoped-startAsync_S_GR__ul_ub3_n3t_pcb} |
[Tableau 2. Renvoie]

{#FlowScoped-startAsync_S_GR__table_t1t_yn5_ncb}  

    //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);
    	}

    })();


