Fehlercode 500 / Update 9.0.5.6 oder 9.0.6 (Experten gesucht)

Bisut

Aktives Mitglied
Guten Tag,

wir sind verzweifelt. Wir haben eine Partnerlösung die über die Datenbank einen Zugriff auf die Sage Datenbank gewährt. Diese Partnerlösung hatte bisher immer nach einem Sage Live Update funktioniert.

Jetzt aber gar nicht mehr!

Seit der Version 9.0.5.x geht es gar nicht mehr!

Obwohl weder Sage Datenbank, Sage Server, Sage Ports, Sage Benutzer oder ähnliches sich verändert hatte. Nur das Update von 9.0.4.11 auf 9.0.5.6!

Unser Entwickler hat nun herausgefunden, dass der Fehlercode 500 als direkte Rückmeldung von Sage kommt; was bedeutet, dass der Fehlercode 500 nicht er selbst debuggen kann, und im Sage Trace Log Manager steht auch nicht so viel drin. Den Auszug dazu unten.

Letztlich macht diese Lösung nichts anders, als über den Sage Server (server Namen oder IP), dann auf den Port (5493) und dann auf die Datenbank (Kundendatenbank) dann auf den Sage Mandaten (Nummer) zu gehen und in die Datenbank auf Tabellen Ebene (keine Sage Tabelle, sondern Partnertabelle) etwas abzuspeichern, aber so weit kommt die Partnerlösung gar nicht, sondern gibt schon in der Verbindung den Request auf den Fehlercode 500 zurück.

Unser Entwickler hat seine Lösung schon versucht auf die 9.0.6 zu bringen, aber auch ohne Erfolge, da der gleiche Fehlercode 500 erscheint. Im Sage Trace Log selbst steht nicht wirklich was drin:



Trace Log Eintrag:



System.ArgumentException: Value cannot be null or empty.

Parametername: key

bei Sagede.Shared.RealTimeData.Provider.Metadata.Agent.ReadItem(ResourceType resourceType, String key, String[] languages, Boolean excludeDeactivated)

bei Sagede.Shared.RealTimeData.Provider.Metadata.MetadataAgent.ReadItem[T](ResourceType resourceType, String key, String[] languages, Boolean excludeDeactivated)

bei Sagede.OfficeLine.ControlCenter.MetaDataProvider.MetaDataProvider.GetPart(String partKey, PartType partType, ApplicationContext context, Int16 clientCountryId, String userName, Boolean checkPermission, NamedParameters parameters, String& requestedPartKey)

bei Sagede.OfficeLine.ControlCenter.MetaDataProvider.MetaDataProvider.GetPart(String partKey, PartType partType, ApplicationContext appInfo, Boolean checkPermission, NamedParameters parameters)

bei Sagede.OfficeLine.ControlCenter.MetaDataProvider.CompiledMetaDataProvider.<>c__DisplayClass33_0.<GetPart>b__0()

bei Sagede.OfficeLine.ControlCenter.MetaDataProvider.CompiledMetaDataProvider.GetWithCache[TItem](String resourceType, ApplicationContext appInfo, String key, String secondKey, Func`1 itemProvider, Boolean validate)

bei Sagede.OfficeLine.ControlCenter.MetaDataProvider.CompiledMetaDataProvider.GetPart(String partKey, PartType partType, ApplicationContext appInfo, Boolean checkPermission, NamedParameters parameters)

bei Sagede.OfficeLine.ControlCenter.MetaDataProvider.CompiledMetaDataProvider.GetPart(String partKey, PartType partType, ApplicationContext appInfo)

bei Sagede.Shared.RealTimeData.Core.Handlers.DataObjectOperationContextBase.GetDataEditPart()

bei Sagede.Shared.RealTimeData.Core.Handlers.DetailDefinitionSubPartHandler.GetSubPartsFields(DataObjectOperationContextBase operationContext)

bei Sagede.Shared.RealTimeData.Core.Handlers.DataStructureHandler.Create(DataActionRequest`1 request, ApplicationContext context, ResourceDefinition resourceKindDefinition, Boolean& invalidateSchema)

bei Sagede.Shared.RealTimeData.Core.RealTimeDataCore.CreateRecord(DataActionRequest`1 request, ApplicationContext context, ResourceType resourceType, ResourceDefinition resourceKindDefinition, Boolean& invalidateSchema)

bei Sagede.OfficeLine.ControlCenter.SDataService.MasterDataResourceHandler.DoCreate(DataActionRequest`1 request, ApplicationContext context, Boolean& invalidateSchema)

bei Sagede.OfficeLine.ControlCenter.SDataService.DataActionResourceAdapter.Create(SDataRequest request)

=> BuildErrorResponse in DataActionResourceAdapter.cs(line 566) request.url="https://serverName:5493/sdata/ol/MasterData/Datenbankname;Mandantennummer/PartnerLoesung.ImportArtikel.1xxx.Kundenname" request.method="POST" request.part="" request.subpart=""



Mehr steht im Trace Log der Sage gar nichts drin!

Bisher konnten wir keinen Lösungsweg finden, vielleicht Experten unter euch, die ähnliches Problem hatten?

Über alle Hilfen wären wir Dankbar!
 
Versuche gab es viele, Dienste neu gestartet, Sage Live Update mit Option (Neuprüfungen); Server Neustart; aber gar keine Auswirkungen.
 
System.ArgumentException: Value cannot be null or empty.

Ich würde mal einen SQL Profiler mitlaufen lassen um zu sehen welche Statements abgesetzt werden. SCheinbar wird ein Wert erwartet der NULL ist.
 
@POLAT Im SQL Profiler kommt es nicht zu einem Fehler. Der Fehler tritt im Programmcode auf, der die Metadaten verarbeitet. Datenbankzugriffe gibt es da in dem Moment noch gar nicht; damit auch nicht im SQL Profiler. Aber es gibt tatsächlich 0 Datenbankzugriff während des Aufrufs des Webservice für das Verarbeiten der Metadaten. Der Ansatz war aber hilfreich.
 
@POLAT Im SQL Profiler kommt es nicht zu einem Fehler. Der Fehler tritt im Programmcode auf, der die Metadaten verarbeitet. Datenbankzugriffe gibt es da in dem Moment noch gar nicht; damit auch nicht im SQL Profiler. Aber es gibt tatsächlich 0 Datenbankzugriff während des Aufrufs des Webservice für das Verarbeiten der Metadaten. Der Ansatz war aber hilfreich.
Dann kann es ja eigentlich nur noch etwas mit den Neuerungen zum App Designer sein.
 
Irgendwie hatten wir erst die Vermutung, das der Programmcode nicht mehr den Servernamen, Datenbanknamen oder Port 5493 finden würde. Daher hatten wir testweise schon Programmcode umgestellt, auf IP Adresse des Server, Kopie einer Datenbank mit neuem Namen; aber Port 5493 ist durch Firewall sichergestellt. Abschalten Firewall brachte da auch nichts.
 
Ja genau, das ist auch unsere Vermutung. Aber solche gravierende Änderungen... Eine Idee?
 
@cmayer Es ist egal, ob die Partnerlösung aktiviert oder deaktiviert ist. Im Standard läuft die Sage. Es geht nur um die Partnerlösung die nicht den normalen Betrieb der Sage beeinflusst. Lediglich geht die Partnerlösung nicht. Damit also nicht mehr der Import (Grundlage für Rechnung VK); was natürlich äußerst unpraktisch ist.
 
Danke = Erledigt, ihr braucht nicht mehr Ansätze liefern. Unser Partner hat die Lösung gefunden. Ich bin kein Programmierer, aber ich gebe kurz die Lösung weiter:

Die Anlieferung hat im Kopfsatz einen fehlenden Eintrag (der wurde wohl bisher von Sage ignoriert); aber mit dem Update auf die 9.0.5 als zwingend nun hinterlegt:

Das Problem ist ein fehlender Wert im Aufruf-Header für den Web-Service. Den muss man noch ergänzen, dann funktioniert die Schnittstelle wieder.

Im Header wurde „X-PartContext“ hinzugefügt.
Import Artikel: X-PartContext: Loesung.ImportArtikel.Sage.Wawi

Ergänzt man den Eintrag im Haeder wird wieder importiert.

Beim Endkunden zwar noch nicht aktiv geschaltet, das es noch umgesetzt werden muss. Aber auf unserer Test-Maschine und Entwicklungs-Maschine läuft der Import wieder normal.
 
Zurück
Oben