Zeichenfolgenwertfehler Web Service

7. April 2011 09:40

Moin,

nachdem mein letzter Beitrag zum Glück erfolgreich gelöst ist, habe ich gleich den nächsten und es dreht sich wieder um Web Services...
Ich habe eine Page veröffentlicht mit einem Feld Code (Code 20) und einer Description (Text 50).
Lese ich nun ein ReadMultiple auf dem Web Service bekomme ich folgendes Problem:
System.Web.Services.Protocols.SoapException wurde nicht von Benutzercode behandelt.
Message=Die maximale Länge für einen Zeichenfolgenwert ist 80.

Wie kann das sein? Welcher Wert könnte über 80 steigen? Hatte wer einen ähnlichen Fehler?
Vielen Dank schon mal für eure Hilfe

Re: Zeichenfolgenwertfehler Web Service

7. April 2011 10:33

Hallo,


fängst du eigentlichen diese Exception mit der try und catch Anweisung ab?
Ich denke das ist die Fehlermessage, wenn diese zu lang ist, dann kann er die nicht anzeigen.

Vielleicht schickst du auch ein bißchen Code:-)
Tritt dieser Fehler immer nach der ReadMultiple Funktion auf oder nur manchmal?


Gruß
Aydin

Re: Zeichenfolgenwertfehler Web Service

7. April 2011 11:22

aydina81 hat geschrieben:Vielleicht schickst du auch ein bißchen Code:-)


Bei .NET/C# wahrscheinlich den Callstack gleich mit :lol:

Re: Zeichenfolgenwertfehler Web Service

7. April 2011 16:44

Moin wenn es nur der Code ist der euch fehlt kein Problem ;)
Also bisher fange ich nichts mit einem try catch ab...

Hier einmal der Code des Aufrufes:
Code:
comboBox.UseDefaultCredentials = false;
comboBox.Credentials = new System.Net.NetworkCredential("", "", ""); //habe die Daten mal rausgenommen ;)

ObjectcodeComboBox.DataTextField = "Code";
ObjectcodeComboBox.DataValueField = "Code";
ObjectcodeComboBox.DataSource = comboBox.ReadMultiple(new virtualTestTwo.TestTwo_Filter[] {}, "", 0);
ObjectcodeComboBox.DataBind();


Das hier bekomme ich als lange Fehlermeldung bei VS 2010 raus:

System.Web.Services.Protocols.SoapException wurde nicht von Benutzercode behandelt.
Message=Die maximale Länge für einen Zeichenfolgenwert ist 80.
Source=System.Web.Services
Actor=""
Lang=de-DE
Node=""
Role=""
StackTrace:
bei System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, boolean asyncCall)
bei System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
bei WebApplication1.virtualTestTwo.TestTwo_Service.ReadMultiple(TestTwo_Filter[] filter, String bookmarkKey, Int32 setSize) in \\Pfad auskommentiert
bei WebApplication1._Default.fillPublicationComboBox() in \\Pfad auskommentiert
bei WebApplication1._Default.Page_Load(Object sender, EventArgs e) in \\Pfad auskommentiert
bei System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
bei System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
bei System.Web.UI.Control.OnLoad(EventArgs e)
bei System.Web.UI.Control.LoadRecursive()
bei System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:

Re: Zeichenfolgenwertfehler Web Service

7. April 2011 17:38

Hi,

also so wie ich sehe fehlt da was.
Code:
ObjectcodeComboBox.DataSource = comboBox.ReadMultiple(new virtualTestTwo.TestTwo_Filter[] {}, "", 0);


Du musst ein Array vom Typ deines Objekt deklarieren und dort mit ReadMutiple einlesen.
Beispiel:
Code:
Webservice.Page_Service comboBox = new Webservice.Page_Service ();
Webservice.Page[] myPageArray = comboBox.ReadMultiple(null,null, 0); // Versuch erstmal ohne Filterung
ObjectcodeComboBox.DataSource  = myPageArray ;
ObjectcodeComboBox.DataBind();



Meine Vermutung ist eher, dass es an der Filterung liegt, weil "SoapException" ein Error aus NAV ist.


Gruß Aydin

Re: Zeichenfolgenwertfehler Web Service

8. April 2011 08:07

Moin,

sowas in der Art und Weise dachte ich mir auch schon aber Fehlanzeige kommt genau das Gleiche bei heraus.
Eventuell haben wir das Problem gefunden... Es gibt in der Tabelle im Hintergrund noch zwei andere Decimalfelder die allerdings nicht in der Page enthalten sind.
Löscht man diese beiden aus der Tabelle kommt auch diese Fehlermeldung nicht mehr. Aus meiner darf sowas eigentlich nicht sein. Wenn NAV bei einem Page Web Service dennoch auf irgendeine Art und Weise alle Felder einer der Tabelle anspricht und deshalb Fehlermeldungen generiert aus denen das nicht erkennbar ist, finde ich das doch ein wenig schlecht durchdacht. Werde mal sehen was Microsoft dazu sagt. Wenn ich mehr weiß schreibe ich.

Re: Zeichenfolgenwertfehler Web Service

8. April 2011 09:22

Mal ganz ehrlich, ich habe schon mehr als einmal die MSDN Tutorials für Web Services hier gepostet.

http://msdn.microsoft.com/en-us/library/dd355316.aspx

Nächstes Mal bitte die Suche benutzen.

Re: Zeichenfolgenwertfehler Web Service

8. April 2011 13:52

hi,

genau das würde mich auch interessieren.

Ich dachte immer, nur die Felder in der Page werden betrachtet. Zumindest beim lesen.
Bei "Modify", "Insert", und "Delete" da werden die Table-Trigger ausegführt (falls die Page-Trigger leer sind).
Zumindest habe ich so die Erfahrung gemacht!? Könnt mich aber gerne besser aufklären, falls ich einen Denkfehler haben sollte.


Sind die Dezimalfelder vielleicht FlowFields, dass NAV deswegen meckert?



Gruß
Aydin

Re: Zeichenfolgenwertfehler Web Service

8. April 2011 16:19

Moin,

also leider hat sich mein Microsoft Freund noch nicht gemeldet um sich das ganze mal selber live anzusehen....
Aber die beiden Felder sind keine FlowFields und die sind zudem auch noch beide nicht gefüllt, in keinem Datensatz. Hoffe am Montag dann weitere Meldung seitens Microsoft.

@JanGD danke diesen Link kenne ich und die Seite habe ich auch mehrmals gelesen, nur ist da nichts hilfreiches zu finden um den genannten Fehler beseitigen zu können und sucht man nach der Fehlermeldung kommen auch keine Ergebnisse. Nächstes mal also bitte Lesen worum es genau geht und nicht nur Web Service + Codeunit lesen und Link posten. Danke

Re: Zeichenfolgenwertfehler Web Service

11. April 2011 07:59

Ich mach mal einen Schuss ins Blaue:

Google spuckt bei der Suchen nach Deiner Fehlermeldung u.a. http://social.msdn.microsoft.com/Forums/de/crmgerman/thread/76c29bfe-1e1b-48ae-a959-605528fc2e16 aus. Du fragst nicht zufällig mit Deinem Webservice auch Flowfields ab, die auf den beiden nicht verwendeten Decimal-Feldern basieren?

Volker

Re: Zeichenfolgenwertfehler Web Service

22. September 2011 13:42

Hallo,
Rufst du eine Codeunti über den Webservice auf?

Hintergrund: Ich hatte die gleiche Meldung, da ich in eine mit Länge 80 definierten Variablen ein größreren (länge) Wert einlesen wollte.

Viel Glück

Re: Zeichenfolgenwertfehler Web Service

22. September 2011 16:25

Moin

Ich kann leider nicht direkt auf Erfahrug von veröffentlichen Pages zugreifen, aber ich weiß das es bei Pages schon mal gern zu sollchen Problemen kommt. Woran das aber genau liegt, kann ich dir aber nicht sagen. Ich würde mir eine Codeunit bauen, wo ich ein XMLPort als Referenz Variabele (Eingangsparameter) nutzt und diesen exportiere um somit deine Combobox zu füllen. Das ganze als Webservice versteht sich.

Vorteil: Läuft stabiler, als die Page und ist genauso dynamisch, da du die Tabelle ausließt.

Re: Zeichenfolgenwertfehler Web Service

26. September 2012 08:39

Hallo,

wurde das Problem eig. nun eingrenzt o.ä.? ich habe aktuell ein ähnliches Problem und kann die Fehlerquelle noch nicht lokalisieren.