PlaybookExperience : dans le champ d’application

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 12 minutes de lecture
  • L’API PlaybookExperience fournit des méthodes pour gérer les exécutions de playbooks.

    Cette API nécessite le module d’extension Expérience de playbook Core (com.glide.playbook_experience.config) et est fournie dans l’espace de noms sn_playbook .

    Cette API nécessite au moins un playbook dans la table Définition de processus [sys__process_definition]. Pour utiliser cette API, vous devez disposer des rôles requis pour afficher et annuler un processus en cours d’exécution dans Concepteur d’automatisation de processus. Pour plus d’informations, consultez Concepteur d’automatisation de processus.

    PlaybookExperience : annulerPlaybooksByParentRecord(GlideRecord parentRecord, chaîne cancellationReason, chaîne scopedName, chaîne playbookExperienceId)

    Annule les exécutions de playbook pour un enregistrement parent donné.

    Tableau 1. Paramètres
    Nom Type Description
    parentRecord GlideRecord Enregistrement parent pour lequel annuler les exécutions de playbook. L’enregistrement parent peut être n’importe quel enregistrement qui a des exécutions de playbook, comme un enregistrement d’interaction ou un enregistrement de ticket d’intégration.
    motif d’annulation Chaîne Motif de l’annulation des exécutions du Playbook.
    nom du champ d’application Chaîne Facultatif. Nom inclus dans le champ d’application du playbook à annuler. Le nom inclus dans le périmètre est issu de la table de définition de processus [sys__process_definition] au format scope.name. Si elle est fournie, seules les exécutions de ce playbook sont annulées pour l’enregistrement parent donné. Si cette option n’est pas fournie, toutes les exécutions de tous les playbooks sont annulées pour l’enregistrement parent donné.
    playbookExperienceId Chaîne Facultatif. Sys_id de l’enregistrement de l’expérience de playbook dans la table Expérience de playbook [sys_playbook_experience] à utiliser pour l’annulation. Utilisez ce paramètre si vous avez défini des mappages d’état d’activité personnalisés. Voir Mappage de l’état de l’activité Playbook.

    Par défaut : Sys_id de l’enregistrement Expérience de playbook globale.

    Tableau 2. Renvoie
    Type Description
    Objet Objet contenant les exécutions de playbook annulées et toutes les exécutions de playbook ignorées qui n’ont pas pu être annulées.
    {
      "canceledPlaybookContext": [Array],
      "skippedPlaybookContext": [Array]
    }
    
    <Object>.canceledPlaybookContext Liste des exécutions de playbook annulées. Chaque exécution de playbook est un objet dans le tableau.

    Type de données : tableau

    "canceledPlaybookContext": [
        {
          "can_read": Boolean,
          "canceled_by": "String",
          "cancellation_reason": "String",
          "errors": [Array],
          "parent_record": "String",
          "parent_table": "String",
          "playbook_id": "String",
          "playbook_table": "String",
          "scoped_name": "String",
          "state": {Object},
          "sys_id": "String",
          "title": "String"   
        }
    ]
    <Object>.canceledPlaybookContext.can_read

    Marqueur indiquant si l’utilisateur actuel peut lire l’enregistrement d’exécution du playbook. L’utilisateur actuel doit avoir un accès en lecture à l’enregistrement parent pour pouvoir lire l’enregistrement d’exécution du playbook.

    Valeurs valides :
    • vrai : l’utilisateur actuel a un accès en lecture à l’enregistrement d’exécution du playbook.
    • faux : l’utilisateur actuel n’a pas d’accès en lecture à l’enregistrement d’exécution du playbook.

    Type de données : booléennes

    <Object>.canceledPlaybookContext.canceled_by ID d’utilisateur de l’utilisateur qui a annulé l’exécution du Playbook.

    Type de données : chaîne

    <Object>.canceledPlaybookContext.cancellation_reason Motif d’annulation saisi par l’utilisateur qui a annulé l’exécution du Playbook.

    Type de données : chaîne

    <Object>.cancellededPlaybookContext.errors Liste des erreurs d’annulation. Chaque erreur est un objet dans le tableau.

    Type de données : tableau

    "errors": [
        {      
          "message": "String",
          "type": "String"  
        }
    ]
    <Object>.cancellededPlaybookContext.errors.message Le message d’erreur.

    Type de données : chaîne

    <Object>.canceledPlaybookContext.errors.type Type d’erreur.

    Type de données : chaîne

    <Object>.canceledPlaybookContext.parent_record Sys_id de l’enregistrement parent pour lequel les exécutions de playbook ont été annulées.

    Type de données : chaîne

    <Object>.canceledPlaybookContext.parent_table Nom de la table d’où provient l’enregistrement parent.

    Type de données : chaîne

    <Object>.canceledPlaybookContext.playbook_id Sys_id du playbook à partir de la table Définitions de processus [sys__process_definition].

    Type de données : chaîne

    <Object>.canceledPlaybookContext.playbook_table Nom de la table d’où provient le playbook, généralement la table Définitions de processus [sys__process_definition].

    Type de données : chaîne

    <Object>.canceledPlaybookContext.scoped_name Nom inclus dans le champ d’application du playbook dans la table Définitions de processus [sys__process_definition] au format scope.name.

    Type de données : chaîne

    <Object>.canceledPlaybookContext.state État de l’exécution du playbook à partir de la table Exécutions du processus [sys__context].

    Type de données : objet

    "state": {    
       "displayValue": "String",    
       "value": "String"
    }
    <Object>.canceledPlaybookContext.state.displayValue Valeur d’affichage de l’état d’exécution du playbook.

    Type de données : chaîne

    <Object>.canceledPlaybookContext.state.value Valeur de l’état d’exécution du playbook.

    Type de données : chaîne

    <Object>.canceledPlaybookContext.sys_id Sys_id de l’exécution du playbook à partir de la table Exécutions du processus [sys__context].

    Type de données : chaîne

    <Object>.canceledPlaybookContext.title Étiquette de l’exécution du playbook de la table Exécutions de processus [sys__context].

    Type de données : chaîne

    <Object>.skippedPlaybookContext Liste des exécutions de playbook ignorées. Chaque exécution de playbook est un objet dans le tableau. Pour obtenir une description des propriétés de l’objet, consultez le canceledPlaybookContext tableau.

    Type de données : tableau

    "skippedPlaybookContext": [
        {
          "can_read": Boolean,
          "canceled_by": "String",
          "cancellation_reason": "String",
          "errors": [Array],
          "parent_record": "String",
          "parent_table": "String",
          "playbook_id": "String",
          "playbook_table": "String",
          "scoped_name": "String",
          "state": {Object},
          "sys_id": "String",
          "title": "String"   
        }
    ]

    Cet exemple montre comment annuler toutes les exécutions d’un playbook spécifique (dans ce cas, la démo de l’expérience de playbook) pour un enregistrement d’interaction donné. Pour utiliser cette méthode dans une action d’interface utilisateur ou une règle métier, transmettez plutôt l’objet actuel en tant que parentRecord.

    var parentRecord = new GlideRecordUtil().getGR("interaction", "d91742531b343010a26c98a1b24bcbe0");
    
    var cancellationReason = "Cancelling this playbook";
    
    // demo playbook from Process Automation Experience Demo store app
    var scopedName = "sn_pad_demo.playbook_experience_demo"; 
    
    // demo playbook experience from Process Automation Experience Demo store app
    var playbookExperienceId = "a56d8d93ff311010cc0853ea793bf1a6"; 
    	
    var cancelPlaybookReturn = sn_playbook.PlaybookExperience.cancelPlaybooksByParentRecord(parentRecord, cancellationReason, scopedName, playbookExperienceId);
    	
    
    gs.info(JSON.stringify(cancelPlaybookReturn, null, 2));

    Sortie :

    {
      "canceledPlaybookContext": [
        {
          "can_read": true,
          "sys_id": "d02782533d343010ac50ee17e75d3466",
          "scoped_name": "sn_pad_demo.playbook_experience_demo",
          "canceled_by": "admin",
          "playbook_table": "sys_pd_process_definition",
          "state": {
            "displayValue": "Pending Cancel",
            "value": "PENDING_CANCEL"
          },
          "title": "Playbook Experience Demo",
          "parent_record": "d91742531b343010a26c98a1b24bcbe0",
          "playbook_id": "0d35ee1807301010cc08d9630ad3002a",
          "cancellation_reason": "Cancelling this playbook",
          "parent_table": "interaction",
          "errors": []
        }
      ],
      "skippedPlaybookContext": []
    }

    Expérience de playbook : getPlaybooksForParentRecord(GlideRecord parentRecord)

    Obtient une liste des exécutions de playbook pour un enregistrement parent donné.

    Tableau 3. Paramètres
    Nom Type Description
    parentRecord GlideRecord L’enregistrement parent pour lequel obtenir les exécutions de playbook. L’enregistrement parent peut être n’importe quel enregistrement pouvant avoir des exécutions de playbook, tel qu’un enregistrement d’interaction ou un enregistrement de ticket d’intégration.
    Tableau 4. Renvoie
    Type Description
    Tableau Liste des exécutions de playbook pour l’enregistrement parent. Chaque exécution de playbook est un objet dans le tableau.
    [
        {
          "can_read": Boolean,
          "canceled_by": "String",
          "cancellation_reason": "String",
          "errors": [Array],
          "parent_record": "String",
          "parent_table": "String",
          "playbook_id": "String",
          "playbook_table": "String",
          "scoped_name": "String",
          "state": {Object},
          "sys_id": "String",
          "title": "String"   
        }
    ]
    <Tableau>.can_read

    Marqueur indiquant si l’utilisateur actuel peut lire l’enregistrement d’exécution du playbook. L’utilisateur actuel doit avoir un accès en lecture à l’enregistrement parent pour pouvoir lire l’enregistrement d’exécution du playbook.

    Valeurs valides :
    • vrai : l’utilisateur actuel a un accès en lecture à l’enregistrement d’exécution du playbook.
    • faux : l’utilisateur actuel n’a pas d’accès en lecture à l’enregistrement d’exécution du playbook.

    Type de données : booléennes

    <Tableau>.canceled_by ID d’utilisateur de l’utilisateur qui a annulé l’exécution du Playbook. Vide si le playbook n’est pas annulé.

    Type de données : chaîne

    <Tableau>.cancellation_reason Motif d’annulation saisi par l’utilisateur qui a annulé l’exécution du Playbook. Vide si le playbook n’est pas annulé.

    Type de données : chaîne

    <Array>.errors Liste des erreurs. Chaque erreur est un objet dans le tableau.

    Type de données : tableau

    "errors": [
        {      
          "message": "String",
          "type": "String"  
        }
    ]
    <Tableau>.errors.message Le message d’erreur.

    Type de données : chaîne

    <Array>.errors.type Type d’erreur.

    Type de données : chaîne

    <Tableau>.parent_record Sys_id de l’enregistrement parent.

    Type de données : chaîne

    <Tableau>.parent_table Nom de la table d’où provient l’enregistrement parent.

    Type de données : chaîne

    <Tableau>.playbook_id Sys_id du playbook à partir de la table Définitions de processus [sys__process_definition].

    Type de données : chaîne

    <Tableau>.playbook_table Nom de la table d’où provient le playbook, généralement la table Définitions de processus [sys__process_definition].

    Type de données : chaîne

    <Tableau>.scoped_name Nom inclus dans le champ d’application du playbook dans la table Définitions de processus [sys__process_definition] au format scope.name.

    Type de données : chaîne

    <Tableau>.état État de l’exécution du playbook à partir de la table Exécutions du processus [sys__context].

    Type de données : objet

    "state": {    
       "displayValue": "String",    
       "value": "String"
    }
    <Array>.state.displayValue Valeur d’affichage de l’état d’exécution du playbook.

    Type de données : chaîne

    <Array>.state.value Valeur de l’état d’exécution du playbook.

    Type de données : chaîne

    <Tableau>.sys_id Sys_id de l’exécution du playbook à partir de la table Exécutions du processus [sys__context].

    Type de données : chaîne

    <Tableau>.title Étiquette de l’exécution du playbook de la table Exécutions de processus [sys__context].

    Type de données : chaîne

    Cet exemple montre comment obtenir des exécutions de playbook pour un enregistrement d’interaction donné. Pour utiliser cette méthode dans une action d’interface utilisateur ou une règle métier, transmettez plutôt l’objet actuel en tant que parentRecord.

    var parentRecord = new GlideRecordUtil().getGR("interaction", "148776e5818d7410f87701eb89fdc824");
    var playbook = sn_playbook.PlaybookExperience.getPlaybooksForParentRecord(parentRecord);
    gs.info(JSON.stringify(playbook, null, 2));
    

    Sortie :

    [
      {
        "can_read": true,
        "sys_id": "bd87bae50b8d7410807a8ffed6d0909e",
        "scoped_name": "sn_pad_demo.playbook_experience_demo",
        "canceled_by": "",
        "playbook_table": "sys_pd_process_definition",
        "state": {
          "displayValue": "In Progress",
          "value": "IN_PROGRESS"
        },
        "title": "Playbook Experience Demo",
        "parent_record": "148776e5818d7410f87701eb89fdc824",
        "playbook_id": "0d35ee1807301010cc08d9630ad3002a",
        "cancellation_reason": "",
        "parent_table": "interaction",
        "errors": []
      }
    ]
    

    Expérience de playbook : parentRecordContainsPlaybook(GlideRecord parentRecord, chaîne scopedName)

    Vérifie si un enregistrement parent a des exécutions de playbook.

    Tableau 5. Paramètres
    Nom Type Description
    parentRecord GlideRecord Enregistrement parent à vérifier pour les exécutions de playbooks. L’enregistrement parent peut être n’importe quel enregistrement pouvant avoir des exécutions de playbook, tel qu’un enregistrement d’interaction ou un enregistrement de ticket d’intégration.
    nom du champ d’application Chaîne Facultatif. Nom inclus dans le périmètre du playbook à vérifier. Le nom inclus dans le périmètre est issu de la table de définition de processus [sys__process_definition] au format scope.name. Si elle est fournie, seules les exécutions de ce playbook sont vérifiées. Si ce n’est pas fourni, les exécutions de tous les playbooks sont vérifiées.
    Tableau 6. Renvoie
    Type Description
    Booléen

    Marqueur indiquant si l’enregistrement parent a des exécutions de playbook.

    Valeurs valides :
    • vrai : l’enregistrement parent a des exécutions de playbook.
    • faux : l’enregistrement parent n’a pas d’exécutions de playbook.

    Cet exemple montre comment vérifier si un enregistrement d’interaction donné a des exécutions d’un playbook spécifique (dans ce cas, la démo de l’expérience de playbook). Pour utiliser cette méthode dans une action d’interface utilisateur ou une règle métier, transmettez plutôt l’objet actuel en tant que parentRecord.

    var parentRecord = new GlideRecordUtil().getGR("interaction", "148776e5818d7410f87701eb89fdc824");
    
    // demo playbook from Process Automation Experience Demo store app
    var scopedName = "sn_pad_demo.playbook_experience_demo"; 
    
    var hasPlaybooks = sn_playbook.PlaybookExperience.parentRecordContainsPlaybook(parentRecord, scopedName);
    gs.info(hasPlaybooks);

    Sortie :

    true

    PlaybookExperience : restartPlaybook(chaîne playbookContextId, chaîne laneContextId, chaîne activityContextId, chaîne playbookExperienceId)

    Redémarre une exécution depuis le début (l’ensemble du playbook) ou à partir d’une étape ou d’une activité spécifique d’un playbook.

    Remarque :
    Seuls les playbooks à l’état En cours, En file d’attente ou Annulation en attente peuvent être redémarrés.
    Tableau 7. Paramètres
    Nom Type Description
    playbookContextId Chaîne Sys_id de l’enregistrement de contexte du playbook pour l’exécution ou l’exécution du playbook que vous souhaitez redémarrer.

    Table : Exécution du processus [sys__context]

    laneContextId Chaîne Facultatif. Le sys_id de l’enregistrement de contexte d’étape pour l’exécution ou l’exécution de l’étape à partir de laquelle vous souhaitez redémarrer.
    Remarque :
    Seules les étapes complètes peuvent être redémarrées.

    Table : exécutions de voies [sys__lane_context]

    activityContextId Chaîne Facultatif. Le sys_id de l’enregistrement du contexte de l’activité pour l’exécution ou l’exécution de l’activité à partir de laquelle vous souhaitez redémarrer.
    Remarque :
    Seules les activités terminées peuvent être redémarrées.

    Table : Exécutions d’activités [sys__activity_context]

    playbookExperienceId Chaîne Facultatif. Le sys_id de l’expérience de playbook que vous souhaitez utiliser pour l’exécution redémarrée. Utilisez ce paramètre si vous avez défini des mappages d’état d’activité personnalisés. Voir Mappage de l’état de l’activité Playbook.

    Par défaut : expérience de playbook globale

    Table : Expérience de playbook [sys_playbook_experience]

    Tableau 8. Renvoie
    Propriété Description
    Objet Objet contenant les détails de l’exécution du Playbook redémarré.
    {
     "can_add_activity": Boolean,
     "can_cancel": Boolean,
     "can_read": Boolean
     "can_restart": Boolean,
     "canceled_by": "String",
     "cancellation_reason": "String",
     "errors": [Array]
     "is_archived": Boolean
     "parent_record": "String",
     "parent_table": "String",
     "playbook_id": "String",
     "playbook_table": "String",
     "scoped_name": "String",
     "state": {Object},
     "sys_id": "String",
     "title": "String",
    }
    can_add_activity Marqueur indiquant si un utilisateur peut ajouter une activité en option au playbook.
    Valeurs valides :
    • vrai : l’utilisateur actuel peut ajouter une activité facultative au playbook.
    • faux : l’utilisateur actuel ne peut pas ajouter d’activité facultative au playbook.

    Type de données : booléennes

    can_cancel Marqueur indiquant si un utilisateur peut annuler un playbook.
    • vrai : la définition du processus pour le playbook désactivé est active.
    • faux : la définition du processus pour le playbook désactivé est inactive.

    Type de données : booléennes

    can_read Marqueur indiquant si l’utilisateur actuel peut lire l’enregistrement d’exécution du playbook. L’utilisateur actuel doit avoir un accès en lecture à l’enregistrement parent pour pouvoir lire l’enregistrement d’exécution du playbook.
    • vrai : l’utilisateur actuel a un accès en lecture à l’enregistrement d’exécution du playbook.
    • faux : l’utilisateur actuel n’a pas d’accès en lecture à l’enregistrement d’exécution du playbook.

    Type de données : booléennes

    can_restart Marqueur indiquant si un utilisateur peut redémarrer un playbook, une étape ou une activité.
    • vrai : l’utilisateur actuel peut redémarrer le playbook, l’étape ou l’activité.
    • faux : l’utilisateur actuel ne peut pas redémarrer le playbook, l’étape ou l’activité.

    Type de données : booléennes

    canceled_by ID d’utilisateur de l’utilisateur qui a annulé l’exécution du Playbook.

    Type de données : chaîne

    cancellation_reason Motif d’annulation saisi par l’utilisateur qui a annulé l’exécution du Playbook.

    Type de données : chaîne

    erreurs Liste des erreurs de redémarrage. Chaque erreur est un objet dans le tableau.

    Type de données : tableau

    "errors": [
     {      
      "message": "String",
      "type": "String"  
     }
    ]
    is_archived Marqueur indiquant si les enregistrements de contexte du playbook sont archivés.
    Valeurs possibles :
    • vrai : les enregistrements de contexte du Playbook sont archivés.
    • faux : les enregistrements de contexte Playbook ne sont pas archivés.

    Type de données : booléennes

    parent_record Sys_id de l’enregistrement parent pour lequel les exécutions de playbook ont été relancées.

    Type de données : chaîne

    parent_table Nom de la table d’où provient l’enregistrement parent.

    Type de données : chaîne

    playbook_id Sys_id du playbook.

    Type de données : chaîne

    Table : définitions des processus [sys__process_definition]

    playbook_table Nom de la table d’où provient le playbook, généralement la table Définitions de processus [sys__process_definition].

    Type de données : chaîne

    scoped_name Facultatif. Nom inclus dans le champ d’application du playbook à redémarrer. Le nom inclus dans le périmètre est issu de la table de définition de processus [sys__process_definition] au format scope.name. Si elle est fournie, seules les exécutions de ce playbook sont redémarrées pour l’enregistrement parent donné. Si cette option n’est pas fournie, toutes les exécutions de tous les playbooks sont redémarrées pour l’enregistrement parent donné.

    Type de données : chaîne

    État Indique si votre demande d’activation a abouti.

    Type de données : objet

    Valeurs possibles :
    • RÉUSSITE : le playbook a été activé avec succès.
    • ÉCHEC : l’ID du playbook est introuvable.
    "state": [
        {      
          "displayValue": "String",
          "value": "String"  
        }
    ]
    État.valeurd’affichage Valeur d’affichage de l’état d’exécution du playbook.

    Type de données : chaîne

    état.valeur Valeur de l’état d’exécution du Playbook.

    Type de données : chaîne

    sys_id Sys_id de l’exécution du playbook.

    Type de données : chaîne

    Table : Exécutions du processus [sys__context]

    Titre Étiquette de l’exécution du playbook.

    Type de données : chaîne

    Table : Exécutions du processus [sys__context]

    Cet exemple montre comment redémarrer l’intégralité d’une exécution de playbook avec l’ID d’enregistrement Exécutions de processus [sys__context] 98e4fe04591b4ca59583f7b8e30b0a.

    var gr = new GlideRecord('sys_pd_context');
    var found = gr.get('98e4fe04591b4caca59583f7b8e30b0a'); 
    if (found) {
        var result = sn_playbook.PlaybookExperience.restartPlaybook(gr);
        gs.info(JSON.stringify(result));
    }
    else
        gs.info('invalid pd context');

    Sortie :

    {
     "scoped_name": "global.restart_scriptable_demo",
     "canceled_by": "",
     "can_add_activity": true,
     "playbook_table": "sys_pd_process_definition",
     "can_restart": true,
     "can_cancel": true,
     "title": "Restart scriptable demo",
     "cancellation_reason": "",
     "parent_table": "interaction",
     "can_read": true,
     "sys_id": "98e4fe04591b4caca59583f7b8e30b0a",
     "is_archived": false,
     "state": {
       "displayValue": "In Progress",
       "value": "IN_PROGRESS"
     },
     "parent_record": "b88623beb5e10210f877d783f6f83a46",
     "playbook_id": "12d5a7fab5e10210f877d783f6f83aff",
     "errors": []
    }

    PlaybookExperience : triggerPlaybook(String scopedName, GlideRecord parentRecord)

    Lance un playbook pour un enregistrement parent.

    Tableau 9. Paramètres
    Nom Type Description
    nom du champ d’application Chaîne Nom inclus dans le champ d’application du playbook à lancer. Le nom inclus dans le périmètre est issu de la table de définition de processus [sys__process_definition] au format scope.name.
    parentRecord GlideRecord L’enregistrement parent pour lequel lancer un playbook. L’enregistrement parent peut être n’importe quel enregistrement pouvant avoir des exécutions de playbook, tel qu’un enregistrement d’interaction ou un enregistrement de ticket d’intégration.
    Tableau 10. Renvoie
    Type Description
    Chaîne Sys_id de l’exécution du playbook à partir de la table Exécutions du processus [sys__context] créée pour l’enregistrement parent. Nul si une exécution de playbook n’a pas été créée avec succès.

    Cet exemple montre comment lancer un playbook pour un enregistrement d’interaction donné. Pour utiliser cette méthode dans une action d’interface utilisateur ou une règle métier, transmettez plutôt l’objet actuel en tant que parentRecord.

    var parentRecord = new GlideRecordUtil().getGR("interaction", "148776e5818d7410f87701eb89fdc824");
    
    // demo playbook from Process Automation Experience Demo store app
    var scopedName = "sn_pad_demo.playbook_experience_demo"; 
    
    var playbookExecution = sn_playbook.PlaybookExperience.triggerPlaybook(scopedName, parentRecord);
    gs.info(playbookExecution);
    

    Sortie :

    f059958267cdb410952864f0fed358cc