CIData – Global
Dienstprogrammklasse für das Arbeiten mit CI-Datenstrukturen in JavaScript.
Die CIData- API erfordert das Plugin Discovery (com.snc.discovery.core) und kann in jedem serverseitigen Discovery ]-Skript verwendet werden.
Instanzen dieser Klasse stellen ein CI dar (sowohl den Basisdatensatz als auch alle zugehörigen Listen), und die bereitgestellten Methoden ermöglichen das Laden aus oder das Speichern des Basisdatensatzes sowie der zugehörigen Listen.
- Eine einzelne Zuordnung, die den Basiseintrag der CI-Tabelle darstellt (z. B. eine Zeile cmdb_ci_linux_server und ihre Superklassen). Diese Zuordnung kann mit der abgerufen werden getData()-Methode empfangen werden.
- Anordnungen von Zuordnungen, die die Instanzen zusammengehöriger Listen darstellen, wobei jedes Array eine einzelne Themenliste darstellt und jedes Element eines solchen Arrays eine einzelne Zeile dieser Themenliste darstellt. Diese Arrays können mit der getRelatedList()-Methode abgefragt werden.
- Arrays von Zuordnunge, die die Instanzen von Many-to-Many-Tabellen darstellen, wobei jedes Array eine einzige Many-to-Many-Tabelle darstellt und jedes Element eines solchen Arrays eine einzelne Zeile dieser Many-to-Many-Tabelle darstellt. Diese Arrays können mit der getM2MTable()-Methode abgefragt werden.
CIData – addRelatedList(Array relatedList)
Fügt der Instanz die angegebene Themenliste hinzu.
| Name | Typ | Beschreibung |
|---|---|---|
| relatedList | Array | Zugehörige Liste, die hinzugefügt werden soll. |
| Typ | Beschreibung |
|---|---|
| void |
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 – CIData(String debugFlag)
Erstellt eine Instanz der CIData-Klasse.
| Name | Typ | Beschreibung |
|---|---|---|
| debugFlag | Zeichenfolge | Kennzeichnung, die angibt, ob die Debug-Protokollierung aktiviert werden soll. Gültige Werte:
|
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(String sensor, String tableName, String refField, String keyName)
Konvertiert die angegebene Themenliste in eine Themenliste in einem angegebenen Sensor.
| Name | Typ | Beschreibung |
|---|---|---|
| sensor | Zeichenfolge | Der Sensor |
| tableName | Zeichenfolge | Der Tabellenname |
| refField | Zeichenfolge | Das Referenzfeld |
| keyName | Zeichenfolge | Der Schlüsselname |
| Typ | Beschreibung |
|---|---|
| void |
CIData – fromXML(String xml)
Initialisiert die aktuelle CIData-Instanz aus der angegebenen XML-Zeichenfolge.
| Name | Typ | Beschreibung |
|---|---|---|
| xml | Zeichenfolge | Eine XML-Zeichenfolge. |
| Typ | Beschreibung |
|---|---|
| void |
Das folgende Beispiel zeigt, wie CI-Daten im XML-Testformat abgerufen werden, die während der Erkennung erfasst wurden.
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.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Objekt | Die Datenzuordnung |
CIData – getM2MTable(String table, String refField)
Gibt ein Array von Datenzuordnungen in der angegebenen m:n-Liste (zu diesem CI) zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| table | Zeichenfolge | Name der Tabelle, die die zugehörige Liste enthält. Im Falle einer Many-to-Many-Liste ist dies der Name der Many-to-Many-Tabelle, nicht der Zieltabelle. |
| refField | Zeichenfolge | Name des Feldes in der Bezugsliste, das auf dieses CI verweist. Im Falle einer Many-to-Many-Liste ist dies der Name des referenzierenden Feldes in der Many-to-Many-Tabelle, nicht in der Zieltabelle. |
| Typ | Beschreibung |
|---|---|
| Array | Liste der Datenzuordnungen in der angegebenen m:n-Liste. Die Liste weist keine bestimmte Reihenfolge auf. Wenn es sich nicht um eine Many-to-Many-Liste handelt, wird ein leeres Array zurückgegeben. |
Dieses Beispiel zeigt, wie die m:n-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(String table, String refField)
Ruft ein Array von Datenzuordnungen in der angegebenen Themenliste (zu diesem CI) ab.
Das Array ist in keiner bestimmten Reihenfolge. Bei einer Many-to-Many-Liste handelt es sich hierbei um ein Array von Instanzen der Zieltabelle, nicht der Many-to-Many-Tabelle. Wenn Sie beispielsweise 'cmdb_software_instance' und 'install_on' (eine Many-to-Many-Tabelle und das Feld, das auf ein CI verweist) angeben, gibt diese Methode ein Array von Zuordnungen zurück, das die Instanzen von cmdb_ci_spkg (der Zieltabelle) darstellt.
| Name | Typ | Beschreibung |
|---|---|---|
| table | Zeichenfolge | Name der Tabelle, die die zugehörige Liste enthält. Im Falle einer Many-to-Many-Liste ist dies der Name der Many-to-Many-Tabelle, nicht der Zieltabelle. |
| refField | Zeichenfolge | Name des Feldes in der Bezugsliste, das auf dieses CI verweist. Im Falle einer Many-to-Many-Liste ist dies der Name des referenzierenden Feldes in der Many-to-Many-Tabelle, nicht in der Zieltabelle. |
| Typ | Beschreibung |
|---|---|
| Array | Ein Array von Datenzuordnungen in der angegebenen Themenliste. |
CIData – getRelatedListInstance(String table, String refField)
Gibt die Instanz von CIRelatedList für die angegebene Liste zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| table | Zeichenfolge | Name der Tabelle, die die zugehörige Liste enthält. Im Falle einer Many-to-Many-Liste ist dies der Name der Many-to-Many-Tabelle, nicht der Zieltabelle. |
| refField | Zeichenfolge | Name des Feldes in der Bezugsliste, das auf dieses CI verweist. Im Falle einer Many-to-Many-Liste ist dies der Name des referenzierenden Feldes in der Many-to-Many-Tabelle, nicht in der Zieltabelle. |
| Typ | Beschreibung |
|---|---|
| Objekt | Instanz der CIRelatedList für die angegebene Liste. |
Im folgenden Codebeispiel wird die Methode getRelatedListInstance() verwendet, um die zugehörigen Listenbeziehungen zu finden, die entfernt werden sollen.
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 in Vorbereitung auf das Laden eines neuen CI.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| void |
var cdta = CIData('false');
cdta.init();
CIData – loadFromCI(String cmdb_ci)
Lädt die aktuellen Daten aus einer angegebenen sys_id.
| Name | Typ | Beschreibung |
|---|---|---|
| cmdb_ci | Zeichenfolge | Die sys_id des CI |
| Typ | Beschreibung |
|---|---|
| Objekt | Die aktuellen Daten des angegebenen CI. |
var cdta = CIData('false');
cdta.init();
cdta.loadFromCI('ccaf9c0a8016400b98a06818d57c7');
CIData – toString()
Konvertiert den Namen dieser CIData-Instanz in eine Zeichenfolge.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Name der Instanz |
In diesem Beispiel werden die CIData aus dem aktuellen CI geladen und diese neue CIData-Instanz in das Zeichenfolgenformat konvertiert.
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 zugehöriger Listen).
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Die XML-Zeichenfolge, die eine serialisierte Version dieser Instanz und alle zugehörigen Listen enthält. |
var cdta = CIData();
cdta.toXML();