Hallo zusammen,
ich versuche aktuell, unsere Cloud-App (Manifest v1.0.3, 24 Scopes, korrekt installiert + konsentiert) gegen die JTL Cloud REST API zu schreiben — konkret den Endpoint POST
/erp/v2/deliveryNotes/{id}/packages, um Tracking-Codes aus unserem externen Logistik-Dienstleister zurück in die Wawi zu pushen.
Stoße aber konsequent auf folgenden Fehler bei jedem v2-Aufruf, der Versand-Daten zurückgeben würde:
{
"Status": 400,
"Detail": "No seed found for key type JTL.Data.Contracts.Keys.VersandKey.
Please ensure that the key seed data is initialized.",
"Instance": "/api/Mandant_2/v2/deliveryNotes"
}
Egal ob:
- GET /v2/deliveryNotes ohne Filter
- mit ?salesOrderNumber=… (wenn der Auftrag existiert)
- mit ?customerId=…
- mit ?salesOrderNumberId=<UUID>
- mit oder ohne x-appid/x-appversion-Header
- mit oder ohne pageSize
→ immer derselbe Seed-Fehler. Einzige Ausnahme: Wenn die Query ein leeres Resultset zurückgibt (z.B. ?salesOrderNumber=BLABLA-EXISTIERT-NICHT), kommt HTTP 200 mit totalItems: 0. Klingt für mich danach, dass
der Serializer beim Versuch, eine VersandKey-UUID aufzulösen, an einer leeren Mapping-Tabelle scheitert.
Was sonst klappt (zur Eingrenzung):
- ✅ REST V1 — GET /v1/deliveryNotes/<int-id> und …/packages funktionieren komplett (int-IDs, kein UUID-Seed nötig)
- ✅ GraphQL — QuerySalesOrders, QueryItems, QueryCustomers alle ok
- ✅ GraphQL Mutations — Permission ist nach Re-Install jetzt da (kein AppNotAllowed mehr)
- ❌ aber CreateDeliverPackage braucht packageId als UUID, und die UUID kriege ich nur über /v2/deliveryNotes/.../packages — was am Seed-Fehler scheitert. Chicken-and-Egg.
Frage an die Runde:
1. Ist das ein bekannter Init-Bug bei frisch installierten Cloud-Apps?
2. Hat jemand das schon gehabt und kennt einen Trigger, der den Seed-Build serverseitig anstößt? (Erneute Wawi-Lizenz-Refresh? Specific First Call gegen einen anderen Endpoint?)
3. Oder ist das ein klarer JTL-Support-Fall und ich mach mir umsonst Hoffnung auf eine self-service Lösung?
Würde mich freuen, wenn jemand von euch das gleiche Phänomen kennt oder einen Workaround hat.
Danke!