API ProductInstance - com escopo, global

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 5 min. de leitura
  • A API ProductInstance gera um identificador de instância de produto (PID), recupera dados de configuração de PID e determina se uma categoria de modelo é uma instância de produto.

    Esta API é executada no namespace sn_cmdb e requer a função category_manager ou snc_internal. O acesso também é concedido a usuários com ACLs para a tabela Categoria de modelo [cmdb_model_category]. Você pode exibir as ACLs na tabela Tabela [sys_db_object].

    Um PID é um identificador exclusivo para uma instância de produto e vincula o ativo, o IC e um item-base de instalação (IBI) para sincronizar atualizações entre representações de produto comuns. Uma instância de produto está associada a ativos de uma categoria de modelo específica.

    O acesso aos itens-base de instalação requer o plug-in Customer Service Install Base Management (com.snc.install_base).

    ProductInstance – generatePID(cadeia de caracteres className, cadeia de caracteres modelCategorySysId, objeto jsonKeyValues)

    Gera o valor de hash da instância do produto e o retorna.

    Este método pode ser invocado várias vezes sem afetar o desempenho da aplicação de chamada. Este método não modifica nenhum dado no banco de dados e armazena em cache os dados necessários para calcular o PID.

    Um identificador de instância de produto (PID) é um identificador exclusivo de uma instância de produto e vincula ativos, ICs e itens-base de instalação (IBI).

    Um PID é gerado com base nos seguintes itens definidos na tabela Configurações do identificador de instância do produto [product_instance_identifier_configuration]:
    • Configurações de PID (somente leitura)
    • Ordem atribuída a cada configuração
    Consulte também Product Instance feature in Hardware Asset Management.
    Tabela 1. Parâmetros
    Nome Tipo Descrição
    className Cadeia de caracteres Nome da tabela para o PID a ser gerado.
    modelCategorySysId Cadeia de caracteres O sys_id da categoria do modelo na tabela Categorias de modelo [cmdb_model_category]. Para obter informações, consulte Model categories.
    jsonKeyValues Objeto Par de chave-valor JSON de parâmetros PID configurados na tabela Configurações do identificador de instância do produto [product_instance_identifier_configuration].

    Os pares de chave-valor contêm nomes de atributo com seus valores correspondentes. Esses valores variam de acordo com as propriedades de configuração definidas para o PID.

    Tabela 2. Retorna
    Tipo Descrição
    Objeto Informações usadas para gerar o PID.
    O objeto retorna com um valor de propriedade product_instance_id vazio nas seguintes condições:
    • O PID não tem os atributos de configuração de PID necessários. A configuração do PID está na tabela Configurações do identificador de instância do produto [product_instance_identifier_configuration].
    • A classe fornecida não tem uma instância de produto associada.
    {
      "model_category_sysId": "String",
      "parameters": [Array],
      "product_instance_id": "String"
    }
    <Object>.model_category_sysId O sys_id da categoria de produto na tabela Categorias de modelo [cmdb_model_category].

    Este valor pode ser diferente do valor de entrada se a hierarquia da categoria do modelo tiver sido usada para gerar o PID.

    Tipo de dados: cadeia de caracteres

    <Object>.parâmetros Lista de parâmetros usados para gerar o PID e definidos na tabela Configurações do identificador de instância do produto [product_instance_identifier_configuration].

    Tipo de dados: matriz de cadeias de caracteres

    <Object>.product_instance_id PID no campo product_instance_id de um ativo, IC ou item-base de instalação.
    O valor de hash do PID pode ser definido nesta propriedade para sincronizar valores comuns em objetos de uma das seguintes tabelas:
    • Ativos [alm_asset]
    • Itens de configuração [cmdb_ci]
    • Itens-base de instalação [sn_install_base_item]
    Os itens-base de instalação exigem o plug-in Customer Service Install Base Management (com.snc.install_base).

    Tipo de dados: cadeia de caracteres

    O exemplo a seguir mostra como criar um PID para um ativo na tabela Ativos médicos [sn_ent_medical_asset]. Esta tabela está incluída com o plug-in Customer Service Install Base Management (com.snc.install_base).

    var output = sn_cmdb.ProductInstance.generatePID('sn_ent_medical_asset', '4b8aa89a77710110dd5fca22fe5a9984', { "serial_number" : "SN1001"});
    gs.info(JSON.stringify(output,null,'\t'));

    Saída:

    {
      "model_category_sysId": "4b8aa89a77710110dd5fca22fe5a9984",
      "product_instance_id": "tw8QgznsS4cP3b4U0+rSbnbIWxirYpeVSquk3g81K/8=",
      "parameters": [
        "serial_number"
      ]
    }

    ProductInstance – getPIDConfig(cadeia de caracteres className, cadeia de caracteres modelCategorySysId)

    Obtém a configuração de PID associada à categoria do modelo com base na hierarquia e no nome da classe.

    Este método verifica todas as hierarquias para a categoria de modelo e retorna as configurações de PID para a primeira categoria de modelo encontrada.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    className Cadeia de caracteres Nome da tabela para o PID a ser gerado.
    modelCategorySysId Cadeia de caracteres O sys_id da categoria do modelo na tabela Categorias de modelo [cmdb_model_category]. Para obter informações, consulte Model categories.
    Tabela 4. Retorna
    Tipo Descrição
    Objeto Objeto JSON que contém as configurações de PID associadas ao nome de classe e à categoria do modelo fornecidos.
    {
      "model_category_sysId": "String",
      "configs": [Array]
    }
    <Object>.model_category_sysId O sys_id da categoria de produto na tabela Categorias de modelo [cmdb_model_category].

    Este valor pode ser diferente do valor de entrada se a hierarquia da categoria do modelo tiver sido usada para gerar o PID.

    Tipo de dados: cadeia de caracteres

    <Object>.configs Lista de cada configuração associada à categoria de modelo fornecida.
    
    "configs": [
     {
      "configuration_order": Number,
      "parameters": [Array]
     }
    ]

    Tipo de dados: matriz

    <Object>.configs.configuration_order Retorna a ordem da configuração definida na tabela Parâmetros do identificador de instância do produto [product_instance_identifier_parameters].

    Tipo de dados: número

    <Object>.configs.parâmetros Lista de todos os parâmetros associados à configuração e sua ordem.
    "parameters": [
      {
       "parameter_class_attribute_name": "String",
       "parameter_class_name": "String",
       "parameter_name": "String",
       "parameter_order": Number
      }
    ]

    Tipo de dados: matriz de objetos

    <Object>.configs.parameters.parameter_class_attribute_name Nome do parâmetro associado à propriedade parameter_class_name. Esta cadeia de caracteres representa o nome da coluna correspondente a essa classe.

    Tipo de dados: cadeia de caracteres

    <Object>.configs.parameters.parameter_class_name Nome da classe associada ao parâmetro definido na tabela Parâmetros do identificador de instância do produto [product_instance_identifier_parameters].

    Tipo de dados: cadeia de caracteres

    <Object>.configs.parameters.parameter_name Nome do parâmetro definido na tabela Parâmetros do identificador de instância do produto [product_instance_identifier_parameters].

    Tipo de dados: cadeia de caracteres

    <Object>.configs.parameters.parameter_order Ordem do parâmetro definido na tabela Parâmetros do identificador de instância do produto [product_instance_identifier_parameters].

    Tipo de dados: número

    O exemplo a seguir mostra como recuperar detalhes de configuração para uma categoria de modelo chamada na tabela de ativos médicos [sn_ent_medical_asset]. Esta tabela está incluída com o plug-in Customer Service Install Base Management (com.snc.install_base).

    var config = sn_cmdb.ProductInstance.getPIDConfig('sn_ent_medical_asset', '4b8aa89a77710110dd5fca22fe5a9984');
    gs.info(JSON.stringify(config,null,'\t'));

    Saída:

    {
      "model_category_sysId": "4b8aa89a77710110dd5fca22fe5a9984",
      "configs": [
        {
          "parameters": [
            {
              "parameter_class_attribute_name": "serial_number",
              "parameter_class_name": "sn_ent_medical_asset",
              "parameter_name": "serial_number",
              "parameter_order": 1
            }
          ],
          "configuration_order": 100
        },
        {
          "parameters": [
            {
              "parameter_class_attribute_name": "parent",
              "parameter_class_name": "sn_ent_medical_asset",
              "parameter_name": "parent_asset",
              "parameter_order": 1
            },
            {
              "parameter_class_attribute_name": "model_component_id",
              "parameter_class_name": "sn_ent_medical_asset",
              "parameter_name": "model_component_id",
              "parameter_order": 2
            }
          ],
          "configuration_order": 200
        }
      ]
    }

    ProductInstance – isProductInstance(cadeia de caracteres modelCategorySysId)

    Verifica se uma determinada categoria de modelo é uma instância de produto.

    Se ambas as condições a seguir forem atendidas, a categoria do modelo se qualificará como uma instância de produto:
    • O valor do sinalizador is_model_category da categoria do modelo é verdadeiro.
    • A categoria do modelo tem uma configuração válida definida para ela na tabela Configurações do identificador de instância do produto [product_instance_identifier_configuration].

    Este método pode ser usado em regras de negócio antes de invocar o método generatePID().

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    modelCategorySysId Cadeia de caracteres O sys_id da categoria do modelo na tabela Categorias de modelo [cmdb_model_category]. Para obter informações, consulte Model categories.
    Tabela 6. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se a categoria do modelo fornecida é uma instância de produto.
    Valores válidos:
    • verdadeiro: a categoria do modelo fornecida é uma instância de produto.
    • false: a categoria do modelo fornecida não é uma instância de produto.

    O exemplo a seguir mostra como determinar se a categoria do modelo fornecida é uma instância de produto.

    var isProductInstance =  sn_cmdb.ProductInstance.isProductInstance('4b8aa89a77710110dd5fca22fe5a9984');
    gs.info(isProductInstance);

    Saída:

    true