CatItem - Dans le champ d’application
L’API CatItem vous permet 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(String action, Array criteriaIDs)
Ajoute les Available For critères d’utilisateur à l’élément de catalogue actuel.
| Nom | Type | Description |
|---|---|---|
| action | Chaîne | Action à effectuer.
|
| ID de critères | Tableau | Tableau des sys_ids de critères d’utilisateur. |
| 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 : canViewOnSearch(booléen isMobile)
Détermine si l’utilisateur a accès à l’affichage de l’élément de catalogue sur la recherche globale.
| Nom | Type | Description |
|---|---|---|
| isMobile | Booléen | Marqueur indiquant si la recherche doit être effectuée pour la vue mobile ou de bureau. Valeurs valides :
|
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’utilisateur a accès à l’élément de catalogue sur la recherche globale. Valeurs valides :
|
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 en mode poste de travail.
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 : 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 du domaine global sont disponibles dans tous les domaines.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur qui valide si l’élément de catalogue actuel est visible dans le domaine sélectionné. Valeurs valides :
|
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 : create(Boolean standardUpdate)
Insère l’élément de catalogue défini.
| Nom | Type | Description |
|---|---|---|
| standardUpdate (mise à jour standard) | Booléen | Marqueur indiquant si l’exécution des moteurs et du workflow doit être activée. Valeurs valides :
|
| 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.
| Nom | Type | Description |
|---|---|---|
| standardUpdate (mise à jour standard) | Booléen | Marqueur indiquant si l’exécution des moteurs et du workflow doit être activée. Valeurs valides :
|
| 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.
| Nom | Type | Description |
|---|---|---|
| ID catalogue | Chaîne | Sys_id du catalogue. |
| 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 passés dans le tableau.
| Nom | Type | Description |
|---|---|---|
| requestForUsers | Objet | Tableau de sys_ids d’utilisateurs pour vérifier si l’utilisateur associé peut acquérir l’élément actuel et que l’élément peut être demandé en son nom. Les sys_ids utilisateur se trouvent dans la table Utilisateurs [sys_user]. |
| Type | Description |
|---|---|
| Tableau | Liste de 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’utilisateur 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 d’élément de catalogue actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Nom de classe de l’enregistrement d’é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é a des droits d’acquisition sur l’élément de catalogue de services actuel.
| Nom | Type | Description |
|---|---|---|
| delegatedUser | 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 de l’élément. Par défaut : vérifie si l’utilisateur appelant a les droits d’acquisition de l’élément. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’utilisateur a des droits d’acquisition sur l’élément de catalogue de services actuel. Valeurs valides :
|
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 : true
CatItem : isVisibleServicePortal()
Détermine si l’élément de catalogue actuel est disponible dans Service Portal.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’élément de catalogue est disponible dans Service Portal. Valeurs valides :
|
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(String action, Array criteriaIDs)
Ajoute les critères d’utilisateur Not Available For à un élément de catalogue.
| Nom | Type | Description |
|---|---|---|
| action | Chaîne | Action à effectuer.
|
| 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, Boolean standardUpdate)
Renvoie un mappage des valeurs d’attributs d’éléments de catalogue.
| Nom | Type | Description |
|---|---|---|
| colonnes | Objet | Paires nom-valeur de colonnes pour lesquelles des valeurs doivent être renvoyées. |
| standardUpdate (mise à jour standard) | Booléen | Marqueur indiquant si l’exécution des moteurs et du workflow doit être activée. Valeurs valides :
|
| Type | Description |
|---|---|
| Objet | Mappage des noms de colonnes aux valeurs. |
Cet exemple affiche 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);
Catalog item name: Standard Laptop
Catalog item price: 1100CatItem - setAttributes(Attributs d’objet)
Définit les attributs d’un élément de catalogue.
| Nom | Type | Description |
|---|---|---|
| attributs | Objet | Paires nom-valeur des colonnes pour lesquelles définir |
| 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(String catalogs)
Définit les catalogues auxquels cet élément de catalogue est associé.
| Nom | Type | Description |
|---|---|---|
| Catalogues | Chaîne | Liste séparée par des virgules des sys_ids catalogues à associer à l’élément de l’élément. |
| 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);
Catalog item created in table sc_cat_item with sys_id d0c5dcaa872770103a730f2d0ebb35cbCatItem - setCategories(String categories)
Définit les catégories auxquelles cet élément de catalogue est associé.
| Nom | Type | Description |
|---|---|---|
| Catégories | Chaîne | Liste séparée par des virgules des sys_ids des catégories à associer à l’élément de l’élément. |
| 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.
| 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 :
|
| 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 de cet élément de catalogue.
| Nom | Type | Description |
|---|---|---|
| tableName | Chaîne | Nom de la table qui étend l’élément de catalogue [sc_cat_item]. |
| 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(Object values)
Crée un enregistrement à l’aide d’un créateur d’enregistrement spécifié Catalogue de services .
| 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. |
| valeurs.variables | Objet | Les valeurs de champ à définir pour le nouvel enregistrement. |
| 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]. |
| Type | Description |
|---|---|
| Objet | Contient des informations sur l’enregistrement qui a été créé. |
| <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 servicesfichier . 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, Boolean standardUpdate)
Met à jour les valeurs des champs spécifiés d’un élément de catalogue.
| Nom | Type | Description |
|---|---|---|
| columnValues (colonnes de valeurs) | Objet | Paires nom-valeur des champs à mettre à jour et de leurs valeurs associées. |
| standardUpdate (mise à jour standard) | Booléen | Marqueur indiquant si l’exécution des moteurs et du workflow doit être activée. Valeurs valides :
|
| Type | Description |
|---|---|
| nul |
Cet exemple met à jour le nom, la brève description 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);
}
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