ScriptableFlowRunner : inclus dans le périmètre
Créez un objet de générateur utilisé pour définir les paramètres du flux, du flux secondaire et de l’exécution des actions. Vous pouvez spécifier un flux à exécuter dans un domaine particulier. Démarrez le flux, le flux secondaire ou l’exécution de l’action directement à partir du générateur et affichez les résultats dans un objet ScriptableFlowRunnerResult.
Utilisez ces méthodes dans vos scripts côté serveur avec l’identificateur d’espace de noms sn_fd.
Ordre d’appel d’API
Créez et exécutez des flux, des flux secondaires et des actions à l’aide de ces API dans l’ordre suivant :
- 1. FlowAPI : crée un objet de générateur
- Utilisez getRunner() pour instancier l’objet générateur ScriptableFlowRunner.
- 2. ScriptableFlowRunner : spécifier le Concepteur de flux contenu à exécuter
- Utilisez ces méthodes dans l’ordre suivant pour créer le modèle de générateur :
- Utilisez l’une des méthodes action(),datastream(), flow() ou subflow() pour spécifier le type d’objet Concepteur de flux à construire.
- Utilisez une ou plusieurs méthodes telles que addInput(),inDomain() ou quick() pour spécifier les paramètres d’exécution.
- Utilisez la méthode run() pour exécuter l’action, le flux ou le flux secondaire avec les paramètres fournis et renvoyer un objet ScriptableFlowRunnerResult.
- 3. ScriptableFlowRunnerResult : récupérer Concepteur de flux les détails de l’exécution
- Utilisez une ou plusieurs méthodes telles que getContextId(),getOutputs() et getDomainId() pour afficher les détails de l’exécution.
Exemple
Cet exemple montre comment créer un objet générateur ScriptableFlowRunner et l’utiliser pour exécuter une action d’approbation sur un enregistrement spécifique. Un objet ScriptableFlowRunnerResult capture les arguments d’exécution et les sorties d’action.
(function() {
try {
var inputs = {};
inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c'; // Pass the record's sys_id in as input.
var result = sn_fd.FlowAPI.getRunner() // Create a ScriptableFlowRunner builder object.
.action('global.markapproved') // Run the global scope action named markapproved.
.inForeground()
.inDomain('TOP/ACME') // Run the action from the TOP/ACME domain.
.withInputs(inputs)
.run(); // Run the action and return a FlowRunnerResult object.
var contextId = result.getContextId(); // Retrieve the context ID from the result
var dateRun = result.getDate();
var domainUsed = result.getDomainId(); // Retrieve the Domain ID from the result.
var flowName = result.getFlowObjectName();
var flowObjectType = result.getFlowObjectType();
var outputs = result.getOutputs(); // Retrieve any outputs from the action execution.
var newApprovalStatus = outputs['approval']; // Echo back the approval status for verification.
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
ScriptableFlowRunner : action(String scopedActionName)
Identifie le périmètre et le nom de l’action à exécuter.
| Nom | Type | Description |
|---|---|---|
| scopedActionName | Chaîne | Périmètre et nom de l’action à exécuter. Par exemple, global.actionName. |
| Type | Description |
|---|---|
| Exécuteur de flux scriptable | Objet du générateur utilisé pour exécuter une action, un flux ou un Concepteur de flux flux secondaire. |
Cet exemple montre comment créer un objet générateur ScriptableFlowRunner et l’utiliser pour exécuter une action d’approbation sur un enregistrement spécifique. Un objet ScriptableFlowRunnerResult capture les arguments d’exécution et les sorties d’action.
(function() {
try {
var inputs = {};
inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c'; // Pass the record's sys_id in as input.
var result = sn_fd.FlowAPI.getRunner() // Create a ScriptableFlowRunner builder object.
.action('global.markapproved') // Run the global scope action named markapproved.
.inForeground()
.inDomain('TOP/ACME') // Run the action from the TOP/ACME domain.
.withInputs(inputs)
.run(); // Run the action and return a FlowRunnerResult object.
var contextId = result.getContextId(); // Retrieve the context ID from the result
var dateRun = result.getDate();
var domainUsed = result.getDomainId(); // Retrieve the Domain ID from the result.
var flowName = result.getFlowObjectName();
var flowObjectType = result.getFlowObjectType();
var outputs = result.getOutputs(); // Retrieve any outputs from the action execution.
var newApprovalStatus = outputs['approval']; // Echo back the approval status for verification.
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
ScriptableFlowRunner : flow(String scopedFlowName)
Identifie le périmètre et le nom du flux à exécuter.
| Nom | Type | Description |
|---|---|---|
| scopedFlowName (en anglais seulement) | Chaîne | Périmètre et nom du flux à exécuter. Par exemple, global.flowName. |
| Type | Description |
|---|---|
| Exécuteur de flux scriptable | Objet du générateur utilisé pour exécuter une action, un flux ou un Concepteur de flux flux secondaire. |
Cet exemple montre comment exécuter un flux qui consigne un message.
(function() {
try {
var result = sn_fd.FlowAPI.getRunner()
.flow('global.test_flow')
.inForeground()
.run();
gs.info(result.debug());
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
Sortie :
*** Script: FlowRunnerResult
Flow Object Name: global.test_flow
Flow Object Type: flow
Domain: null
Result Time: 2020-06-08 16:41:13
ContextId: null
Output count: 0
ScriptableFlowRunner : flux secondaire (chaîne scopedSubflowName)
Identifie le périmètre et le nom du flux secondaire à exécuter.
| Nom | Type | Description |
|---|---|---|
| scopedSubflowName | Chaîne | Périmètre et nom du flux secondaire à exécuter. Par exemple, global.subflowName. |
| Type | Description |
|---|---|
| Exécuteur de flux scriptable | Objet du générateur utilisé pour exécuter une action, un flux ou un Concepteur de flux flux secondaire. |
(function() {
try {
var result = sn_fd.FlowAPI.getRunner()
.subflow('global.test_subflow')
.inForeground()
.run();
gs.info(result);
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
Sortie :
Flow Designer: Cloning a new session to run as as user id: [user_name] from original user session: [user_name]
Flow Designer: Message to log
Flow Designer: Reverting cloned session to original user session: [user_name]
*** Script: FlowRunnerResult
Flow Object Name: global.test_subflow
Flow Object Type: flow
Domain: null
Result Time: 2020-06-08 16:41:13
ContextId: null
Output count: 0
ScriptableFlowRunner – addInput(nom de chaîne, valeur de l’objet)
Ajoute une entrée unique. Si le nom transmis en tant qu’argument existe déjà en tant qu’entrée distincte, la nouvelle valeur remplace la valeur préexistante.
Cette méthode ajoute une entrée unique. Pour créer un objet et ajouter plusieurs entrées, utilisez la méthode withInputs().
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom de l’entrée du flux, du flux secondaire ou de l’action. |
| valide | Objet | La valeur de l’entrée pour le flux, le flux secondaire ou l’action. |
| Type | Description |
|---|---|
| Exécuteur de flux scriptable | Objet du générateur utilisé pour exécuter une action, un flux ou un Concepteur de flux flux secondaire. |
Cet exemple exécute une action qui prend une seule entrée appelée table_name.
(function() {
try {
var result = sn_fd.FlowAPI.getRunner()
.action('global.test_action')
.addInput('table_name', 'incident')
.inForeground()
.run();
gs.info(result.debug());
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
Sortie :
Flow Designer: TableName
*** Script: FlowRunnerResult
Flow Object Name: global.test_action
Flow Object Type: action
Domain: null
Result Time: 2020-06-09 00:10:57
ContextId: null
Output count: 1
ScriptableFlowRunner : asUser()
Exécute le flux en tant qu’utilisateur qui l’a déclenché, et non en tant que système, pour des exécutions rapides en arrière-plan.
Lorsqu’un flux est déclenché à l’aide de quick() avec la méthode asUser(), l’utilisateur qui a déclenché le flux est récupéré et est utilisé pour l’exécution du flux.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| ScriptableFlowRunner : inclus dans le périmètre | Objet du générateur utilisé pour exécuter une action, un flux ou un Concepteur de flux flux secondaire. |
(function() {
try {
var outputs = sn_fd.FlowAPI.getRunner() // Create a ScriptableFlowRunner builder object.
.flow('global.stry53225960_flow_asuser_test')
.inForeground()
.quick() //Run the flow from a server-side script.
.asUser() //Run flow with the roles specified in the flow.
.run(); // Run the action and return a FlowRunnerResult object.
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();Erreurs
- Le script renvoie une erreur lorsque asUser() n’est pas utilisé avec quick().
- Le script renvoie une erreur lorsque asUser() est appelé dans un flux dont les rôles ont été définis.
- Le script renvoie une erreur lorsque les méthodes withRoles() et asUser() sont appelées en même temps.
ScriptableFlowRunner : datastream(String scopedDatastreamName)
Identifie le champ d’application et le nom de l’action de flux de données à exécuter.
Pour en savoir plus sur les actions de flux de données, consultez Pagination et actions de flux de données.
| Nom | Type | Description |
|---|---|---|
| scopedDatastreamName | Chaîne | Champ d’application et nom de l’action de flux de données à exécuter. Par exemple, global.dataStreamActionName. |
| Type | Description |
|---|---|
| Exécuteur de flux scriptable | Objet du générateur utilisé pour exécuter une action, un flux ou un Concepteur de flux flux secondaire. |
Cet exemple montre comment exécuter une action de flux de données.
(function() {
try {
var result = sn_fd.FlowAPI.getRunner()
.datastream('global.test_dsa')
.inForeground()
.run();
gs.info(result.debug());
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
Sortie :
*** Script: FlowRunnerResult
Flow Object Name: global.test_dsa
Flow Object Type: datastream
Domain: null
Result Time: 2020-06-08 16:41:13
ContextId: null
Output count: 0
ScriptableFlowRunner - inBackground()
Exécute le flux, le flux secondaire ou l’action de manière asynchrone. Une fois que l’objet de flux commence à s’exécuter, l’exécution du script reprend immédiatement.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Exécuteur de flux scriptable | Objet du générateur utilisé pour exécuter une action, un flux ou un Concepteur de flux flux secondaire. |
Cet exemple montre comment exécuter un flux de manière asynchrone.
(function() {
try {
var result = sn_fd.FlowAPI.getRunner()
.flow('global.test_flow')
.inBackground()
.run();
gs.info(result.debug());
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
Sortie :
Flow Designer: Cloning a new session to run as as user id: [user_name] from original user session: [user_name]
Flow Designer: Message to log
Flow Designer: Reverting cloned session to original user session: [user_name]
*** Script: FlowRunnerResult
Flow Object Name: global.test_flow
Flow Object Type: flow
Domain: null
Result Time: 2020-06-08 16:41:13
ContextId: null
Output count: 0
ScriptableFlowRunner : inDomain(String domainId)
Exécute le flux, le flux secondaire ou l’action dans le domaine spécifié. Vérifie que le domaine existe et est disponible.
| Nom | Type | Description |
|---|---|---|
| domainId | Chaîne | sys_id ou nom du domaine d’exécution du flux. |
| Type | Description |
|---|---|
| Exécuteur de flux scriptable | Objet du générateur utilisé pour exécuter une action, un flux ou un Concepteur de flux flux secondaire. |
Cet exemple montre comment créer un objet générateur ScriptableFlowRunner et l’utiliser pour exécuter une action d’approbation sur un enregistrement spécifique. Un objet ScriptableFlowRunnerResult capture les arguments d’exécution et les sorties d’action.
(function() {
try {
var inputs = {};
inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c'; // Pass the record's sys_id in as input.
var result = sn_fd.FlowAPI.getRunner() // Create a ScriptableFlowRunner builder object.
.action('global.markapproved') // Run the global scope action named markapproved.
.inForeground()
.inDomain('TOP/ACME') // Run the action from the TOP/ACME domain.
.withInputs(inputs)
.run(); // Run the action and return a FlowRunnerResult object.
var contextId = result.getContextId(); // Retrieve the context ID from the result
var dateRun = result.getDate();
var domainUsed = result.getDomainId(); // Retrieve the Domain ID from the result.
var flowName = result.getFlowObjectName();
var flowObjectType = result.getFlowObjectType();
var outputs = result.getOutputs(); // Retrieve any outputs from the action execution.
var newApprovalStatus = outputs['approval']; // Echo back the approval status for verification.
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
ScriptableFlowRunner - inForeground()
Exécute le flux, le flux secondaire ou l’action de manière synchrone. L’exécution du script s’interrompt pendant l’exécution de l’objet de flux.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Exécuteur de flux scriptable | Objet du générateur utilisé pour exécuter une action, un flux ou un Concepteur de flux flux secondaire. |
Cet exemple montre comment créer un objet générateur ScriptableFlowRunner et l’utiliser pour exécuter une action d’approbation sur un enregistrement spécifique. Un objet ScriptableFlowRunnerResult capture les arguments d’exécution et les sorties d’action.
(function() {
try {
var inputs = {};
inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c'; // Pass the record's sys_id in as input.
var result = sn_fd.FlowAPI.getRunner() // Create a ScriptableFlowRunner builder object.
.action('global.markapproved') // Run the global scope action named markapproved.
.inForeground()
.inDomain('TOP/ACME') // Run the action from the TOP/ACME domain.
.withInputs(inputs)
.run(); // Run the action and return a FlowRunnerResult object.
var contextId = result.getContextId(); // Retrieve the context ID from the result
var dateRun = result.getDate();
var domainUsed = result.getDomainId(); // Retrieve the Domain ID from the result.
var flowName = result.getFlowObjectName();
var flowObjectType = result.getFlowObjectType();
var outputs = result.getOutputs(); // Retrieve any outputs from the action execution.
var newApprovalStatus = outputs['approval']; // Echo back the approval status for verification.
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
ScriptableFlowRunner - quick()
Exécute un flux, un flux secondaire, une action ou une action de flux de données à partir d’un script côté serveur de manière synchrone ou asynchrone sans créer de détails d’exécution ou d’autres enregistrements connexes. Améliore les performances en éliminant les frais généraux liés à la tenue des dossiers. Utilisez cette API pour augmenter la vitesse de traitement de gros volumes, par exemple plusieurs exécutions par seconde, dans un environnement de production.
- Rapports et enregistrements générés
- Cette méthode ne crée pas de détails d’exécution ni d’enregistrements de contexte, quels que soient les Concepteur de flux paramètres.
- Prise en charge de la condition d’attente
- Cette méthode ne prend pas en charge la mise en pause d’une action ou d’un flux dans l’attente de conditions. Les actions, la logique de flux et les étapes qui s’interrompent pour des conditions d’attente telles que Demander l’approbation, Attendre une condition ou Attendre pendant une certaine durée ne sont pas prises en charge.
- Prise en charge du MID Server
- Cette méthode ne prend pas en charge la mise en pause d’une action ou d’un flux à exécuter à partir d’un MID Server. Cette restriction inclut les scripts de prétraitement d’action de flux de données qui mettent en pause une action pour qu’elle s’exécute à partir d’un MID Server.
- Prise en charge de l’action de flux de données
- Cette méthode ne prend pas en charge la mise en pause d’une action de flux de données pour exécuter un script de prétraitement à partir d’un MID Server.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Exécuteur de flux scriptable | Objet du générateur utilisé pour exécuter une action, un flux ou un Concepteur de flux flux secondaire. |
Cet exemple montre comment exécuter un flux sans créer d’enregistrements connexes.
(function() {
try {
var result = sn_fd.FlowAPI.getRunner()
.flow('global.test_flow')
.inForeground()
.quick()
.run();
gs.info(result);
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
Sortie :
Flow Designer: Message to log.
*** Script: [object FlowRunnerResult]
ScriptableFlowRunner - run()
Exécute le flux, le flux secondaire ou l’action avec les paramètres spécifiés.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| ScriptableFlowRunnerResultsScoped | Objet contenant les détails d’exécution d’une action, d’un flux ou d’un Concepteur de flux flux secondaire. |
Cet exemple montre comment créer un objet générateur ScriptableFlowRunner et l’utiliser pour exécuter une action d’approbation sur un enregistrement spécifique. Un objet ScriptableFlowRunnerResult capture les arguments d’exécution et les sorties d’action.
(function() {
try {
var inputs = {};
inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c'; // Pass the record's sys_id in as input.
var result = sn_fd.FlowAPI.getRunner() // Create a ScriptableFlowRunner builder object.
.action('global.markapproved') // Run the global scope action named markapproved.
.inForeground()
.inDomain('TOP/ACME') // Run the action from the TOP/ACME domain.
.withInputs(inputs)
.run(); // Run the action and return a FlowRunnerResult object.
var contextId = result.getContextId(); // Retrieve the context ID from the result
var dateRun = result.getDate();
var domainUsed = result.getDomainId(); // Retrieve the Domain ID from the result.
var flowName = result.getFlowObjectName();
var flowObjectType = result.getFlowObjectType();
var outputs = result.getOutputs(); // Retrieve any outputs from the action execution.
var newApprovalStatus = outputs['approval']; // Echo back the approval status for verification.
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
ScriptableFlowRunner : timeout (délai d’expiration du nombre)
Définit un délai d’expiration pour un flux, un flux secondaire ou l’exécution d’une action.
| Nom | Type | Description |
|---|---|---|
| timeout | Numéro | Délai d’expiration en millisecondes. |
| Type | Description |
|---|---|
| Exécuteur de flux scriptable | Objet du générateur utilisé pour exécuter une action, un flux ou un Concepteur de flux flux secondaire. |
Cet exemple montre comment exécuter un flux et définit un délai d’expiration de deux minutes.
(function() {
try {
var result = sn_fd.FlowAPI.getRunner()
.flow('global.test_flow')
.inForeground()
.timeout(120000)
.run();
gs.info(result.debug());
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
Sortie :
Flow Designer: Cloning a new session to run as as user id: [user_name] from original user session: [user_name]
Flow Designer: Reverting cloned session to original user session: [user_name]
*** Script: FlowRunnerResult
Flow Object Name: global.test_flow
Flow Object Type: flow
Domain: null
Result Time: 2020-06-08 18:22:35
ContextId: null
Output count: 0
ScriptableFlowRunner : validateInputs(Boolean validateInputs)
Générer une erreur et empêcher l’exécution de la classe ScriptableFlowRunner lorsqu’une entrée de méthode a une valeur inattendue. La valeur par défaut de cette méthode est true pour tout appel ScriptableFlowRunner.
| Nom | Type | Description |
|---|---|---|
| validateInputs | Booléen | Marqueur indiquant si les entrées de la méthode ScriptableFlowRunner doivent être validées. Il existe deux valeurs valides.
Valeur par défaut : vrai |
| Type | Description |
|---|---|
| Néant |
Cet exemple montre comment exécuter un flux sans valider les valeurs d’entrée de la méthode.
(function() {
try {
var result = sn_fd.FlowAPI.getRunner()
.flow('global.test_flow')
.inForeground()
.validateInputs(false)
.run();
gs.info(result.debug());
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
Sortie :
*** Script: FlowRunnerResult
Flow Object Name: global.test_flow
Flow Object Type: flow
Domain: null
Result Time: 2020-06-08 16:41:13
ContextId: null
Output count: 0
ScriptableFlowRunner : withConnectionAliasOverride(String aliasName, String overrideName)
Remplace l’alias Connexions et informations d'identification associé au flux, à l’action ou au flux secondaire. Vous pouvez remplacer l’alias parent par défaut par n’importe lequel de ses alias enfants.
Pour en savoir plus sur le remplacement d’un Connexions et informations d'identification alias, reportez-vous à la rubrique Prise en charge de plusieurs connexions.
| Nom | Type | Description |
|---|---|---|
| parentAliasSysID | Chaîne | La sys_id de l’alias parent, l’alias que vous souhaitez remplacer. |
| overrideAliasSysID | Chaîne | La sys_id de l’alias enfant, l’alias que vous souhaitez utiliser lors de l’exécution du flux, du flux secondaire ou de l’action. |
| Type | Description |
|---|---|
| Exécuteur de flux scriptable | Objet du générateur utilisé pour exécuter une action, un flux ou un Concepteur de flux flux secondaire. |
Cet exemple montre comment exécuter un flux à l’aide d’un alias différent de la valeur par défaut associée au flux.
(function() {
try {
var result = sn_fd.FlowAPI.getRunner()
.flow('global.test_flow')
.withConnectionAliasOverride('sn_original_alias.spoke', 'x_new_alias.spoke')
.inForeground()
.run();
gs.info(result.debug());
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
ScriptableFlowRunner : withInputs(entrées de carte)
Ajoute une collection d’entrées. Si un nom dans l’une des paires nom-valeur existe déjà, la nouvelle valeur remplace la valeur préexistante.
| Nom | Type | Description |
|---|---|---|
| entrées | Objet | Objet de carte contenant les paires nom-valeur qui définissent les entrées du flux, du flux secondaire ou de l’action. |
| Type | Description |
|---|---|
| Exécuteur de flux scriptable | Objet du générateur utilisé pour exécuter une action, un flux ou un Concepteur de flux flux secondaire. |
Crée un objet d’entrée et transmet la valeur à la méthode withInputs().
(function() {
try {
var inputs = {};
inputs['sys_id'] = '57af7aec73d423002728660c4cf6a71c'; // Pass the record's sys_id in as input.
var result = sn_fd.FlowAPI.getRunner() // Create a ScriptableFlowRunner builder object.
.action('global.markapproved') // Run the global scope action named markapproved.
.inForeground()
.inDomain('TOP/ACME') // Run the action from the TOP/ACME domain.
.withInputs(inputs)
.run(); // Run the action and return a FlowRunnerResult object.
var contextId = result.getContextId(); // Retrieve the context ID from the result
var dateRun = result.getDate();
var domainUsed = result.getDomainId(); // Retrieve the Domain ID from the result.
var flowName = result.getFlowObjectName();
var flowObjectType = result.getFlowObjectType();
var outputs = result.getOutputs(); // Retrieve any outputs from the action execution.
var newApprovalStatus = outputs['approval']; // Echo back the approval status for verification.
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
ScriptableFlowRunner : withRoles()
Exécute le flux en tant qu’utilisateur qui a déclenché le flux ou exécute le flux avec les rôles qui ont été ajoutés dans Concepteur de flux.
Lorsqu’un flux est déclenché à l’aide de quick() avec la méthode withRoles(), les rôles définis dans les propriétés du flux sont récupérés, transmis pendant l’exécution du flux, et le flux est exécuté avec les rôles.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| ScriptableFlowRunner : inclus dans le périmètre | Objet du générateur utilisé pour exécuter une action, un flux ou un Concepteur de flux flux secondaire. |
(function() {
try {
var outputs = sn_fd.FlowAPI.getRunner() // Create a ScriptableFlowRunner builder object.
.flow('global.stry53225960_flow')
.inForeground()
.quick() //Run the flow from a server-side script.
.withRoles() //Run the flow as the user who triggered the flow.
.run(); // Run the action and return a FlowRunnerResult object.
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();Erreurs
- withRoles() n’effectue aucune opération si elle n’est pas utilisée avec quick().
- Le script renvoie une erreur lorsque withRoles() est appelé dans un flux qui n’a pas de rôles.
- Le script renvoie une erreur lorsque les méthodes withRoles() et asUser() sont appelées en même temps.