WebService per Lotusscript ansprechen folgt zu einer Fehlermeldung

  • Hallo liebe Notes & Domino-Gemeinde,


    Ich versuche mich gerade an WebServices und hänge leider bereits ganz am Anfang. Ich bilde den WebService Consumer über den Link zur WSDL Datei ab, nutze diesen Consumer in meinem Code und rufe die Funktionen auf. Leider lande ich immer wieder bei folgender Fehlermeldung.


    Bild 1.png


    Der Link zu der WSDL-Datei lautet: http://login.mailingwork.de/webservice/webservice/soap3?wsdl


    Hier den Code den ich in meinem Agent nutze:



    Option Public
    Option Declare


    Use "WebServiceConsumerTest"
    Sub Initialize
    Dim soap As New SoapPort_n0()
    Dim varTemp As Variantarray_holder

    Set varTemp = soap.Test("Hallo")
    End Sub


    Laut der Dokumentation des Webservices wird ein String übergeben und ein Array zurückgegeben.


    Bild 2.png


    Eine weitere Sache, welche mich etwas verwirrt ist der Rückgabe-parameter in dem Webservice-Consumer. Er wird mit dem Dateityp "VariantArray_Holder" angegeben.


    Ich habe es ebenfalls probiert meine Variable varTemp zum Typ "Variant" zu ändern und über die Funktion .Value des Aufrufs einen Variant zu erhalten. Leider endet alles was ich versuche in der oben erwähnten Fehlermeldung.


    Falls mir jemand einen Hinweis geben kann woran es liegt oder was diese Meldung bedeutet, wäre ich sehr dankbar.


    Beste Grüße


    Tobi

  • :D oh mann jetzt verstehe ich die Fehlermeldung anders^^, dachte erst die "Datatype Map" hätte einen Datentyp nicht - aber wenn der Datentyp Map fehlt, ist das ja schonmal ein guter Hinweis! Danke dafür ;)


    An einem Java Consumer haben wir auch schon gedacht bzw. erste Versuche gemacht. Aber Lotusscript wäre uns da doch schon etwas lieber, da bei uns nicht alle Java können/Lotusscript hingegen schon.


    Mit dem Type Statement kann ich in Lotusscript ja auch Datentypen definieren...wäre das ein Ansatz??


    Der Result sieht wie folgt aus (da ist auch tatsächlich der type Map drin^^):


    <return xsi:type="ns2:Map">
    <item>
    <key xsi:type="xsd:string">error</key>
    <value xsi:type="xsd:int">0</value>
    </item>
    <item>
    <key xsi:type="xsd:string">message</key>
    <value xsi:type="xsd:string">successfully executed</value>
    </item>
    <item>
    <key xsi:type="xsd:string">result</key>
    <value SOAP-ENC:arrayType="ns2:Map[4]" xsi:type="SOAP-ENC:Array">
    <item xsi:type="ns2:Map">
    <item>
    <key xsi:type="xsd:string">id</key>
    <value xsi:type="xsd:float">7</value>
    </item>
    <item>
    <key xsi:type="xsd:string">name</key>
    <value xsi:type="xsd:string">Liste C</value>
    </item>
    <item>
    <key xsi:type="xsd:string">description</key>
    <value xsi:type="xsd:string">Beispielbeschreibung</value>
    </item>
    </item>
    <item xsi:type="ns2:Map">
    <item>
    <key xsi:type="xsd:string">id</key>
    <value xsi:type="xsd:float">5</value>
    </item>
    <item>
    <key xsi:type="xsd:string">name</key>
    <value xsi:type="xsd:string">Liste B</value>
    </item>
    <item>
    <key xsi:type="xsd:string">description</key>
    <value xsi:type="xsd:string"></value>
    </item>
    </item>
    <item xsi:type="ns2:Map">
    <item>
    <key xsi:type="xsd:string">id</key>
    <value xsi:type="xsd:float">3</value></item>
    <item>
    <key xsi:type="xsd:string">name</key>
    <value xsi:type="xsd:string">Liste A</value>
    </item>
    <item><key xsi:type="xsd:string">description</key>
    <value xsi:type="xsd:string"></value>
    </item>
    </item>
    <item xsi:type="ns2:Map">
    <item>
    <key xsi:type="xsd:string">id</key>
    <value xsi:type="xsd:float">1</value>
    </item>
    <item>
    <key xsi:type="xsd:string">name</key>
    <value xsi:type="xsd:string">Testabonnenten</value>
    </item>
    <item>
    <key xsi:type="xsd:string">description</key>
    <value xsi:type="xsd:string"></value>
    </item>
    </item>
    </value>
    </item>
    </return>


    Hat jemand eine Idee wie man das als Type in Lotusscript definieren kann?


    Beste Grüße


    Tobi

  • Das sind die Backend Bibliotheken die IBM liefert, die diese Konvertierung vornehmen, d.h. da wirst du denke ich nicht rankommen.


    Ich hab bei LotusScript schon öfters festgestellt, daß es da gewisse Inkompatibilitäten gibt bzgl der Datenformate