[Gelöst] Webservice übernimmt Boolean-Werte nicht

13. Mai 2009 14:52

Hallo Zusammen,

ich hoffe, dass mir hier jemand helefen kann. Ich habe ein C#-Programm, welches mit einem NAV2009 Page-Webservice kommuniziert.
Hier läuft im Grunde alles prima, nur werden in der dahinterliegenden NAV-Tabelle nur die Code und Text-Felder gefüllt. Alle Integer-Felder werden , völlig unabhängig was übergeben wird, mit 0 gefüllt. Boolean-Felder bleiben leer.
Hier ein Beispiel:

Implementierung
Code:
SAP_Item_Import SapItem = new SAP_Item_Import();
SAP_Item_Import_Service SapService = new SAP_Item_Import_Service();
SapService.UseDefaultCredentials = true;


Kategorie (String) wird richtig übernommen
Code:
SapItem.CategoryKey = "FRT";


Boolean wird nicht ünernommen
Code:
SapItem.ExtraPaymentPossible = true;


Integer. Hier wird 0 übernommen
Code:
             
SapItem.ShipperNumber = 56;



Und abschicken
Code:
 
 SapService.Create(ref SapItem)


Ich hoffe, jemand weiß hier Rat.

VG
turo
Zuletzt geändert von turo01 am 14. Mai 2009 08:43, insgesamt 1-mal geändert.

Re: Webservice übernimmt Boolean-Werte nicht

13. Mai 2009 21:05

Hi turo,

Werttypen können keine NULL Werte enthalten, XML Dateien bzw. Schemata allerdings schon (minOccurs=0). Aus diesem Grund werden von XSD für Werttypen jeweils 2 Felder generiert: Feldname und FeldnameSpecified, wobei FeldnameSpecified jeweils ein Boolean Feld ist welches angibt, ob das zugehörige Feld Feldname angegeben wurde. Setzt du also nach Füllen eines Wertes auch das zugehörige Feld FeldnameSpecified auf true, dann wird es korrekt übertragen und in die Datenbank geschrieben.

Vergl. dazu XmlIgnoreAttribute Class (Remarks)

Re: Webservice übernimmt Boolean-Werte nicht

14. Mai 2009 08:43

Hallo SilverX,

genau das wars!. Vielen Dank, du hast mir damit sehr geholfen :-D

Gruss
turo