Webservice Parameter werden plötzlich kleingeschrieben

21. April 2020 09:56

Hallo,

ich versuche gerade verzweifelt die Kommunikation mit der Software eines Fremdanbieters über einen Webservice herzustellen.
Die Software des Fremdanbieters existiert schon relativ lange und die Kommunikation dieser Software mit anderer Software wie
z.B. SAP funktioniert auch problemlos. An eine Anpassung von Seiten des Fremdanbieters ist also nicht zu denken.

Die XML-Datei, über die der Webservice aufgerufen wird hat das folgende Format:

Code:
<?xml version="1.0" encoding="utf-8"?>
<soap: Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <WS_FUNCTION xmlns="http://schemas.xmlsoap.org/wsdl/soap/">
         <VTID xmlns="">1218927</VTID>
         <ExtID xmlns="">S20/800021</ExtID>
         <FunctionCode xmlns="">3</FunctionCode>
         <Status xmlns="">6</Status>
         <FMExtID xmlns="">146</FMExtID>
         <Termin_von xmlns="">2020-04-14T00:00:00+02:00</Termin_von>
         <Termin_bis xmlns="">2020-04-17T00:00:00+02:00</Termin_bis>
         <Plandauer xmlns="">4</Plandauer>
         <Besuchsdauer xmlns="">4</Besuchsdauer>
         <Planankunft xmlns="">2020-04-15T08:32:00+02:00</Planankunft>
         <Infotext xmlns="">Infotext</Infotext>
         <CancellationCode xmlns=""/>
      </WS_FUNCTION>
   </soap:Body>
</soap:Envelope>



Ich habe in einer Codeunit folgende Funktion erstellt und als SOAP-Webservice veröffentlicht:

Code:
WS_FUNCTION(VTID : Code[20];VAR ExtID : Code[20];FunctionCode : Integer;Status : Integer;FMExtId : Integer;Termin_von : DateTime;Termin_bis : DateTime;Plandauer : Integer;Besuchsdauer : Integer;Planankunft : DateTime;VAR Infotext : Text;CancellationCode : Code[20])
.
.
.
END;



Rufe ich nun die WSDL über die veröffentlichte URL ab bekomme ich für dies Funktion folgende Beschreibung:

Code:
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <Body>
        <WS_FUNCTION xmlns="urn:microsoft-dynamics-schemas/codeunit/NAV_WS">
            <vTID>[string]</vTID>
            <extID>[string]</extID>
            <functionCode>[int]</functionCode>
            <status>[int]</status>
            <fMExtId>[int]</fMExtId>
            <termin_von>[dateTime]</termin_von>
            <termin_bis>[dateTime]</termin_bis>
            <plandauer>[int]</plandauer>
            <besuchsdauer>[int]</besuchsdauer>
            <planankunft>[dateTime]</planankunft>
            <infotext>[string]</infotext>
            <cancellationCode>[string]</cancellationCode>
        </WS_FUNCTION>
    </Body>
</Envelope>


Wie man sieht ist hier der jeweils erste Buchstabe der Parameter, entgegen der Definition in der Codeunit, klein geschrieben.
Da die Parameter von der Fremdfirma mit Großbuchstaben beginnen, habe ich hier ein Problem, da an eine Änderung von Seiten
der Fremdfirma nicht zu denken ist.

Gibt es irgendeine Möglichkeit dieses Verhalten bei der Veröffentlichung des Webservices zu beieinflussen, so dass die Parameter
so veröffentlicht werden, wie sie definiert wurden?

Wir setzen NAV2017 in der aktuellsten Version ein.

Re: Webservice Parameter werden plötzlich kleingeschrieben

21. April 2020 22:28

Ich hab das mal schnell getestet (in NAV 2017 Build 18197, das müsste ein recht altes CU sein) - das ist bei mir auch so. Nur der erste Buchstabe wird immer zum Kleinbuchstaben, der zweite oder sonstige folgende bleiben Großbuchstaben...