CIRelatedList : global

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 5 minutes de lecture
  • L’include de script CIRelatedList est une classe utilitaire qui fournit des méthodes pour travailler avec les listes connexes d’éléments de configuration (CI).

    Chaque instance de cet include de script contient les détails d’une liste unique associée à un CI particulier. Les détails de cette liste et son contenu sont inclus.

    À utiliser avec n’importe quel script de détection côté serveur.

    CIRelatedList : addRec(Enregistrement d’objet)

    Ajoute l’enregistrement spécifié à la liste connexe.

    Tableau 1. Paramètres
    Nom Type Description
    record Objet Chaque membre de l’objet est un nom de colonne dans la table associée. Par exemple, si vous faites référence à la table cmdb_serial_number, cette valeur peut contenir quelque chose de similaire à ce qui suit :

    {"serial_number_type » :"bios »,"serial_number » :"1BC5E4z89246 »,"valid » :"true"}

    Tableau 2. Renvoie
    Type Description
    nul

    Cet exemple montre comment ajouter un enregistrement à une liste connexe de CI.

    var ciDataObj = new CIData(); // Instantiate a new CIData class object
    
    // sys_id of the CI to which the related list is attached.
    var rl = new CIRelatedList('cmdb_serial_number', 'cmdb_ci','0c43b0f5c6112275019abd2bb3dcd78f','true');
    
    // Create an object and add the serial numbers
    var sr = {"serial_number_type":"bios","serial_number":"1BC5E4z89246","valid":"true"};
    rl.addRec(sr); // Add the related list. Sets the given records to the related list.
    ciDataObj.addRelatedList(rl); // Adding the related list to the cidata
    gs.info(JSON.stringify(rl, null, 4)); // Display the added related list

    Sortie :

    {
      "GlideRecordUtil": {},
      "ignoreFields": {
        "sys_created_by": true,
        "sys_updated_by": true,
        "sys_mod_count": true
      },
      "records": [
        {
          "serial_number_type": "bios",
          "serial_number": "1BC5E4z89246",
          "valid": "true"
        }
      ],
      "m2m_records": [],
      "table_name": "cmdb_serial_number",
      "field_name": "cmdb_ci",
      "cmdb_ci": "0c43b0f5c6112275019abd2bb3dcd78f",
      "debug_flag": "true",
      "isM2M": false,
      "target_table_name": null,
      "target_ref_field_name": null
    }

    CIRelatedList : addRecs(Array records)

    Définit les enregistrements donnés dans la liste connexe.

    Tableau 3. Paramètres
    Nom Type Description
    Enregistrements Tableau d'objets Chaque objet représente un enregistrement dans la table associée. Chaque membre de l’objet est un nom de colonne dans cette table. Par exemple, si vous faites référence à la table cmdb_serial_number, cette valeur peut contenir quelque chose de similaire à ce qui suit :

    [{"serial_number_type » :"bios »,"serial_number » :"1BC5E4z89246 »,"valid » :"true"},{"serial_number_type » :"carte de base »,"serial_number » :"w4z89246 »,"valid » :"true"}]

    Tableau 4. Renvoie
    Type Description
    nul

    Cet exemple montre comment ajouter plusieurs enregistrements à une liste connexe de CI.

    var ciDataObj = new CIData(); // Instantiate a new CIData class object
    
    // sys_id of the CI to which the related list is attached.
    var rl = new CIRelatedList('cmdb_serial_number', 'cmdb_ci','0c43b0f5c6112275019abd2bb3dcd78f','true');
    
    // Create an object and add the serial numbers
    var sr = [{"serial_number_type":"bios","serial_number":"1BC5E4z89246","valid":"true"},{"serial_number_type":"baseboard","serial_number":"w4z89246","valid":"true"}];
    
    rl.addRecs(sr); // Add the related list. Sets the given records to the related list.
    
    ciDataObj.addRelatedList(rl); // Adding the related list to the cidata
    gs.info(JSON.stringify(rl, null, 4)); // Display the added related list

    Sortie :

    {
      "GlideRecordUtil": {},
      "ignoreFields": {
        "sys_created_by": true,
        "sys_updated_by": true,
        "sys_mod_count": true
      },
      "records": [
        {
          "serial_number_type": "bios",
          "serial_number": "1BC5E4z89246",
          "valid": "true"
        },
        {
          "serial_number_type": "baseboard",
          "serial_number": "w4z89246",
          "valid": "true"
        }
      ],
      "m2m_records": [],
      "table_name": "cmdb_serial_number",
      "field_name": "cmdb_ci",
      "cmdb_ci": "0c43b0f5c6112275019abd2bb3dcd78f",
      "debug_flag": "true",
      "isM2M": false,
      "target_table_name": null,
      "target_ref_field_name": null
    }

    CIRelatedList : appendXMLChildFld(String parent, String name, String datum)

    Ajoute un enfant XML à un champ.

    Tableau 5. Paramètres
    Nom Type Description
    parent Chaîne L’élément parent
    nom Chaîne Nom de l’élément
    donnée Chaîne Données à ajouter
    Tableau 6. Renvoie
    Type Description
    nul

    CIRelatedList : appendXMLChildRecord(String parent, String name, String record)

    Ajoute un enfant XML à un enregistrement.

    Tableau 7. Paramètres
    Nom Type Description
    parent Chaîne L’élément parent
    nom Chaîne Nom de l’élément
    record Chaîne L’enregistrement
    Tableau 8. Renvoie
    Type Description
    nul

    CIRelatedList : checkSysCollection()

    Vérifie s’il s’agit d’une table SysCollection. Si c’est le cas, définit le nom de la table cible et le nom du champ de référence.

    Tableau 9. Paramètres
    Nom Type Description
    Aucun
    Tableau 10. Renvoie
    Type Description
    CIRelatedList Une instance de CIRelatedList pour la liste spécifiée.

    CIRelatedList : checkSysM2M()

    Vérifie s’il s’agit d’une table système plusieurs-à-plusieurs. Si c’est le cas, définit le nom de la table cible et le nom du champ de référence.

    Tableau 11. Paramètres
    Nom Type Description
    Aucun
    Tableau 12. Renvoie
    Type Description
    Booléen Vrai s’il s’agit d’une table système plusieurs-à-plusieurs ; sinon, faux.

    CIRelatedList : CIRelatedList(Table de chaînes, Chaîne refField, Chaîne cmdb_ci, Chaîne debugFlag)

    Crée une instance de la classe CIRelatedList. Sans arguments, construit simplement une instance vide.

    Tableau 13. Paramètres
    Nom Type Description
    Table Chaîne Table contenant la liste connexe. Si la table est plusieurs-à-plusieurs, la table plusieurs-à-plusieurs.
    refField Chaîne Champ de référence dans la table pour cette liste connexe.
    cmdb_ci Chaîne Le sys_id du CI auquel cette liste est associée.
    marqueur de débogage Chaîne Si vrai, la journalisation de débogage est activée.

    CIRelatedList : fromXML(Élément chaîne)

    Initialise cette instance à partir de l’élément XML spécifié.

    Tableau 14. Paramètres
    Nom Type Description
    élément Chaîne Un élément XML
    Tableau 15. Renvoie
    Type Description
    nul

    CIRelatedList : populate()

    Renseigne le champ this.records de cette instance.

    Tableau 16. Paramètres
    Nom Type Description
    Aucun
    Tableau 17. Renvoie
    Type Description
    nul

    CIRelatedList : toString(résultat du tableau)

    Crée une représentation de chaîne de cette instance, en poussant chaque ligne à la fin du tableau de résultats donné.

    Cette méthode est appelée à partir de CIData.toString() et suppose que les lignes de la liste connexe doivent être mises en retrait de deux espaces.

    Tableau 18. Paramètres
    Nom Type Description
    résultat Tableau Résultat à convertir
    Tableau 19. Renvoie
    Type Description
    nul

    CIRelatedList : toXML(Document chaîne, élément de chaîne)

    Sérialise cette instance en XML dans le document et l’élément <rl> donnés.

    Tableau 20. Paramètres
    Nom Type Description
    document Chaîne Le document
    élément Chaîne L’élément rl
    Tableau 21. Renvoie
    Type Description
    nul

    CIRelatedList : supprimer()

    Supprime tous les éléments de liste connexes.

    Tableau 22. Paramètres
    Nom Type Description
    Aucun
    Tableau 23. Renvoie
    Type Description
    nul

    Cet exemple de code supprime les enregistrements connexes mappés aux éléments CI portant le nom = *JEMPLOYEE-IBM. Cet exemple concerne une table non M2M.

    //Get a configuration item record which has a related list. Example:  CI items with the name = *JEMPLOYEE-IBM.
    var ciRecord = new GlideRecord("cmdb_ci_computer");
    ciRecord.addQuery("name", "*JEMPLOYEE-IBM");
    ciRecord.query();
    if (ciRecord.next()) {
    
        var relRecordTable = 'cmdb_ci_network_adapter'; // The table containing the related list (if many-to-many, the many-to-many table)
        var relRecordField = 'cmdb_ci'; // The reference field in the table for this related list
        var cmdb_ciHasRelRecord = ciRecord.sys_id; // The sys_id of the CI this list is related to.
        var debugFlag = 'true'; // True if debug logging is enabled.
    
        // Get the related record List
        var CIRelatedList = new CIRelatedList(relRecordTable, relRecordField, cmdb_ciHasRelRecord, debugFlag);
        CIRelatedList.remove(); // Delete all related records
    }

    CIRelatedList : xmlToRecord(enregistrements de chaîne, élément de chaîne)

    Convertit une liste connexe de XML au format d’enregistrement.

    Tableau 24. Paramètres
    Nom Type Description
    Enregistrements Chaîne Enregistrement à créer
    élément Chaîne L’élément XML
    Tableau 25. Renvoie
    Type Description
    nul