CIData - Global

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 7 min. de leitura
  • . CIData Inclusão de script é 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 Descoberta plug-in (com.snc.discovery.core). Você pode usá-lo em qualquer lado do servidor Descoberta script.

    As instâncias desta classe representam um IC (seu registro de base e todas as listas relacionadas), e os métodos fornecidos permitem carregar ou armazenar o registro de 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 de mapas.
    • Um único mapa que representa a entrada da tabela de IC de base (como uma linha cmdb_ci_linux_server e suas superclasses). Você pode recuperar este mapa usando CIData - getData() método.
    • Matrizes de mapas que representam as instâncias de listas relacionadas, com cada matriz representando uma única lista relacionada e cada elemento de tal matriz representando uma única linha dessa lista relacionada. Essas matrizes podem ser recuperadas com GetRelatedList (tabela de cadeia de caracteres, cadeia de caracteres refField) método.
    • Matrizes de mapas que representam as instâncias de tabelas muitos para muitos, com cada matriz representando uma única tabela muitos para muitos e cada elemento de uma matriz representando uma única linha dessa tabela muitos para muitos. Essas matrizes podem ser recuperadas com GetM2MTable (tabela de cadeia de caracteres, cadeia de caracteres refField) método.

    CIData - CIData (cadeia de caracteres debugFlag)

    Cria uma instância da classe CIData.

    Tabela 1. Parâmetros
    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.

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

    AddRelatedList(Array RelatedList)

    Adiciona a lista relacionada especificada a esta instância.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    RelatedList Matriz Lista relacionada a ser adicionada.
    Tabela 3. Retornos
    Tipo Descrição
    vazio

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

    ConvertRelatedList (sensor de cadeia de caracteres, cadeia de caracteres tablename, cadeia de caracteres refField, cadeia de caracteres keyname)

    Converte a lista relacionada especificada em uma lista relacionada em um determinado sensor.

    Tabela 4. Parâmetros
    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 5. Retornos
    Tipo Descrição
    vazio

    CIData - fromXML (cadeia de caracteres xml)

    Inicializa a instância de CIData atual a partir da cadeia de caracteres XML especificada.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    xml Cadeia de caracteres Uma cadeia de caracteres XML.
    Tabela 7. Retornos
    Tipo Descrição
    vazio

    O exemplo a seguir mostra como obter dados de IC formatados em 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()

    Obtém o mapa de dados no registro de IC de base.

    Tabela 8. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 9. Retorna
    Tipo Descrição
    Objeto O mapa de dados

    GetM2MTable (tabela de cadeia de caracteres, cadeia de caracteres refField)

    Retorna uma matriz de mapas de dados na lista muitos para muitos fornecida (para este IC).

    Tabela 10. Parâmetros
    Nome Tipo Descrição
    tabela Cadeia de caracteres Nome da tabela que contém a lista relacionada. No caso de uma lista muitos para muitos, este é o nome da tabela 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 muitos para muitos, este é o nome do campo de referência na tabela muitos para muitos, não na tabela de destino.
    Tabela 11. Retornos
    Tipo Descrição
    Matriz Lista de mapas de dados na lista muitos para muitos fornecida. A lista não está em nenhuma ordem específica.

    Se esta não for uma lista muitos para muitos, retornará uma matriz vazia.

    Este exemplo mostra como obter os relacionamentos muitos para muitos para o campo installed_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"
      }
    ]

    GetRelatedList (tabela de cadeia de caracteres, cadeia de caracteres refField)

    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 muitos para muitos, esta será uma matriz de instâncias da tabela de destino, não a tabela muitos para muitos. Por exemplo, dadas as instâncias "cmdb_software_instance" e "installed_on" (uma tabela muitos para muitos e o campo que se refere a um IC), este método retornará uma matriz de mapas que representam as instâncias cmdb_ci_spkg (a tabela de destino).

    Tabela 12. Parâmetros
    Nome Tipo Descrição
    tabela Cadeia de caracteres Nome da tabela que contém a lista relacionada. No caso de uma lista muitos para muitos, este é o nome da tabela 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 muitos para muitos, este é o nome do campo de referência na tabela muitos para muitos, não na tabela de destino.
    Tabela 13. Retornos
    Tipo Descrição
    Matriz Uma matriz de mapas de dados na lista relacionada especificada.

    CIData - getRelatedListInstance(tabela de cadeia de caracteres, cadeia de caracteres refField)

    Retorna a instância de CIRelatedList para a lista fornecida.

    Tabela 14. Parâmetros
    Nome Tipo Descrição
    tabela Cadeia de caracteres Nome da tabela que contém a lista relacionada. No caso de uma lista muitos para muitos, este é o nome da tabela 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 muitos para muitos, este é o nome do campo de referência na tabela muitos para muitos, não na tabela de destino.
    Tabela 15. Retornos
    Tipo Descrição
    Objeto Instância do CIRelatedList para a lista especificada.

    O exemplo de código a seguir usa GetRelatedListInstance() método para encontrar os relacionamentos da lista relacionada 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()

    Inicializa esta instância em preparação para carregar um novo IC.

    Tabela 16. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 17. Retorna
    Tipo Descrição
    vazio
    var cdta = CIData('false');
    cdta.init();

    LoadFromCI(cadeia de caracteres cmdb_ci)

    Carrega os dados atuais de um sys_id especificado.

    Tabela 18. Parâmetros
    Nome Tipo Descrição
    cmdb_ci Cadeia de caracteres O sys_id do IC
    Tabela 19. Retornos
    Tipo Descrição
    Objeto Os dados atuais do IC especificado.
    var cdta = CIData('false');
    cdta.init();
    cdta.loadFromCI('ccaf9c0a8016400b98a06818d57c7');

    ToString()

    Converte o nome desta instância de CIData em uma cadeia de caracteres.

    Tabela 20. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 21. Retorna
    Tipo Descrição
    Cadeia de caracteres Nome da instância

    Este exemplo carrega o CIData do IC atual e converte esta nova instância de CIData no 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]
    

    ToXML()

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

    Tabela 22. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 23. Retorna
    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.
    var cdta = CIData();
    cdta.toXML();