CatItem - スコープ指定
CatItem API には、スクリプトを使用してサービスカタログアイテムを作成および変更できるメソッドが用意されています。
この API は sn_sc 名前空間で実行されます。
CatItem - availableForUserCriteria(文字列 action, アレイ criteriaIDs)
Available For ユーザー基準を現在のカタログアイテムに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| action | 文字列 | 実行するアクション。
|
| criteriaIDs | アレイ | ユーザー基準 sys_id のアレイ |
| タイプ | 説明 |
|---|---|
| なし |
この例は、指定された Available For ユーザー基準を追加する方法を示しています。
var item = new sn_sc.CatItem("31bea3d53790200044e0bfc8bcbe5dec");
item.availableForUserCriteria("add", ["0c441abbc6112275000025157c651c89"]);
CatItem - canViewInDomain()
選択されたドメイン (ドメインピッカーで選択されたドメイン) で、現在のカタログアイテムが表示可能かどうかを検証します。
グローバルドメインのカタログアイテムは、すべてのドメインで利用可能です。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブーリアン | 選択されたドメインで現在のカタログアイテムが表示可能かどうかを検証するフラグ。 有効な値:
|
この例は、現在選択されているドメインでカタログアイテムが表示可能かどうかを検証する方法を示しています。
var catItem = new sn_sc.CatItem("060f3afa3731300054b6a3549dbe5d3e");
gs.info(catItem.canViewInDomain());
CatItem - canViewOnSearch(ブール isMobile)
ユーザーがグローバル検索でカタログアイテムを表示するためのアクセス権を持っているかどうかを判断します。
| 名前 | タイプ | 説明 |
|---|---|---|
| isMobile | ブーリアン | モバイルビューまたはデスクトップビューで検索を実行するかどうかを示すフラグ。 有効な値:
|
| タイプ | 説明 |
|---|---|
| ブーリアン | ユーザーがグローバル検索でカタログアイテムを表示するためのアクセス権を持っているかどうかを示すフラグ。 有効な値:
|
このコード例は、ユーザーがデスクトップビューでのグローバル検索でカタログアイテムを表示するためのアクセス権を持っているかどうかを確認する方法を示しています。
var catItem = new sn_sc.CatItem("04b7e94b4f7b4200086eeed18110c7fd");
var canView = catItem.canViewOnSearch('false');
gs.info("Can view on global search: " + canView);
出力:
Can view on global search: true
CatItem - create(ブール standardUpdate)
定義されたカタログアイテムを挿入します。
| 名前 | タイプ | 説明 |
|---|---|---|
| standardUpdate | ブーリアン | エンジンとワークフローの実行を有効にするかどうかを示すフラグです。 有効な値:
|
| タイプ | 説明 |
|---|---|
| 文字列 | 新たに作成されたカタログアイテムの sys_id。 |
この例は、新しいカタログアイテムを作成し、変数と変数セットを追加します。
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);
}
出力:
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(ブール standardUpdate)
カタログアイテムを削除します。
| 名前 | タイプ | 説明 |
|---|---|---|
| standardUpdate | ブーリアン | エンジンとワークフローの実行を有効にするかどうかを示すフラグです。 有効な値:
|
| タイプ | 説明 |
|---|---|
| なし |
この例は、非アクティブなすべてのカタログアイテムを削除します。
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(文字列 catalogId)
ユーザーがカタログで表示できる最初のカテゴリを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| catalogId | 文字列 | カタログの sys_id。 |
| タイプ | 説明 |
|---|---|
| 文字列 | ユーザーがカタログで表示できる最初のカテゴリの sys_id。 |
例:
var CatItem=new sn_sc.CatItem("04b7e94b4f7b4200086eeed18110c7fd");
console.log(CatItem.getFirstAccessibleCategoryForSearch("e0d08b13c3330100c8b837659bba8fb4"));
出力:
d258b953c611227a0146101fb1be7c31
CatItem - getInvalidDelegatedUsers(アレイ requestForUsers)
関連付けられたアイテムの委任 (代理で要求) が許可されていないユーザーのアレイを返します 。
このメソッドは、アレイで渡された各ユーザーを検証します。
| 名前 | タイプ | 説明 |
|---|---|---|
| requestForUsers | オブジェクト | 関連付けられたユーザーが現在のアイテムを取得できるかどうか、またそのアイテムは代理で要求できるかどうかを確認するためのユーザー sys_id のアレイ。ユーザー sys_id はユーザー [sys_user] テーブルにあります。 |
| タイプ | 説明 |
|---|---|
| アレイ | 代理人によるアイテムの要求が許可されていないユーザーの名前 (ユーザー [sys_user] テーブルの Name 列) のリスト。 |
この例は、代理人によるアイテムの要求が許可されていないユーザーの名前のリストを取得する方法を示しています。
function getInvalidDelegatedUsers(itemId, userIds) {
var catItem = new sn_sc.CatItem(itemId);
var invalidUsers = catItem.getInvalidDelegatedUsers(userIds);
return invalidUsers;
}
出力:
[
"Joe Smith",
"Jenny Brown",
"Fred Bennet",
"Alice Jones"
]
CatItem - getRecordClass()
現在のカタログアイテムレコードのクラス名を返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| 文字列 | 現在のカタログアイテムレコードのクラス名 |
例:
var CatItem=new sn_sc.CatItem("04b7e94b4f7b4200086eeed18110c7fd");
console.log(CatItem.getRecordClass());
出力:
sc_cat_item
CatItem - isDelegationAllowed(文字列 delegatedUser)
指定された代理人ユーザーが現在のサービスカタログアイテムに対する取得権を持っているかどうかを確認します。
| 名前 | タイプ | 説明 |
|---|---|---|
| delegatedUser | 文字列 | オプション。サービスカタログアイテムを要求するユーザー (代理人) の sys_id。このメソッドは、ユーザーがアイテムに対する取得権を持っているかどうかを検証します。 デフォルト:呼び出し元ユーザーがアイテムに対する取得権を持っているかどうかを確認します。 |
| タイプ | 説明 |
|---|---|
| ブーリアン | ユーザーが現在のサービスカタログアイテムに対する取得権を持っているかどうかを示すフラグ。 有効な値:
|
このコード例は、カタログアイテムの委任が許可されているかどうかを判断する方法を示しています。
function canRequestFor(itemId, user) {
var catItem = new sn_sc.CatItem(itemId);
var result = catItem.isDelegationAllowed(user);
return result;
}
出力:true
CatItem - isVisibleServicePortal()
現在のカタログアイテムがサービスポータルで利用可能かどうかを判断します。
| 名前 | タイプ | 説明 |
|---|---|---|
| なし |
| タイプ | 説明 |
|---|---|
| ブーリアン | カタログアイテムが Service Portal で利用可能かどうかを示すフラグ。 有効な値:
|
例:
var catItem = new sn_sc.CatItem("04b7e94b4f7b4200086eeed18110c7fd");
var catItemAvail = catItem.isVisibleServicePortal();
gs.info("Is item available on Service Portal: " + catItemAvail);
出力:
Is item available on Service Portal: true
CatItem - notAvailableForUserCriteria(文字列 action, アレイ criteriaIDs)
Not Available For ユーザー基準をカタログアイテムに追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| action | 文字列 | 実行するアクション。
|
| タイプ | 説明 |
|---|---|
| なし |
この例は、指定された Not Available For ユーザー基準を追加する方法を示しています。
var item = new sn_sc.CatItem("31bea3d53790200044e0bfc8bcbe5dec");
item. notAvailableForUserCriteria("add", ["0c441abbc6112275000025157c651c89"]);
CatItem - read(オブジェクト columns, ブール standardUpdate)
カタログアイテムの属性値のマッピングを返します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 列 | オブジェクト | 値を返す列の名前/値ペア。 |
| standardUpdate | ブーリアン | エンジンとワークフローの実行を有効にするかどうかを示すフラグです。 有効な値:
|
| タイプ | 説明 |
|---|---|
| オブジェクト | 列名と値のマッピング。 |
この例は、カタログアイテムの name フィールドと price フィールドを読み取ります。
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(オブジェクト attributes)
カタログアイテムの属性を設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 属性 | オブジェクト | 設定する列の名前/値ペア。 |
| タイプ | 説明 |
|---|---|
| なし |
この例は、新しいカタログアイテムの属性を設定します。
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);
}
出力:
Catalog item created in table sc_cat_item with sys_id 706948a287e370103a730f2d0ebb351e
CatItem - setCatalogs(文字列 catalogs)
このカタログアイテムに関連付けるカタログを定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| catalogs | 文字列 | アイテムに関連付けるカタログの sys_id のカンマ区切りリスト。 |
| タイプ | 説明 |
|---|---|
| なし |
この例は、カタログアイテムを 2 つのカタログに関連付けます。
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(文字列 categories)
このカタログアイテムを関連付けるカテゴリを定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| カテゴリ | 文字列 | アイテムに関連付けるカテゴリの sys_id のカンマ区切りリスト。 |
| タイプ | 説明 |
|---|---|
| なし |
この例は、2 つのカテゴリをアイテムに関連付ける方法を示しています。
var catItem = new sn_sc.CatItem("060f3afa3731300054b6a3549dbe5d3e");
catItem.setCatagories("af443cfa5f130100a9ad2572f2b47747", "d467125fd7500200d74460affd6103a1");
CatItem - setImage(文字列 dbImageSysId, 文字列 type)
カタログアイテムに画像を追加します。
| 名前 | タイプ | 説明 |
|---|---|---|
| dbImageSysId | 文字列 | 画像テーブル [db_image] の画像の sys_id。 |
| type | 文字列 | 画像のタイプ。 有効な値:
|
| タイプ | 説明 |
|---|---|
| なし |
この例は、カタログアイテムに画像を追加します。
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(文字列 tableName)
このカタログアイテムのテーブル名を定義します。
| 名前 | タイプ | 説明 |
|---|---|---|
| tableName | 文字列 | カタログアイテム [sc_cat_item] を拡張するテーブルの名前。 |
| タイプ | 説明 |
|---|---|
| なし |
この例は、拡張されるテーブルの名前を設定する方法を示しています。
var catItem = new sn_sc.CatItem();
catItem.setTableName("New_catalog_table");
CatItem - submitProducer(オブジェクト values)
指定された サービスカタログ レコードプロデューサーを使用してレコードを作成します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 値 | オブジェクト | レコードの作成時に使用するフィールド値とレコードプロデューサーが含まれます。 |
| values.variables | オブジェクト | 新しいレコードのために設定するフィールド値。 |
| values.sysparm_id | 文字列 | レコードプロデューサー [sc_cat_item_producer] テーブルから使用するレコードプロデューサーの sys_id。 |
| タイプ | 説明 |
|---|---|
| オブジェクト | 作成されたレコードに関する情報が含まれます。 |
| <Object>.number | 作成されたレコードの Number フィールドの値。 データタイプ:文字列 |
| <Object>.parent_id | 親レコードの sys_id。 データタイプ:文字列 |
| <Object>.parent_table | レコードが作成されたテーブルの親テーブル。 データタイプ:文字列 |
| <Object>.record | 作成されたレコードの XML。 データタイプ:文字列 |
| <Object>.redirect_portal_url | サービスポータル のリダイレクト先 URL。 データタイプ:文字列 |
| <Object>.redirect_to | リダイレクト値 データタイプ:文字列 |
| <Object>.redirect_url | 作成されたレコードの URL。 データタイプ:文字列 |
| <Object>.sys_id | 作成されたレコードの sys_id。 データタイプ:文字列 |
| <Object>.table | レコードが作成されたテーブル。 データタイプ:文字列 |
この例は、Create 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));
出力:
{
"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(オブジェクト columnValues, ブール standardUpdate)
カタログアイテムの指定されたフィールドの値を更新します。
| 名前 | タイプ | 説明 |
|---|---|---|
| columnValues | オブジェクト | 更新するフィールドの名前/値ペアとそれに関連付けられた値。 |
| standardUpdate | ブーリアン | エンジンとワークフローの実行を有効にするかどうかを示すフラグです。 有効な値:
|
| タイプ | 説明 |
|---|---|
| なし |
この例は、既存のカタログアイテムの名前、簡単な説明、および価格を更新します。
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