Grundsätzliches
Voraussetzung für einen erfolgreichen automatischen Datenimport ist eine dem Importdaten entsprechende Filterdatei. Diese kann - wie bei einem einmaligen "manuellen" Import auch - einfach über das System erzeugt und gespeichert werden.
Die automatischen Importläufe erfolgen durch den Aufruf der Seite "import.php". Der Import wird dabei durch verschiedene URL-Parameter konfiguriert. Die zu setzenden Parameter werden im nächsten Abschnitt erläutert.
Um den Seitenaufruf zeitgesteuert erfolgen zu lassen bietet sich ein Cron-Job an, in welchem per "wget" die Adresse geladen wird. Die Ausgabe des Scriptes kann zur maschinellen Auswertung in Textform erfolgen.
Die zu importierenden Daten können dabei als lokale Datei auf dem Server vorliegen oder auch direkt per URL-Parameter übermittelt werden.
Die Aufrufparameter
- output_messages_only
- "1" - Statt HTML erfolgt die Rückgabe als Text
- import_filter_name
- Name der zu verwendenden Filterdatei
- import_csv_with_header
- "1" - Die erste Zeile der CSV-Datei ist eine Kopfzeile, welche keinen zu importierenden Datensatz enthält
- import_do_update
- "1" - bestehende Datensätze werden mit den importierten Daten aktualisiert. Es werden keine neuen Datensätze angelegt.
- import_do_insert
- "1" - neue Datensätze werden angelegt
- import_empty_first
- "1" - die Zieltabelle wird vor dem Import von Daten geleert
- display_csv
- "1" - wenn als Rückgabeformat HTML gewählt wurde, werden die verarbeitenden CSV-Daten im der zurückgegebenen HTML_Seite angezeibgt (siehe auch Parameter "output_messages_only")
- preview_filtered_only
- "1" - der Import wird nur testweise durchgeführt. Die Daten in der Datenbank werden dabei nicht geändert.
- import_csv_separator
- Das Separator-Zeichen des zu verwendenten CSV-Formates. Ist dieser Parameter nicht gegeben, wird das Standardzeichen aus der Grundkonfiguration des Systems verwendet.
- local-csv-file
- Lokaler Dateipfad einer zu importierenden CSV-Datei
- csv-data
- Die zu importierenden CSV-Daten (wenn keine lokale Datei importiert werden soll -> siehe Parameter "local-csv-file")
Beispiel für einen Aufruf
Dieser Aufruf aktualisiert die Datenbank mit den Daten aus der lokalen Datei "/importdata/current.csv" mit dem Filter "default.php". Die Ausgabe erfolgt in Textform:
import.php?output_messages_only=1&import_filter_name=default.php&import_csv_with_header=1&import_do_update=1&import_do_insert=0&import_csv_separator=%3B&local-csv-file=%2Fimportdata%2Fcurrent.csv
Ein Aufruf via cron könnte also folgendermaßen aussehen (der Aufruf im geschützten Verzeichnis erfolgt hier mit wget):
* 20 * * * cronuser
wget --http-user=loginname --http-passwd=PassWort --quiet -O "http://meine.webseite.org/index.php?import.php?output_messages_only=1&import_filter_name=default.php&import_csv_with_header=1&import_do_update=1&import_do_insert=0&import_csv_separator=%3B&local-csv-file=%2Fimportdata%2Fcurrent.csv"
|