Ankündigung

Einklappen
Keine Ankündigung bisher.

Fehler bei CC API für Import & Export unter X5

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

  • Fehler bei CC API für Import & Export unter X5

    Hi,
    wird die CC API unter Eclipse X noch unterst�tzt? Irgendwie scheinen die Import/Export Funktionen unter X5 nicht ganz rund zu laufen (5.0.16).

    Beim Import kommt es zum Fehler "unknown column "0" in field list". Das auch bei Testdaten mit sehr wenigen, kontrollierten Werten und unterschiedlichen CCs. In Eclipse 4.3.4 trat dieser Fehler nicht auf. Jobs sind keine vorhanden.

    Beim Export werden nicht alle Eintr�ge ber�cksichtigt ("nur ver�ffentlicht" ist nicht aktiv). -> Scheint mit der Mehrfach-Verarbeitung zusammenzuh�ngen (tritt auch in X4.3.4 auf). Bei max. 1 l�uft der Export ohne Fehler. Wenn wir die Anzahl der gleichzeitig zu verarbeitenden Eintr�ge erh�hen, treten ungef�hr dem 2. oder 3. Batch Fehler auf: No export data for table cc_...

    Danke!
    Angeh�ngte Dateien
    Zuletzt geändert von EBL; 21.11.2024, 09:58.

  • #2
    Hi,
    unknown column kann ich nachstellen beim Import. Da hat sich eine Array-Pr�fung ge�ndert in Contaos neuer ArrayUtil Klasse und damit denkt das System es k�me nur ein Eintrag an, wenn doch mehrere verarbeitet werden sollen. Ich hab's notiert.

    Beim Export konnte ich keine Probleme feststellen. Selbst bin�re Werte werden ber�cksichtigt.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Super, der unknown column Fehler tritt jetzt nicht mehr auf. Allerdings werden jetzt auch beim Import nicht alle Eintr�ge importiert. Wir kommen von ca. 3800 Eintr�gen, exportiert direkt aus der Datenbank als CSV Export auf ca. 1900 Eintr�ge nach dem Import. Das auch, wenn wir die Tabelle vorher leeren. Was auch auff�llt, ist dass je nach der Option "maximale Anzahl an Eintr�gen" unterschiedlich viele Eintr�ge importiert werden.

      C 4.13.50, X 5.0.22

      Kommentar


      • #4
        Zitat von EBL Beitrag anzeigen
        Super, der unknown column Fehler tritt jetzt nicht mehr auf. Allerdings werden jetzt auch beim Import nicht alle Eintr�ge importiert. Wir kommen von ca. 3800 Eintr�gen, exportiert direkt aus der Datenbank als CSV Export auf ca. 1900 Eintr�ge nach dem Import. Das auch, wenn wir die Tabelle vorher leeren. Was auch auff�llt, ist dass je nach der Option "maximale Anzahl an Eintr�gen" unterschiedlich viele Eintr�ge importiert werden.

        C 4.13.50, X 5.0.22
        Das ist ja schon eine beachtliche Masse.
        Man kann nicht ausschlie�en, dass einfach irgendwann der Server dicht macht. Je nach Load, schafft der Server halt nur eine bestimmte kritische Masse. Das scheint hier bei ca.1900 vollst�ndigen Datens�tzen zu liegen.
        Das Frontend API Modul erlaubt Limits und Offsets via Url-Parameter (siehe Dokumentation). Damit k�nnen mehrere Importe in Reihe geschaltet werden, die jeweils versetzt ansetzen.

        Oder trenne die CSV in 3 oder 4 Einzeldateien und importiere diese jeweils in getrennten Import-Instanzen. Das sollte der Server schaffen, wenn er 1900 Datens�tze grob schafft.
        Zuletzt geändert von Tim; 27.11.2024, 16:14.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Also bei 100 Datens�tzen kommen wir mit verschiedenen Settings auf 50 importierte Eintr�ge. Nur bei gleichzeitig zu verarbeitenden Elementen = 1 werden alle importiert.

          Kommentar


          • #6
            Dann lass einzeln verarbeiten. Schwer zu sagen, ob die Stapelverarbeitung nicht auch in einen Flaschenhals l�uft. Da spielen viele Faktoren rein.

            Was waren oben die 1900 Datens�tze nach Import?

            Ist das ein einmaliger Import oder m�ssen hier stetig Daten getauscht werden? Wenn letzteres sollte man eher mit dem Frontend arbeiten und ggf. einen realen Cronjob nutzen, der das Frontend API Modul anst��t.

            Wenn keine Feldwerte ge�ndert werden, kann man auch einfach via phpmyadmin importieren.
            Zuletzt geändert von Tim; 29.11.2024, 08:28.
            http://www.premium-contao-themes.com

            Kommentar


            • #7
              Wie gesagt, schwer pauschal zu sagen.

              Ich habe zum Test mal einen Import durchlaufen lassen mit 10er Bl�cken. In der CSV sind 200 Eintr�ge. Das Textfeld "textfeld" ist hochlaufend von 1 - 199, damit man sieht, dass es die jeweiligen Eintr�ge sind.



              Angeh�ngte Dateien
              http://www.premium-contao-themes.com

              Kommentar


              • #8
                Hi, also �berraschenderweise hat der Import mit "maximale Anzahl an Eintr�gen" = 0 gut funktioniert (3800 Datens�tze). Das k�nnen aber in Zukunft aber noch deutlich mehr werden, w�re also schon sinnvoll, wenn die Stapelverarbeitung auch problemlos laufen w�rde. Wir k�nnen dir dazu auch gerne einen Testzugang schicken.

                Anderes Thema: Gibt es einen einfachen Weg auch JSON Dateien als Quelle zu nutzen (zb. Quelle PHP Array und JSON in template zu php Arr konvertieren?)

                Vielen Dank!

                Kommentar


                • #9
                  Zitat von EBL Beitrag anzeigen
                  Hi, also �berraschenderweise hat der Import mit "maximale Anzahl an Eintr�gen" = 0 gut funktioniert (3800 Datens�tze). Das k�nnen aber in Zukunft aber noch deutlich mehr werden, w�re also schon sinnvoll, wenn die Stapelverarbeitung auch problemlos laufen w�rde. Wir k�nnen dir dazu auch gerne einen Testzugang schicken.

                  Anderes Thema: Gibt es einen einfachen Weg auch JSON Dateien als Quelle zu nutzen (zb. Quelle PHP Array und JSON in template zu php Arr konvertieren?)

                  Vielen Dank!
                  Die API erlaubt ein Template-File als Quelle, das einen Array beinhaltet. Wie dieser Array zustande kommt, ist frei.

                  Die Stapelverarbeitung hat in meinen Tests problemlos funktioniert. Wenn eine so gro�e Masse an Daten in einem Rutsch durchgeht, empfehle ich �ber das Frontend zu importieren. Wie oben erw�hnt erlaubt das Frontend Modul individuelle Offsets. Alternativ w�re die Backend-Import Logik individuell f�r Euren Zweck anzupassen.
                  http://www.premium-contao-themes.com

                  Kommentar


                  • #10
                    �ber das Frontend Modul wird aktuell leider nichts importiert. Wenn in der API Anbindung "Tabelle vor Import leeren" aktiv ist, wird die Tabelle zwar geleert aber nichts importiert. Die zu importierende Datei ist dieselbe, die beim Standard Import ohne Stapelverarbeitung korrekt verarbeitet wird.

                    Standardtemplate mod_customcatalogapi:
                    Code:
                    <div class="<?php echo $this->class; ?> block"<?php echo $this->cssID; ?><?php if ($this->style): ?> style="<?php echo $this->style; ?>"<?php endif; ?>>
                    <?php if ($this->headline): ?>
                    <<?php echo $this->hl; ?>><?php echo $this->headline; ?></<?php echo $this->hl; ?>>
                    <?php endif; ?>
                    
                    <form action="<?php echo $this->action; ?>" method="<?php echo $this->method; ?>">
                    
                    <?php if(strtolower($this->method) == 'post'):?>
                    <input type="hidden" name="FORM_SUBMIT" value="<?php echo $this->formId; ?>">
                    <input type="hidden" name="REQUEST_TOKEN" value="?= \Contao\System::getContainer()->get('contao.csrf.token_manager')->getDefaultTokenValue(); ?>">
                    <?php endif; ?>
                    
                    <input type="hidden" name="api" value="<?php echo $this->Api->id; ?>">
                    
                    <?php echo $this->hidden; ?>
                    
                    <div class="tl_formbody_submit">
                    <div class="tl_submit_container">
                    <?php echo $this->runSubmit; ?>
                    </div>
                    </div>
                    </form>
                    
                    </div>
                    Frontend Ausgabe:
                    Code:
                    <div class="mod_customcatalog_apistarter cc_haendler_verarbeiter block">
                    
                    <form action="api-starter.html" method="get">
                    
                    
                    <input type="hidden" name="api" value="1">
                    
                    
                    <div class="tl_formbody_submit">
                    <div class="tl_submit_container">
                    <button type="submit" id="ctrl_run" class="submit submit tl_submit" name="run" value="Ausf�hren">Ausf�hren</button> </div>
                    </div>
                    </form>
                    
                    </div>
                    Mit Parametern wie in der Doku kommt es zum gleichen Ergebnis: api-starter.html?api=1&run=1&limit=10&offset=10

                    Kommentar


                    • #11
                      Boah, das ist alles lange her... Ich w�rde sagen, das hat niemand seit 6 Jahren genutzt. Wenn es nicht drin w�re im Kern, w�rde ich es kicken

                      Ich muss das selbst mal durchspielen, kann schon sein, dass sich da was ge�ndert hat mit PHP8 und ggf. dem Caching der Daten, dass nichts ankommt.

                      �hhh... also die Offset usw. Einstellungen sind f�r den Export konzipiert. Damit wird der DB-Query auf die Zieltabelle justiert. Ein Import greift immer die gesamte Quelle ab. Bei einer CSV alle Eintr�ge. -> man kann mit mehreren CSVs arbeiten und mehreren API Startern.
                      http://www.premium-contao-themes.com

                      Kommentar


                      • #12
                        Ich hab das API Starter Modul etwas angepasst f�r C5 und werde einen neuen Hook etablieren "getSourceData"-Hook, der die ermittelten Quelldaten �bergibt und manipulieren l�sst, bevor sie weiter verarbeitet werden. Das sollte jede Form von Import-Daten - �bergabe frei erm�glichen.
                        http://www.premium-contao-themes.com

                        Kommentar

                        Lädt...