---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# ProductInstance - com escopo, global

# ProductInstance - com escopo, global {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 6 min. de leitura

A API ProductInstance fornece métodos para gerar um identificador de instância de produto (PID), recuperar dados de configuração de PID e determinar 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 listas de controle de acesso (ACLs) para a tabela Categoria do 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 item de configuraçã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 para instalar itens-base requer o plug-in Gestão de base de instalação do Atendimento ao cliente (com.snc.install_base).  
Consulte também:

* [Model categories](https://www.servicenow.com/docs/access?context=c_ModelCategories&version=xanadu&pubname=xanadu-it-asset-management&ft:locale=en-US)
* [Product Instance feature in Hardware Asset Management](https://www.servicenow.com/docs/access?context=product-instance-for-assets&version=xanadu&pubname=xanadu-it-asset-management&ft:locale=en-US)
* [Create an install base item](https://www.servicenow.com/docs/access?context=create-install-base-item&version=xanadu&pubname=xanadu-customer-service-management&ft:locale=en-US)
{#ProductInstanceBothAPI__ul_d14_5x4_zzb}

## ProductInstance -- generatePID(cadeia de caracteres className, cadeia de caracteres modelCategorySysId, objeto jsonKeyValues) {#ariaid-title2}

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 para 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 de produto \[product_instance_identifier_configuration\]:

* Configurações de PID (somente leitura)
* Ordem atribuída a cada configuração

{#ProductInstance-generatePID_S_S_O__ul_dll_42w_21c}Consulte também [Product Instance feature in Hardware Asset Management](https://www.servicenow.com/docs/access?context=product-instance-for-assets&version=xanadu&pubname=xanadu-it-asset-management&ft:locale=en-US).
{#ProductInstance-generatePID_S_S_O__table_mxt_n4d_tzb__entry__3}

| 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 de modelo na tabela Categorias de modelo \[cmdb_model_category\]. Para obter informações, consulte [Model categories](https://www.servicenow.com/docs/access?context=c_ModelCategories&version=xanadu&pubname=xanadu-it-asset-management&ft:locale=en-US). |
| jsonKeyValues | Objeto | Par de chave-valor JSON de parâmetros PID configurados na tabela Configurações do identificador de instância de 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 1. Parâmetros]

{#ProductInstance-generatePID_S_S_O__table_mxt_n4d_tzb} {#ProductInstance-generatePID_S_S_O__table_nxt_n4d_tzb__entry__2}

| 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. {#ProductInstance-generatePID_S_S_O__ul_u4s_5fx_21c} { "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 de 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 definido na tabela Configurações do identificador de instância de produto \[product_instance_identifier_configuration\]. Tipo de dados: matriz de cadeias de caracteres |
| \<Object\>.id_da_instancia_do_produto | PID no campo product_instance_id de um ativo, IC ou item-base de instalação. O valor com 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\] {#ProductInstance-generatePID_S_S_O__ul_j4s_5cx_21c}Os itens-base de instalação exigem o plug-in Gestão de base de instalação do Atendimento ao cliente (com.snc.install_base). Tipo de dados: cadeia de caracteres |
[Tabela 2. Retorna]

{#ProductInstance-generatePID_S_S_O__table_nxt_n4d_tzb}  
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 Gestão de base de instalação do Atendimento ao cliente (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) {#ariaid-title3}

Obtém a configuração do PID associada à categoria do modelo com base na hierarquia e no nome da classe.
Este método verifica todas as hierarquias da categoria de modelo e retorna as configurações de PID para a primeira categoria de modelo encontrada.
{#ProductInstance-getPIDConfig_S_S__table_mxt_n4d_tzb__entry__3}

| 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 de modelo na tabela Categorias de modelo \[cmdb_model_category\]. Para obter informações, consulte [Model categories](https://www.servicenow.com/docs/access?context=c_ModelCategories&version=xanadu&pubname=xanadu-it-asset-management&ft:locale=en-US). |
[Tabela 3. Parâmetros]

{#ProductInstance-getPIDConfig_S_S__table_mxt_n4d_tzb} {#ProductInstance-getPIDConfig_S_S__table_nxt_n4d_tzb__entry__2}

| Tipo | Descrição |
|-|-|
| Objeto | Objeto JSON que contém as configurações de PID associadas ao nome de classe e à categoria de 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 de 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 de produto \[product_instance_identifier_parameters\]. Tipo de dados: número |
[Tabela 4. Retorna]

{#ProductInstance-getPIDConfig_S_S__table_nxt_n4d_tzb}  
O exemplo a seguir mostra como recuperar detalhes de configuração para uma categoria de modelo chamada na tabela Ativos médicos \[sn_ent_medical_asset\]. Esta tabela está incluída com o plug-in Gestão de base de instalação do Atendimento ao cliente (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) {#ariaid-title4}

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 será qualificada como uma instância de produto:

* O valor do sinalizador is_model_category da categoria de modelo é verdadeiro.
* A categoria de modelo tem uma configuração válida definida para ela na tabela Configurações do identificador de instância de produto \[product_instance_identifier_configuration\].
{#ProductInstance-isProductInstance_S__ul_wpz_wtc_f1c}

Este método pode ser usado em regras de negócio antes de invocar o método generatePID().
{#ProductInstance-isProductInstance_S__table_mxt_n4d_tzb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| modelCategorySysId | Cadeia de caracteres | O sys_id da categoria de modelo na tabela Categorias de modelo \[cmdb_model_category\]. Para obter informações, consulte [Model categories](https://www.servicenow.com/docs/access?context=c_ModelCategories&version=xanadu&pubname=xanadu-it-asset-management&ft:locale=en-US). |
[Tabela 5. Parâmetros]

{#ProductInstance-isProductInstance_S__table_mxt_n4d_tzb} {#ProductInstance-isProductInstance_S__table_nxt_n4d_tzb__entry__2}

| Tipo | Descrição |
|-|-|
| Booliano | Sinalizador que indica se a categoria do modelo fornecida é uma instância de produto. Valores válidos: * verdadeiro: a categoria de modelo fornecida é uma instância de produto. * falso: a categoria de modelo fornecida não é uma instância de produto. {#ProductInstance-isProductInstance_S__ul_ybz_qvw_tzb} |
[Tabela 6. Retorna]

{#ProductInstance-isProductInstance_S__table_nxt_n4d_tzb}  
O exemplo a seguir mostra como determinar se a categoria de modelo fornecida é uma instância de produto.

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

Saída:

    true


