Hauptmenü

csv Import/Update

Begonnen von mplan, 02.11.2021 09:37:33

⏪ vorheriges - nächstes ⏩

mplan

Hi,
es sollen regelmäßig Daten aus einer csv Datei für Computer (und andere Asset Klassen) importiert werden.
Dabei soll ein Update von vorhandenen Daten stattfinden. Leider bekomme ich es nicht mit dem Mapping hin.
Habe bereits hier geschaut:
https://forum.kixdesk.com/index.php?topic=2706.msg6197#msg6197 <= eigentlich genau mein Thema
https://forum.kixdesk.com/index.php?topic=183.msg504#msg504

Die csv Datei hat keine Assetnummer. Beim Import wird deshalb jedes Mal ein neues Asset angelegt.
Der Versuch mit kix18.CSVSync.pl ist auch nicht geglückt. Dazu hatte ich in der kix18.CSVSync.cfg analog zu den Beispielen versucht  ein Mapping zu erzeugen
#NOTE: Computer
Computer.SearchColIndex           ="1"
Computer.ColIndex.Number          ="0"
Computer.ColIndex.Name            ="1"
Computer.ColIndex.DeploymentState  ="2"

In der GUI bei Asset ->Import/Export sehe ich zwar die Assetklassen mit "AutoCreated Map", finde aber nichts, wie ich das Mapping beeinflussen kann.
Ziel ist, den (Computer-)Namen als Wert zu nehmen. Existiert der Name, soll ein nur Update erfolgen.
Bisher wird nach der Assetnummer geschaut und dadurch ein neues Asset angelegt.
Gibt es eine Beschreibung, wo und wie das Mapping angepasst werden kann für den Import?

Michael

Torsten Thau

Hi mplan,


leider kann das Importskript kix18sync noch keine "alternativen Identifikatoren" verarbeiten. In Verbindung mit Macro Actions kannst Du jedoch ein Macro definieren, dass die Assetnummer welche das KIX vergibt, ersetzt mit einem spezifischen asset-klassen-abhängigen Attribut. Dessen Eindeutigkeit muss jedoch sichergestellt sein. Eine Beispiel-Job-Konfiguration ist im Anhang.


Damit wäre es in folgenden Asset-Imports möglich eine Aktualisierung vorzunehmen ohne das Skript anzupassen. Das besagte Attribut muss in zwei Wert-Spalten des CSV vorkommen (jeweiliger Wert-Index und auch in der Number).


Ich muss aber zugeben, ich habe nicht auf dem Schirm ob die Asset-Macro-Action in KIX Start oder erst ab KIX Pro/Cloud enthalten ist.


CU, Torsten

mplan

Hallo,Danke für die Antwort, auch wenn ich erst spät darauf reagiere.Ich habe das Perl Script testweise angepasst, so dass es prüft, ob eine Assetnummer bereits existiert für einen vorgegebenen Assetnamen und dann je nachdem ein neues Asset anlegt oder das bestehende aktualisiert.

Ihre Kollegen haben gemeint, man könne den csv-Import "ganz einfach" steuern. Noch habe ich es nicht gesehen und eine Beschreibung steht dafür auch noch aus.
Ich hoffe auf ein Update/Erweiterung des eigentlich sehr guten Tools "kix18.CSVSync.pl"  zum Anlegen und Aktualisieren für beliebige Assets, Organisationen und Kontakte
Viele Grüße,Michael

Torsten Thau

Hallo Michael,


verstehe ich das richtig, dass der Assetimport wie folgt erweitert werden sollte?


- (1) Vorgabe des Attribut-Spalten-Mappings, statt Verwendung CSV-Headlines (so wie Kontakte, Organisationen ...das wollte bislang noch keiner umsetzen :-/ )
  Die Assetstrukturen können durchaus beliebig sein. Das "Mapping" wird nur aktuell direkt im CSV erwartet und nicht extern vorgegeben.


- (2) Anlegen eines neuen Assets bei Verwendung einer nicht vorhandenen Asset-Nummer (in der Ziel-Klasse)


- (3) Verwendung des Assetnamens wie in Asset-Nummer (siehe 2), sofern eindeutig


...Du kannst Deine Anpassung auch gern als PR übermitteln. Ist zwar auf Grund des "internen" git und der dort vorhandenen Arbeiten manchmal ein wenig tricky - aber das bekommen wir schon hin und geht manchmal schneller als langwierig erklären.


CU, Torsten

mplan

Hallo Thorsten,
wir möchten Daten aus vorhandenen csv Files importieren.
wenn ich es richtig verstanden habe, kann das kix18Sync Tool grundsätzlich ein mapping vornehmen.

       
  • Das heißt, es soll zum Beispiel eine "Spalte" im csv File, die "Gerätename" heißt und and dritter Stelle steht, zum Assetnamen gemappt werden.
    Im Konfigurationsfile des Tools kann man angeben, dass also der Assetname in der Spalte 3 steht.
    Damit könnte man erreichen, dass die csv Dateien aus beliebigen Quellen für ein bestimmtes Mapping umgesetzt werden können, also Mapping nach csv File.
    Aber wie Du geschrieben hast, bisher scheint der Spaltenname des csv Files relevant für den Import zu sein
  • Korrekt, wenn keine Assetnummer angegeben ist und der Assetname noch nicht existiert, soll ein neues Asset angelegt werden.
  • Richtig, die Assetnummer kann auch ein Kürzel des Assetnamens sein z.B. "Ro123" mit Namen "Router xy 123"
Ich kann mal versuchen, meine Anpassung hochzuladen und hoffe, die Entwickler bekommen nicht allzuviele Falten oder Lachkrämpfe wenn sie meine Änderungen anschauen.VG Michael

Torsten Thau

#5
Hallo Michael,

schau mal ob Dir die eben ergänzten Möglichkeiten in https://github.com/cape-it/kix18sync nutzen.

Für den Assetimport gibt es jetzt die Optionen "--uam" (use asset mapping) und "--anl" (asset name lookup). Wie ein Assetattribut-zu-CSV-Spalten-Mapping ausschauen kann, findest Du in der Besipielkonfiguration für die Vorgabe-Assetklasse "Computer".

Das Importverhalten wurde ebenfalls angepasst, dh. wird eine Assetnummer (oder auch -name) nicht gefunden, wird nun kein Fehler geworfen sondern eine Neuanlage vorgenommen.

CU, Torsten (ohne h)

mplan

Hi Torsten,das ist ja eine schöne Bescherung! (diesmal ohne Zweideutigkeit!  :-)  )Das ist klingt nach dem, was wir benötigen. Ich werde es testen.
Vielen Dank!
Schöne Weihnachtsfeiertage!Michael