ScriptableFlowRunner : inclus dans le champ d’application
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.
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 Studio de workflow le 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 Studio de workflow à 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 les Studio de workflow 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 |
|---|---|
| ScriptableFlowRunner | Objet du générateur utilisé pour exécuter une action, un flux ou un Studio de workflow 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 : addInput(nom de la chaîne, valeur de l’objet)
Ajoute une seule entrée. Si le nom transmis en tant qu’argument existe déjà en tant qu’entrée séparée, 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 pour le flux, le flux secondaire ou l’action. |
| valide | Objet | Valeur de l’entrée pour le flux, le flux secondaire ou l’action. |
| Type | Description |
|---|---|
| ScriptableFlowRunner | Objet du générateur utilisé pour exécuter une action, un flux ou un Studio de workflow flux secondaire. |
Cet exemple exécute une action qui utilise 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 que l’utilisateur qui l’a déclenché, et non le 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 utilisé pour l’exécution du flux.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| ScriptableFlowRunner : inclus dans le champ d’application | Objet du générateur utilisé pour exécuter une action, un flux ou un Studio de workflow 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 sont définis.
- Le script renvoie une erreur lorsque les méthodes withRoles() et asUser() sont appelées en même temps.
ScriptableFlowRunner : flux de données (chaîne 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 Actions de flux de données et pagination.
| 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 |
|---|---|
| ScriptableFlowRunner | Objet du générateur utilisé pour exécuter une action, un flux ou un Studio de workflow 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 : flow(String scopedFlowName)
Identifie le champ d’application et le nom du flux à exécuter.
| Nom | Type | Description |
|---|---|---|
| scopedFlowName | Chaîne | Périmètre et nom du flux à exécuter. Par exemple, global.flowName. |
| Type | Description |
|---|---|
| ScriptableFlowRunner | Objet du générateur utilisé pour exécuter une action, un flux ou un Studio de workflow 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 : 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 |
|---|---|
| ScriptableFlowRunner | Objet du générateur utilisé pour exécuter une action, un flux ou un Studio de workflow flux secondaire. |
Cet exemple montre comment exécuter un flux en arrière-plan de manière asynchrone.
(function() {
try {
var result = sn_fd.FlowAPI.getRunner()
.flow('global.change__unauthorized__review')
.inBackground()
.run();
gs.info(result.debug());
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
Sortie :
[0:00:01.015] Script completed in scope global: script
––––––––––––––––––––––––––––––––––––––––––––––––––––--
Script execution history and recovery available here
Operation Table Row Count
insert sys_flow_context_inputs_chunk 1
insert sys_flow_context 1
––––––––––––––––––––––––––––––––––––––––––––––––––––--
Complex type redefined: FlowDesigner:FDCollection
Queued flow.fire event in NowMQ for sys_flow_context.sys_id: e0cd6e30b8b602104a8752ad4a9167c8,
sysevent.sys_id: 34cd6e30dbb60210497c1a48139619c9, with priority 5
*** Script: FlowRunnerResult
Flow Object Name: global.change__unauthorized__review
Flow Object Type: flow
Domain: null
Result Time: 2024-06-12 17:54:58
ContextId: e0cd6e30b8b602104a8752ad4a9167c8
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 |
|---|---|
| ScriptableFlowRunner | Objet du générateur utilisé pour exécuter une action, un flux ou un Studio de workflow 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 flux.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| ScriptableFlowRunner | Objet du générateur utilisé pour exécuter une action, un flux ou un Studio de workflow 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.
- Reporting 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 Studio de workflow paramètres.
- Attendre la prise en charge des conditions
- Cette méthode ne prend pas en charge la mise en pause d’une action ou d’un flux pour attendre les conditions. Les actions, la logique de flux et les étapes qui s’interrompent pour des conditions d’attente telles que Demander une approbation, Attendre une condition ou Attendre une durée ne sont pas prises en charge.
- Prise en charge de Serveur MID
- Cette méthode ne prend pas en charge la mise en pause d’une action ou d’un flux à exécuter à partir d’un serveur MID. Cette restriction inclut les scripts de prétraitement d’action de flux de données qui mettent en pause une action pour qu’elle soit exécutée à partir d’un serveur MID.
- 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 serveur MID.
- Prise en charge de la priorité du flux
- Cette méthode prend en charge les paramètres de priorité du flux. Le flux s’exécute à la priorité de flux spécifiée.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| ScriptableFlowRunner | Objet du générateur utilisé pour exécuter une action, un flux ou un Studio de workflow 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.change__unauthorized__review')
.inBackground()
.quick()
.run();
gs.info(result.debug());
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
Sortie :
Complex type redefined: FlowDesigner:FDCollection
Queued flow.run.quick event in NowMQ for sys_flow_context.sys_id: d81781ec57801110403e8f90ac94f90e,
sysevent.sys_id: 48abe270dbf20210497c1a4813961908, with priority 5
*** Script: FlowRunnerResult
Flow Object Name: global.change__unauthorized__review
Flow Object Type: flow
Domain: null
Result Time: 2024-06-12 17:45:37
ContextId: 08abe2706cf202107b7d3b283f7ee108
Output count: 0
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 Studio de workflow 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 : 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 |
|---|---|
| ScriptableFlowRunner | Objet du générateur utilisé pour exécuter une action, un flux ou un Studio de workflow flux secondaire. |
Cet exemple montre comment exécuter un flux secondaire qui consigne un message.
(function() {
try {
var result = sn_fd.FlowAPI.getRunner()
.subflow('global.output_test')
.inForeground()
.run();
gs.info(result.debug());
} catch (ex) {
var message = ex.getMessage();
gs.error(message);
}
})();
Sortie :
record-watcher asynchronous tracking complete - time: 1 ms. Executed responders: 1
record-watcher asynchronous tracking complete - time: 1 ms. Executed responders: 1
*** Script: FlowRunnerResult
Flow Object Name: global.output_test
Flow Object Type: subflow
Domain: null
Result Time: 2024-08-02 22:52:08
ContextId: b2dxx659bebf01101d72200x503x19pr
Output count: 2
ScriptableFlowRunner : délai d’expiration (délai d’expiration du nombre)
Définit un délai d’expiration pour l’exécution d’un flux, d’un flux secondaire ou d’une action.
| Nom | Type | Description |
|---|---|---|
| timeout | Numéro | Délai d’expiration, en millisecondes. |
| Type | Description |
|---|---|
| ScriptableFlowRunner | Objet du générateur utilisé pour exécuter une action, un flux ou un Studio de workflow flux secondaire. |
Cet exemple montre comment exécuter un flux et définir 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 présente une valeur inattendue. La valeur par défaut de cette méthode est true pour tout appel ScriptableFlowRunner.
| Nom | Type | Description |
|---|---|---|
| validateInputs (en anglais seulement) | Booléen | Marqueur indiquant s’il faut valider ou non les entrées de la méthode ScriptableFlowRunner. Il existe deux valeurs valides.
Valeur par défaut : vrai |
| Type | Description |
|---|---|
| Aucun |
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, consultez Prise en charge de plusieurs connexions.
| Nom | Type | Description |
|---|---|---|
| parentAliasSysID | Chaîne | Le sys_id de l’alias parent, l’alias que vous souhaitez remplacer. |
| overrideAliasSysID | Chaîne | sys_id de l’alias enfant, alias que vous souhaitez utiliser lors de l’exécution du flux, du flux secondaire ou de l’action. |
| Type | Description |
|---|---|
| ScriptableFlowRunner | Objet du générateur utilisé pour exécuter une action, un flux ou un Studio de workflow 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 pour le flux, le flux secondaire ou l’action. |
| Type | Description |
|---|---|
| ScriptableFlowRunner | Objet du générateur utilisé pour exécuter une action, un flux ou un Studio de workflow 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 Studio de workflow.
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 lors de 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 champ d’application | Objet du générateur utilisé pour exécuter une action, un flux ou un Studio de workflow 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 s’il n’est pas utilisé 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.