Ankündigung

Einklappen
Keine Ankündigung bisher.

Standard-API Import läuft »erfolgreich« durch, schreibt aber keine einzige Zeile

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Standard-API Import läuft »erfolgreich« durch, schreibt aber keine einzige Zeile

    Hi!

    Ich komme bei einem Import über die CustomCatalog-Standard-API nicht weiter und habe alles Naheliegende bereits ausgeschlossen. Vielleicht kennt jemand das Verhalten.

    Ziel: Import einer CSV-Datei in einen Katalog (eigene Tabelle cc_kuenstler).

    Umgebung
    • Contao: 5.3
    • Eclipse/CustomCatalog: Version 6.2
    • Hosting: IONOS, MariaDB
    Konfiguration der API-Anbindung (Standard-API, Modus Import)
    • Quelle: Datei, CSV, Trennzeichen Semikolon
    • Schlüsselfeld: name / Schlüsselfeld in Quelle: name
    • Neue Einträge anlegen: AN
    • Einträge updaten: AUS, Einträge löschen: AUS, Tabelle vor Import leeren: AUS
    • Maximale Anzahl an Einträgen: 30 (bei 20 [Test]-Datenzeilen)
    Jobs
    • Je ein »Feld-Aktion → Wert aus Datenquelle« für name, geburtsort, geboren, todesort, todesdatum (Quellspalten sind im Dropdown korrekt sichtbar und namensgleich)
    • »Fixer Wert«: publish = 1
    • »Fixer Wert«: tstamp = `{{date::U}}`
    Das Problem: Der Import läuft komplett durch, der Report ist grün und listet alle 20 Datensätze korrekt mit Namen auf (»Import abgeschlossen«). Trotzdem bleibt cc_kuenstler leer – im Backend wie in phpMyAdmin.

    Was ich bereits ausgeschlossen habe
    • Ein manueller INSERT INTO cc_kuenstler (name) VALUES ('Test') funktioniert sofort → Tabelle/Rechte/Strict-Mode sind es nicht.
    • Die CSV wird korrekt gelesen (Namen erscheinen im Report als Schlüssel).
    • Die Feld-Zuordnung stimmt (Quell- und Zielspalten namensgleich, zusätzlich explizite »Wert aus Datenquelle«-Jobs).
    • »Tabelle vor Import leeren« ist AUS, es kann also nichts nachträglich gelöscht werden.
    • »Maximale Anzahl = 0 (Alle)« verarbeitet gar nichts (leerer Report `data-index: 0`); mit festem Wert (30) werden alle 20 Zeilen im Report verarbeitet.
    Ich habe die Tabelle per TRUNCATE geleert (Auto_increment damit auf 1) und danach den Import laufen lassen. SHOW TABLE STATUS LIKE 'cc_kuenstler' zeigt anschließend weiterhin Auto_increment = 1. Es wird also kein einziger INSERT abgesetzt – obwohl der Report Erfolg meldet.

    Warum meldet die Standard-API einen erfolgreichen Import, ohne jemals einen INSERT auszuführen? Gibt es dazu ein bekanntes Problem (evtl. PHP-8-Kompatibilität der Schreib-Routine)? Und wo genau protokolliert die API interne Schreibfehler – im Contao-System-Log finde ich nichts Auffälliges. »Bei Fehler« steht auf »nur protokollieren«.

    Über Hinweise, wo ich ansetzen kann, wäre ich sehr dankbar.

    Viele Grüße
    Markus

  • #2
    Hallo,
    lass das Schlüsselfeld einmal leer bzw. prüfe, dass dort keine Numerischen Werte drinstehen.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Hi! Auch hier läuft der Import durch, der Katalog bleibt jedoch leer.

      Kommentar


      • #4
        Die Schlüsselfeld-Prüfung kann bei einer Stückelung zu falschen Quelldaten führen. Das varriert von Quelle zu Quelle. Idealerweise alle Einträge auf einmal importieren lassen und kein Schlüsselfeld angeben.

        Bei einem leeren Schlüsselfeld passt der Import einer CSV. Testweise habe ich den Test-CC exportiert, damit die Felder passen.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Der Export-Header sieht so aus:

          id;pid;tstamp;sorting;ptable;name;alias;geburtsort ;geboren;todesort;todesdatum;highlight;publish

          Die zu importierenden Daten bzw. dessen Header:

          Name;Geburtsort;geboren;gestorben;Todesort

          Der Import funktioniert auch nicht mit leerem Schlüsselfeld. Es läuft alles durch, aber die Importierten Datensätze bleiben letztendlich leer. Aufgaben zur Zuordnung der Felder habe ich angelegt.

          Beispiel:
          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2026-10-13 um 11.57.jpg
Ansichten: 10
Größe: 101,4 KB
ID: 32236

          »Neue Einträge anlegen« und »Tabelle vor Import leeren« sind angehakt.
          Angehängte Dateien

          Kommentar


          • #6
            Nutzt du bereits aktuelle Versionen?
            https://forum.premium-contao-themes....2191#post32191
            http://www.premium-contao-themes.com

            Kommentar


            • #7
              Habe soeben auf auf 6.3.3 und CC 6.0.1 aktualisiert. Funktioniert jedoch nach wie vor nicht.

              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2026-10-14 um 08.58.42.png
Ansichten: 0
Größe: 36,5 KB
ID: 32239 Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2026-10-14 um 08.58.15.png
Ansichten: 0
Größe: 58,5 KB
ID: 32240 Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2026-10-14 um 08.58.22.png
Ansichten: 0
Größe: 101,3 KB
ID: 32241 Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Bildschirmfoto 2026-10-14 um 08.58.28.png
Ansichten: 0
Größe: 44,1 KB
ID: 32242

              Kommentar


              • #8
                Vergleiche mit dem Export.

                Wenn du das tstamp Feld nicht beschreibst beim Import, wird Contao selbst die Tabelle leeren bei Aufruf -> reviseTable.
                Das tstamp Feld unterscheidet in Contao zwischen gespeicherten / temp. Datensätzen.

                Darüber hinaus müsste ich an dieser Stelle die CSV selbst prüfen. Wenn der Import einmalig ausgeführt wird, würde ich einfach einmal via phpmyadmin feuern oder wenn es sich nicht um gigantische Datenmengen handelt, eine einfache foreach Anweisung in einem Template


                Zuletzt geändert von Tim; Heute, 09:30.
                http://www.premium-contao-themes.com

                Kommentar


                • #9
                  Der Kunde möchte in unregelmäßigen Abständen gerne eine Liste aktualisieren. Anbei mal der Test-Export aus dem Katalog sowie eine Test-CSV des Kunden.

                  listen_test.zip

                  Kommentar


                  • #10
                    Zitat von mapfei Beitrag anzeigen
                    Der Kunde möchte in unregelmäßigen Abständen gerne eine Liste aktualisieren. Anbei mal der Test-Export aus dem Katalog sowie eine Test-CSV des Kunden.

                    [ATTACH]n32245[/ATTACH]
                    tstamp hast du drin?

                    In der import csv fehlt alias. Hier musst du eine eigene Logik beim Import vorsehen, oder das Feld wird leer sein. Ich würde auch empfehlen bei gleichen Spaltennamen auf gleiche Schreibweise achten. Entweder alles groß oder klein.

                    Für die paar Zeilen ist nen kleines Template fast schneller . Du kannst eh nur reine Textfelder nutzen. Datumsfelder sind zu vermeiden, sonst musst du den Import deutlich bereinigen.
                    Zuletzt geändert von Tim; Heute, 11:37.
                    http://www.premium-contao-themes.com

                    Kommentar


                    • #11
                      Ich würds einfach über nen flinkes Template machen. Ist im Anhang. Der Insert-Befehl und der Truncate sind auskommentiert. Die kannst du dann scharfschalten.

                      Einfach eine Seite legen und via file Inserttag einfügen. Die CSV sollte noch saubere Sonderzeichen ausgeben.
                      Angehängte Dateien
                      http://www.premium-contao-themes.com

                      Kommentar

                      Lädt...
                      X