Verwiesen an Support/SP Fehlermeldung

  • Wenn Ihr uns das erste Mal besucht, lest euch bitte zuerst die Foren-Regeln durch.

bork

Gut bekanntes Mitglied
26. Januar 2007
422
3
#1
  • bork

Hallo,

bekomme beim Import von Produkten aus dem Shop in die JTL diese Fehlermeldung:

Code:
JTL-Wawi: End sync
Artikel-Empfangen-Fehler: Bitte beachten Sie, dass zur Fehler-Diagnose ebenfalls die Log-Datei des Servers und das Abgleich-Log der JTL-Wawi notwendig sind!
Verletzung der PRIMARY KEY-Einschränkung 'PK_tArtikelAttributSprache'. Ein doppelter Schlüssel kann in das dbo.tArtikelAttributSprache-Objekt nicht eingefügt werden. Der doppelte Schlüsselwert ist (185830, 0).
Die Anweisung wurde beendet.
In der Tat liegt das Artikelattribut "Wesentliche Produktmerkmale" seltsamerweise zweimal vor. Ich gehe davon aus, dass der Import dann daran scheitert, dass der Connector nicht weiß welches Feld er befüllen muss? Ich habe auch schon probiert, das zweite falsche Artikelattribut zu löschen, aber dann will der Connector beim nächsten Upload 103 Artikel updaten, und da gibts dann auch wieder eine Fehlermeldung. Da beißt sich die Katze dann in den Schwanz. Wie kann ich diese Inkonsistenz anders wegbekommen? Kann ich das falsche Artikelattribut in der JTL löschen und dann dem Connector vorgaukeln, die jeweiligen betroffenen Artikel bräuchten nicht aktualisiert werden? Problem dazu ist auch noch, dass ich nicht weiß WELCHE 103 Artikel der Connector hochladen möchte. Das muss irgendwie in der JTL Datenbank zu finden sein, oder? Gibt es da so eine Queue mit Artikeln, die seit dem letzten Webshop-Abgleich geändert wurden, und die man vielleicht resetten kann?
 

bork

Gut bekanntes Mitglied
26. Januar 2007
422
3
#2
  • bork

Also faktisch gehts mir darum, eine Möglichkeit zu finden, falsche/fehlerhafte/doppelte Artikelattribute in der JTL Wawi zu löschen ohne dass die Artikel anschließend im Webshop aktualisiert werden. Wenn mir da jemand irgendwie helfen kann, wäre super...
 

itratosTeam

Gut bekanntes Mitglied
19. April 2007
313
9
Bamberg
#3
Hallo Bork,

wir supporten zwar den OXID Connector aber ich kann mir vorstellen das es bei gambio ähnlich ist. Die JTL Wawi sendet an den Shop jegliche Änderungen, der Connector muss diese dann ausführen.
Du kannst also nichts in JTL machen was einen Abgleich erzeugt und den Connector zwingen das er diesen Abgleich ignoriert.

Das einzige was evtl. möglich ist, Du baust Dir im Connector einen Code Schnipsel ein der den Eintrag der Änderung der Attribute in die Shop Datenbank abfängt aber den Eintrag in die jtl_connector_link Tabelle zulässt - so das die JTL Wawi denkt der Job sei ausgeführt.
 

bork

Gut bekanntes Mitglied
26. Januar 2007
422
3
#4
  • bork

Ok... eine dauerhafte Lösung brauche ich gar nicht, nur eine für einen einzelnen Abgleich. Die Artikelattribute sind durch irgendeine vorherige Connector-Version doppelt angelegt worden, und ich will sie nur einmalig löschen und dabei den Abgleich unterbinden. Kann man dann für die jt_connector_link Tabelle was von Hand einfügen? Ist das die jtl_connector_product_checksum die in der Spalte checksum einen neuen Eintrag benötigt? Woraus wird denn die Checksum gebildet? Oder muss man das trotzdem mit so einem Schnipsel machen?
 

bork

Gut bekanntes Mitglied
26. Januar 2007
422
3
#5
  • bork

Was ich jetzt noch probiert habe:

- Connector einstellen auf "Nichts uploaden, nur Produkte aus dem Shop holen und in der Wawi aktualisieren"
- Alle falschen/doppelten Produktattribute in der JTL Wawi löschen
- Die Connector-Tabellen "jtl_connector_link_product" und "jtl_connector_link_product_checksum" leeren
- Abgleich starten

Kommt aber auch wieder eine Fehlermeldung:
erletzung der PRIMARY KEY-Einschränkung 'PK_tArtikelAttributSprache'. Ein doppelter Schlüssel kann in das dbo.tArtikelAttributSprache-Objekt nicht eingefügt werden. Der doppelte Schlüsselwert ist (185888, 0).
 

bork

Gut bekanntes Mitglied
26. Januar 2007
422
3
#6
  • bork

Hilfe, was kann ich denn jetzt machen?? Ich kann weder die Artikel in der JTL noch in Gambio löschen und in die eine oder andere Richtung wieder neu synchronisieren, weil in beiden Systeme Daten vorhanden sind, die es in dem anderen nicht gibt.
 

bork

Gut bekanntes Mitglied
26. Januar 2007
422
3
#8
  • bork

Ich habe hier mal die Artikelattribute rot markiert, die im Laufe der Gambio-Connector-Versionen zuviel importiert wurden: unbenannt.png. Wenn ich dann eins lösche, wird mir angezeigt dass es noch mehr Inkonsistenzen gibt: unbenannt2.png. Bevor ich das nicht behebe, kann ich nichts speichern, und wenn ich speichere habe ich etwa 100 Artikel die der Connector aktualisieren will aber nicht kann, weil die entsprechenden Felder ja in Gambio nicht existieren... Was soll ich tun??
 

Anhänge

bork

Gut bekanntes Mitglied
26. Januar 2007
422
3
#9
  • bork

Ich habe das Problem jetzt isoliert: Es ist ein JTL Connector Bug. Und zwar werden beim Artikelimport die wesentlichen Produktmerkmale in Gambio nicht mit dem bestehenden Artikelattribut "wesentliche Produktmerkmale" zusammengeführt, sondern mit dem selben Namen neu angelegt => Inkonsistente JTL Datenbank, da die Namen von Artikelattributen unique sein müssen. Beim nächsten Upload-Versuch des Artikels zu Gambio gibt es die entsprechende Fehlermeldung.

Problem erkannt und Bug gemeldet - Wie ich jetzt aber meine Datenbank wieder in Schuss bekomme, damit bin ich immer noch nicht weiter...
 

bork

Gut bekanntes Mitglied
26. Januar 2007
422
3
#10
  • bork

Eigentlich sind es streng genommen zwei Bugs:

Connector Bug: Die wesentlichen Produktmerkmale (in der Gambio DB 'products_description.checkout_information') werden neu angelegt obwohl sie bestehen
Wawi Bug: Es wird nicht abgefangen, dass der Connector eine Datenbankinkonsistenz ermöglicht
 

daniel.jtl

Moderator
Mitarbeiter
12. März 2014
1.274
25
#13
Connector Bug: Die wesentlichen Produktmerkmale (in der Gambio DB 'products_description.checkout_information') werden neu angelegt obwohl sie bestehen
Das kann technisch überhaupt nicht gehen, da "checkout_information" lediglich eine Spalte der products_description Tabelle ist, und keine eigenständige Tabelle.
Der Connector leert den Wert dieses Feldes beim senden eines Artikels zunächst (da das Attribut ja ggf. in der Wawi gelöscht wurde), anschließend wird das Feld (sofern das Attribut in der Wawi noch/wieder gesetzt ist) mit dem aktualisierten Wert wieder gefüllt. Das etwas "neu angelegt" wird ist daher wie gesagt technisch unmöglich.

Wawi-seitig kann ich da nichts zu sagen, gebe das aber an die Kollegen weiter...
 

bork

Gut bekanntes Mitglied
26. Januar 2007
422
3
#14
  • bork

Das kann technisch überhaupt nicht gehen, da "checkout_information" lediglich eine Spalte der products_description Tabelle ist, und keine eigenständige Tabelle.
Der Connector leert den Wert dieses Feldes beim senden eines Artikels zunächst (da das Attribut ja ggf. in der Wawi gelöscht wurde), anschließend wird das Feld (sofern das Attribut in der Wawi noch/wieder gesetzt ist) mit dem aktualisierten Wert wieder gefüllt. Das etwas "neu angelegt" wird ist daher wie gesagt technisch unmöglich..
Logisch! Ich schreibe ja auch vom Pull, wie hier ersichtlich: https://forum.jtl-software.de/threads/fehlermeldung.109697/#post-601837

Die wesentlichen Produktmerkmale werden nicht in Gambio doppelt angelegt, sondern in der JTL Wawi.
 

bork

Gut bekanntes Mitglied
26. Januar 2007
422
3
#15
  • bork

Noch ein Bug in diesem Zusammenhang: Wenn man die Synchronisation von Artikelattributen in der features.json deaktiviert, wird trotzdem weiterhin fleißig gepullt.
 

daniel.jtl

Moderator
Mitarbeiter
12. März 2014
1.274
25
#16
Wenn man die Synchronisation von Artikelattributen in der features.json deaktiviert, wird trotzdem weiterhin fleißig gepullt.
Das lässt sich auch nicht ändern. Die Attribute sind kein Main-Entity, sondern stehen immer im Zusammenhang mit dem Artikel.
Im tatsächlichen Sinne von "abschalten" funktioniert das nur mit Haupt-Objekten, wie zb Kategorien, Artikel, Kunden, usw. Also alles was auch für sich allein gestellt existieren kann.
 

bork

Gut bekanntes Mitglied
26. Januar 2007
422
3
#17
  • bork

Bin verwirrt: Du schreibst, Artikel sind keine Main-Entities aber Haupt-Objekte? Vertippt, oder habe ich einen Denkfehler? Angenommen es lässt sich für Artikelattribute nicht abschalten: Seid ihr an dem Bug des doppelten Artikelattributimports dran?
 

bork

Gut bekanntes Mitglied
26. Januar 2007
422
3
#19
  • bork

Das lässt sich auch nicht ändern. Die Attribute sind kein Main-Entity, sondern stehen immer im Zusammenhang mit dem Artikel.
Das heißt im Umkehrschluss: Für Artikel geht das nicht, oder?

Im tatsächlichen Sinne von "abschalten" funktioniert das nur mit Haupt-Objekten, wie zb Kategorien, Artikel, Kunden, usw. Also alles was auch für sich allein gestellt existieren kann.
Das heißt: Es geht nur für Haupt-Objekte wie z.B. für Artikel, oder?
 

bork

Gut bekanntes Mitglied
26. Januar 2007
422
3
#20
  • bork

Wenn man die Attribut-Synchronisation ausstellt, scheinen einfach die Attribute geleert zu werden, kann das sein? Zumindest sind jetzt von meinem Test, die abzustellen, alle wesentlichen Produktmerkmale gelöscht.