====== Import von CSV-Daten ====== ===== Allgemeines ===== Für große Mengen an Daten ist es möglich, diese zu importieren. Die Daten müssen dafür als CSV-Datei vorliegen. Die Anzahl der Spalten ist dabei nicht entscheidend. Es können in der Import-Datei auch überzählige Spalten enthalten sein, die nicht importiert werden sollen, allerdings schränkt dies die Übersichtlichkeit und Verarbeitungsgeschwindigkeit ein. Die zu importierende Datei darf in der ersten Zeile Spaltennamen/-überschriften enthalten. In diesem Fall muss die Checkbox **CSV enthält in der ersten Zeile Spaltenüberschriften** aktiviert werden. :!: Wählen sie unbedingt **UTF-8** als Zeichencodierung beim Erstellen der CSV-Datei. Unter dem Menupunkt //**Import**// muss zunächst ausgewählt werden, welche Daten importiert werden sollen. Drei Möglichkeiten stehen zur Verfügung: * [[manual:import#taxa-listen|Taxa-Listen]] * [[manual:import#auswahllisten|Auswahllisten]] * [[manual:import#datensätze|Datensätze]] ===== Taxa-Listen ===== Wenn eine taxonbasierte Datenbank angelegt wird, empfiehlt es sich die Taxa-Liste als erstes zu importieren, da die später zu importierenden Datensätze ja den Taxa zugeordnet werden sollen. Die grundlegende Konfiguration der Taxa-Liste (Anzeigefelder, Datentypen) ist nicht im Backend möglich. Diese ist bereits im Quellcode festgeschrieben. Es kann daher sofort mit dem Import begonnen werden: * unter Menü **//Import//** -> **//Taxa//** auswählen * im sich öffnenden Dialog zu importierende Datei auswählen und das in der CSV verwendete Trennzeichen auswählen -> **[Hochladen]** drücken * im sich öffnenden Dialog Zuordnung der Tabellenspalten zu den vordefinierten Anzeigefeldern vornehmen, ggf. **CSV enthält in der ersten Zeile Spaltenüberschriften** anhaken -> **[Importieren]** drücken * im nachfolgenden Dialog kann noch die **Anzahl der zu überspringenden Datensätze** festgelegt werden //(das eröffnet die Möglichkeit eine bekannt Anzahl X bereist früher importierter Datensätze zu überspringen, sofern diese in den ersten X Zeilen der Tabelle stehen)// -> **[Importieren]** drücken * der Fortschrittsbalken zeigt in Schritten von 10 Datensätzen den Verlauf des Imports, im Fenster **Log** werden Importfehler angezeigt * nach Abschluss des Imports wird entsprechende Meldung angezeigt ===== Auswahllisten ===== Sollen die möglichen Eingabewerte für bestimmte Daten fest definiert werden, müssen diese in Auswahllisten (Drop-Down-Listen) festgelegt werden. Mit Hilfe solcher vordefinierten Listen können Eingabefehler vermieden werden. Auswahllisten können auch hierarchisch aufgebaut sein, d.h. es gibt mehrere Ebenen, deren Elemente miteinander kombiniert werden können (//Bsp.: Bei Zeigerwerten, die als Zahlen vorliegen, gibt es teilweise Zusatzattribute, die ein zusätzliche Aussage über den Wert treffen. Ein hinter die Zahl gestelltes Fragezeichen drückt z.B. aus, dass es sich um eine unsichere Angabe handelt)//. :!: Vor den Import der eigentlichen Liste, ist es notwendig unter dem Menü **//Konfiguration//** Namen, Beschreibung und Typ der Liste (hierarchisch vs. nicht-hierarchisch) zu definieren: * unter Menü **//Konfiguration//** -> **//Auswahl-Listen//** eine Liste anlegen -> Button **[Neue Liste]** * im sich öffnenden Dialog Name und Beschreibung eingeben und auswählen, ob es eine hierarchische Liste ist -> **[speichern]** drücken * Achtung: bei hierarchischen Listen muss es in der Importdatei eine Spalte mit Element-ID (jede Zeile erhält eine ID) und eine Parent-ID geben (für Elemente der zweiten Ebene muss hier die Element-ID des Elternelementes eingetragen sein), siehe Abb. {{manual:auswahlliste-csv-import.png?550|CSV-Datei für Auswahllisten-Import}} Nachdem die Konfiguration vorgenommen wurde, kann die Liste importiert werden: * unter Menü **//Import//** -> **//Auswahl-Listen//** auswählen * im sich öffnenden Dialog Name der Liste auswählen, in die Daten importiert werden sollen, Datei auswählen und das in der CSV verwendete Trennzeichen auswählen -> **[Hochladen]** drücken * im sich öffnenden Dialog Zuordnung der Tabellenspalten zu den vordefinierten Anzeigefeldern vornehmen, ggf. **CSV enthält in der ersten Zeile Spaltenüberschriften** anhaken -> **[Importieren]** drücken * wenn Import funktioniert wird danach Liste angezeigt, ansonsten kommt Fehlermeldung ===== Datensätze ===== :!: Vor dem Import von Datensätzen müssen unter dem Menü **//Konfiguration//** Datensatztypen, Anzeigefelder und Feldzuordnungen definiert und ggf. Auswahllisten und/oder Module konfiguriert werden. Für eine entsprechende Kurzanleitung siehe **[[manual:setup#ersteinrichtung|Ersteinrichtung]]** bzw. **[[manual:import#auswahllisten|Auswahllisten]]** Erst wenn dies erfolgt ist, kann die Liste importiert werden: * unter Menü **//Import//** -> **//Datensätze//** auswählen * im sich öffnenden Dialog vorab definierten Datensatztyp auswählen, Datei auswählen und die in der CSV verwendeten Trennzeichen für Tabellenspalten und Elemente von Mehrfachauswahllisten festlegen -> **[Hochladen]** drücken * im sich öffnenden Dialog Zuordnung der Tabellenspalten zu den vorab definierten Anzeigefeldern vornehmen und ggf. verschiedene Festlegungen treffen: * Checkbox **CSV enthält in erster Zeile Spaltenüberschriften** anhaken, wenn zu importierende Tabelle Spaltenüberschriften enthält * Checkbox **nur einzigartige (keine doppelten) Taxa importieren** anhaken, wenn es sich um Nach-Importe handelt und nur Datensätze von Taxa importiert werden sollen, zu denen es noch keinen entsprechenden Datensatz gibt. :!: Ist in den meisten Fällen nicht zutreffend bzw. möglich. //(Nur möglich für Datensätze, die direkt mit Taxa-Liste verknüpft sind und bei denen einem Taxon aus der Taxliste nur ein Datensatz zugeordnet ist; z.B. Artdatensätze bei Bestikri und Virtuellem Herbarium. Siehe auch Anleitung zu Import Artdatensätze unter [[manual:import#import_verschiedener_datensatztypen_am_beispiel_bestikri|Import verschiedener Datensatztypen am Beispiel Bestikri]].)// * Checkbox **Warnungen bei leeren Einträgen für Auswahllisten anzeigen** anhaken, falls dies für die zu importierende Tabelle relevant ist. //(:!: Nur relevant wenn Auswahllisten enthalten sind, für die bei allen Datensätzen eine Wert ausgewählt sein muss, also keine Leerzellen in der betreffenden Spalte enthalten sein dürfen)// * Dropdown **veröffentlicht** -> **ja** auswählen wenn Datensätze im Frontend angezeigt werden sollen * im Eingabefeld **Übergeordneter Datensatz (Menü-Elternelement)** falls zutreffend den betreffenden Datensatz auswählen. :!: Ist in den meisten Fällen nicht zutreffend. //(Nur relevant wenn alle Datensätze der zu importierenden Tabelle einem gemeinsamen Eltern-Datensatz zugeordnet werden können/müssen. Notwendig ist dies z.B. bei Import von Artdaten in Bestikri, damit der Menübaum entsprechend dargestellt wird. Bei den für jede Gattung separat erstellten Artdaten für Bestikri können alle jeweils enthaltenen Datensätze einem Gattungsdatensatz zugeordnet werden, z.B. können die Rosa-Artdatensätze alle dem Gattungsdatensatz "Rosa L. - Rose" zugeordnet werden usw. Siehe auch Anleitung zum Import Artdatensätze unter [[manual:import#import_verschiedener_datensatztypen_am_beispiel_bestikri|Import verschiedener Datensatztypen am Beispiel Bestikri]].)// * im Dropdown „Datensatztyp des Elternelements“ den gewünschten Datensatztyp auswählen, wenn die zum importierenden Datensätze mit einem in einem anderen Datensatz enthaltenen Elternelement verknüpft werden sollen/müssen. :!: Das trifft nur zu wenn für eine bestimmte Spalte der zu importierenden Tabelle die Option **Beziehung: Elternelement mittels ...** ausgewählt wurde. //(z.B. haben die Belegdatensätze bei Bestikri und Virtuellem Herbarium eine Kind-Eltern-Beziehung zu den Artdaten, die Bilddatensätze eine Kind-Eltern-Beziehung zu den Belegdaten. Siehe Darstellung Import Beleg- bzw. Bilddatensätze unter [[manual:import#import_verschiedener_datensatztypen_am_beispiel_bestikri|Import verschiedener Datensatztypen am Beispiel Bestikri]]).// * Checkbox **Geocoder-Dienst benutzen** anhaken, wenn zu importierende Tabelle Einträge enthält die automatisch georeferenziert werden sollen //(:!: es muss dann aber auch vorab definiert sein, wo die so erzeugten Geodaten abgelegt werden.)// * -> **[Importieren]** drücken * im nachfolgenden Dialog kann noch die **Anzahl der zu überspringenden Datensätze** festgelegt werden //(das eröffnet die Möglichkeit eine bekannt Anzahl X bereits früher importierter Datensätze zu überspringen, sofern diese in den ersten X Zeilen der Tabelle stehen)// -> **[Importieren]** drücken * der Fortschrittsbalken zeigt in Schritten von 10 Datensätzen den Verlauf des Imports, im Fenster **Log** werden Importfehler angezeigt * nach Abschluss des Imports wird entsprechende Meldung angezeigt * zum Abschluss ggf. Button **[[manual:import#datensatz-namen_aktualisieren|[Datensatz-Namen aktualisieren]]]** drücken ==== Bilddatensätze ==== Wenn Datensätze importiert werden, welche [[manual:glossar#anzeigefelder|Anzeigefelder]] des [[manual:glossar#datentyp|Datentyps]] //Bilddatei// enthalten, so sollten die zugehörigen Original-Bilddateien im JPEG-Format (''.jpg'') **vorher** auf den Server ins Verzeichnis ''public/storage/images/full/'' hochgeladen werden. Dies geschieht am besten mittels [[wpde>SSH_File_Transfer_Protocol|SFTP]] oder [[wpde>File_Transfer_Protocol|FTP]], z.B. mit dem Desktop-Programm [[https://filezilla-project.org/|FileZilla]]. Das genaue Vorgehen ist abhängig von der Konfiguration des Servers und der verwendeten Software. Wenden Sie sich bezüglich Zugang und Unterstützung bitte an den zuständigen Server-Administrator. Während des Import werden automatisch Vorschaubilder ("Thumbnails") und ggf. Bilder in mittlerer Größe erzeugt. Die Konfiguration der Speicherpfade und genauen Abmessungen sind in der Datei ''config/media.php'' zu finden uns sollten vorher geprüft und ggf. angepasst werden. Alternativ ist es möglich, nach abgeschlossenem Import der Datensätze die Vorschaubilder in kleiner und mittlerer Größe eigenständig zu erzeugen und anschließend auf dem Server in den Verzeichnissen ''public/storage/images/preview/'' bzw. ''public/storage/images/medium/'' abzulegen. ==== Datensatz-Namen aktualisieren ==== Dieser Schritt ermöglicht die automatische Erzeugung eines Namens für jeden Datensatz (kurz: [[manual:glossar#name_des_datensatzes|Datensatz-Name]]). Dies ist auf zwei verschiedene Arten möglich: - Übernahme aus einem [[manual:glossar#anzeigefelder|Anzeigefeld]] (entspricht einer importierten Spalte). Das verwendete Anzeigefeld wird durch die Konfiguration des [[manual:glossar#datensatztyp|Datensatztyps]] bestimmt (Attribut: ''config''; Wert: ''title_column:ID'') - Übernahme des Namens eines mit dem Datensatzes verknüpften Taxons (verschiedene Namensschemata möglich) * falls keine Namen für Datensätze vergeben werden sollen, dann **[Beenden]** drücken * andernfalls nach abgeschlossenem Import **[Datensatz-Namen aktualisieren]** drücken * Erzeugungs-Optionen auswählen * warten bis Anzeige auf Datensatztabelle umspringt (erst dann ist dieser Prozess abgeschlossen) * :note: falls nach einer halben Minute nur eine inhaltslose Seite erscheint, dann Seite im Browser neuladen mittels **[F5]** oder **[Strg]+[R]** Es ist ebenso möglich, die automatische Erzeugung der Datensatz-Namen jederzeit //nach// einem Import durchzuführen oder zu wiederholen: Menü **//Admin//** -> **//Datensatz-Namen aktualisieren//** ==== Import verschiedener Datensatztypen am Beispiel Bestikri ==== Im Folgenden wird der Import von drei verschiedenen Datensatztypen am Beispiel des Portals Bestikri spezifiziert. === Artdatensätze === * unter Menü **//Import//** -> **//Datensätze//** auswählen * im sich öffnenden Dialog **Datensatztyp** Artdaten auswählen, Datei auswählen und die in der CSV verwendeten Trennzeichen für Tabellenspalten und Elemente von Mehrfachauswahllisten festlegen -> **[Hochladen]** drücken * im sich öffnenden Dialog Zuordnung der Tabellenspalten zu den vorab definierten Anzeigefeldern vornehmen und verschiedene Festlegungen treffen: * Spalte "Wissenschaftlicher_Name" -> **Beziehung: Taxon mittels Vollname** auswählen (dadurch wird die Verknüpfung des Datensatzes mit der Taxliste realisiert; entspricht der Auswahl des verknüpften Taxons" bei Anlegen einzelner Datensätze) * Spalten "Synonyme" "Dt. Name", "Sektion" ignorieren, werden automatisch erzeugt * Spalte "Menü-Zuordnung" -> **Beziehung: Elternelement mittels Taxon** auswählen (dadurch wir der Datensatz mit dem Elterndatensatz verknüpft, und zwar über den vollständigen wiss. Namen) * für restliche Spalten entsprechende Anzeigenamen wählen * Checkbox **CSV enthält in erster Zeile Spaltenüberschriften** anhaken * Checkbox **nur einzigartige (keine doppelten) Taxa importieren** nur anhaken, wenn es sich um Nach-Import handelt und nur Datensätze von Taxa importiert werden sollen, zu denen es noch keinen Artdatensatz gibt * Dropdown **veröffentlicht** -> **ja** auswählen wenn Datensätze im Frontend angezeigt werden sollen * im Eingabefeld **Übergeordneter Datensatz (Menü-Elternelement)** die zu den Artdatensätzen gehörende Gattung auswählen * im Dropdown **Datensatztyp des Elternelements** Art-Datensatz auswählen * -> **[Importieren]** drücken * im nachfolgenden Dialog kann noch die **Anzahl der zu überspringenden Datensätze** festgelegt werden //(das eröffnet die Möglichkeit eine bekannt Anzahl X bereits früher importierter Datensätze zu überspringen, sofern diese in den ersten X Zeilen der Tabelle stehen)// -> **[Importieren]** drücken * der Fortschrittsbalken zeigt in Schritten von 10 Datensätzen den Verlauf des Imports, im Fenster **Log** werden Importfehler angezeigt * nach Abschluss des Imports wird entsprechende Meldung angezeigt * ggf. Button **[[manual:import#datensatz-namen_aktualisieren|[Datensatz-Namen aktualisieren]]]** === Belegdatensätze === :!: Spalte "Wissenschaftlicher_Name (_Importname)" in CSV vor dem Import duplizieren //(muss zweimal vorhanden sein)// * unter Menü **//Import//** -> **//Datensätze//** auswählen * im sich öffnenden Dialog **Datensatztyp** Belegdaten auswählen, Datei auswählen und die in der CSV verwendeten Trennzeichen für Tabellenspalten und Elemente von Mehrfachauswahllisten festlegen -> **[Hochladen]** drücken * im sich öffnenden Dialog Zuordnung der Tabellenspalten zu den vorab definierten Anzeigefeldern vornehmen und verschiedene Festlegungen treffen: * Spalte "Wissenschaftlicher_Name(_Importname)" -> **Beziehung: Taxon mittels Vollname** auswählen * duplizierte Spalte "Wissenschaftlicher_Name_2(_Importname)" -> **Beziehung: Elternelement mittels Taxon** auswählen * falls vorhanden Spalte "Wissenschaftlicher_Name(_Anzeigename)" -> Anzeigefeld **Wissenschaftlicher Name** auswählen * Spalten "Systemat. Zuordnung" ignorieren, werden automat. erzeugt * für restliche Spalten entsprechende Anzeigenamen wählen * Checkbox **CSV enthält in erster Zeile Spaltenüberschriften** anhaken * Checkbox **nur einzigartige (keine doppelten) Taxa importieren** nie anhaken * Dropdown **veröffentlicht** -> **ja** auswählen wenn Datensätze im Frontend angezeigt werden sollen * im Eingabefeld **Übergeordneter Datensatz (Menü-Elternelement)** -> **keine** auswählen * im Dropdown **Datensatztyp des Elternelements** Art-Datensatz auswählen * -> **[Importieren]** drücken * im nachfolgenden Dialog kann noch die **Anzahl der zu überspringenden Datensätze** festgelegt werden (das eröffnet die Möglichkeit eine bekannt Anzahl X bereits früher importierter Datensätze zu überspringen, sofern diese in den ersten X Zeilen der Tabelle stehen) -> **[Importieren]** drücken * der Fortschrittsbalken zeigt in Schritten von 10 Datensätzen den Verlauf des Imports, im Fenster **Log** werden Importfehler angezeigt * nach Abschluss des Imports wird entsprechende Meldung angezeigt * ggf. Button **[[manual:import#datensatz-namen_aktualisieren|[Datensatz-Namen aktualisieren]]]** === Bilddatensätze === :!: Spalte "Masterbarcode" in CSV vor dem Import duplizieren //(muss zweimal vorhanden sein)// * unter Menü **//Import//** -> **//Datensätze//** auswählen * im sich öffnenden Dialog **Datensatztyp** Bilddaten auswählen, Datei auswählen und die in der CSV verwendeten Trennzeichen für Tabellenspalten und Elemente von Mehrfachauswahllisten festlegen -> **[Hochladen]** drücken * im sich öffnenden Dialog Zuordnung der Tabellenspalten zu den vorab definierten Anzeigefeldern vornehmen und verschiedene Festlegungen treffen: * Spalte "Masterbarcode" -> Anzeigefeld **Masterbarcode** auswählen * duplizierte Spalte "Masterbarcode_2" -> **Beziehung: Elternelement mittels Detail** auswählen (dadurch wir der Datensatz mit dem Elterndatensatz verknüpft, und zwar über ein beliebig wählbares Anzeigefeld, hier der Masterbarcode) * Spalte "Wissenschaftlicher_Name(_Importname)" -> **Beziehung: Taxon mittels Vollname** auswählen * falls vorhanden Spalte "Wissenschaftlicher_Name(_Anzeigename)" -> Anzeigefeld **Wissenschaftlicher Name** auswählen * für restliche Spalten entsprechende Anzeigenamen wählen * Checkbox **CSV enthält in erster Zeile Spaltenüberschriften** anhaken * Checkbox **nur einzigartige (keine doppelten) Taxa importieren** nie anhaken //(zu jedem Taxon gehören in der Regel mehrere Belegdatensätze, wenn diese Checkbox angehakt wäre, würde aber jeweils nur ein Belegdatensatz pro Taxon importiert werden)// * Dropdown **veröffentlicht** -> **ja** auswählen wenn Datensätze im Frontend angezeigt werden sollen * im Eingabefeld **Übergeordneter Datensatz (Menü-Elternelement)** -> **keine** auswählen * im Dropdown **Datensatztyp des Elternelements** Beleg-Datensatz auswählen * -> **[Importieren]** drücken * im nachfolgenden Dialog kann noch die **Anzahl der zu überspringenden Datensätze** festgelegt werden //(das eröffnet die Möglichkeit eine bekannt Anzahl X bereits früher importierter Datensätze zu überspringen, sofern diese in den ersten X Zeilen der Tabelle stehen)// -> **[Importieren]** drücken * der Fortschrittsbalken zeigt in Schritten von 10 Datensätzen den Verlauf des Imports, im Fenster **Log** werden Importfehler angezeigt * nach Abschluss des Imports wird entsprechende Meldung angezeigt * ggf. Button **[[manual:import#datensatz-namen_aktualisieren|[Datensatz-Namen aktualisieren]]]** ---- [[manual:start|Inhaltsverzeichnis]]