Welcome, Guest
Username: Password: Remember me

TOPIC: CSV-Import: Bitte Daten-Referenz statt Datenbank-I

CSV-Import: Bitte Daten-Referenz statt Datenbank-I 8 months 4 weeks ago #57048

  • ejomi
  • ejomi's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 15
  • Thank you received: 3
  • Karma: 1
Guten Tag Miteinander!

Das Grundproblem:
Dolibarr erwartet bei vielen Import-Schemas (wenn nicht sogar bei allen - ich habe noch nicht alles probiert) als Zuordnungs-Referenz seine interne Datenbank-ID, welche aber oft vor dem Daten-Import nicht bekannt oder nur mühsam ermittelbar ist! Beispiel: Um die ID einer Verpackungseinheit zu ermitteln, muss man mit der Maus über die Edit- oder Lösch-Schaltfläche fahren, um im Browser-Adressfeld die zugehörige URL-Adresse zu sehen. Dort lassen sich dann die notwendigen Informationen detektivisch aufspüren. Im diesem Beispiel (Verpackungseinheiten) ist aber nicht einmal die Datensatz-ID von Interesse, sondern die interne Row-ID - das soll einer verstehen!!

Fataler Denkfehler der Programm-Entwickler:
Datenbank-IDs beziehen sich immer nur auf EINE SPEZIELLE Datenbank, die aktuell verwendet wird!! Bei einem System-Reset, bei einer Datenwiederherstellung oder beim Portieren der Datensätze zu einer anderen Dolibarr-Installation werden vom System völlig neue/andere IDs generiert. Diese IDs stimmen logischerweise nicht mehr mit denen der Ursprungs-Datenbank überein. Dadurch kommt es ZWANGSLÄUFIG zum Datensalat, wenn man die hier beschriebenen Datensatz-Transaktionen durchführen möchte!

A) CSV-Import der Lagerbestände:
Statt über die Artikel-Nr. geschieht die Zuordnung nur über Datenbank-IDs. Problem: Diese sind VOR dem Import der Artikel überhaupt noch nicht bekannt! Man muss also zuerst die reinen Produktdaten per CSV einlesen und anschließend die ID des ersten, erfolgreich importierten Artikels über seine URL-Adresse ermitteln. Diese eben ermittelte ID muss dann nachträglich als STARTWERT in die ursprüngliche CSV-Liste eingesetzt und für die nachfolgenden Datensätze weiter hochgezählt werden - z.B. mit einer Tabellenkalkulation (LibreOffice Calc o.ä.). Erst die in dieser Weise manipulierte CSV-Liste ist für den Import der Lagerbestände geeignet und muß dann ein zweites Mal mit Dolibarr hochgeladen werden. Dabei kann man dann nur hoffen, dass Dolibarr die Datensätze vorher wirklich in der gleichen Reihenfolge eingelesen hat, wie von der Ursprungs-Liste geliefert. Sollte das nicht der Fall sein, wäre die Zuordnung im Eimer. Glücklicherweise hat bei mir diese Methode bisher immer geklappt - zuverlässig ist das aber keinesfalls, zumal sehr große CSV-Datenbestände mit einer Tabellenkalkulation nur noch schwer manipulierbar sind!

B) CSV-Import der Produkt-Kategorien:
Bei den Kategorien besteht es das gleiche Zuordnungsproblem wie bei den Lagerbeständen. Dazu kommt, dass auch noch für die Kategorien selbst die IDs via Browser-Adresszeile erforscht werden müssen! Logischer wäre es, hier eindeutige Codes pro Kategorie einzuführen. Weil es aber leider solche Kategorie-Codes (noch) nicht gibt, wäre es vielleicht eine gute Idee, einfach im Kategorie-Verzeichnisbaum alle betreffenden IDs zu zeigen - dann hätte man es beim Aufbau der CSV-Listen wenigstens etwas bequemer!

C) CSV-Import von VEs:
Bei Import von Verpackungseinheiten - anpassbar unter "Einstellungen/Stammdaten/Einheiten" - erwartet Dolibarr deren Row-IDs (nicht Datenbank-IDs!). Diese IDs lassen sich nur über die URL-Adressen der zugehörigen Edit- oder Lösch-Links ermitteln. Logisch wäre es, wenn der ohnehin eindeutig zu vergebende "Code" der Verpackungseinheit nutzbar wäre - das wäre mal benutzerfreundlich!

D) CSV-Import der Produkt-Gewichte:
Gewichtseinheiten sind für den Import nicht vorgesehen! Bei mir haben die Produkte nur Gramm-Gewichte, diese werden aber von Dolibarr generell als Kg interpretiert! Der Parameter MAIN_WEIGHT_DEFAULT_UNIT - anzulegen unter "Einstellungen/Andere Einstellungen" - stellt nur auf der Produkt-Karte die richtige Vorauswahl des Gewichts ein, hat aber ansonsten keine Wirkung! Auch bei allen anderen Maßangaben fehlt die Importmöglichkeit der zugehörigen Einheit.

E) Bilder - welche Bilder?
Dolibarr hat zwar die Möglichkeit (als Planung?) vorgesehen, auf der Produkt-Karte ein Bild/Dokument per URL zu verlinken - die in der Weise verknüpften Bilder werden aber nirgendwo angezeigt! Es wäre IHMO wichtig, diesen Ansatz weiter zu verfolgen um dann im nächsten Schritt auch beim CSV-Import die Angabe ein er Bild-URL vorzusehen. Erst dann wäre ein lückenloser Import von externen Produktdaten incl. Abbildungen per CSV möglich!

Anhang - Mein "Work Arround" zum Bilder-Import:
Schritt 1:
Man schreibe sich eine kurze Script-Schleife (z.B. unter WINDOWS per "AutoIt" oder als klassische Batch-Datei mit "DirCreate" bzw. "MKDIR") um sich automatisch einen Ordnerbaum erstellen zu lassen. Die Ordner müssen als Namen die betreffenden Artikel-Nr. bekommen (könnte man z.B. aus einer CSV-Export Liste herauslesen). Während der Ordner-Erstellung muss noch jeweils das zugehörige Bild dort hin kopiert werden. Klingt kompliziert, wer sich aber ein bisschen mit Script-Programmierung auskennt dürfte das relativ schnell hinbekommen.
Schritt 2:
Den unter Schritt 1 erstellten Ordner-Baum komplett in das Dolibarr-Verzeichnis "dolibarr\documents\produit\" verschieben. Findet nun Dolibarr beim Aufruf eines Artikels im Hauptordner "produit" einen Unterordner mit dem Namen der Artikel-Nr., dann wird automatisch das dort enthaltene Bild als Produktbild verwendet.
Thumbnails:
Schritt 1 + Schritt 2 ist die schnelle Methode um wenigstens ein Haupt-Artikelbild zu bekommen. Für die Thumbnails braucht man etwas mehr Erfahrung bezügl. Zusammenmontieren von verschachtelten Ordnern sowie Bildkonvertierung mit veränderten Dateinamen. Diese Aktionen müssen noch vor Schritt 2 erfolgen.
Das Prinzip:
Damit Thumbnails verfügbar sind, muss sich in jedem Bild-Ordner jeweils ein weiterer Unterordner mit Namen "thumbs" befinden. Dort müssen zwei verkleinerte Bild-Versionen mit dem Namensanhängsel "_mini" bzw. "_small" vorhanden sein. Beispiel: Das Originalbild heißt "MeinBild.jpg", die beiden Verkleinerungen "MeinBild_mini.jpg" und "MeinBild_small.jpg". Die Größe von "_mini" hat eine max. Höhe/Breite von 72 Pixel, von "_small" eine max.Höhe/Breite von 150 Pixel. Mit dem Universal-Tool "IrfanView" (freier Bildkonverter für WINDOWS) kann man mit dem bereits mitgelieferten PlugIn "Batch Konvertierung" den Inhalt einer kompletten Bilder-Galerie "auf einen Rutsch" auf die gewünschte Größe verkleinern um sie dann z.B. für Thumbnails zu verwenden. Das hier genauer zu erläutern würde den Rahmen meines (ohnehin schon viel zu lang geratenen) Threads sprengen! - Vielleicht schreibe ich dazu mal eine separate Gebrauchsanleitung ...

Gruß: ejomi
The administrator has disabled public write access.
Time to create page: 0.067 seconds