CIDaten – Global

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 6 Minuten Lesedauer
  • Die CIDaten Die Skripteinbindung ist eine Dienstprogrammklasse, die Methoden für die Arbeit mit Konfigurationselement-Datenstrukturen (CI) in JavaScript bereitstellt.

    Diese Skripteinbindung erfordert DiscoveryPlugin (com.snc.Discovery.Core). Sie können es auf jeder Serverseite verwenden DiscoverySkript.

    Instanzen dieser Klasse stellen ein CI dar (sowohl der Basisdatensatz als auch alle zugehörigen Listen), und die bereitgestellten Methoden ermöglichen das Laden aus dem Basisdatensatz und zugehörigen Listen oder das Speichern aus ihm.

    Diese Klasse fungiert als Container für einfache Klassen, die als Zuordnungen von Eigenschaftsname/Wert-Paaren fungieren. Diese Klasse enthält drei Arten solcher Zuordnungen.
    • Eine einzelne Zuordnung, die den Basis-CI-Tabelleneintrag darstellt (z. B. eine Zeile cmdb_ci_linux_server und ihre Superklassen). Sie können diese Zuordnung mit abrufen CIData – getData()Methode.
    • Arrays von Karten, die die Instanzen zugehöriger Listen darstellen, wobei jedes Array eine einzelne zugehörige Liste darstellt und jedes Element eines solchen Arrays eine einzelne Zeile dieser zugehörigen Liste darstellt. Diese Arrays können mit abgerufen werden CIData – getRelatedList(Zeichenfolgentabelle, ZeichenfolgerefField)Methode.
    • Arrays von Karten, die die Instanzen von viele-zu-viele-Tabellen darstellen, wobei jedes Array eine einzelne viele-zu-viele-Tabelle darstellt und jedes Element eines solchen Arrays eine einzelne Zeile dieser viele-zu-viele-Tabelle darstellt. Diese Arrays können mit abgerufen werden CIData – getM2MTable(Zeichenfolgentabelle, Zeichenfolgenreferenzfeld)Methode.

    CIData – CIData (Zeichenfolge debugFlag)

    Erstellt eine Instanz der CIData-Klasse.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    DebugFlag Zeichenfolge Kennzeichnung, die angibt, ob die Debug-Protokollierung aktiviert werden soll.
    Gültige Werte:
    • Wahr: Debug-Protokollierung ist aktiviert.
    • Falsch: Debug-Protokollierung ist nicht aktiviert.

    In diesem Beispiel wird eine zugehörige Liste erstellt und dem CIData-Objekt hinzugefügt.

    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)

    Fügt dieser Instanz die angegebene zugehörige Liste hinzu.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    ZugehörigListe Array Zugehörige Liste, die hinzugefügt werden soll.
    Tabelle : 3. Rückgaben
    Typ Beschreibung
    Ungültig

    In diesem Beispiel wird eine zugehörige Liste erstellt und dem CIData-Objekt hinzugefügt.

    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 (Zeichenfolgensensor, ZeichenfolgentableName, Zeichenfolgenreferenzfeld, Zeichenfolgenschlüsselname)

    Konvertiert die angegebene zugehörige Liste in eine zugehörige Liste in einem bestimmten Sensor.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    Sensor Zeichenfolge Der Sensor
    tableName Zeichenfolge Tabellenname
    refField Zeichenfolge Das Referenzfeld
    keyName Zeichenfolge Der Schlüsselname
    Tabelle : 5. Rückgaben
    Typ Beschreibung
    Ungültig

    CIData – fromXML (Zeichenfolgen-XML)

    Initialisiert die aktuelle CIData-Instanz aus der angegebenen XML-Zeichenfolge.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    XML Zeichenfolge Eine XML-Zeichenfolge.
    Tabelle : 7. Rückgaben
    Typ Beschreibung
    Ungültig

    Das folgende Beispiel zeigt, wie Test-XML-formatierte CI-Daten abgerufen werden, die während der Discovery erfasst werden.

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

    Ausgabe:

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

    Ruft die Datenzuordnung im Basis-CI-Datensatz ab.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 9. Rückgaben
    Typ Beschreibung
    Objekt Die Datenzuordnung

    CIData – getM2MTable(Zeichenfolgentabelle, Zeichenfolgenreferenzfeld)

    Gibt ein Array von Datenzuordnungen in der angegebenen viele-zu-viele-Liste zurück (an dieses CI).

    Tabelle : 10. Parameter
    Name Typ Beschreibung
    table Zeichenfolge Name der Tabelle, die die zugehörige Liste enthält. Im Falle einer viele-zu-viele-Liste ist dies der Name der viele-zu-viele-Tabelle, nicht der Zieltabelle.
    refField Zeichenfolge Name des Felds in der zugehörigen Liste, das auf dieses CI verweist. Im Falle einer viele-zu-viele-Liste ist dies der Name des referenzierenden Felds in der viele-zu-viele-Tabelle, nicht in der Zieltabelle.
    Tabelle : 11. Rückgaben
    Typ Beschreibung
    Array Liste der Datenzuordnungen in der angegebenen viele-zu-viele-Liste. Die Liste befindet sich in keiner bestimmten Reihenfolge.

    Wenn dies keine viele-zu-viele-Liste ist, wird ein leeres Array zurückgegeben.

    Dieses Beispiel zeigt, wie die viele-zu-viele-Beziehungen für das Feld „installed_on“ der Tabelle „cmdb_Software_instance“ abgerufen werden.

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

    Ausgabe:

    [
      {
        "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(Zeichenfolgentabelle, ZeichenfolgerefField)

    Ruft ein Array von Datenzuordnungen in der angegebenen zugehörigen Liste (zu diesem CI) ab.

    Das Array befindet sich in keiner bestimmten Reihenfolge. Im Falle einer viele-zu-viele-Liste ist dies ein Array von Instanzen der Zieltabelle, nicht die viele-zu-viele-Tabelle. Beispiel: Bei Angabe von „cmdb_Software_instance“ und „installed_on“ (eine viele-zu-viele-Tabelle und das Feld, das auf ein CI verweist) gibt diese Methode ein Array von Zuordnungen zurück, die cmdb_ci_spkg-Instanzen (die Zieltabelle) darstellen.

    Tabelle : 12. Parameter
    Name Typ Beschreibung
    table Zeichenfolge Name der Tabelle, die die zugehörige Liste enthält. Im Falle einer viele-zu-viele-Liste ist dies der Name der viele-zu-viele-Tabelle, nicht der Zieltabelle.
    refField Zeichenfolge Name des Felds in der zugehörigen Liste, das auf dieses CI verweist. Im Falle einer viele-zu-viele-Liste ist dies der Name des referenzierenden Felds in der viele-zu-viele-Tabelle, nicht in der Zieltabelle.
    Tabelle : 13. Rückgaben
    Typ Beschreibung
    Array Ein Array von Datenzuordnungen in der angegebenen zugehörigen Liste.

    CIData – getRelatedListInstance (Zeichenfolgentabelle, Zeichenfolgenreferenzfeld)

    Gibt die Instanz von CIRelatedList für die angegebene Liste zurück.

    Tabelle : 14. Parameter
    Name Typ Beschreibung
    table Zeichenfolge Name der Tabelle, die die zugehörige Liste enthält. Im Falle einer viele-zu-viele-Liste ist dies der Name der viele-zu-viele-Tabelle, nicht der Zieltabelle.
    refField Zeichenfolge Name des Felds in der zugehörigen Liste, das auf dieses CI verweist. Im Falle einer viele-zu-viele-Liste ist dies der Name des referenzierenden Felds in der viele-zu-viele-Tabelle, nicht in der Zieltabelle.
    Tabelle : 15. Rückgaben
    Typ Beschreibung
    Objekt Instanz von CIRelatedList Für die angegebene Liste.

    Das folgende Codebeispiel verwendet GetRelatedListInstance() Methode zum Suchen der zu entfernenden zugehörigen Listenbeziehungen.

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

    Initialisiert diese Instanz als Vorbereitung auf das Laden eines neuen CI.

    Tabelle : 16. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 17. Rückgaben
    Typ Beschreibung
    Ungültig
    var cdta = CIData('false');
    cdta.init();

    CIData – loadFromCI(Zeichenfolge cmdb_ci)

    Lädt die aktuellen Daten aus einer angegebenen sys_ID

    Tabelle : 18. Parameter
    Name Typ Beschreibung
    cmdb_ci Zeichenfolge Die sys_ID des CI
    Tabelle : 19. Rückgaben
    Typ Beschreibung
    Objekt Die aktuellen Daten aus dem angegebenen CI.
    var cdta = CIData('false');
    cdta.init();
    cdta.loadFromCI('ccaf9c0a8016400b98a06818d57c7');

    CIData – toString()

    Konvertiert den Namen dieser CIData-Instanz in eine Zeichenfolge.

    Tabelle : 20. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 21. Rückgaben
    Typ Beschreibung
    Zeichenfolge Name der Instanz

    Dieses Beispiel lädt die CIData aus dem aktuellen CI und konvertiert diese neue CIData-Instanz in das Zeichenfolgenformat.

    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

    Ausgabe:

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

    Gibt eine XML-Zeichenfolge zurück, die eine serialisierte Version dieser Instanz enthält (einschließlich aller zugehörigen Listen).

    Tabelle : 22. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 23. Rückgaben
    Typ Beschreibung
    Zeichenfolge Die XML-Zeichenfolge, die eine serialisierte Version dieser Instanz und zugehörige Listen enthält.
    var cdta = CIData();
    cdta.toXML();