Zuordnungsoptionen
Abhängig von den Umständen des Imports und davon, ob Daten vor dem Laden in eine Produktionstabelle umgewandelt werden müssen, können Sie Felder auf verschiedene Arten zuordnen.
Es ist auch wichtig zu beachten, dass für einen bestimmten Importvorgang möglicherweise mehrere Zuordnungsmethoden erforderlich sind und diese Methoden problemlos miteinander verwendet werden können.
Dienstprogramm für automatische Zuordnung
Die einfachste Zuordnungsmethode besteht darin, dass alle Feldnamen der Importsätze mit den Namen der Felder in den Produktionstabellen übereinstimmen, in die die Daten umgewandelt werden. Klicken Sie in diesem Fall einfach in der zugehörigen Liste im Formular „Tabellentransformationszuordnung“ auf Übereinstimmungsfelder automatisch zuordnen, und bestätigen Sie die ordnungsgemäße Zuordnung. Wenn Diskrepanzen hinsichtlich der automatischen Zuordnung von Feldern bestehen, verwenden Sie das Hilfsdienstprogramm für Zuordnungen, um sie zu korrigieren. Wenn alle Felder ordnungsgemäß übereinstimmen, klicken Sie auf den zugehörigen Link Transformieren, um mit der Transformierung von Daten in die Zieltabelle zu beginnen.
Zuordnungsassistent-Dienstprogramm
Ändern des Datumsformats
| Datumsformat | Beschreibung |
|---|---|
| TT-MM-JJJJ | Tag-Monat-Jahr |
| TT-MM-JJJJ hh:mm:ss | Tag-Monat-Jahr Stunden-Minuten-Sekunden |
| TT-MM-JJJJ hh:mm:ss z | Tag-Monat-Jahr Stunden-Minuten-Sekunden-Zeitzone |
| MM-TT-JJJJ | Monat-Tag-Jahr |
| MM-TT-JJJJ hh:mm:ss | Monat-Tag-Jahr Stunden-Minuten-Sekunden |
| MM-TT-JJJJ hh:mm:ss z | Monat-Tag-Jahr Stunden-Minuten-Sekunden-Zeitzone |
| JJJJ-TT-MM | Jahr-Tag-Monat |
| JJJJ-MM-TT | Jahr-Monat-Tag |
| JJJJ-MM-TT hh:mm:ss | Jahr-Monat-Tag Stunden-Minuten-Sekunden |
Um das 24-Stunden-Zeitformat anzugeben, geben Sie ein anwenderdefiniertes Datumsformat mit HH:mm:ss anstelle von hh:mm:ss an.
Die Konvertierung von einem 24-Stunden- in ein 12-Stunden-Datumsformat kann dazu führen, dass Zeiten von 12:00 bis 23:59 als 00:00 bis 11:59 formatiert werden.
Zuordnung zu einem Feld vom Typ „Dauer“.
- Berechnen Sie die Dauer anhand eines Start- und eines Enddatums
- Konvertieren Sie einen vorhandenen Dauerwert in einen ServiceNow -Dauerwert
Berechnung eines Dauerwerts aus einem Start- und einem Enddatum
- Navigieren zu .
- Wählen Sie die Transformationszuordnung aus, für die Sie einen Dauerwert berechnen möchten. Zum Beispiel die Benachrichtigungs-Transformationszuordnung, die in die Incident-Tabelle importiert wird.
- Aktivieren Sie die Checkbox Skript ausführen.
- Geben Sie JavaScript ein, um das Start- und Enddatum in eine Dauer umzuwandeln. Sehen Sie sich das Beispielskript an.
- Klicken Sie auf Aktualisieren.
target.duration = gs.dateDiff(source.u_start.getDisplayValue(), source.u_end.getDisplayValue(), false);Konvertieren Sie einen Dauerwert in einen ServiceNow-Dauerwert
- Navigieren zu .
- Wählen Sie eine Transformationszuordnung aus.
Zum Beispiel die Benachrichtigungs-Transformationszuordnung, die in die Incident-Tabelle importiert wird.
- Aktivieren Sie die Checkbox Skript ausführen.
- Geben Sie JavaScript ein, um vorhandene Werte für die Dauer in Werte für die Dauer ServiceNow zu konvertieren. Sehen Sie sich das Beispielskript an.
- Klicken Sie auf Aktualisieren.
//Transform the value in source.u_duration from seconds to milliseconds
target.duration.setDateNumericValue(source.u_duration * 1000);//Transform the value in source.u_duration to ServiceNow format
target.duration.setDateNumericValue(source.u_duration);Verwenden eines Skripts zum Berechnen eines Quellwerts
- Der Quellwert weist nicht das Format für den zugeordneten Zielwert auf.
- Sie möchten nach einem Wert suchen, bevor Sie ihn dem Zielfeld zuordnen.
- Der Quellwert muss aus mehreren Feldern berechnet werden.
- Sie müssen im Zielfeld einen zusammengesetzten oder berechneten Zusammenfügungswert erstellen.
Ein Quellskript erwartet, dass der berechnete Wert in der Antwortder globalen Variablen festgelegt wird.
Binär- oder BLOB-Felder werden zugeordnet
ServiceNow verwendet ein spezielles Verfahren zum Importieren von binären Daten und BLOB-Daten (Binary Large Object) aus JDBC-Datenquellen. Alle binären Daten werden vor der Transformation automatisch in einen Datensatz in der Tabelle „Anhang“ [sys_attachment] konvertiert. Die Importsatztabelle speichert anstelle des tatsächlichen Binärwerts nur den sys_id-Wert des Anhangdatensatzes im Importtabellenfeld. Angenommen, Sie verwenden eine JDBC-Datenquelle , um Daten aus einem CA Service Desk-System zu importieren, das den Schlüsselwert jedes Datensatzes als Binärdaten speichert. Wenn Sie die Service Desk-Schlüsselwerte in eine Tabelle ServiceNow importieren, enthält das Feld ServiceNow nur einen sys_id-Verweis auf die entsprechenden Binärdaten in der Tabelle „Anhangdatensatz“ [sys_attachment] und nicht auf die tatsächlichen Binärdaten.
onAfter -Skript. Das Skript muss in einem onAfter -Ereignis ausgeführt werden, da das Objekt target.sys_id erst verfügbar ist, nachdem die Daten in der Importsatztabelle platziert wurden. Um beispielsweise den resultierenden Anhang dem Zieltransformationsdatensatz zuzuordnen, können Sie das folgende Skript verwenden.var agr = new GlideRecord("sys_attachment");
agr.addQuery("sys_id", source.u_blob_field);
// the source field needs to be mapped to the source that is the BLOB
agr.query();
if(agr.next()) {
agr.table_name = "cmdb_ci"; // the target table of the transform map
agr.table_sys_id = target.sys_id; // the target record
agr.content_type = source.u_contentype;
// the content type string if available,
// this becomes the mime encoding when clicking an attachment link
agr.update(); // finally, move/re-attach the attachment to the target row }„db_image“ führen Sie das folgende onAfter -Skript aus, um das Bild anzuzeigen:var strTemp = source.u_file_name;
var fType = strTemp.substr(- 3);
var iCont = "" ;
if(fType == 'jpg') {
iCont = 'jpeg' ; }
else {
iCont = fType; }
var agr = new GlideRecord("sys_attachment");
agr.addQuery("sys_id", source.u_blob_field);
agr.query();
if(agr.next()) {
agr.table_name = "ZZ_YYdb_image";
agr.table_sys_id = target.sys_id;
agr.content_type = 'image/' + iCont;
agr.file_name = 'image';
agr.update(); }