CatItem : dans le champ d’application

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 12 minutes de lecture
  • L’API CatItem fournit des méthodes qui vous permettent de créer et de modifier des éléments de catalogue de services à l’aide de scripts.

    Cette API s’exécute dans l’espace de noms sn_sc .

    CatItem : availableForUserCriteria(action de chaîne, tableau criteriaIDs)

    Ajoute les Available For critères d’utilisateur à l’élément de catalogue actuel.

    Tableau 1. Paramètres
    Nom Type Description
    action Chaîne Action à effectuer.
    • add : ajoute les critères d’utilisateur à la liste Disponible pour .
    • supprimer : supprime les critères d’utilisateur de la liste Disponible pour .
    critèresID Tableau Tableau des critères d’utilisateur sys_ids.
    Tableau 2. Renvoie
    Type Description
    nul

    Cet exemple montre comment ajouter les critères d’utilisateur spécifiés Available For .

    var item = new sn_sc.CatItem("31bea3d53790200044e0bfc8bcbe5dec");
    item.availableForUserCriteria("add", ["0c441abbc6112275000025157c651c89"]);

    CatItem : canViewInDomain()

    Vérifie si l’élément de catalogue actuel est visible dans le domaine sélectionné (domaine sélectionné dans le sélecteur de domaine).

    Les éléments de catalogue dans le domaine global sont disponibles dans tous les domaines.

    Tableau 3. Paramètres
    Nom Type Description
    Aucun
    Tableau 4. Renvoie
    Type Description
    Booléen Marqueur qui valide si l’élément de catalogue actuel est visible dans le domaine sélectionné.

    Valeurs valides :

    • vrai : l’élément de catalogue est visible dans le domaine
    • false : l’élément de catalogue n’est pas visible dans le domaine

    Cet exemple montre comment vérifier si un élément de catalogue est visible dans le domaine actuellement sélectionné.

    var catItem = new sn_sc.CatItem("060f3afa3731300054b6a3549dbe5d3e");
    gs.info(catItem.canViewInDomain());

    CatItem : canViewOnSearch(booléen isMobile)

    Détermine si l’utilisateur a accès à l’affichage de l’élément de catalogue dans la recherche globale.

    Tableau 5. Paramètres
    Nom Type Description
    isMobile Booléen

    Marqueur indiquant s’il faut effectuer la recherche pour la vue mobile ou ordinateur de bureau.

    Valeurs valides :
    • vrai : effectuer la recherche pour la vue mobile.
    • false : effectuer la recherche pour la vue du poste de travail.
    Tableau 6. Renvoie
    Type Description
    Booléen

    Marqueur indiquant si l’utilisateur a accès à l’affichage de l’élément de catalogue sur la recherche globale.

    Valeurs valides :
    • vrai : l’utilisateur a accès à l’affichage de l’élément de catalogue sur la recherche globale.
    • faux : l’utilisateur n’a pas accès à l’affichage de l’élément de catalogue dans la recherche globale.

    Cet exemple de code montre comment vérifier si l’utilisateur a accès à l’affichage de l’élément de catalogue sur la recherche globale dans la vue de bureau.

    var catItem = new sn_sc.CatItem("04b7e94b4f7b4200086eeed18110c7fd");
    var canView = catItem.canViewOnSearch('false');
    gs.info("Can view on global search: " + canView);

    Sortie :

    Can view on global search: true

    CatItem : create(Boolean standardUpdate)

    Insère l’élément de catalogue défini.

    Tableau 7. Paramètres
    Nom Type Description
    Mise à jour standard Booléen Marqueur indiquant s’il faut activer l’exécution des moteurs et du workflow.
    Valeurs valides :
    • true : activer l’exécution des moteurs et du workflow.
    • false : n’activez pas l’exécution des moteurs et du workflow. Notez que les colonnes de date système créées et mises à jour de la table ne sont pas mises à jour.
    Tableau 8. Renvoie
    Type Description
    Chaîne Sys_id de l’élément de catalogue nouvellement créé.

    Cet exemple crée un nouvel élément de catalogue et ajoute une variable et un jeu de variables.

    createCatalogItem('Catalog Item Name', 'Short Description', 'e0d08b13c3330100c8b837659bba8fb4', '109f0438c6112276003ae8ac13e7009d'); 
    
    function createCatalogItem(name, short_desc, catalogId, categoryId) {
        var catalogItem = new sn_sc.CatItem();
        catalogItem.setAttributes({
            "name": name,
            "short_description": short_desc
        });
        catalogItem.setCatalogs(catalogId); // set catalog
        catalogItem.setCategories(categoryId); // set category
    
        var catItemSysId = catalogItem.create(); // create new catalog item
        gs.info('Catalog item created in table sc_cat_item with sys_id ' + catItemSysId);
    
        // add variables and variable set
        addDefaultVariables(catItemSysId);
        addDefaultVariableSet(catItemSysId);
    }
    
    // creates a new variable and adds it to the catalog item
    function addDefaultVariables(catItemSysId) {
        var myVarAttrs = {
            "type": "6", // type 6 is single line text
            "cat_item": catItemSysId,
            "question_text": "First Name",
            "name": "first_name",
            'order': 50
        };
        var myVar = new sn_sc.CatalogItemVariable();
        myVar.setAttributes(myVarAttrs);
        var varRec = myVar.create(true);
        gs.info('Variable added to catalog item and record created in table item_option_new with sys_id ' + varRec);
    }
    
    // adds an existing variable set to the catalog item
    function addDefaultVariableSet(catItemSysId) {
        var varset = new sn_sc.CatalogItemVariableSetM2M();
        // fields used in object are from table io_set_item 
        var attr = {
            'variable_set': 'e01cab1a4f334200086eeed18110c71f', // required
            'sc_cat_item': catItemSysId, // required
            'order': 100 // optional
        };
        varset.setAttributes(attr);
        var m2mRec = varset.create(true);
        gs.info('Variable set added to catalog item and M2M record created in table io_set_item with sys_id ' + m2mRec);
    }

    Sortie :

    Catalog item created in table sc_cat_item with sys_id be5c771e876370103a730f2d0ebb3556
    Variable added to catalog item and record created in table item_option_new with sys_id b65cb71e876370103a730f2d0ebb3535
    Variable set added to catalog item and M2M record created in table io_set_item with sys_id 8b5cb71e876370103a730f2d0ebb354b

    CatItem : deleteRecord(Boolean standardUpdate)

    Supprime un élément de catalogue.

    Tableau 9. Paramètres
    Nom Type Description
    Mise à jour standard Booléen Marqueur indiquant s’il faut activer l’exécution des moteurs et du workflow.
    Valeurs valides :
    • true : activer l’exécution des moteurs et du workflow.
    • false : n’activez pas l’exécution des moteurs et du workflow.
    Tableau 10. Renvoie
    Type Description
    nul

    Cet exemple supprime tous les éléments de catalogue inactifs.

    var catalogItem = new GlideRecord('sc_cat_item');
    catalogItem.addQuery('active', 'false'); // get all inactive catalog items
    catalogItem.query();
    while (catalogItem.next()) {
    
        // before deleting a catalog item, delete its associated variable set M2M records
        var variableSetM2M = new GlideRecord('io_set_item'); // M2M table linking variable set and catalog item
        variableSetM2M.addQuery('sc_cat_item', catalogItem.getUniqueValue()); // get M2M records for the catalog item
        variableSetM2M.query();
        while (variableSetM2M.next()) {
            var varset = new sn_sc.CatalogItemVariableSetM2M(variableSetM2M.getUniqueValue()); // M2M record sys_id
            varset.deleteRecord(true); // delete M2M record
        }
    
        // then delete the catalog item
        var item = new sn_sc.CatItem(catalogItem.getUniqueValue()); 
        item.deleteRecord(true);
    }

    CatItem : getFirstAccessibleCategoryForSearch(String catalogId)

    Renvoie la première catégorie que l’utilisateur peut afficher dans un catalogue.

    Tableau 11. Paramètres
    Nom Type Description
    ID catalogue Chaîne Sys_id du catalogue.
    Tableau 12. Renvoie
    Type Description
    Chaîne Sys_id de la première catégorie que l’utilisateur peut afficher dans un catalogue.

    Exemple :

    var CatItem=new sn_sc.CatItem("04b7e94b4f7b4200086eeed18110c7fd");	
    	console.log(CatItem.getFirstAccessibleCategoryForSearch("e0d08b13c3330100c8b837659bba8fb4"));

    Sortie :

    d258b953c611227a0146101fb1be7c31

    CatItem : getInvalidDelegatedUsers(Array requestForUsers)

    Renvoie un tableau d’utilisateurs pour lesquels l’élément associé ne peut pas être délégué (demandé au nom de).

    La méthode vérifie chacun des utilisateurs transmis dans le tableau.

    Tableau 13. Paramètres
    Nom Type Description
    requestForUsers Objet Tableau de sys_ids utilisateur permettant de vérifier si l’utilisateur associé peut acquérir l’élément actuel et que l’élément peut être demandé en son nom.

    Table : Utilisateur [sys_user]

    Tableau 14. Renvoie
    Type Description
    Tableau Liste des noms d’utilisateurs (colonne Nom de la table Utilisateurs [sys_user]) pour lesquels l’élément ne peut pas être demandé par un délégué.

    Cet exemple montre comment obtenir une liste de noms d’utilisateurs pour lesquels l’élément ne peut pas être demandé par un délégué.

    function getInvalidDelegatedUsers(itemId, userIds) {
    var catItem = new sn_sc.CatItem(itemId);
    var invalidUsers = catItem.getInvalidDelegatedUsers(userIds);
    return invalidUsers;
    }

    Sortie :

    [
      "Joe Smith",
      "Jenny Brown",
      "Fred Bennet",
      "Alice Jones"
    ]

    CatItem : getRecordClass()

    Renvoie le nom de classe de l’enregistrement de l’élément de catalogue actuel.

    Tableau 15. Paramètres
    Nom Type Description
    Aucun
    Tableau 16. Renvoie
    Type Description
    Chaîne Nom de classe pour l’enregistrement de l’élément de catalogue actuel.

    Exemple :

    var CatItem=new sn_sc.CatItem("04b7e94b4f7b4200086eeed18110c7fd");	
    	console.log(CatItem.getRecordClass());

    Sortie :

    sc_cat_item

    CatItem : isDelegationAllowed(String delegatedUser)

    Vérifie si l’utilisateur délégué spécifié dispose des droits d’acquisition sur l’élément de catalogue de services actuel.

    Tableau 17. Paramètres
    Nom Type Description
    Utilisateur délégué Chaîne Facultatif. Sys_id de l’utilisateur pour lequel demander l’élément de catalogue de services (délégué). La méthode vérifie si l’utilisateur dispose des droits d’acquisition sur l’élément.

    Par défaut : vérifie si l’utilisateur appelant dispose des droits d’acquisition sur l’élément.

    Tableau 18. Renvoie
    Type Description
    Booléen Marqueur indiquant si l’utilisateur dispose des droits d’acquisition sur l’élément de catalogue de services actuel.
    Valeurs valides :
    • vrai : l’utilisateur dispose des droits d’acquisition sur l’élément.
    • faux : l’utilisateur ne possède pas les droits d’acquisition sur l’élément.

    Cet exemple de code montre comment déterminer si la délégation est autorisée pour l’élément de catalogue.

    function canRequestFor(itemId, user) {
      var catItem = new sn_sc.CatItem(itemId);
      var result = catItem.isDelegationAllowed(user);
      return result;
    }

    Sortie : vrai

    CatItem : isVisibleServicePortal()

    Détermine si l’élément de catalogue actuel est disponible dans le portail de services.

    Tableau 19. Paramètres
    Nom Type Description
    Aucun
    Tableau 20. Renvoie
    Type Description
    Booléen

    Marqueur indiquant si l’élément de catalogue est disponible dans Portail de services.

    Valeurs valides :
    • true : disponible sur Portail de services.
    • faux : non disponible sur Portail de services.

    Exemple :

    var catItem = new sn_sc.CatItem("04b7e94b4f7b4200086eeed18110c7fd");
    var catItemAvail = catItem.isVisibleServicePortal();
    gs.info("Is item available on Service Portal: " + catItemAvail);

    Sortie :

    Is item available on Service Portal: true

    CatItem : notAvailableForUserCriteria(action de chaîne, tableau criteriaIDs)

    Ajoute les Not Available For critères d’utilisateur à un élément de catalogue.

    Tableau 21. Paramètres
    Nom Type Description
    action Chaîne Action à effectuer.
    • add : ajoute les critères d’utilisateur à la liste Non disponible pour .
    • supprimer : supprime les critères d’utilisateur de la liste Non disponible pour .
    Tableau 22. Renvoie
    Type Description
    nul

    Cet exemple montre comment ajouter les critères d’utilisateur spécifiés Not Available For .

    var item = new sn_sc.CatItem("31bea3d53790200044e0bfc8bcbe5dec");
    item. notAvailableForUserCriteria("add", ["0c441abbc6112275000025157c651c89"]);

    CatItem - read (colonnes d’objets, booléen standardUpdate)

    Renvoie un mappage des valeurs d’attributs d’élément de catalogue.

    Tableau 23. Paramètres
    Nom Type Description
    colonnes Objet Paires nom-valeur de colonnes pour lesquelles renvoyer des valeurs.
    Mise à jour standard Booléen Marqueur indiquant s’il faut activer l’exécution des moteurs et du workflow.
    Valeurs valides :
    • true : activer l’exécution des moteurs et du workflow.
    • false : n’activez pas l’exécution des moteurs et du workflow.
    Tableau 24. Renvoie
    Type Description
    Objet Mappage des noms de colonnes aux valeurs.

    Cet exemple lit les champs de nom et de prix d’un élément de catalogue.

    var catItem = new sn_sc.CatItem("a96277509f300200b407b89a442e704e");
    var values = catItem.read({"name" : "", "price" : ""}, true);
    gs.info("Catalog item name: " + values.name);
    gs.info("Catalog item price: " + values.price);
    Sortie :
    Catalog item name: Standard Laptop
    Catalog item price: 1100

    CatItem : setAttributes(Attributs d’objet)

    Définit les attributs d’un élément de catalogue.

    Tableau 25. Paramètres
    Nom Type Description
    attributs Objet Paires nom-valeur des colonnes à définir.
    Tableau 26. Renvoie
    Type Description
    nul

    Cet exemple définit les attributs d’un nouvel élément de catalogue.

    createCatalogItem('Name of your Catalog Item', 'Short Description of your Catalog Item', 'e0d08b13c3330100c8b837659bba8fb4', '109f0438c6112276003ae8ac13e7009d'); 
    
    function createCatalogItem(name, short_desc, catalogId, categoryId) {
        var catalogItem = new sn_sc.CatItem();
        // catalog item column values
        var attributes ={
            "name": name,
            "short_description": short_desc,
    	 "description": "<p>This is a test catalog item.</p>",
    	 "workflow":"0287f2c64a36232700820846b1f8bdce" // sys_id of workflow
        };
        catalogItem.setAttributes(attributes); // set catalog item attributes
        catalogItem.setCatalogs(catalogId); // set catalog
        catalogItem.setCategories(categoryId); // set category
    
        var catItemSysId = catalogItem.create(); // create new catalog item
        gs.info('Catalog item created in table sc_cat_item with sys_id ' + catItemSysId);
    }

    Sortie :

    Catalog item created in table sc_cat_item with sys_id 706948a287e370103a730f2d0ebb351e

    CatItem : setCatalogs(catalogues de chaînes)

    Définit les catalogues auxquels cet élément de catalogue est associé.

    Tableau 27. Paramètres
    Nom Type Description
    Catalogues Chaîne Liste séparée par des virgules des sys_ids des catalogues à associer à l’élément L’élément.
    Tableau 28. Renvoie
    Type Description
    nul

    Cet exemple associe un élément de catalogue à deux catalogues.

    var short_desc = 'This is a short description of my catalog item.';
    var catalogItem = new sn_sc.CatItem();
    catalogItem.setAttributes({
        "name": 'My Catalog Item',
        "short_description": short_desc
    });
    catalogItem.setCatalogs('e0d08b13c3330100c8b837659bba8fb4,742ce428d7211100f2d224837e61036d'); // set Service Catalog and Technical Catalog
    
    var catItemSysId = catalogItem.create(); // create new catalog item
    gs.info('Catalog item created in table sc_cat_item with sys_id ' + catItemSysId);
    Sortie :
    Catalog item created in table sc_cat_item with sys_id d0c5dcaa872770103a730f2d0ebb35cb

    CatItem : setCategories(catégories de chaînes)

    Définit les catégories auxquelles cet élément de catalogue est associé.

    Tableau 29. Paramètres
    Nom Type Description
    catégories Chaîne Liste séparée par des virgules des sys_ids des catégories à associer à l’élément L’élément.
    Tableau 30. Renvoie
    Type Description
    nul

    Cet exemple montre comment associer deux catégories à un élément.

    var catItem = new sn_sc.CatItem("060f3afa3731300054b6a3549dbe5d3e");
    catItem.setCatagories("af443cfa5f130100a9ad2572f2b47747", "d467125fd7500200d74460affd6103a1");

    CatItem : setImage(String dbImageSysId, type de chaîne)

    Ajoute une image à un élément de catalogue.

    Tableau 31. Paramètres
    Nom Type Description
    dbImageSysId Chaîne Sys_id de l’image à partir de la table Images [db_image].
    type Chaîne Type d’image.
    Valeurs valides :
    • image
    • icône
    Tableau 32. Renvoie
    Type Description
    nul

    Cet exemple ajoute une image à un élément de catalogue.

    var catItem = new sn_sc.CatItem("1fc0bd968777301093d5ec6d0ebb3548"); // sys_id of catalog item to update
    // update fields if needed
    var attr = {
        'name': 'New Name of Catalog Item - 123',
        'description': '<p>This is an updated description.</p><p> My description new line 1</p><p>My description new line 2</p>',
        'short_description': 'New Short Description of Catalog Item' 
    };
    catItem.update(attr, true);
    catItem.setImage('1b443cfa5f130100a9ad2572f2b47746', 'picture'); // sys_id of image from table db_image
    

    CatItem : setTableName(String tableName)

    Définit le nom de table pour cet élément de catalogue.

    Tableau 33. Paramètres
    Nom Type Description
    tableName Chaîne Nom de la table qui étend l’élément de catalogue [sc_cat_item].
    Tableau 34. Renvoie
    Type Description
    nul

    Cet exemple montre comment définir le nom d’une table étendue.

    var catItem = new sn_sc.CatItem();
    catItem.setTableName("New_catalog_table");

    CatItem : submitProducer(Valeurs d’objet)

    Crée un enregistrement à l’aide d’un créateur d’enregistrement spécifié Catalogue de services .

    Tableau 35. Paramètres
    Nom Type Description
    valeurs Objet Contient les valeurs de champ et le créateur d’enregistrement à utiliser lors de la création de l’enregistrement.
    {
      "variables": {Object},
      "sysparm_id": "String"
    }
    Valeurs.Variables Objet Valeurs de champ à définir pour le nouvel enregistrement.
    {
       "field": "String",
       "field": "String"
    }
    values.sysparm_id Chaîne Sys_id du créateur d’enregistrement à utiliser à partir de la table Créateur d’enregistrement [sc_cat_item_producer].
    Tableau 36. Renvoie
    Type Description
    Objet Contient des informations sur l’enregistrement qui a été créé.
    {
       "number": "String",
       "parent_id": "String",
       "parent_table": "String",
       "record": "String",
       "redirect_portal_url": "String",
       "redirect_to": "String",
       "redirect_url": "String",
       "sys_id": "String",
       "table": "String"	
    }
    <Object>.nombre Valeur du champ Numéro de l’enregistrement créé.

    Type de données : chaîne

    <Object>.parent_id Sys_id de l’enregistrement parent.

    Type de données : chaîne

    <Object>.parent_table Table parente de la table dans laquelle l’enregistrement a été créé.

    Type de données : chaîne

    <Object>.enregistrer XML de l’enregistrement créé.

    Type de données : chaîne

    <Object>.redirect_portal_url URL vers laquelle rediriger le Portail de services fichier .

    Type de données : chaîne

    <Object>.redirect_to Valeur de redirection.

    Type de données : chaîne

    <Object>.redirect_url URL de l’enregistrement créé.

    Type de données : chaîne

    <Object>.sys_id Sys_id de l’enregistrement créé.

    Type de données : chaîne

    <Object>.table Table dans laquelle l’enregistrement a été créé.

    Type de données : chaîne

    Cet exemple crée un incident à l’aide du créateur d’enregistrement Créer un incident.

    var catalogItem = new sn_sc.CatItem('3f1dd0320a0a0b99000a53f7604a2ef9');  //sys_id of the Create Incident record producer 
    var values = {
       "variables": {"urgency" : "2", "comments" : "Laptop is in a brick state"},
       "sysparm_id": "3f1dd0320a0a0b99000a53f7604a2ef9"
    }
    var targetRecordDetails = catalogItem.submitProducer(values);
    gs.info(JSON.stringify(targetRecordDetails, null, 3));

    Sortie :

    {
       "sys_id": "133b2ee1875f30103a730f2d0ebb35f9",
       "number": "INC0010002",
       "parent_id": null,
       "record": "api/now/table/incident/133b2ee1875f30103a730f2d0ebb35f9",
       "redirect_portal_url": "",
       "parent_table": "task",
       "redirect_url": "incident.do?sys_id=133b2ee1875f30103a730f2d0ebb35f9&sysparm_view=ess",
       "table": "incident",
       "redirect_to": "generated_record"
    }

    CatItem : update(Object, columnValues, booléen, standardUpdate)

    Met à jour les valeurs des champs spécifiés d’un élément de catalogue.

    Tableau 37. Paramètres
    Nom Type Description
    columnValues Objet Paires nom-valeur des champs à mettre à jour et leurs valeurs associées.
    Mise à jour standard Booléen Marqueur indiquant s’il faut activer l’exécution des moteurs et du workflow.
    Valeurs valides :
    • true : activer l’exécution des moteurs et du workflow.
    • false : n’activez pas l’exécution des moteurs et du workflow.
    Tableau 38. Renvoie
    Type Description
    nul

    Cet exemple met à jour le nom, la description brève et le prix d’un élément de catalogue existant.

    var catItem = new sn_sc.CatItem("1fc0bd968777301093d5ec6d0ebb3548"); // sys_id of catalog item to update
    printCatalogItem(); // print current catalog item values
    // object containing fields to update
    var attr = {
        "name": "New Name of Catalog Item",
        "short_description": "New Short Description of Catalog Item", 
        "price": "450"
    };
    catItem.update(attr, true);
    printCatalogItem(); // print new catalog item values
    
    // prints the name, short description, and price of the catalog item
    function printCatalogItem(){
        // object containing fields to read
        var readValues = {
            "name" : "", 
            "short_description" : "", 
            "price" : ""
        };
        var values = catItem.read(readValues, true); // read the field values
        gs.info("Catalog item name: " + values.name);
        gs.info("Catalog item short description: " + values.short_description);
        gs.info("Catalog item price: " + values.price);
    }
    Sortie :
    Catalog item name: Example Catalog Item
    Catalog item short description: Example Short Description
    Catalog item price: 300
    Catalog item name: New Name of Catalog Item
    Catalog item short description: New Short Description of Catalog Item
    Catalog item price: 450