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


---

# CIData - Global

# CIData - Global {#ariaid-title1}

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

A inclusão de script CIData é uma classe de utilitário que fornece métodos para trabalhar com estruturas de dados de item de configuração (IC) em JavaScript.

Esta inclusão de script requer o plug-in Descoberta (com.snc.discovery.core). Você pode usá-lo em qualquer script Descoberta do lado do servidor.

As instâncias desta classe representam um IC (seu registro base e quaisquer listas relacionadas), e os métodos fornecidos permitem carregar ou armazenar o registro base e as listas relacionadas.  
Esta classe atua como um contêiner para classes simples que atuam como mapas de pares de nome/valor de propriedade. Esta classe contém três tipos desses mapas.

* Um único mapa que representa a entrada da tabela de IC base (como uma linha cmdb_ci_linux_server e suas superclasses). Você pode recuperar este mapa usando o método [CIData -- getData()](https://servicenow-prod.fluidtopics.net/7nBf2eCmoFxjv6SLFmrVIA#r_CIData-getData "Obtém o mapa de dados no registro de IC base.").
* Matrizes de mapas que representam as instâncias de listas relacionadas, com cada matriz representando uma única lista relacionada e cada elemento dessa matriz representando uma única linha dessa lista relacionada. Essas matrizes podem ser recuperadas com o método [CIData - getRelatedList(cadeia de caracteres tabela, cadeia de caracteres refField)](https://servicenow-prod.fluidtopics.net/7nBf2eCmoFxjv6SLFmrVIA#r_CIData-getRelatedList_S_S "Obtém uma matriz de mapas de dados na lista relacionada fornecida (para este IC).").
* Matrizes de mapas que representam as instâncias de tabelas de muitos para muitos, com cada matriz representando uma única tabela de muitos para muitos e cada elemento dessa matriz representando uma única linha dessa tabela de muitos para muitos. Essas matrizes podem ser recuperadas com o método [CIData -- getM2MTable(cadeia de caracteres tabela, cadeia de caracteres refField)](https://servicenow-prod.fluidtopics.net/7nBf2eCmoFxjv6SLFmrVIA#r_CIData-getM2MTable_S_S "Retorna uma matriz de mapas de dados na lista de muitos para muitos fornecida (para este IC).").
{#c_CIDataAPI__ul_hhm_3n1_rt}

## CIData - CIData(cadeia de caracteres debugFlag) {#ariaid-title2}

Cria uma instância da classe CIData.
{#r_CIData-CIData_S__table_sjx_wn1_rt__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| debugFlag | Cadeia de caracteres | Sinalizador que indica se o registro em log de depuração deve ser habilitado. Valores válidos: * Verdadeiro: o registro em log de depuração está habilitado. * Falso: o registro em log de depuração não está habilitado. {#r_CIData-CIData_S__ul_z5w_m4p_ppb} |
[Tabela 1. Parâmetros]

{#r_CIData-CIData_S__table_sjx_wn1_rt}  
Este exemplo cria e adiciona uma lista relacionada ao objeto CIData.

    var ciDataObj = new CIData();
    var rl = new CIRelatedList('cmdb_serial_number', 'cmdb_ci');
    var sr = {};
    sr['serial_number_type'] = "bios";
    sr['serial_number'] = "1BC5E4z89246";
    sr['valid'] =  "true";
    rl.addRec(sr);
    ciDataObj.addRelatedList(rl);

## CIData - addRelatedList(Array relatedList) {#ariaid-title3}

Adiciona a lista relacionada especificada a esta instância.
{#r_CIData-addRelatedList_A__table_zkf_mp1_rt__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Lista relacionada | Matriz | Lista relacionada a ser adicionada. |
[Tabela 2. Parâmetros]

{#r_CIData-addRelatedList_A__table_zkf_mp1_rt} {#r_CIData-addRelatedList_A__table_alf_mp1_rt__entry__2}

| Tipo | Descrição |
|-|-|
| vazio |   |
[Tabela 3. Retorna]

{#r_CIData-addRelatedList_A__table_alf_mp1_rt}  
Este exemplo cria e adiciona uma lista relacionada ao objeto CIData.

    var ciDataObj = new CIData();
    var rl = new CIRelatedList('cmdb_serial_number', 'cmdb_ci');
    var sr = {};
    sr['serial_number_type'] = "bios";
    sr['serial_number'] = "1BC5E4z89246";
    sr['valid'] =  "true";
    rl.addRec(sr);
    ciDataObj.addRelatedList(rl);

## CIData - convertRelatedList(String sensor, String tableName, String refField, String keyName) {#ariaid-title4}

Converte a lista relacionada especificada em uma lista relacionada em um determinado sensor.
{#r_CIData-convertRelList_S_S_S_S__table_ldt_by1_rt__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| sensor | Cadeia de caracteres | O sensor |
| tableName | Cadeia de caracteres | O nome da tabela |
| refField | Cadeia de caracteres | O campo de referência |
| keyName | Cadeia de caracteres | O nome da chave |
[Tabela 4. Parâmetros]

{#r_CIData-convertRelList_S_S_S_S__table_ldt_by1_rt} {#r_CIData-convertRelList_S_S_S_S__table_mdt_by1_rt__entry__2}

| Tipo | Descrição |
|-|-|
| vazio |   |
[Tabela 5. Retorna]

{#r_CIData-convertRelList_S_S_S_S__table_mdt_by1_rt}

## CIData - fromXML (cadeia de caracteres xml) {#ariaid-title5}

Inicializa a instância CIData atual da cadeia de caracteres XML especificada.
{#r_CIData-fromXML_S__table_mtf_hx1_rt__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| xml | Cadeia de caracteres | Uma cadeia de caracteres XML. |
[Tabela 6. Parâmetros]

{#r_CIData-fromXML_S__table_mtf_hx1_rt} {#r_CIData-fromXML_S__table_ntf_hx1_rt__entry__2}

| Tipo | Descrição |
|-|-|
| vazio |   |
[Tabela 7. Retorna]

{#r_CIData-fromXML_S__table_ntf_hx1_rt}  
O exemplo a seguir mostra como obter dados de IC formatados por XML de teste coletados durante a descoberta.

    var xmlCIData = '<CIData><data><fld name="cpu_name">Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz</fld><fld name="host_name">ip-172-31-19-95</fld><fld name="kernel_release">3.10.0-1160.45.1.el7.x86_64</fld><fld name="os">Linux CentOS</fld></data></CIData>';

    var ciData = new CIData();

    ciData.fromXML(xmlCIData);
    gs.log(ciData);

Saída:

    CIData instance:
      cpu_name: Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
      host_name: ip-172-31-19-95
      kernel_release: 3.10.0-1160.45.1.el7.x86_64
      os: Linux CentOS
    [object Object]

## CIData -- getData() {#ariaid-title6}

Obtém o mapa de dados no registro de IC base.
{#r_CIData-getData__table_c3h_cp1_rt__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 8. Parâmetros]

{#r_CIData-getData__table_c3h_cp1_rt} {#r_CIData-getData__table_d3h_cp1_rt__entry__2}

| Tipo | Descrição |
|-|-|
| Objeto | O mapa de dados |
[Tabela 9. Retorna]

{#r_CIData-getData__table_d3h_cp1_rt}

## CIData -- getM2MTable(cadeia de caracteres tabela, cadeia de caracteres refField) {#ariaid-title7}

Retorna uma matriz de mapas de dados na lista de muitos para muitos fornecida (para este IC).
{#r_CIData-getM2MTable_S_S__table_qzb_hv1_rt__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| tabela | Cadeia de caracteres | Nome da tabela que contém a lista relacionada. No caso de uma lista de muitos para muitos, este é o nome da tabela de muitos para muitos, não a tabela de destino. |
| refField | Cadeia de caracteres | Nome do campo na lista relacionada que se refere a este IC. No caso de uma lista de muitos para muitos, este é o nome do campo de referência na tabela de muitos para muitos, não na tabela de destino. |
[Tabela 10. Parâmetros]

{#r_CIData-getM2MTable_S_S__table_qzb_hv1_rt} {#r_CIData-getM2MTable_S_S__table_rzb_hv1_rt__entry__2}

| Tipo | Descrição |
|-|-|
| Matriz | Lista de mapas de dados na lista de muitos para muitos fornecida. A lista não está em nenhuma ordem específica. Se esta não for uma lista de muitos para muitos, retornará uma matriz vazia. |
[Tabela 11. Retorna]

{#r_CIData-getM2MTable_S_S__table_rzb_hv1_rt}  
Este exemplo mostra como obter os relacionamentos many-to-many para o campo opened_on da tabela cmdb_software_instance.

    function () {
      //Instantiate a new CIData class object
      var cdta = new CIData();

      //Load the current data from a CI record.
      cdta.loadFromCI('b4fd7c8437201000deeabfc8bcbe5dc1');

      // Returns an Array of Objects (records) of a given M2M related list
      var records = cdta.getM2MTable('cmdb_software_instance', 'installed_on');

      gs.info(JSON.stringify(records, null, 4));

    })();

Saída:

    [
      {
        "sys_id": "208983661b3330106cdf0f26624bcb4b",
        "software": "46c1ec3ca9fe198100beafe77332be9a",
        "sys_updated_on": "2021-11-16 18:32:35",
        "sys_created_on": "2021-11-16 18:32:35",
        "name": "3D Groove Playback Engine-*ANNIE-IBM",
        "installed_on": "b4fd7c8437201000deeabfc8bcbe5dc1"
      },
      {
        "sys_id": "288983661b3330106cdf0f26624bcb4a",
        "software": "0c43bc5fc61122750182c13269a7a3ef",
        "sys_updated_on": "2021-11-16 18:32:35",
        "sys_created_on": "2021-11-16 18:32:35",
        "name": ".NET SDK 2003-*ANNIE-IBM",
        "installed_on": "b4fd7c8437201000deeabfc8bcbe5dc1"
      }
    ]

## CIData - getRelatedList(cadeia de caracteres tabela, cadeia de caracteres refField) {#ariaid-title8}

Obtém uma matriz de mapas de dados na lista relacionada fornecida (para este IC).
A matriz não está em nenhuma ordem específica. No caso de uma lista de muitos para muitos, será uma matriz de instâncias da tabela de destino, não a tabela de muitos para muitos. Por exemplo, a partir de "cmdb_software_instance" e "installed_on" (uma tabela many-to-many e o campo que se refere a um IC), este método retornará uma matriz de mapas que representam instâncias de cmdb_ci_spkg (a tabela de destino).
{#r_CIData-getRelatedList_S_S__table_rgy_451_rt__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| tabela | Cadeia de caracteres | Nome da tabela que contém a lista relacionada. No caso de uma lista de muitos para muitos, este é o nome da tabela de muitos para muitos, não a tabela de destino. |
| refField | Cadeia de caracteres | Nome do campo na lista relacionada que se refere a este IC. No caso de uma lista de muitos para muitos, este é o nome do campo de referência na tabela de muitos para muitos, não na tabela de destino. |
[Tabela 12. Parâmetros]

{#r_CIData-getRelatedList_S_S__table_rgy_451_rt} {#r_CIData-getRelatedList_S_S__table_sgy_451_rt__entry__2}

| Tipo | Descrição |
|-|-|
| Matriz | Uma matriz de mapas de dados na lista relacionada especificada. |
[Tabela 13. Retorna]

{#r_CIData-getRelatedList_S_S__table_sgy_451_rt}

## CIData - getRelatedListInstance(cadeia de caracteres tabela, cadeia de caracteres refField) {#ariaid-title9}

Retorna a instância de CIRelatedList para a lista fornecida.
{#r_CIData-getRelatedListInst_S_S__table_aff_yv1_rt__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| tabela | Cadeia de caracteres | Nome da tabela que contém a lista relacionada. No caso de uma lista de muitos para muitos, este é o nome da tabela de muitos para muitos, não a tabela de destino. |
| refField | Cadeia de caracteres | Nome do campo na lista relacionada que se refere a este IC. No caso de uma lista de muitos para muitos, este é o nome do campo de referência na tabela de muitos para muitos, não na tabela de destino. |
[Tabela 14. Parâmetros]

{#r_CIData-getRelatedListInst_S_S__table_aff_yv1_rt} {#r_CIData-getRelatedListInst_S_S__table_bff_yv1_rt__entry__2}

| Tipo | Descrição |
|-|-|
| Objeto | Instância de `CIRelatedList` para a lista especificada. |
[Tabela 15. Retorna]

{#r_CIData-getRelatedListInst_S_S__table_bff_yv1_rt}  
O exemplo de código a seguir usa o método getRelatedListInstance() para encontrar os relacionamentos de lista relacionados a serem removidos.

    removeAllRelatedList: function(ci_id) {
      var cdta = new CIData('false');
      cdta.init();
      cdta.loadFromCI(ci_id); // Get a Computer CI Instance
      var cirelatedlist = cdta.getRelatedListInstance('cmdb_rel_ci', 'parent'); // Get the CIRelatedList instance holding all relationships of the above CI.
      cirelatedlist.remove(); // Remove all the CI Relationships
    }

## CIData - init() {#ariaid-title10}

Inicializa esta instância em preparação para carregar um novo IC.
{#r_CIData-init__table_zc2_v41_rt__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 16. Parâmetros]

{#r_CIData-init__table_zc2_v41_rt} {#r_CIData-init__table_ad2_v41_rt__entry__2}

| Tipo | Descrição |
|-|-|
| vazio |   |
[Tabela 17. Retorna]

{#r_CIData-init__table_ad2_v41_rt}  

    var cdta = CIData('false');
    cdta.init();

## CIData -- loadFromCI(cadeia de caracteres cmdb_ci) {#ariaid-title11}

Carrega os dados atuais de um sys_id especificado.
{#r_CIData-loadFromCI_S__table_yst_mw1_rt__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| cmdb_ci | Cadeia de caracteres | O sys_id do IC |
[Tabela 18. Parâmetros]

{#r_CIData-loadFromCI_S__table_yst_mw1_rt} {#r_CIData-loadFromCI_S__table_zst_mw1_rt__entry__2}

| Tipo | Descrição |
|-|-|
| Objeto | Os dados atuais do IC especificado. |
[Tabela 19. Retorna]

{#r_CIData-loadFromCI_S__table_zst_mw1_rt}  

    var cdta = CIData('false');
    cdta.init();
    cdta.loadFromCI('ccaf9c0a8016400b98a06818d57c7');

## CIData - toString() {#ariaid-title12}

Converte o nome desta instância CIData em uma cadeia de caracteres.
{#r_CIData-toString__table_t31_px1_rt__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 20. Parâmetros]

{#r_CIData-toString__table_t31_px1_rt} {#r_CIData-toString__table_u31_px1_rt__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | Nome da instância |
[Tabela 21. Retorna]

{#r_CIData-toString__table_u31_px1_rt}  
Este exemplo carrega o CIData do IC atual e converte esta nova instância de CIData em formato de cadeia de caracteres.

    var cidata = new CIData(); // Instantiate a new CIData class object
    cidata.loadFromCI('0c43b0f5c6112275019abd2bb3dcd78f'); // Load the current data from a CI record. Use sys_id or ci name.
    cidata.toString(); // Convert the name of this CIData instance to a string.
    gs.info(cidata); // Display name value pairs of the current CI

Saída:

    CIData instance:
      sys_id: 0c43b0f5c6112275019abd2bb3dcd78f
      operational_status: 1
      os_service_pack: Service Pack 1
      cpu_manufacturer: 0c43b088c6112275011a4bd46a4e6cc4
      sys_updated_on: 2022-01-11 07:44:05
      discovery_source: Other Automated
      ram: 503
      cpu_speed: 1993
      sys_domain_path: /
      disk_space: 37.26
      cost_center: d9d07bddc0a80a647cf932056ed24652
      assigned: 2020-08-31 08:00:00
      cd_speed: -1
      can_print: 0
      sys_class_name: cmdb_ci_computer
      manufacturer: add7b97737e3100044e0bfc8bcbe5d96
      cpu_count: 1
      vendor: adb3d8ce37413000158bbfc8bcbe5d15
      assigned_to: 5137153cc611227c000bbd1bd8cd2007
      os_version: 5.1.2600
      cd_rom: 0
      unverified: 0
      asset: aac1ba8837f3100044e0bfc8bcbe5d3b
      skip_sync: 0
      sys_created_on: 2005-05-24 01:14:19
      sys_domain: global
      cpu_type: GenuineIntel
      install_date: 2020-05-19 07:00:00
      asset_tag: P1000143
      install_status: 1
      name: ANDREWDWXP
      subcategory: Computer
      virtual: 0
      sys_class_path: /!!/!2/!(
      company: 31bea3d53790200044e0bfc8bcbe5dec
      department: 221f3db5c6112284009f4becd3039cc9
      cost: 1299.99
      os: Windows XP Professional
      attestation_status: Not Yet Reviewed
      monitor: 0
      ip_address: 195.11.1.1
      cost_cc: USD
      location: db9a923c0a0a0a6501068d6eaec25ee0
      category: Hardware
      fault_count: 0
    [object Object]

## CIData - toXML() {#ariaid-title13}

Retorna uma cadeia de caracteres XML que contém uma versão serializada desta instância (incluindo todas as listas relacionadas).
{#r_CIData-toXML__table_trp_xw1_rt__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 22. Parâmetros]

{#r_CIData-toXML__table_trp_xw1_rt} {#r_CIData-toXML__table_urp_xw1_rt__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | A cadeia de caracteres XML que contém uma versão serializada desta instância e todas as listas relacionadas. |
[Tabela 23. Retorna]

{#r_CIData-toXML__table_urp_xw1_rt}  

    var cdta = CIData();
    cdta.toXML();


