CatItem :スコープ対象

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:26分
  • CatItem API は、スクリプトを使用してサービスカタログアイテムを作成および変更できるようにするメソッドを提供します。

    この API は sn_sc 名前空間で実行されます。

    CatItem - availableForUserCriteria(文字列 action, アレイ criteriaIDs)

    Available For ユーザー基準を現在のカタログアイテムに追加します。

    表 : 1. パラメーター
    名前 タイプ 説明
    action 文字列 実行するアクション。
    • add:ユーザー基準を [利用可能] リストに追加します。
    • delete:ユーザー基準を [利用可能] リストから削除します。
    criteriaIDs アレイ ユーザー基準 sys_id のアレイ
    表 : 2. 返される内容
    タイプ 説明
    なし

    この例は、指定された Available For ユーザー基準を追加する方法を示しています。

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

    CatItem - canViewInDomain()

    選択されたドメイン (ドメインピッカーで選択されたドメイン) で、現在のカタログアイテムが表示可能かどうかを検証します。

    グローバルドメインのカタログアイテムは、すべてのドメインで利用可能です。

    表 : 3. パラメーター
    名前 タイプ 説明
    なし
    表 : 4. 返される内容
    タイプ 説明
    ブーリアン 選択されたドメインで現在のカタログアイテムが表示可能かどうかを検証するフラグ。

    有効な値:

    • true:ドメインでカタログアイテムは表示可能です。
    • false:ドメインでカタログアイテムは表示可能ではありません。

    この例は、現在選択されているドメインでカタログアイテムが表示可能かどうかを検証する方法を示しています。

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

    CatItem - canViewOnSearch(ブール isMobile)

    ユーザーがグローバル検索でカタログアイテムを表示するためのアクセス権を持っているかどうかを判断します。

    表 : 5. パラメーター
    名前 タイプ 説明
    isMobile ブーリアン

    モバイルビューまたはデスクトップビューで検索を実行するかどうかを示すフラグ。

    有効な値:
    • true:モバイルビューで検索を実行します。
    • false:デスクトップビューで検索を実行します。
    表 : 6. 返される内容
    タイプ 説明
    ブーリアン

    ユーザーがグローバル検索でカタログアイテムを表示するためのアクセス権を持っているかどうかを示すフラグ。

    有効な値:
    • true:ユーザーはグローバル検索でカタログアイテムを表示するためのアクセス権を持っています。
    • false:ユーザーはグローバル検索でカタログアイテムを表示するためのアクセス権を持っていません。

    このコード例は、ユーザーがデスクトップビューでのグローバル検索でカタログアイテムを表示するためのアクセス権を持っているかどうかを確認する方法を示しています。

    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)

    定義されたカタログアイテムを挿入します。

    表 : 7. パラメーター
    名前 タイプ 説明
    standardUpdate ブーリアン エンジンとワークフローの実行を有効にするかどうかを示すフラグです。
    有効な値:
    • true:エンジンとワークフローの実行を有効にします。
    • false:エンジンとワークフローの実行を有効にしません。テーブル内で既に作成、更新されているシステム日付列は更新されないことに留意してください。
    表 : 8. 返される内容
    タイプ 説明
    文字列 新たに作成されたカタログアイテムの 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)

    カタログアイテムを削除します。

    表 : 9. パラメーター
    名前 タイプ 説明
    standardUpdate ブーリアン エンジンとワークフローの実行を有効にするかどうかを示すフラグです。
    有効な値:
    • true:エンジンとワークフローの実行を有効にします。
    • false:エンジンとワークフローの実行を有効にしません。
    表 : 10. 返される内容
    タイプ 説明
    なし

    この例は、非アクティブなすべてのカタログアイテムを削除します。

    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)

    ユーザーがカタログで表示できる最初のカテゴリを返します。

    表 : 11. パラメーター
    名前 タイプ 説明
    catalogId 文字列 カタログの sys_id。
    表 : 12. 返される内容
    タイプ 説明
    文字列 ユーザーがカタログで表示できる最初のカテゴリの sys_id。

    例:

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

    出力:

    d258b953c611227a0146101fb1be7c31

    CatItem - getInvalidDelegatedUsers(アレイ requestForUsers)

    関連付けられたアイテムの委任 (代理で要求) が許可されていないユーザーのアレイを返します 。

    このメソッドは、アレイで渡された各ユーザーを検証します。

    表 : 13. パラメーター
    名前 タイプ 説明
    requestForUsers オブジェクト 関連付けられたユーザーが現在のアイテムを取得できるかどうか、またそのアイテムは代理で要求できるかどうかを確認するためのユーザー sys_id のアレイ。

    テーブル:ユーザー [sys_user]

    表 : 14. 戻り値
    タイプ 説明
    アレイ 代理人がアイテムを要求できないユーザー名のリスト (ユーザー [sys_user] テーブルの [名前] 列)。

    この例では、代理人がアイテムを要求できないユーザー名のリストを取得する方法を示します。

    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()

    現在のカタログアイテムレコードのクラス名を返します。

    表 : 15. パラメーター
    名前 タイプ 説明
    なし
    表 : 16. 返される内容
    タイプ 説明
    文字列 現在のカタログアイテムレコードのクラス名

    例:

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

    出力:

    sc_cat_item

    CatItem - isDelegationAllowed(文字列 delegatedUser)

    指定された代理人ユーザーが現在のサービスカタログアイテムに対する取得権を持っているかどうかを確認します。

    表 : 17. パラメーター
    名前 タイプ 説明
    delegatedUser 文字列 オプション。サービスカタログアイテムを要求するユーザー (代理人) の sys_id。このメソッドは、ユーザーがアイテムに対する取得権を持っているかどうかを検証します。

    デフォルト:呼び出し元ユーザーがアイテムに対する取得権を持っているかどうかを確認します。

    表 : 18. 返される内容
    タイプ 説明
    ブーリアン ユーザーが現在のサービスカタログアイテムに対する取得権を持っているかどうかを示すフラグ。
    有効な値:
    • true:ユーザーはアイテムに対する取得権を持っています。
    • false:ユーザーはアイテムに対する取得権を持っていません。

    このコード例は、カタログアイテムの委任が許可されているかどうかを判断する方法を示しています。

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

    出力:true

    CatItem - isVisibleServicePortal()

    現在のカタログアイテムがサービスポータルで利用可能かどうかを判断します。

    表 : 19. パラメーター
    名前 タイプ 説明
    なし
    表 : 20. 返される内容
    タイプ 説明
    ブーリアン

    カタログアイテムが Service Portal で利用可能かどうかを示すフラグ。

    有効な値:
    • true:Service Portal で利用可能です。
    • true: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 ユーザー基準をカタログアイテムに追加します。

    表 : 21. パラメーター
    名前 タイプ 説明
    action 文字列 実行するアクション。
    • add:ユーザー基準を [利用不可] リストに追加します。
    • delete:ユーザー基準を [利用不可] リストから削除します。
    表 : 22. 返される内容
    タイプ 説明
    なし

    この例は、指定された Not Available For ユーザー基準を追加する方法を示しています。

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

    CatItem - read(オブジェクト columns, ブール standardUpdate)

    カタログアイテムの属性値のマッピングを返します。

    表 : 23. パラメーター
    名前 タイプ 説明
    オブジェクト 値を返す列の名前/値ペア。
    standardUpdate ブーリアン エンジンとワークフローの実行を有効にするかどうかを示すフラグです。
    有効な値:
    • true:エンジンとワークフローの実行を有効にします。
    • false:エンジンとワークフローの実行を有効にしません。
    表 : 24. 返される内容
    タイプ 説明
    オブジェクト 列名と値のマッピング。

    この例は、カタログアイテムの 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: 1100

    CatItem - setAttributes(オブジェクト attributes)

    カタログアイテムの属性を設定します。

    表 : 25. パラメーター
    名前 タイプ 説明
    属性 オブジェクト 設定する列の名前/値ペア。
    表 : 26. 返される内容
    タイプ 説明
    なし

    この例は、新しいカタログアイテムの属性を設定します。

    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)

    このカタログアイテムに関連付けるカタログを定義します。

    表 : 27. パラメーター
    名前 タイプ 説明
    catalogs 文字列 アイテムに関連付けるカタログの sys_id のカンマ区切りリスト。
    表 : 28. 返される内容
    タイプ 説明
    なし

    この例は、カタログアイテムを 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 d0c5dcaa872770103a730f2d0ebb35cb

    CatItem - setCategories(文字列 categories)

    このカタログアイテムを関連付けるカテゴリを定義します。

    表 : 29. パラメーター
    名前 タイプ 説明
    カテゴリ 文字列 アイテムに関連付けるカテゴリの sys_id のカンマ区切りリスト。
    表 : 30. 返される内容
    タイプ 説明
    なし

    この例は、2 つのカテゴリをアイテムに関連付ける方法を示しています。

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

    CatItem - setImage(文字列 dbImageSysId, 文字列 type)

    カタログアイテムに画像を追加します。

    表 : 31. パラメーター
    名前 タイプ 説明
    dbImageSysId 文字列 画像テーブル [db_image] の画像の sys_id。
    type 文字列 画像のタイプ。
    有効な値:
    • 画像
    • アイコン
    表 : 32. 返される内容
    タイプ 説明
    なし

    この例は、カタログアイテムに画像を追加します。

    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)

    このカタログアイテムのテーブル名を定義します。

    表 : 33. パラメーター
    名前 タイプ 説明
    tableName 文字列 カタログアイテム [sc_cat_item] を拡張するテーブルの名前。
    表 : 34. 返される内容
    タイプ 説明
    なし

    この例は、拡張されるテーブルの名前を設定する方法を示しています。

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

    CatItem - submitProducer(オブジェクト values)

    指定された サービスカタログ レコードプロデューサーを使用してレコードを作成します。

    表 : 35. パラメーター
    名前 タイプ 説明
    オブジェクト レコードの作成時に使用するフィールド値とレコードプロデューサーが含まれます。
    {
      "variables": {Object},
      "sysparm_id": "String"
    }
    values.variables オブジェクト 新しいレコードのために設定するフィールド値。
    {
       "field": "String",
       "field": "String"
    }
    values.sysparm_id 文字列 レコードプロデューサー [sc_cat_item_producer] テーブルから使用するレコードプロデューサーの sys_id。
    表 : 36. 返される内容
    タイプ 説明
    オブジェクト 作成されたレコードに関する情報が含まれます。
    {
       "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>.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)

    カタログアイテムの指定されたフィールドの値を更新します。

    表 : 37. パラメーター
    名前 タイプ 説明
    columnValues オブジェクト 更新するフィールドの名前/値ペアとそれに関連付けられた値。
    standardUpdate ブーリアン エンジンとワークフローの実行を有効にするかどうかを示すフラグです。
    有効な値:
    • true:エンジンとワークフローの実行を有効にします。
    • false:エンジンとワークフローの実行を有効にしません。
    表 : 38. 返される内容
    タイプ 説明
    なし

    この例は、既存のカタログアイテムの名前、簡単な説明、および価格を更新します。

    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