Autor Thema: Webservice-Client unter R6.5  (Gelesen 4465 mal)

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Webservice-Client unter R6.5
« am: 05.08.10 - 08:07:05 »
Hallo,

ich verzweifle gerade an einem Problem, zu dem ich hier und auch an anderer Stelle leider nix gefunden habe:

Vor einiger Zeit bestand (mehr oder weniger) die Notwendigkeit, den Notes-Client zum Webservice-Client zu machen, was ja bekanntermaßen in einer 6er Umgebung erst einmal nicht funktioniert (R8 oder folgende sind noch Zukunftsmusik). Da aber davon ausgegangen werden konnte, dass alle im Unternehmen entsprechende Microsoft-SW auf den Rechnern haben, um über die SOAP-Klassen von MS zu verfügen, konnte der Kompromiss eingegangen werden, die entsprechende OLE-Klasse zu verwenden:

DIM oSOAPClient as Variant
Set oSOAPClient = CreateObject ("mssoap.soapclient")

Damit kann man dann problemlos auf Webservices zugreifen:

oSOAPClient.mssoapinit (URL zum Service + "?WSDL")

Beim Aufruf entsprechender Methoden der Webservices wurden die Ergebnisse stets in einen NotesStream geleitet, um dann mit dem NotesDOMParser das darin liegende XML zu zerpflücken.
All das hat bislang problemlos geklappt.

Jetzt soll ein neuer interner Service auf einem IIS angesprochen werden, bei dem sich aber leider das Ergebnis nicht in den Stream packen lässt.
Scheinbar erkennt der MS-SOAPClient das Ergebnis als ein Objekt und gibt es auch nur so zurück, d.h. es ist mir bislang lediglich gelungen, die Rückgabe in einen Variant zu leiten:

DIM result as Variant
Set result = oSOAPClient.Methode(Übergabeparameter1...n)

Alle anderen Versuche, das Ergebnis zu verarbeiten, ergeben ein Type mismatch.

Jetzt habe ich natürlich keine Ahnung, was result für ein Objekt ist und wie ich an die Eigenschaften komme bzw. in welche mögliche andere OLE-Klasse ich das umleiten kann. Bekannt ist nur, dass der Webservice das Ergebnis in XML-Form herausgibt.

Irgendjemand eine Idee?

DANKE & Gruß
Marco


PS: Sorry - habe gerade gemerkt, dass ich in der Kategorie R7 gelandet bin (Klick-Fehler)  ??? Kann ich das umhängen?
« Letzte Änderung: 05.08.10 - 08:09:07 von marschul »
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: Webservice-Client unter R6.5
« Antwort #1 am: 05.08.10 - 13:13:07 »
Soooo, ich bin jetzt etwas weiter:

Hab den Code-Schnipsel mal nach Office übernommen (Visual Studio steht mir leider nicht zur Verfügung), da ich dort Objekte besser überwachen kann.
Ergebnis: Der SOAP-Client selbst gibt keine Fehler aus, aber das Rückgabe-Objekt (IXMLDOMNodeList) enthält einige Items. Leider sind darin keine Meldungen enthalten, die im Webservice definiert sind. Stattdessen gibt es einen Fehlertext "Conversion from SOAP failed". Witzigerweise entsprechen die Namen der Items der WSDL-Definition für die Response.

Gruß
Marco
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: Webservice-Client unter R6.5
« Antwort #2 am: 06.08.10 - 09:41:38 »
Falls es interessiert:

Ich habe das WSDL-File des entsprechendes Webservices mal mit einem verglichen, bei dem das mit dem NotesStream bislang geklappt hat. Erkenntnis: Die Kollegen waren so freundlich, die Response nicht als Standard-Typ String zu definieren, sondern als komplexen Typ innerhalb eines eigenen Namespace. Deshalb kommt hier ein Objekt zurück.
Die Fehlermeldung wird vom Webservice generiert und ist kein SOAP-Fehler. Sie ist vermutlich auf Versionskonflikte zurückzuführen. Bei Parameterübergabe mit ungültigen Werten aber richtigem Typ erhalte ich sogar reguläre Fehlertexte. Nur wenn ich korrekte Werte übergebe und ein richtiges Ergebnis zurückgegeben werden müsste, fällt der Service auf die Nase.
Beeindruckend fand ich die Verwendung in Visual Studio. Dort wird in dem Projekt eine Web-Referenz auf das WSDL-File erzeugt und die Entwicklungsumgebung generiert automatisch entsprechende Klassen für das Sende- und das Empfangsobjekt - GEIL! Damit ist dort auch überflüssig, irgendetwas im XML-DOM-Objekt zu parsen, da die verwendete Klasse für die Rückgabewerte gleich entsprechende Eigenschaften enthält. So etwas hätte ich auch gern...  :-\

Sieht insgesamt so aus, dass der bisherige Workaround hier nicht funktioniert.

Ach ja: Das zurückgegebene Objekt (Variant) kann übrigens auch in Notes angesprochen werden - wenn man denn die Eigenschaften kennt (Length, Items).

Viele Grüße
Marco
« Letzte Änderung: 06.08.10 - 09:46:16 von marschul »
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Webservice-Client unter R6.5
« Antwort #3 am: 06.08.10 - 09:46:54 »
Beeindruckend fand ich die Verwendung in Visual Studio. Dort wird in dem Projekt eine Web-Referenz auf das WSDL-File erzeugt und die Entwicklungsumgebung generiert automatisch entsprechende Klassen für das Sende- und das Empfangsobjekt - GEIL! Damit ist dort auch überflüssig, irgendetwas im XML-DOM-Objekt zu parsen, da die verwendete Klasse für die Rückgabewerte gleich entsprechende Eigenschaften enthält. So etwas hätte ich auch gern...  :-\
Notes 7+ kann genau das.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: Webservice-Client unter R6.5
« Antwort #4 am: 06.08.10 - 10:07:16 »
Danke! Jetzt, wo Du das schreibst, erinnere ich mich dunkel, so etwas auch schon mal ausprobiert zu haben - als ich noch R7 hatte. Letzteres ist aktuell leider nicht der Fall und lässt sich auch nicht so einfach ändern  :(
Theoretisch müsste ich ja, so denn R7+ zumindest in der Entwicklungsumgebung zur Verfügung steht, die dort generierte Klasse auch nach R6.5 übernehmen können.
Mal schauen, wie's weitergeht...........

Gruß & schönes WE
Marco
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

Offline WernerMo

  • @Notes Preisträger
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.050
  • Geschlecht: Männlich
Re: Webservice-Client unter R6.5
« Antwort #5 am: 06.08.10 - 10:15:12 »
Hallo,

Theoretisch müsste ich ja, so denn R7+ zumindest in der Entwicklungsumgebung zur Verfügung steht, die dort generierte Klasse auch nach R6.5 übernehmen können.
Mal schauen, wie's weitergeht...........

Nein.

Gruß Werner
PS: da 6.x nicht mehr supported wird, V7 in wenigen Monaten ausläuft, stellt sich die Frage nach einer Migration auf 8.5.x z.b. im Oktober auf 8.5.2?
Gruß Werner
  o                                                  o   
 /@\  Nächster @Notes-Stammtisch  /@\  online Sept. 2020?
_/_\__________________________/_\_ Details folgen.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz