[Gelöst] Problem Webservices und Option Feld

9. September 2011 11:43

Hallo zusammen

Ich habe gerade ein Problem mit Option Felder und dem Webservices in NAV.
Ich möchte aus einer externen Anwendung (C#) über den Webservice Daten ändern bzw. neue Datensätze in einer Tabelle anlegen. Soweit alles kein Problem bis auf die Option Felder.
Mit folgendem Code erstelle ich einen neuen Datensatz in der Tabelle:
Code:
            WSNAV.WSNAV ws = new NAV.WSNAV.WSNAV();
            ws.Optionfeld = Optionfeld.<WERT>;
            WSNAVService.Create(ref ws);


Das Optionsfeld (rechts vom =) wird mir als enum vom Webservice angeboten und ich habe darüber Zugriff auf alle auswählbaren Werte. Ich dachte damit kann ich (wie im Code Beispiel) dem Optionsfeld einfach seinen Wert zuweisen. Der Aufruf läuft auch ohne Fehler durch. Nur leider wird in der Tabelle der übergebene Wert nicht eingetragen. Das Feld bleibt leer. Es ist mir gerade ein Rätsel wieso das so ist.

Hatte jemand schon mal dieses Problem und eine Lösung? Über Google & Co. konnte ich bisher keine befriedigenden Antworten finden. Danke für eure Hilfe.
Zuletzt geändert von JohnDoe am 12. September 2011 10:00, insgesamt 1-mal geändert.

Re: Problem Webservices und Option Feld

9. September 2011 11:55

Statt den ausgeschriebenen Wert schreib mal die Nummer rein.

Re: Problem Webservices und Option Feld

9. September 2011 12:10

JanGD hat geschrieben:Statt den ausgeschriebenen Wert schreib mal die Nummer rein.

Das geht nicht. Wenn ich z.B.
Code:
ws.Optionfeld = 1;

schreibe, bekomme ich in der Entwicklungsumgebung sofort die Fehlermeldung : Der Typ "int" kann nicht implizit in "NAV.WSNAV.Optionfeld" konvertiert werden. Das gleiche gilt übrigens auch für String usw.

Re: Problem Webservices und Option Feld

9. September 2011 12:27

Probier

ws.Optionfeld = Optionfeld."1";

Re: Problem Webservices und Option Feld

9. September 2011 12:42

tmartin hat geschrieben:Probier
ws.Optionfeld = Optionfeld."1";

> Nur assignment-, call-, increment-, decrement- und "new object"-Ausdrücke können als Anweisung verwendet werden.
Was nicht wirklich verwundert :)

Mit Optionfeld. öffnet sich im Quellcode ja ein DropDown Menü das mir die Typen des Optionsfeldes als Auswahl anbietet. Die Frage ist eben wieso die Zuweisung nicht funktioniert.

Re: Problem Webservices und Option Feld

9. September 2011 13:55

Hallo,


das Feld hat bestimmt auch ein "FeldnameSepecfied ". Diese musst du auf true setzen.

Code:
ws.optionfeld = optionfeld.wert;
ws.OptionfeldSepecfied = true;


Generell sind Option-, Integer und Boolische Felder davon betroffen. Text Felder werden einfach übernommen:-)

Gruß
Aydin

Re: Problem Webservices und Option Feld

12. September 2011 07:45

aydina81 hat geschrieben:Hallo,
das Feld hat bestimmt auch ein "FeldnameSepecfied ". Diese musst du auf true setzen.
Code:
ws.optionfeld = optionfeld.wert;
ws.OptionfeldSepecfied = true;

Generell sind Option-, Integer und Boolische Felder davon betroffen. Text Felder werden einfach übernommen:-)
Gruß
Aydin

Vielen Dank. Daran hat es gelegen. Auf so etwas muss man erst mal kommen. :)

/Edit: Problem gelöst

Re: Problem Webservices und Option Feld

12. September 2011 09:39

Hallo John,


du hast recht auf so etwas muss man irgendwie kommen:-)
Ich hatte am Anfang das gleiche Problem und habe mich ebenfalls immer nur gewundert, warum es nicht geht.

Vielleicht in der ersten Betreffzeile das Problem als "Gelöst" markieren:-)

Gruß
Aydin