Neu Eigener Connector

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

Mixmarcil

Neues Mitglied
20. Dezember 2018
9
0
#1
Hallo an alle,

ich sitze an einem eigenen Connector, der im Prinzip lediglich die Preise in der Datenbank meines OnlineShops (kein Shopsystem) abgleichen soll.
Dafür habe ich mich an dem Beispiel orientiert und ich bekomme auch den "HTTP-Status ok" und anschließend die richtig ausgelesene features.json Konfiguration.
Nun möchte ich den Controller Product implementieren und wollte mir vorher nochmal anschauen, welche Daten ich bei einem Produkt/Preis-Abgleich von JTL WaWi erhalte.
Derzeit sind noch keine Datenbankabfragen hinterlegt.
Allerdings erhalte ich immer folgenden Fehler, wenn ich einen Komplettabgleich (den ich im Backend zwar empfange, aber noch nicht verarbeite):

Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

************** Ausnahmetext **************
System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
bei jtlCore.ControllerClasses.Connector.Abgleich.AbgleichController.MC4ByE6nwq0()
bei jtlCore.ControllerClasses.Connector.Abgleich.AbgleichController.<AbgleichAsync>d__21.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state)


Im Debug-Log steht lediglich folgendes:

JTL-Wawi: StartForm()
JTL-Wawi: MainWindow != null
-- Connector-Konfiguration --
Import: False
Import Artikel/Kategorien: False
Artikel überschreiben: False
Import Bilder: False
Import Aufträge/Kunden: False

Upload: True
Upload Artikel komplett: False
Upload Artikel eingeschränkt: True
Upload Bilder: False

Bilder im Shop löschen: False
Nur zugeordnete Hersteller senden: False
Endpoint version:
Wawi-Version: 1.3.21.0
JTL-Wawi: Sync start
JTL-Wawi: Licence is valid

Vielen Dank im Voraus!

Viele Grüße

Marcel
 

Mixmarcil

Neues Mitglied
20. Dezember 2018
9
0
#4
Hallo,

leider bekomme ich weiterhin denselben Fehler wie oben.
Ich habe mit dem Connector-Tester folgenden Request:
[
{
"customerGroupId": null,
"customerId": null,
"id": null,
"productId": null,
"items": [
{
"productPriceId": null,
"netPrice": 0.0,
"quantity": 0
}
]
}
]
mit ObjectType ProductPrice
und als Antwort erhalte ich folgendes:

{
"result": [
{
"customerGroupId": [
"",
0
],
"customerId": [
"",
0
],
"id": [
"",
0
],
"productId": [
"",
0
],
"items": [
{
"productPriceId": [
"",
0
],
"netPrice": 0,
"quantity": 0
}
]
}
],
"error": null,
"jtlrpc": "2.0",
"id": "a20172ba8d344074b60eff533976e257"
}

Leider hängt sich WaWi weiterhin auf und lässt sich nur mit dem Taskmanager beenden. Ich bin ratlos.
Hat jemand eine Idee?

Danke im Voraus!

Marcel
 

Carsten Harnisch

Neues Mitglied
9. Mai 2019
5
2
#5
ich hatte gerade so ein ähnliches Problem. Faktisch ging also gut bis zum finalen json_encode. Hier taucht dann ein Problem auf, da es wohl Kodierungsprobleme mit Strings gab. Ich habe hier alle String so eingestellt, dass immer utf8-kodiert wird ...

LG

Carsten
 

Immanuel

Moderator
Mitarbeiter
24. August 2016
308
49
#6
Hallo!

@Mixmarcil
hast du die Controller für GlobalData (pull) und Connector (identify) auch implementiert? Danach würde ich mit etwas einfachem weiter machen wie dem Category Controller. Schicke mir am besten mal einen kompletten Onlineshopabgleich-Log zu.

@Carsten Harnisch
Wo genau tritt das Problem auf? Wir möchten dir gerne bei deinem Problem helfen, brauchen dafür aber mehr Informationen. Gerne auch per PM.
 
9. Mai 2019
5
2
#7
Hallo!
@Carsten Harnisch
Wo genau tritt das Problem auf? Wir möchten dir gerne bei deinem Problem helfen, brauchen dafür aber mehr Informationen. Gerne auch per PM.
Das Problem ist gelöst, halt durch das UTF8-Encode. Unschön ist halt, dass die Fehler Meldung von json_encode faktisch nicht ausgegeben wird. Falls es zu einem Problem mit der Kodierung kommt, ist der return einfach nur "false". Und die Fehlermeldung mit "Object-Instance nicht gesetzt" recht verwirrend ...
 

Immanuel

Moderator
Mitarbeiter
24. August 2016
308
49
#8
Kannst du die Stelle im Connector (Core) nennen wo das Problem aufgetreten ist? Dann schreiben wir uns eine bessere Fehlerbehandlung für die Stelle auf die TODO.
 
Zuletzt bearbeitet:
9. Mai 2019
5
2
#9
war bei mir in der Methode "encode" in der Datei /vendor/jtl/ connector/src/jtl/Connector/Core/Serializer/Json.php

normalerweise dann in der Ausgabe mit "non-pretty"
 
Zustimmungen: Immanuel
9. Mai 2019
5
2
#11
Hallo,
hier habe ich nichts verändert. In alle Datenfeldern mit Texten habe ich alle Werte mit utf8_encode kodiert.
Falls hier (in der Json.php) das json_encode fehlschlägt kommt dann nur ein NULL zurück ...

Gruss

Carsten
 
Zustimmungen: Mixmarcil

Immanuel

Moderator
Mitarbeiter
24. August 2016
308
49
#12
@Carsten Harnisch

Wahrscheinlich kommt dort ein false zurück. Wir haben uns die Stelle notiert und werden dort eine bessere Fehlerbehandlung in Form einer Exception mit einer (hoffentlich) aussagekräftigen Message einbauen.