Autor Thema: XML-Daten live von HTTP-Adresse einlesen!  (Gelesen 2767 mal)

Offline bernino1

  • Junior Mitglied
  • **
  • Beiträge: 68
  • Geschlecht: Männlich
XML-Daten live von HTTP-Adresse einlesen!
« am: 30.06.10 - 16:16:32 »
Hallo,

ich biete einem externem Partner bestimmte Dokumente via Notes-View die XML-Daten darstellt auf unserem Domino-WebServer an.
Der Partner holt Sie dort ab wann er will!

Nun sollte ich das ganze auch umgekehrt realisieren.

Also:
Der Partner gibt mir eine http-Adresse unter der ich dann eine XML-Datenstruktur finde.
Diese sollte ich via LS-Agent oder sonstigem mehrmals täglich einlesen und zu Notes-Dokumenten verarbeiten.
(Also quasi direkt von der HTTP-Adresse zeilenweise streamen!?)

Wie ich die XML-Daten (wenn ich sie dann mal habe ;-) verarbeite ist mir klar.

Was ich nicht weiss ist - wie kann ich die Daten via LS oder DXL oder whatever vom Web-Server aus direkt von einer HTTP-Adresse abholen bzw. ist das überhaupt möglich??

Ich wäre für einen Lösungsansatz sehr dankbar.
Hab im Moment überhaupt keine Idee wie ich von einer HTTP-Adresse ein XML einlesen/streamen kann!!??

DANKE

PS
Nicht wundern - bin bis Montag 05-07-10 im Ausland und kann erst dann reagieren!
« Letzte Änderung: 06.07.10 - 09:44:37 von bernino1 »
Schöne Grüße vom Bodensee

Berndt

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: XML-Daten live von HTTP-Adresse einlesen!
« Antwort #1 am: 30.06.10 - 17:21:05 »
Notes bietet mit Lotusscript keine Möglichkeit, URLs abzuholen. (Sofern man einen Webservice-Consumer nicht dazuzählt) Dies geht mit Bordmitteln nur mit Java. (und hier müssen ggf. auch die Sicherheitseinstellungen geändert werden)

Aber es geht z.B. über COM. Google mal nach "LotusScript XmlHttpRequest"
Die Datenmenge die du hier downloaden kannst, entspricht etwa 64k (der Arraygröße von LotusNotes) und ist u.U. nicht ausreichend.

Alternativ könntest du die Datei mit wget (gibts auch für Win) in ein Temp-Verzeichnis abspeichern und dann per Notes-File-Operationen einlesen.

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline bernino1

  • Junior Mitglied
  • **
  • Beiträge: 68
  • Geschlecht: Männlich
Re: XML-Daten live von HTTP-Adresse einlesen!
« Antwort #2 am: 06.07.10 - 09:44:23 »
SUPER  -  DANKE  - GENAU  DAS  WARS!!!

Danke für den Tip - läuft tadellos und liefert mir eine XML-Struktur direkt von einer Url.

Das 64k Problem kannst du - natürlich nur unter Umständen - mit nem Loop umgehen der dir die Url Zeilenweise durchgeht!
Für meine Zwecke sind die 64k sicher ausreichend!

Beispiel: (Verwendet dafür die IE-API.)

Set objHttp = CreateObject("Microsoft.XMLHTTP")
url = |http://www.test.at/ttdaten.xml|
req = |API=Rate&XML=<RateRequest USERID="testuser@domain"
PASSWORD="testpw"><Package ID="notesserverID"><import clientID="0xx"><masterLists></masterLists></import clientID></Package>
</RateRequest>|

objHttp.open "POST", url, False, "", ""
objHttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
objHttp.send(req) 'Request an WebServer übergeben!
response = objHttp.responseText
Set db = sess.Currentdatabase
Set hpdoc = New NotesDocument(db)
hpdoc.form = "xml_test"
hpdoc.response = response
Call hpdoc.save(True, False)
Set objHttp=Nothing
« Letzte Änderung: 06.07.10 - 09:47:21 von bernino1 »
Schöne Grüße vom Bodensee

Berndt

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: XML-Daten live von HTTP-Adresse einlesen!
« Antwort #3 am: 06.07.10 - 13:24:53 »
Das 64k Problem kannst du - natürlich nur unter Umständen - mit nem Loop umgehen der dir die Url Zeilenweise durchgeht!
Für meine Zwecke sind die 64k sicher ausreichend!
Das verstehe ich nicht ganz. Wie meinst du "zeilenweise"? Das Problem ist, dass du in dieser Zeile:
   response = objHttp.responseText
einen Fehler bekommst, wenn der responseText > 64K ist.

Ich hab damals jedenfalls keine Möglichkeit gefunden, auf Teile der Resopnse zuzugreifen, falls diese > 64K war.

Aber freut mich, dass ich weiterhelfen konnte.
Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz