ScriptableFlowRunner : dans le champ d’application

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 18 minutes de lecture
  • 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 :
    1. Utilisez l’une des méthodes action(), datastream(),flow() ou subflow() pour spécifier le type d’objet Studio de workflow à construire.
    2. Utilisez une ou plusieurs méthodes telles que addInput(), inDomain() ou quick() pour spécifier les paramètres d’exécution.
    3. 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.

    Tableau 1. Paramètres
    Nom Type Description
    scopedActionName Chaîne Périmètre et nom de l’action à exécuter. Par exemple, global.actionName.
    Tableau 2. Renvoie
    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().

    Tableau 3. Paramètres
    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.
    Tableau 4. Renvoie
    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.

    Tableau 5. Paramètres
    Nom Type Description
    Aucun
    Tableau 6. Renvoie
    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.
    Cet exemple montre comment créer un objet de générateur ScriptableFlowRunner et l’utilise pour exécuter une action d’approbation sur un enregistrement spécifique à l’aide des méthodes asUser() et quick( ). Un objet ScriptableFlowRunnerResult capture les arguments d’exécution et les sorties d’action.
    (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

    Ces erreurs peuvent se produire lors de l’utilisation de la méthode asUser() :
    • 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.

    Tableau 7. Paramètres
    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.
    Tableau 8. Renvoie
    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.

    Tableau 9. Paramètres
    Nom Type Description
    scopedFlowName Chaîne Périmètre et nom du flux à exécuter. Par exemple, global.flowName.
    Tableau 10. Renvoie
    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.

    Tableau 11. Paramètres
    Nom Type Description
    Aucun
    Tableau 12. Renvoie
    Type Description
    ScriptableFlowRunner Objet générateur utilisé pour exécuter une action, un flux ou un Studio de workflow flux secondaire.
    Remarque :
    À partir de la version, l’exécution Xanadu d’une action, d’un flux ou d’un flux secondaire en arrière-plan à l’aide de la méthode quick() renvoie un ID d’exécution comme valeur ContextId. L’ID d’exécution n’est pas un enregistrement de contexte réel, car aucun enregistrement n’est inséré dans la table Contexte de flux [sys_flow_context]. L’ID d’exécution est plutôt utilisé pour suivre l’appel asynchrone.

    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.

    Tableau 13. Paramètres
    Nom Type Description
    domainId Chaîne Le sys_id ou le nom du domaine d’exécution du flux.
    Tableau 14. Renvoie
    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.

    Remarque :
    Cette méthode ne prend pas en charge la mise en pause de l’action pour attendre les conditions. Les étapes qui mettent en pause pour des conditions d’attente telles que Demander l’approbation ou Attendre une condition ne sont pas prises en charge.
    Tableau 15. Paramètres
    Nom Type Description
    Aucun
    Tableau 16. Renvoie
    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.
    Tableau 17. Paramètres
    Nom Type Description
    Aucun
    Tableau 18. Renvoie
    Type Description
    ScriptableFlowRunner Objet générateur utilisé pour exécuter une action, un flux ou un Studio de workflow flux secondaire.
    Remarque :
    À partir de la version, l’exécution Xanadu d’une action, d’un flux ou d’un flux secondaire en arrière-plan à l’aide de la méthode quick() renvoie un ID d’exécution comme valeur ContextId. L’ID d’exécution n’est pas un enregistrement de contexte réel, car aucun enregistrement n’est inséré dans la table Contexte de flux [sys_flow_context]. L’ID d’exécution est plutôt utilisé pour suivre l’appel asynchrone.

    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.

    Tableau 19. Paramètres
    Nom Type Description
    Aucun
    Tableau 20. Renvoie
    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.

    Tableau 21. Paramètres
    Nom Type Description
    scopedSubflowName Chaîne Périmètre et nom du flux secondaire à exécuter. Par exemple, global.subflowName.
    Tableau 22. Renvoie
    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.

    Tableau 23. Paramètres
    Nom Type Description
    timeout Numéro Délai d’expiration en millisecondes.
    Tableau 24. Renvoie
    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.

    Tableau 25. Paramètres
    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.
    • vrai : génère une erreur lorsque les entrées ont des valeurs inattendues et arrête l’exécution du script.
    • faux : autoriser le script à s’exécuter avec des valeurs inattendues.

    Valeur par défaut : vrai

    Tableau 26. Renvoie
    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.

    Tableau 27. Paramètres
    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.
    Tableau 28. Renvoie
    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.

    Tableau 29. Paramètres
    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.
    Tableau 30. Renvoie
    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.

    Tableau 31. Paramètres
    Nom Type Description
    Aucun
    Tableau 32. Renvoie
    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.
    Cet exemple montre comment créer un objet de générateur ScriptableFlowRunner et l’utilise pour exécuter une action d’approbation sur un enregistrement spécifique à l’aide des méthodes withRoles() et quick(). Un objet ScriptableFlowRunnerResult capture les arguments d’exécution et les sorties d’action.
    (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

    Ces erreurs peuvent se produire lors de l’utilisation de la méthode withRoles() :
    • 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.