Katalogelement : Bereichsbezogen
Die CatItem- API stellt Methoden bereit, mit denen Sie Servicekatalogelemente mithilfe von Skripts erstellen und ändern können.
Diese API wird im Namespace sn_sc ausgeführt.
CatItem –availableForUserCriteria(Zeichenfolgenaktion, Array-KriterienIDs)
Fügt dem aktuellen Katalogelement die Anwenderkriterien Available For hinzu.
| Name | Typ | Beschreibung |
|---|---|---|
| Aktion | Zeichenfolge | Auszuführende Aktion.
|
| criteriaIDs | Array | Array der Benutzerkriterien sys_ids. |
| Typ | Beschreibung |
|---|---|
| void |
In diesem Beispiel wird gezeigt, wie die angegebenen Available For Anwenderkriterien hinzugefügt werden.
var item = new sn_sc.CatItem("31bea3d53790200044e0bfc8bcbe5dec");
item.availableForUserCriteria("add", ["0c441abbc6112275000025157c651c89"]);
CatItem - canViewInDomain()
Überprüft, ob das aktuelle Katalogelement in der ausgewählten Domäne angezeigt wird (in der Domänenauswahl ausgewählte Domäne).
Katalogelemente in der globalen Domäne sind in allen Domänen verfügbar.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die validiert, ob das aktuelle Katalogelement in der ausgewählten Domäne sichtbar ist. Gültige Werte:
|
In diesem Beispiel wird gezeigt, wie überprüft wird, ob ein Katalogelement in der aktuell ausgewählten Domäne sichtbar ist.
var catItem = new sn_sc.CatItem("060f3afa3731300054b6a3549dbe5d3e");
gs.info(catItem.canViewInDomain());
CatItem – canViewOnSearch(boolean isMobile)
Bestimmt, ob der Benutzer Zugriff hat, um das Katalogelement in der globalen Suche anzuzeigen.
| Name | Typ | Beschreibung |
|---|---|---|
| isMobile | Boolean | Kennzeichnung, die angibt, ob die Suche nach der mobilen Ansicht oder der Desktopansicht durchgeführt werden soll. Gültige Werte:
|
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob der Anwender Zugriff zum Anzeigen des Katalogelements in der globalen Suche hat. Gültige Werte:
|
In diesem Codebeispiel wird gezeigt, wie überprüft wird, ob der Benutzer Zugriff zum Anzeigen des Katalogelements in der globalen Suche in der Desktopansicht hat.
var catItem = new sn_sc.CatItem("04b7e94b4f7b4200086eeed18110c7fd");
var canView = catItem.canViewOnSearch('false');
gs.info("Can view on global search: " + canView);
Ausgabe:
Can view on global search: true
CatItem – create(Boolean standardUpdate)
Fügt das definierte Katalogelement ein.
| Name | Typ | Beschreibung |
|---|---|---|
| standardUpdate | Boolean | Kennzeichnung, die angibt, ob die Ausführung von Engines und Workflows aktiviert werden soll. Gültige Werte:
|
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Sys_id des neu erstellten Katalogelements. |
In diesem Beispiel wird ein neues Katalogelement erstellt und eine Variable und ein Variablensatz hinzugefügt.
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);
}
Ausgabe:
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)
Löscht ein Katalogelement.
| Name | Typ | Beschreibung |
|---|---|---|
| standardUpdate | Boolean | Kennzeichnung, die angibt, ob die Ausführung von Engines und Workflows aktiviert werden soll. Gültige Werte:
|
| Typ | Beschreibung |
|---|---|
| void |
In diesem Beispiel werden alle inaktiven Katalogelemente gelöscht.
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)
Gibt die erste Kategorie zurück, die der Anwender in einem Katalog anzeigen kann.
| Name | Typ | Beschreibung |
|---|---|---|
| catalogId | Zeichenfolge | Sys_id des Katalogs |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Sys_id der ersten Kategorie, die der Benutzer in einem Katalog anzeigen kann. |
Beispiel:
var CatItem=new sn_sc.CatItem("04b7e94b4f7b4200086eeed18110c7fd");
console.log(CatItem.getFirstAccessibleCategoryForSearch("e0d08b13c3330100c8b837659bba8fb4"));
Ausgabe:
d258b953c611227a0146101fb1be7c31
CatItem – getInvalidDelegatedUsers(Array requestForUsers)
Gibt ein Array von Anwendern zurück, für die das zugeordnete Element nicht delegiert werden kann (angefordert im Namen von).
Die -Methode überprüft jeden der im Array übergebenen Benutzer.
| Name | Typ | Beschreibung |
|---|---|---|
| requestForUsers | Objekt | Array von Anwender-Sys-IDs, um zu überprüfen, ob der zugeordnete Anwender den aktuellen Artikel erwerben kann und ob der Artikel in seinem Namen angefordert werden kann. Tabelle: Benutzer [sys_user] |
| Typ | Beschreibung |
|---|---|
| Array | Liste der Anwendernamen (Spalte Name in der Tabelle „Anwender“ [sys_user]), für die das Element nicht von einem Delegierten angefordert werden kann. |
In diesem Beispiel wird gezeigt, wie Sie eine Liste von Anwendernamen abrufen, für die das Element nicht von einem Delegierten angefordert werden kann.
function getInvalidDelegatedUsers(itemId, userIds) {
var catItem = new sn_sc.CatItem(itemId);
var invalidUsers = catItem.getInvalidDelegatedUsers(userIds);
return invalidUsers;
}
Ausgabe:
[
"Joe Smith",
"Jenny Brown",
"Fred Bennet",
"Alice Jones"
]
CatItem – getRecordClass()
Gibt den Klassennamen für den aktuellen Katalogelementdatensatz zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Klassenname für den aktuellen Katalogelement-Datensatz. |
Beispiel:
var CatItem=new sn_sc.CatItem("04b7e94b4f7b4200086eeed18110c7fd");
console.log(CatItem.getRecordClass());
Ausgabe:
sc_cat_item
CatItem – isDelegationAllowed(String delegatedUser)
Überprüft, ob der angegebene delegierte Benutzer über Beschaffungsrechte für das aktuelle Servicekatalogelement verfügt.
| Name | Typ | Beschreibung |
|---|---|---|
| delegierterAnwender | Zeichenfolge | Optional. Sys_id des Anwenders, für den das Servicekatalogelement angefordert werden soll (Delegierter). Die Methode verifiziert, ob der Benutzer über Beschaffungsrechte für den Artikel verfügt. Standard: Prüft, ob der anrufende Benutzer über Beschaffungsrechte für das Element verfügt. |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob der Benutzer über Beschaffungsrechte für das aktuelle Servicekatalogelement verfügt. Gültige Werte:
|
Dieses Codebeispiel zeigt, wie bestimmt wird, ob die Delegierung für das Katalogelement zulässig ist.
function canRequestFor(itemId, user) {
var catItem = new sn_sc.CatItem(itemId);
var result = catItem.isDelegationAllowed(user);
return result;
}
Ausgabe: true
CatItem – isVisibleServicePortal()
Bestimmt, ob das aktuelle Katalogelement im Serviceportal verfügbar ist.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Boolean | Kennzeichnung, die angibt, ob das Katalogelement im Serviceportal verfügbar ist. Gültige Werte:
|
Beispiel:
var catItem = new sn_sc.CatItem("04b7e94b4f7b4200086eeed18110c7fd");
var catItemAvail = catItem.isVisibleServicePortal();
gs.info("Is item available on Service Portal: " + catItemAvail);
Ausgabe:
Is item available on Service Portal: true
CatItem – notAvailableForUserCriteria(Zeichenfolgenaktion, Array-KriterienIDs)
Fügt einem Katalogelement die Anwenderkriterien Not Available For hinzu.
| Name | Typ | Beschreibung |
|---|---|---|
| Aktion | Zeichenfolge | Auszuführende Aktion.
|
| Typ | Beschreibung |
|---|---|
| void |
In diesem Beispiel wird gezeigt, wie die angegebenen Not Available For Anwenderkriterien hinzugefügt werden.
var item = new sn_sc.CatItem("31bea3d53790200044e0bfc8bcbe5dec");
item. notAvailableForUserCriteria("add", ["0c441abbc6112275000025157c651c89"]);
CatItem – read(Object columns, Boolean standardUpdate)
Gibt eine Zuordnung von Katalogelement-Attributwerten zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| columns | Objekt | Name-Wert-Paare von Spalten, für die Werte zurückgegeben werden sollen. |
| standardUpdate | Boolean | Kennzeichnung, die angibt, ob die Ausführung von Engines und Workflows aktiviert werden soll. Gültige Werte:
|
| Typ | Beschreibung |
|---|---|
| Objekt | Zuordnung von Spaltennamen zu Werten. |
In diesem Beispiel werden die Felder Name und Preis eines Katalogelements gelesen.
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(Object attributes)
Legt Attribute für ein Katalogelement fest.
| Name | Typ | Beschreibung |
|---|---|---|
| attributes | Objekt | Name-Wert-Paare der Spalten, für die festgelegt werden soll. |
| Typ | Beschreibung |
|---|---|
| void |
In diesem Beispiel werden Attribute für ein neues Katalogelement festgelegt.
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);
}
Ausgabe:
Catalog item created in table sc_cat_item with sys_id 706948a287e370103a730f2d0ebb351e
CatItem – setCatalogs(String catalogs)
Definiert die Kataloge, denen dieses Katalogelement zugeordnet ist.
| Name | Typ | Beschreibung |
|---|---|---|
| catalogs | Zeichenfolge | Kommagetrennte Liste der sys_ids der Kataloge, die dem Artikel zugeordnet werden sollen. |
| Typ | Beschreibung |
|---|---|
| void |
In diesem Beispiel wird ein Katalogelement mit zwei Katalogen zugeordnet.
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)
Definiert die Kategorien, denen dieses Katalogelement zugeordnet ist.
| Name | Typ | Beschreibung |
|---|---|---|
| categories | Zeichenfolge | Kommagetrennte Liste der sys_ids der Kategorien, die dem Element zugeordnet werden sollen. |
| Typ | Beschreibung |
|---|---|
| void |
In diesem Beispiel wird gezeigt, wie einem Element zwei Kategorien zugeordnet werden.
var catItem = new sn_sc.CatItem("060f3afa3731300054b6a3549dbe5d3e");
catItem.setCatagories("af443cfa5f130100a9ad2572f2b47747", "d467125fd7500200d74460affd6103a1");
CatItem – setImage(String dbImageSysId, String type)
Fügt einem Katalogelement ein Bild hinzu.
| Name | Typ | Beschreibung |
|---|---|---|
| dbImageSysId | Zeichenfolge | Sys_id des Images aus der Tabelle „Images“ [db_image]. |
| Typ | Zeichenfolge | Typ des Bildes. Gültige Werte:
|
| Typ | Beschreibung |
|---|---|
| void |
In diesem Beispiel wird einem Katalogelement ein Bild hinzugefügt.
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)
Definiert den Tabellennamen für dieses Katalogelement.
| Name | Typ | Beschreibung |
|---|---|---|
| tableName | Zeichenfolge | Name der Tabelle, die das Katalogelement [sc_cat_item] erweitert |
| Typ | Beschreibung |
|---|---|
| void |
In diesem Beispiel wird gezeigt, wie der Name einer erweiterten Tabelle festgelegt wird.
var catItem = new sn_sc.CatItem();
catItem.setTableName("New_catalog_table");
CatItem – commitProducer(Objektwerte)
Erstellt einen Datensatz mit einem angegebenen Servicekatalog -Datensatzersteller.
| Name | Typ | Beschreibung |
|---|---|---|
| Werte | Objekt | Enthält die Feldwerte und den Datensatzersteller, die beim Erstellen des Datensatzes verwendet werden sollen. |
| Werte.Variablen | Objekt | Die für den neuen Datensatz festzulegenden Feldwerte. |
| value.sysparm_id | Zeichenfolge | Sys_id des Datensatzerstellers, der aus der Tabelle „Datensatzersteller“ [sc_cat_item_producer] verwendet werden soll. |
| Typ | Beschreibung |
|---|---|
| Objekt | Enthält Informationen zum erstellten Datensatz. |
| <Object>.Nummer | Wert des Felds „Nummer“ des erstellten Datensatzes. Datentyp: Zeichenfolge |
| <Object>.parent_id | Sys_id des übergeordneten Datensatzes. Datentyp: Zeichenfolge |
| <Object>.parent_table | Die übergeordnete Tabelle der Tabelle, in der der Datensatz erstellt wurde. Datentyp: Zeichenfolge |
| <Object>.Datensatz | XML des erstellten Datensatzes. Datentyp: Zeichenfolge |
| <Object>.redirect_portal_url | URL, an die Serviceportalumgeleitet werden soll. Datentyp: Zeichenfolge |
| <Object>.redirect_to | Weiterleitungs-Wert. Datentyp: Zeichenfolge |
| <Object>.redirect_url | URL des erstellten Datensatzes. Datentyp: Zeichenfolge |
| <Object>.sys_id | Sys_id des erstellten Datensatzes. Datentyp: Zeichenfolge |
| <Object>.Tabelle | Die Tabelle, in der der Datensatz erstellt wurde. Datentyp: Zeichenfolge |
In diesem Beispiel wird ein Incident mit dem Datensatzersteller „Incident erstellen“ erstellt.
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));
Ausgabe:
{
"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)
Aktualisiert die Werte für die angegebenen Felder eines Katalogelements.
| Name | Typ | Beschreibung |
|---|---|---|
| columnValues | Objekt | Name-Wert-Paare der zu aktualisierenden Felder und die zugehörigen Werte. |
| standardUpdate | Boolean | Kennzeichnung, die angibt, ob die Ausführung von Engines und Workflows aktiviert werden soll. Gültige Werte:
|
| Typ | Beschreibung |
|---|---|
| void |
In diesem Beispiel werden der Name, die Kurzbeschreibung und der Preis eines vorhandenen Katalogelements aktualisiert.
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