ScriptableFlowRunner : dans le champ d’application
Crée un objet de 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 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 du générateur ScriptableFlowRunner.
- 2. ScriptableFlowRunner : spécifier le Studio de workflow contenu à exécuter
- Utilisez ces méthodes dans l’ordre suivant pour créer le modèle du 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 Studio de workflow 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 de 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(chaîne 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 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 de 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 chaîne, valeur d’objet)
Ajoute une seule entrée. 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 seule entrée. 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 | Valeur de l’entrée pour le flux, le flux secondaire ou l’action. |
| Type | Description |
|---|---|
| ScriptableFlowRunner | Objet 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 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 utilisé pour l’exécution du flux.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| ScriptableFlowRunner : dans le champ d’application | Objet 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 qui a des rôles 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 périmètre 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 | Périmètre et nom de l’action de flux de données à exécuter. Par exemple, global.dataStreamActionName. |
| Type | Description |
|---|---|
| ScriptableFlowRunner | Objet 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 périmètre 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 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 façon 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 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 | Le sys_id ou le nom du domaine d’exécution du flux. |
| Type | Description |
|---|---|
| ScriptableFlowRunner | Objet 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 de 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 façon synchrone. L’exécution du script s’interrompt pendant que l’objet de flux est en cours d’exécution.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| ScriptableFlowRunner | Objet 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 de 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 façon synchrone ou asynchrone sans créer les détails de l’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.
- Prise en charge des conditions d’attente
- 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 mettent en pause pour des conditions d’attente telles que Demander l’approbation, Attendre une condition ou Attendre pendant 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 interrompent une action pour s’exécuter à 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 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 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 de 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 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 : timeout(number, timeout)
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 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é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(booléen validateInputs)
Générez une erreur et empêchez l’exécution de la classe ScriptableFlowRunner lorsqu’une entrée de méthode a une valeur inattendue. Cette méthode par défaut est true pour tout appel ScriptableFlowRunner.
| Nom | Type | Description |
|---|---|---|
| validateInputs | 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 | Le 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 |
|---|---|
| ScriptableFlowRunner | Objet 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 celui par défaut associé 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 | Mappez l’objet contenant les paires nom-valeur qui définissent les entrées du flux, du flux secondaire ou de l’action. |
| Type | Description |
|---|---|
| ScriptableFlowRunner | Objet 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 ayant 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() en même temps que la méthode withRoles(), les rôles définis dans les propriétés de 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 : dans le champ d’application | Objet 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 aucun rôle.
- Le script renvoie une erreur lorsque les méthodes withRoles() et asUser() sont appelées en même temps.