Ankündigung

Einklappen
Keine Ankündigung bisher.

API: Standard Export und Import funktionieren nicht unter CTO 4.4.8

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

  • API: Standard Export und Import funktionieren nicht unter CTO 4.4.8

    Unter CTO 4.4.8 und CC 2.10.0 funktionieren Export und Import nicht.
    Unter CTO 3.5.31 läuft alles super.

    Habe ich etwas übersehen oder funktioniert die API nicht unter CTO 4?

    Im Backend erscheint nach Abschluss "No export data found".
    Im Log finden sich direkt nach Aufruf des Exports die folgenden Fehler.

    PHP-Code:
    [2017-11-16 12:21:36request.INFOMatched route "contao_backend". {"route":"contao_backend","route_parameters":{"_scope":"backend","_token_check":true,"_controller":"Contao\\CoreBundle\\Controller\\BackendController::mainAction","_route":"contao_backend"},"request_uri":"https://dhl-adressen-4:8890/contao?api_running=1&do=pct_customelements&id=2&index=0&key=run&range=1&rt=17tPTl1v9pb5Pub-6G3EQz2qj6A4P9g4KvLPVvKfqqQ&table=tl_pct_customcatalog_api","method":"HEAD"} []
    [
    2017-11-16 12:21:36security.INFOAttempting SimplePreAuthentication. {"key":"backend","authenticator":"Contao\\CoreBundle\\Security\\ContaoAuthenticator"} []
    [
    2017-11-16 12:21:36request.INFOMatched route "contao_backend". {"route":"contao_backend","route_parameters":{"_scope":"backend","_token_check":true,"_controller":"Contao\\CoreBundle\\Controller\\BackendController::mainAction","_route":"contao_backend"},"request_uri":"https://dhl-adressen-4:8890/contao?api_running=1&do=pct_customelements&id=2&index=0&key=run&range=1&rt=17tPTl1v9pb5Pub-6G3EQz2qj6A4P9g4KvLPVvKfqqQ&table=tl_pct_customcatalog_api","method":"GET"} []
    [
    2017-11-16 12:21:36security.INFOAttempting SimplePreAuthentication. {"key":"backend","authenticator":"Contao\\CoreBundle\\Security\\ContaoAuthenticator"} []
    [
    2017-11-16 12:21:36app.CRITICALAn exception occurred. {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\UndefinedMethodException(code: 0): Attempted to call an undefined method named "addCritialError" of class "PCT\\CustomCatalog\\API\\Standard\\Export".\nDid you mean to call e.g. "addCriticalError" or "hasCriticalErrors"? at /Applications/MAMP/htdocs/dhl-adressen-4/system/modules/pct_customelements_plugin_customcatalog/PCT/CustomCatalog/APIs/Standard/Backend/ExportPage.php:133)"} []
    [
    2017-11-16 12:21:36request.INFOMatched route "contao_backend". {"route":"contao_backend","route_parameters":{"_scope":"backend","_token_check":true,"_controller":"Contao\\CoreBundle\\Controller\\BackendController::mainAction","_route":"contao_backend"},"request_uri":"https://dhl-adressen-4:8890/contao?api_running=1&complete=1&do=pct_customelements&id=2&index=1&key=run&range=1&rt=17tPTl1v9pb5Pub-6G3EQz2qj6A4P9g4KvLPVvKfqqQ&table=tl_pct_customcatalog_api","method":"HEAD"} []
    [
    2017-11-16 12:21:36security.INFOAttempting SimplePreAuthentication. {"key":"backend","authenticator":"Contao\\CoreBundle\\Security\\ContaoAuthenticator"} []
    [
    2017-11-16 12:21:36request.INFOMatched route "contao_backend". {"route":"contao_backend","route_parameters":{"_scope":"backend","_token_check":true,"_controller":"Contao\\CoreBundle\\Controller\\BackendController::mainAction","_route":"contao_backend"},"request_uri":"https://dhl-adressen-4:8890/contao?api_running=1&complete=1&do=pct_customelements&id=2&index=1&key=run&range=1&rt=17tPTl1v9pb5Pub-6G3EQz2qj6A4P9g4KvLPVvKfqqQ&table=tl_pct_customcatalog_api","method":"GET"} []
    [
    2017-11-16 12:21:36security.INFOAttempting SimplePreAuthentication. {"key":"backend","authenticator":"Contao\\CoreBundle\\Security\\ContaoAuthenticator"} []
    [
    2017-11-16 12:21:36app.CRITICALAn exception occurred. {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\UndefinedMethodException(code: 0): Attempted to call an undefined method named "addCritialError" of class "PCT\\CustomCatalog\\API\\Standard\\Export".\nDid you mean to call e.g. "addCriticalError" or "hasCriticalErrors"? at /Applications/MAMP/htdocs/dhl-adressen-4/system/modules/pct_customelements_plugin_customcatalog/PCT/CustomCatalog/APIs/Standard/Backend/ExportPage.php:133)"} [] 
    Zuletzt geändert von Pandroid; 16.11.2017, 11:32.

  • #2
    Ah ja, da ist ein kleiner Wechselstaben verbuchtelt. Es muss "addCriticalError" lauten.
    Zuletzt geändert von Tim; 16.11.2017, 13:38.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Nachdem ich das Update eingespielt, zur Sicherheit im Manager Cache gelöscht und Install-Tool aufgerufen und sogar die Symlinks neu erstellen lassen habe, gibt es nun folgende Fehlermeldung im Backend

      "Bei der Ausführung wurden Fehler entdeckt. Aktiveren Sie den Contao Debug-Modus in den Systemeinstellungen, um System-Logs zu speichern oder nutzen Sie die Browser-Console bei Ajax Befehlen."

      Eine Log-Datei wird nicht erstellt.

      Kommentar


      • #4
        Die Daten für den Import / Export sind leer bzw. sogar undefiniert. Generell kein Fehler, ist ein Hinweis der API selbst hier.

        Das ist schwierig per Ferndiagnose. Ich gehe davon aus, du nutzt identische Quellen unter 3.5 und 4. Damit sollte die Quelle generell korrekt sein.
        Die Daten werden standardmäßig in einer temp. Datei ausgelagert um die Größe der Session zu reduzieren. Vielleicht mag das C4 nicht. Ich muss es durchspielen.

        Ich gebe zu. Ich nutze CC nicht viel unter C4. Nicht um CC Willen, sondern C4 nervt derzeit einfach noch ab für solide Webentwicklung. Der Entwicklermodus (app_dev) ist so langsam und ressourcen-hunrig, dass sich Contao selbst aufhängt und unter der normalen produktiven Umgebung grätscht stetig der Symphony Cache etc. rein und man merkt, wie man nicht "Herr der Lage" ist.
        Auch macht CC unter C4 bei weitem nicht soviel Spaß, wie unter 3.5. Immer wieder in das Installations-Tool wechseln für DB Updates....

        Ich spiel das mal durch und schaue wo es hier hakt bzw. wahrscheinlich durch Symphony hakt.
        Zuletzt geändert von Tim; 17.11.2017, 07:57.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Hallo Tim, danke, dass Du das nochmal testest.

          Beide Installationen 3.5 und 4 laufen hier lokal auf MAMP. In den Installationen gibt es keine weitere Erweiterung. CC besteht derzeit aus einem CE (Textfeld, Adresse mit Geokoordinaten) und 3 Datensätzen zum Testen.
          Sag Bescheid, wenn ich Dir etwas zum Testen schicken soll.

          Ich bin auch wegen CTO 3.5 und 4 hinundhergerissen. Da ich das Projekt langfristig aufsetze und der LTS für 3.5 nächstes Jahr endet, habe ich mich letztlich für CTO 4 entschieden. Ich gebe aber zu, schön ist anders... ;-)

          Kommentar


          • #6
            Unter C4 beschreibt er wirklich die temp. Datei falsch bzw. setzt einen kryptischen Namen ein, warum auch immer. Schau ich mir jetzt mal an.

            Sagt man der API sie solle nur die Session nutzen, arbeitet alles normal:
            localconfig.php

            $GLOBALS['PCT_CUSTOMCATALOG_API']['SETTINGS']['useLocalStorage'] = false;

            ---

            Ich hab es für das nächste Update schon drin. Hab den kleinen Übeltäter gefunden.
            Zuletzt geändert von Tim; 17.11.2017, 10:13.
            http://www.premium-contao-themes.com

            Kommentar


            • #7
              Bin mir nicht sicher, ob es damit zusammenhängt:


              Ich habe eine Import Api ->

              Tabelle 1 (Importtabelle): Schlüsselfeld = api-id
              Tabelle 2 (Quelle): Schlüssefeld = id

              Zum Testen sollte nur das Feld "name" aus Quelle in Feld "company" aus Importtabelle geupdated werden.

              Fehler:

              SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '334' for key 'PRIMARY'

              Kommentar


              • #8
                Erstelle einen API-Job "ignorieren" für das ID Feld aus deiner Quelle, damit kannst du sicherstellen, dass es garantiert keine doppelten Einträge in dem PRIMARY Feld gibt. Standardmäßig ist nur das ID Feld ein PRIMARY.
                Zuletzt geändert von Tim; 31.01.2018, 15:48.
                http://www.premium-contao-themes.com

                Kommentar


                • #9
                  Erstelle einen API-Job "ignorieren" für das ID Feld aus deiner Quelle
                  Du meinst das ID Feld für die Import Tabelle?! also nicht die Quelle...

                  Kommentar


                  • #10
                    Zitat von eblick Beitrag anzeigen

                    Du meinst das ID Feld für die Import Tabelle?! also nicht die Quelle...
                    Ja genau. Es soll beim Import ignoriert werden.

                    Duplicate entry bedeutet ja, dass die API die Werte aus der Quelle ermittelt hat und in das Ziel einsetzen will. -> das schließt die fehlenden Daten, um die es hier anfangs ging aus. Das ist auch generell kein schlechter Fehler, weil die Datenbank bzw. Mysql sich damit selbst schützt, sonst hätte man Einträge mit identischen Ids, die aber eineindeutig sein müssen.
                    Zuletzt geändert von Tim; 31.01.2018, 15:58.
                    http://www.premium-contao-themes.com

                    Kommentar

                    Lädt...
                    X