CatItem - com escopo

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 12 min. de leitura
  • A API CatItem permite criar e modificar itens do catálogo de serviços usando scripts.

    Esta API é executada no namespace sn_sc.

    CatItem - availableForUserCriteria(ação de cadeia de caracteres,Critérios de matrizIDs)

    Adiciona os critérios do usuário Available For ao item do catálogo atual.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    ação Cadeia de caracteres Ação a ser executada.
    • add: adiciona os critérios do usuário à lista Disponível para.
    • delete: exclui os critérios do usuário da lista Disponível para.
    IDs de critérios Matriz Matriz dos critérios do usuário sys_ids.
    Tabela 2. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como adicionar os critérios do usuário Available For especificados.

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

    CatItem - canViewOnSearch(boolean isMobile)

    Determina se o usuário tem acesso para exibir o item do catálogo na pesquisa global.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    isMobile Booliano

    Sinalizador que indica se a pesquisa deve ser realizada para a exibição móvel ou da área de trabalho.

    Valores válidos:
    • verdadeiro: executa a pesquisa da exibição móvel.
    • falso: executa a pesquisa da exibição da área de trabalho.
    Tabela 4. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se o usuário tem acesso para exibir o item do catálogo na pesquisa global.

    Valores válidos:
    • verdadeiro: o usuário tem acesso para exibir o item do catálogo na pesquisa global.
    • falso: o usuário não tem acesso para exibir o item do catálogo na pesquisa global.

    Este exemplo de código mostra como verificar se o usuário tem acesso para exibir o item do catálogo na pesquisa global na exibição da área de trabalho.

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

    Saída:

    Can view on global search: true

    CatItem – canViewInDomain()

    Verifica se o item do catálogo atual pode ser exibido no domínio selecionado (domínio selecionado no seletor de domínio).

    Os itens do catálogo no domínio global estão disponíveis em todos os domínios.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    Tipo Descrição
    Booliano Sinalizador que valida se o item do catálogo atual pode ser exibido no domínio selecionado.

    Valores válidos:

    • verdadeiro: o item do catálogo pode ser visualizado no domínio
    • falso: o item do catálogo não pode ser exibido no domínio

    Este exemplo mostra como verificar se um item do catálogo pode ser visualizado no domínio selecionado no momento.

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

    CatItem - create(Boolean standardUpdate)

    Insere o item do catálogo definido.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    padrãoAtualizar Booliano Sinalizador que indica se a execução de mecanismos e fluxo de trabalho deve ser habilitada.
    Valores válidos:
    • verdadeiro: habilita a execução de mecanismos e fluxo de trabalho.
    • falso: não habilite a execução de mecanismos e fluxo de trabalho. Observe que as colunas de data do sistema criadas e atualizadas na tabela não são atualizadas.
    Tabela 8. Retorna
    Tipo Descrição
    Cadeia de caracteres Sys_id do item do catálogo recém-criado.

    Este exemplo cria um novo item do catálogo e adiciona uma variável e um conjunto de variáveis.

    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);
    }

    Saída:

    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)

    Exclui um item do catálogo.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    padrãoAtualizar Booliano Sinalizador que indica se a execução de mecanismos e fluxo de trabalho deve ser habilitada.
    Valores válidos:
    • verdadeiro: habilita a execução de mecanismos e fluxo de trabalho.
    • falso: não habilite a execução de mecanismos e fluxo de trabalho.
    Tabela 10. Retorna
    Tipo Descrição
    vazio

    Este exemplo exclui todos os itens do catálogo inativos.

    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(cadeia de caracteres catalogId)

    Retorna a primeira categoria que o usuário pode exibir em um catálogo.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    IdCatálogo Cadeia de caracteres Sys_id do catálogo.
    Tabela 12. Retorna
    Tipo Descrição
    Cadeia de caracteres Sys_id da primeira categoria que o usuário pode exibir em um catálogo.

    Exemplo:

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

    Saída:

    d258b953c611227a0146101fb1be7c31

    CatItem - getInvalidDelegatedUsers(matriz requestForUsers)

    Retorna uma matriz de usuários para os quais o item associado não pode ser delegado (solicitado em nome de).

    O método verifica cada um dos usuários aprovados na matriz.

    Tabela 13. Parâmetros
    Nome Tipo Descrição
    requestForUsers Objeto Matriz de sys_ids do usuário para verificar se o usuário associado pode adquirir o item atual e se o item pode ser solicitado em nome dele. O usuário sys_ids está localizado na tabela Usuários [sys_user].
    Tabela 14. Retorna
    Tipo Descrição
    Matriz Lista de nomes de usuário (coluna Nome da tabela Usuários [sys_user]) para os quais o item não pode ser solicitado por um delegado.

    Este exemplo mostra como obter uma lista de nomes de usuários para os quais o item não pode ser solicitado por um delegado.

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

    Saída:

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

    CatItem – getRecordClass()

    Retorna o nome da classe do registro de item do catálogo atual.

    Tabela 15. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 16. Retorna
    Tipo Descrição
    Cadeia de caracteres Nome da classe para o registro do item do catálogo atual.

    Exemplo:

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

    Saída:

    sc_cat_item

    CatItem - isDelegationAllowed(cadeia de caracteres "delegatedUser")

    Verifica se o usuário delegado especificado tem direitos de aquisição para o item do catálogo de serviços atual.

    Tabela 17. Parâmetros
    Nome Tipo Descrição
    delegadoUsuário Cadeia de caracteres Opcional. Sys_id do usuário para o qual solicitar o item do catálogo de serviços (delegar). O método verifica se o usuário tem direitos de aquisição para o item.

    Padrão: verifica se o usuário que faz a chamada tem direitos de aquisição para o item.

    Tabela 18. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se o usuário tem direitos de aquisição para o item do catálogo de serviços atual.
    Valores válidos:
    • verdadeiro: o usuário tem direitos de aquisição para o item.
    • falso: o usuário não tem direitos de aquisição para o item.

    Este exemplo de código mostra como determinar se a delegação é permitida para o item do catálogo.

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

    Saída: verdadeiro

    CatItem - isVisibleServicePortal()

    Determina se o item do catálogo atual está disponível no portal de serviços.

    Tabela 19. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 20. Retorna
    Tipo Descrição
    Booliano

    Sinalizador que indica se o item do catálogo está disponível no Portal de serviços.

    Valores válidos:
    • verdadeiro: disponível no Portal de serviços.
    • falso: não disponível no Portal de serviços.

    Exemplo:

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

    Saída:

    Is item available on Service Portal: true

    CatItem - notAvailableForUserCriteria(cadeia de caracteres "ação", "IDs de critério de matriz")

    Adiciona os critérios do usuário Not Available For a um item do catálogo.

    Tabela 21. Parâmetros
    Nome Tipo Descrição
    ação Cadeia de caracteres Ação a ser executada.
    • add: adiciona os critérios do usuário à lista Não disponível para.
    • delete: exclui os critérios do usuário da lista Não disponível para.
    Tabela 22. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como adicionar os critérios do usuário Not Available For especificados.

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

    CatItem - read(colunas de objeto, booliano standardUpdate)

    Retorna um mapeamento de valores de atributo do item do catálogo.

    Tabela 23. Parâmetros
    Nome Tipo Descrição
    colunas Objeto Pares de nome-valor de colunas para os quais os valores serão retornados.
    padrãoAtualizar Booliano Sinalizador que indica se a execução de mecanismos e fluxo de trabalho deve ser habilitada.
    Valores válidos:
    • verdadeiro: habilita a execução de mecanismos e fluxo de trabalho.
    • falso: não habilite a execução de mecanismos e fluxo de trabalho.
    Tabela 24. Retorna
    Tipo Descrição
    Objeto Mapeamento de nomes de coluna para valores.

    Este exemplo lê os campos de nome e preço de um item do catálogo.

    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);
    Saída:
    Catalog item name: Standard Laptop
    Catalog item price: 1100

    CatItem - setAttributes (atributos do objeto)

    Define atributos para um item do catálogo.

    Tabela 25. Parâmetros
    Nome Tipo Descrição
    atributos Objeto Pares de nome-valor das colunas para as quais definir.
    Tabela 26. Retorna
    Tipo Descrição
    vazio

    Este exemplo define atributos para um novo item do catálogo.

    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);
    }

    Saída:

    Catalog item created in table sc_cat_item with sys_id 706948a287e370103a730f2d0ebb351e

    CatItem - setCatalogs(Cadeia de caracteres catalogs)

    Define os catálogos aos quais este item do catálogo está associado.

    Tabela 27. Parâmetros
    Nome Tipo Descrição
    catálogos Cadeia de caracteres Lista separada por vírgulas de sys_ids dos catálogos a serem associados ao item.
    Tabela 28. Retorna
    Tipo Descrição
    vazio

    Este exemplo associa um item do catálogo a dois catálogos.

    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);
    Saída:
    Catalog item created in table sc_cat_item with sys_id d0c5dcaa872770103a730f2d0ebb35cb

    CatItem - setCategories(cadeia de caracteres categorias)

    Define as categorias às quais este item do catálogo está associado.

    Tabela 29. Parâmetros
    Nome Tipo Descrição
    categorias Cadeia de caracteres Lista separada por vírgulas de sys_ids das categorias a serem associadas ao item.
    Tabela 30. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como associar duas categorias a um item.

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

    CatItem - setImage(cadeia de caracteres dbImageSysId, tipo de cadeia de caracteres)

    Adiciona uma imagem a um item do catálogo.

    Tabela 31. Parâmetros
    Nome Tipo Descrição
    dbImageSysId Cadeia de caracteres Sys_id da imagem da tabela Imagens [db_image].
    tipo Cadeia de caracteres Tipo de imagem.
    Valores válidos:
    • imagem
    • ícone
    Tabela 32. Retorna
    Tipo Descrição
    vazio

    Este exemplo adiciona uma imagem a um item do catálogo.

    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(cadeia de caracteres "tableName")

    Define o nome da tabela para este item do catálogo.

    Tabela 33. Parâmetros
    Nome Tipo Descrição
    tableName Cadeia de caracteres Nome da tabela que estende o Item do catálogo [sc_cat_item].
    Tabela 34. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como definir o nome de uma tabela estendida.

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

    CatItem - submitProducer (valores do objeto)

    Cria um registro usando um produtor de registro Catálogo de serviços especificado.

    Tabela 35. Parâmetros
    Nome Tipo Descrição
    valores Objeto Contém os valores de campo e o produtor de registro a serem usados ao criar o registro.
    {
      "variables": {Object},
      "sysparm_id": "String"
    }
    valores.variáveis Objeto Os valores de campo a serem definidos para o novo registro.
    {
       "field": "String",
       "field": "String"
    }
    valores.sysparm_id Cadeia de caracteres Sys_id do produtor de registro a ser usado na tabela Produtor de registro [sc_cat_item_producer].
    Tabela 36. Retorna
    Tipo Descrição
    Objeto Contém informações sobre o registro que foi criado.
    {
       "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 Valor do campo Número do registro criado.

    Tipo de dados: cadeia de caracteres

    <Object>.parent_id Sys_id do registro primário.

    Tipo de dados: cadeia de caracteres

    <Object>.parent_table A tabela primária da tabela em que o registro foi criado.

    Tipo de dados: cadeia de caracteres

    <Object>.registro XML do registro criado.

    Tipo de dados: cadeia de caracteres

    <Object>.redirect_portal_url URL para o qual redirecionar o Portal de serviços.

    Tipo de dados: cadeia de caracteres

    <Object>.redirect_to Redirecionar valor.

    Tipo de dados: cadeia de caracteres

    <Object>.redirect_url URL do registro criado.

    Tipo de dados: cadeia de caracteres

    <Object>.sys_id Sys_id do registro criado.

    Tipo de dados: cadeia de caracteres

    <Object>.table A tabela em que o registro foi criado.

    Tipo de dados: cadeia de caracteres

    Este exemplo cria um incidente usando o produtor de registro Criar incidente.

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

    Saída:

    {
       "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 - atualizar (objeto columnValues, booliano standardUpdate)

    Atualiza os valores dos campos especificados de um item do catálogo.

    Tabela 37. Parâmetros
    Nome Tipo Descrição
    columnValues Objeto Pares de nome-valor dos campos a serem atualizados e seus valores associados.
    padrãoAtualizar Booliano Sinalizador que indica se a execução de mecanismos e fluxo de trabalho deve ser habilitada.
    Valores válidos:
    • verdadeiro: habilita a execução de mecanismos e fluxo de trabalho.
    • falso: não habilite a execução de mecanismos e fluxo de trabalho.
    Tabela 38. Retorna
    Tipo Descrição
    vazio

    Este exemplo atualiza o nome, a descrição resumida e o preço de um item do catálogo existente.

    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);
    }
    Saída:
    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