Neu Nach Update auf 1.9.8.0 kein Bilderabgleich per JTL-Connector mehr möglich

JoeKyx

Mitglied
7. Februar 2025
49
6
Leider funktioniert der Abgleich immer noch nicht. Nun gibt es allerdings folgenden Fehler:
Dies ist der gesamte Fehlerlog den ich erhalte:
Unbehandelte Ausnahme #959190594F6282F vom Typ System.Exception in
System.Exception: Exception: Controller = Image | Action = push | JTL-Wawi PK = 38752 | Related type Product (JTL-Wawi PK = 2867) | Cannot assign null to property Jtl\Connector\Shopify\Connector\GraphQl\Entity\StagedMediaUploadTarget::$url of type string
Controller = Image | Action = push | JTL-Wawi PK = 38752 | Related type Product (JTL-Wawi PK = 2867) | Cannot assign null to property Jtl\Connector\Shopify\Connector\GraphQl\Entity\StagedMediaUploadTarget::$url of type string


Unbehandelte Ausnahme #959190594F6282F vom Typ System.Exception in : Abschlussinfo-Senden-Fehler: Bitte beachten Sie, dass zur Fehler-Diagnose ebenfalls die Log-Datei des Servers und das Abgleich-Log der JTL-Wawi notwendig sind!
Controller = Image | Action = push | JTL-Wawi PK = 38752 | Related type Product (JTL-Wawi PK = 2867) | Cannot assign null to property Jtl\Connector\Shopify\Connector\GraphQl\Entity\StagedMediaUploadTarget::$url of type string
Controller = Image | Action = push | JTL-Wawi PK = 38752 | Related type Product (JTL-Wawi PK = 2867) | Cannot assign null to property Jtl\Connector\Shopify\Connector\GraphQl\Entity\StagedMediaUploadTarget::$url of type string
bei jtlCore.ControllerClasses.Connector.Abgleich.Connector.E9Xe5tcgXBB(String , Object , Boolean , NetworkCredential )
bei jtlCore.ControllerClasses.Connector.Abgleich.Connector.FinishCall()
bei jtlCore.ControllerClasses.Connector.Abgleich.EntityAbgleicher.ConnectorFinishCallTask.Run()
bei JTL.Connector.Business.SyncRunner.Run()




2025-04-10T06:46:51 DEBUG - Dauer: 8ms, (bis zum Reader)
2025-04-10T06:46:51 DEBUG - Dauer: 8ms, 1 Zeilen
2025-04-10T06:46:55 DEBUG - SELECT [tUserSession].[kUserSession]
,[tUserSession].[kOwnerUserSession]
,[tUserSession].[kBenutzer]
,[tUserSession].[kMandant]
,[tUserSession].[iApplicationId]
,[tUserSession].[cCustomIdentifier]
,[tUserSession].[cHostname]
,[tUserSession].[nProcessId]
,[tUserSession].[dLoggedIn]
,[tUserSession].[dLastHeartbeat]
,[tUserSession].[nIsSessionInterruptible]
,[tUserSession].[nSessionInterruptRequested]
,[tUserSession].[dSessionInterruptRequestTimestamp]
,[tUserSession].[cSessionInterruptHostname]
,[tUserSession].[kSessionInterruptBenutzer]
,[tUserSession].[iSessionInterruptMessage]
,[tUser].[cName] AS [cBenutzerName]
,[tMandant].[cName] AS [cMandantName]
,[tUserInterrupt].[cName] AS [cBenutzerNameInterrupt]
FROM [eazybusiness].[dbo].[tUserSession]
LEFT JOIN [eazybusiness].[dbo].[tBenutzer] tUser ON [tUserSession].[kBenutzer] = [tUser].[kBenutzer]
LEFT JOIN [eazybusiness].[dbo].[tMandant] ON [tUserSession].[kMandant] = [tMandant].[kMandant]
LEFT JOIN [eazybusiness].[dbo].[tBenutzer] tUserInterrupt ON [tUserSession].[kSessionInterruptBenutzer] = [tUserInterrupt].[kBenutzer]
WHERE [tUserSession].[kUserSession] = @kUserSession AND dSessionInvalidated IS NULL
@kUserSession = 157
2025-04-10T06:46:55 DEBUG - Dauer: 10ms, (bis zum Reader)(A)
2025-04-10T06:46:55 DEBUG - Dauer: 10 ms, 1 Zeilen
2025-04-10T06:46:55 DEBUG - UPDATE [eazybusiness].[dbo].[tUserSession] SET dLastHeartbeat = @dLastHeartbeat_0 WHERE kUserSession = @kUserSession_0;

@dLastHeartbeat_0 = 04/10/2025 06:46:55 +02:00
@kUserSession_0 = 157
2025-04-10T06:46:55 DEBUG - Dauer: 1ms, AffectedRows: 1
2025-04-10T06:47:21 DEBUG -
SELECT * FROM
(
SELECT *
FROM (SELECT kTicket FROM Ticketsystem.tTicket) AS UserQuery
WHERE kTicket IN (SELECT tTicket.kTicket
FROM Ticketsystem.tTicket
WHERE 1 = 1
AND ( tTicket.kBenutzer_Bearbeiter IS NOT NULL OR tTicket.kBenutzer_Bearbeiter IS NULL ) AND ( tTicket.kStatus = 3 OR tTicket.kStatus <> 3 ))
AND kTicket IN (
SELECT ticket.kTicket
FROM Ticketsystem.tTicket ticket
WHERE ticket.nIstInPapierkorb = 0
)

AND kTicket IN (SELECT tTicket.kTicket
FROM Ticketsystem.tTicket
WHERE NOT EXISTS(SELECT kTicketLabel FROM Ticketsystem.tTicketLabel WHERE kTicket = tTicket.kTicket)
UNION
SELECT tTicketLabel.kTicket
FROM Ticketsystem.tTicketLabel
WHERE @p0 = 1
UNION
SELECT tTicketLabel.kTicket
FROM Ticketsystem.tTicketLabel
WHERE @p0 = 0
AND tTicketLabel.kLabel IN
(
SELECT tLabelBenutzergruppeRechte.kLabel
FROM Ticketsystem.tLabelBenutzergruppeRechte
WHERE tLabelBenutzergruppeRechte.kRechtBenutzerGruppe IN (
SELECT tRechtBenutzerGruppenZuordnung.kRechtBenutzerGruppe
FROM eazybusiness.dbo.tRechtBenutzerGruppenZuordnung
WHERE tRechtBenutzerGruppenZuordnung.kBenutzer = @p1
AND tLabelBenutzergruppeRechte.nIstSichtbar = 1
)
))

) AS InnerSql
ORDER BY ROW_NUMBER() OVER (ORDER BY kTicket)
OFFSET @page * 1000 ROWS FETCH NEXT 1000 + 1 ROWS ONLY
page = 0
@p0 = 1
@p1 = 1
2025-04-10T06:47:21 DEBUG - Dauer: 43ms, (bis zum Reader)
2025-04-10T06:47:21 DEBUG - Dauer: 43 ms, 0 Zeilen
2025-04-10T06:47:21 DEBUG -

SELECT tLabel.kLabel
FROM dbo.tLabel
WHERE tLabel.nTyp = @labelTyp
@labelTyp = Ticket
2025-04-10T06:47:21 DEBUG - Dauer: 1ms, (bis zum Reader)
2025-04-10T06:47:21 DEBUG - Dauer: 1 ms, 0 Zeilen
2025-04-10T06:47:21 DEBUG -
SELECT COUNT(tTicket.kTicket) AS UnseenChanges
FROM Ticketsystem.tTicket
WHERE tTicket.nIstInPapierkorb = 0
AND tTicket.nVollstaendigAngelegt = 1
AND tTicket.kTicket NOT IN (SELECT tTicketLabel.kTicket
FROM Ticketsystem.tTicketLabel)
AND (EXISTS (SELECT tAgentAngeseheneTickets.kAgentAngeseheneTickets
FROM Ticketsystem.tAgentAngeseheneTickets
WHERE tAgentAngeseheneTickets.kTicket = tTicket.kTicket
AND tAgentAngeseheneTickets.kBenutzer = @kBenutzer)
AND ((SELECT ISNULL(tAgentAngeseheneTickets.kNachricht, 0)
FROM Ticketsystem.tAgentAngeseheneTickets
WHERE tAgentAngeseheneTickets.kTicket = tTicket.kTicket
AND tAgentAngeseheneTickets.kBenutzer = @kBenutzer) < (SELECT ISNULL(MAX(tNachricht.kNachricht), 0)
FROM Ticketsystem.tNachricht
WHERE tNachricht.kTicket = tTicket.kTicket)
OR (SELECT ISNULL(tAgentAngeseheneTickets.kNotiz, 0)
FROM Ticketsystem.tAgentAngeseheneTickets
WHERE tAgentAngeseheneTickets.kTicket = tTicket.kTicket
AND tAgentAngeseheneTickets.kBenutzer = @kBenutzer) < (SELECT ISNULL(MAX(tNotiz.kNotiz), 0)
FROM Ticketsystem.tNotiz
WHERE tNotiz.kTicket = tTicket.kTicket)
OR (SELECT ISNULL(tAgentAngeseheneTickets.kTelefonat, 0)
FROM Ticketsystem.tAgentAngeseheneTickets
WHERE tAgentAngeseheneTickets.kTicket = tTicket.kTicket
AND tAgentAngeseheneTickets.kBenutzer = @kBenutzer) < (SELECT ISNULL(MAX(tTelefonat.kTelefonat), 0)
FROM Ticketsystem.tTelefonat
WHERE tTelefonat.kTicket = tTicket.kTicket))
OR NOT EXISTS (SELECT tAgentAngeseheneTickets.kAgentAngeseheneTickets
FROM Ticketsystem.tAgentAngeseheneTickets
WHERE tAgentAngeseheneTickets.kTicket = tTicket.kTicket
AND tAgentAngeseheneTickets.kBenutzer = @kBenutzer))

@kBenutzer = 1
@p0 = 0
2025-04-10T06:47:21 DEBUG - Dauer: 17ms, (bis zum Reader)
2025-04-10T06:47:21 DEBUG - Dauer: 17ms, 1 Zeilen
2025-04-10T06:47:51 DEBUG -
SELECT * FROM
(
SELECT *
FROM (SELECT kTicket FROM Ticketsystem.tTicket) AS UserQuery
WHERE kTicket IN (SELECT tTicket.kTicket
FROM Ticketsystem.tTicket
WHERE 1 = 1
AND ( tTicket.kBenutzer_Bearbeiter IS NOT NULL OR tTicket.kBenutzer_Bearbeiter IS NULL ) AND ( tTicket.kStatus = 3 OR tTicket.kStatus <> 3 ))
AND kTicket IN (
SELECT ticket.kTicket
FROM Ticketsystem.tTicket ticket
WHERE ticket.nIstInPapierkorb = 0
)

AND kTicket IN (SELECT tTicket.kTicket
FROM Ticketsystem.tTicket
WHERE NOT EXISTS(SELECT kTicketLabel FROM Ticketsystem.tTicketLabel WHERE kTicket = tTicket.kTicket)
UNION
SELECT tTicketLabel.kTicket
FROM Ticketsystem.tTicketLabel
WHERE @p0 = 1
UNION
SELECT tTicketLabel.kTicket
FROM Ticketsystem.tTicketLabel
WHERE @p0 = 0
AND tTicketLabel.kLabel IN
(
SELECT tLabelBenutzergruppeRechte.kLabel
FROM Ticketsystem.tLabelBenutzergruppeRechte
WHERE tLabelBenutzergruppeRechte.kRechtBenutzerGruppe IN (
SELECT tRechtBenutzerGruppenZuordnung.kRechtBenutzerGruppe
FROM eazybusiness.dbo.tRechtBenutzerGruppenZuordnung
WHERE tRechtBenutzerGruppenZuordnung.kBenutzer = @p1
AND tLabelBenutzergruppeRechte.nIstSichtbar = 1
)
))

) AS InnerSql
ORDER BY ROW_NUMBER() OVER (ORDER BY kTicket)
OFFSET @page * 1000 ROWS FETCH NEXT 1000 + 1 ROWS ONLY
page = 0
@p0 = 1
@p1 = 1
2025-04-10T06:47:51 DEBUG - Dauer: 59ms, (bis zum Reader)
2025-04-10T06:47:51 DEBUG - Dauer: 59 ms, 0 Zeilen
2025-04-10T06:47:51 DEBUG -

SELECT tLabel.kLabel
FROM dbo.tLabel
WHERE tLabel.nTyp = @labelTyp
@labelTyp = Ticket
2025-04-10T06:47:51 DEBUG - Dauer: 0ms, (bis zum Reader)
2025-04-10T06:47:51 DEBUG - Dauer: 1 ms, 0 Zeilen
2025-04-10T06:47:51 DEBUG -
SELECT COUNT(tTicket.kTicket) AS UnseenChanges
FROM Ticketsystem.tTicket
WHERE tTicket.nIstInPapierkorb = 0
AND tTicket.nVollstaendigAngelegt = 1
AND tTicket.kTicket NOT IN (SELECT tTicketLabel.kTicket
FROM Ticketsystem.tTicketLabel)
AND (EXISTS (SELECT tAgentAngeseheneTickets.kAgentAngeseheneTickets
FROM Ticketsystem.tAgentAngeseheneTickets
WHERE tAgentAngeseheneTickets.kTicket = tTicket.kTicket
AND tAgentAngeseheneTickets.kBenutzer = @kBenutzer)
AND ((SELECT ISNULL(tAgentAngeseheneTickets.kNachricht, 0)
FROM Ticketsystem.tAgentAngeseheneTickets
WHERE tAgentAngeseheneTickets.kTicket = tTicket.kTicket
AND tAgentAngeseheneTickets.kBenutzer = @kBenutzer) < (SELECT ISNULL(MAX(tNachricht.kNachricht), 0)
FROM Ticketsystem.tNachricht
WHERE tNachricht.kTicket = tTicket.kTicket)
OR (SELECT ISNULL(tAgentAngeseheneTickets.kNotiz, 0)
FROM Ticketsystem.tAgentAngeseheneTickets
WHERE tAgentAngeseheneTickets.kTicket = tTicket.kTicket
AND tAgentAngeseheneTickets.kBenutzer = @kBenutzer) < (SELECT ISNULL(MAX(tNotiz.kNotiz), 0)
FROM Ticketsystem.tNotiz
WHERE tNotiz.kTicket = tTicket.kTicket)
OR (SELECT ISNULL(tAgentAngeseheneTickets.kTelefonat, 0)
FROM Ticketsystem.tAgentAngeseheneTickets
WHERE tAgentAngeseheneTickets.kTicket = tTicket.kTicket
AND tAgentAngeseheneTickets.kBenutzer = @kBenutzer) < (SELECT ISNULL(MAX(tTelefonat.kTelefonat), 0)
FROM Ticketsystem.tTelefonat
WHERE tTelefonat.kTicket = tTicket.kTicket))
OR NOT EXISTS (SELECT tAgentAngeseheneTickets.kAgentAngeseheneTickets
FROM Ticketsystem.tAgentAngeseheneTickets
WHERE tAgentAngeseheneTickets.kTicket = tTicket.kTicket
AND tAgentAngeseheneTickets.kBenutzer = @kBenutzer))

@kBenutzer = 1
@p0 = 0
2025-04-10T06:47:51 DEBUG - Dauer: 7ms, (bis zum Reader)
2025-04-10T06:47:51 DEBUG - Dauer: 7ms, 1 Zeilen
Zeitstempel: 2025-04-10T06:47:54
Locale: German (Germany)
Locale: German (Germany)
Version: Der Wert wurde nicht erstellt.
Plattform: Wawi
WawiSeed: 2.2.96733.30101
Prozessname: JTL-SharpWawi
Physikalischer Speicher: 2665263104 / Peak: 2939158528
Basispriorität: 8
Prioritätsklasse: Normal
CPU-Zeit (User): 0:36:08,6875
CPU-Zeit (System): 0:04:23,828125
Page-Size (Sytem): 2785672 / Peak: 2951589888
Page-Size: 2658988032 / Peak: 2951589888
Offene Handles: 5187
Database:
Build: 2502280943 82495ec11c0629664f4b3dda38b60bac08b63ce4
 

Blechkiste

Gut bekanntes Mitglied
18. April 2023
109
15
GIbt es hierzu bereits Neuigkeiten bzw konntet Ihr das Problem lösen ?
Bei mir taucht der identische Fehler aus.
 

Blechkiste

Gut bekanntes Mitglied
18. April 2023
109
15
JoeKyx, hier die Lösung:

Anhand der internen Artikelnummer den Artikel rausgesucht und entdeckt, dass der Name des Bildes als URL hinterlegt ist.
Shopify verlangt hier dann einen String, erkennt aber dass es eine URL ist.
 

Thodano

Mitglied
21. Februar 2024
7
2
JoeKyx, hier die Lösung:

Anhand der internen Artikelnummer den Artikel rausgesucht und entdeckt, dass der Name des Bildes als URL hinterlegt ist.
Shopify verlangt hier dann einen String, erkennt aber dass es eine URL ist.
Hi Serdar, könntest du die Lösung näher beschreiben? Ich habe leider dasselbe Problem, bekomme es aber leider nicht gelöst 🙁 Besten Dank!
 

JoeKyx

Mitglied
7. Februar 2025
49
6
JoeKyx, hier die Lösung:

Anhand der internen Artikelnummer den Artikel rausgesucht und entdeckt, dass der Name des Bildes als URL hinterlegt ist.
Shopify verlangt hier dann einen String, erkennt aber dass es eine URL ist.
Hi Serdar, könntest du die Lösung näher beschreiben? Ich habe leider dasselbe Problem, bekomme es aber leider nicht gelöst 🙁 Besten Dank!
Hi, danke für den Tipp. Das war bei mir allerdings anscheinend nicht das Problem, bei mir sind die Bilder so benannt: "7723-1" als Beispiel.

Was bei mir jetzt hilft:
  1. Die Bilder exportieren
  2. Die Bilder können jetzt nicht einfach wieder importiert werden da WaWi dann erkennt dass es sich um dasselbe Bild handelt
  3. Ich drehe das Bild in Windows einmal nach links und dann wieder einmal nach rechts, ich vermute dass sich dadurch die Checksum des Bilds verändert
  4. Nun kann das Bild wieder importiert werden
  5. Es funktioniert
Das Problem ist dass der Fehler bei mehr als 50 Produkten auftritt und ich echt keine Lust habe das Prozedere so oft zu wiederholen, zumal ich immer den Abgleich starten muss um zu sehen welche Produkte betroffen sind.

Gibt es eventuell einen besseren Weg die WaWi mit Shopify zu verknüpfen als den Connector? Dieser macht wirklich durchgehend Probleme.
 

Ähnliche Themen