Autor Thema: AJAX in Lotus Notes : VIEW auslesen  (Gelesen 5199 mal)

Offline chili

  • Frischling
  • *
  • Beiträge: 11
AJAX in Lotus Notes : VIEW auslesen
« am: 26.04.06 - 09:38:09 »
Hallo,

ich möchte eine AJAX Anwendung in Lotus Domino 7 programmieren. Da ich Anfänger in Domino bin, habe ich anfangs mitbekommen das es PHP in Lotus gar nicht gibt  ;) was mich natürlich etwas verunsichern tut, da viele AJAX Anwendungen auf PHP zurückgreifen. Als Einstieg möchte ich einen kleinen Chat-Room bauen, der über den Domino Server läuft.
Ich weiss leider momentan gar nicht so richtig wie ich anfangen soll. Speziell wie ich mittels dem XMLHttp-Request Daten aus Domino anfordern kann.
Bei einem Chat-Room muss ja der vom Nutzer eingegebene Text zwischengespeichert werden, bspw. in einer XML Datei oder in einer mysql DB. Diese Optionen stehen mir unter Domino nicht zur Verfügung. Unter Domino wird der Text in einer VIEW abgelegt.

Ich würde nun sehr gern wissen wie man auf den eingegegebenen Nachrichten-Text (also auf die VIEW über 'xmlHttp.open('GET', url , true) mittels XMLHttpRequest zugreifen kann?

Und natürlich andersherum, wie man mittels 'POST' Text in der VIEW ablegen kann...

Die Funktion zum Auslesen sieht folgendermaßen aus:

Code
function loadData()
{

if (xmlHttp) {
    var url = '/' + $('WebDBName_').value + '/Messages?ReadViewEntries'; 	
     xmlHttp.open('GET', url , true);
     xmlHttp.onreadystatechange = function () {
         if (xmlHttp.readyState == 4) {
             document.getElementById("asb_content").innerHTML = xmlHttp.responseText;
         }
        
     };
     xmlHttp.send(null);
 }
}

Die Zeile in der die Variable 'url' gesetzt wird ist leider nicht korrekt. Weiss jemand wie ich eine Verbindung zur view herstellen kann damit ich dessen Inhalt auslesen kann?
Schonmal Danke für eure Hilfe!
« Letzte Änderung: 26.04.06 - 09:40:00 von chili »

Glombi

  • Gast
Re: AJAX in Lotus Notes : VIEW auslesen
« Antwort #1 am: 26.04.06 - 09:43:12 »
Hier im Forum gibt es bereits etliche Beiträge zum Thema Ajax - leider noch etwas verstreut. Suche einfach mal nach Ajax.

Es gibt insb. Links zu Seiten, auf denen auch Code und tiefergehende Beispiele stehen.

Andreas

Offline chili

  • Frischling
  • *
  • Beiträge: 11
Re: AJAX in Lotus Notes : VIEW auslesen
« Antwort #2 am: 26.04.06 - 10:25:27 »
Ich habe mich mal umgeschaut aber leider nichts passendes gefunden. Im Prinzip wäre es in erster Linie interessant wie man mit JavaScript auf eine VIEW zugreifen - und dessen Inhalt auslesen kann.

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: AJAX in Lotus Notes : VIEW auslesen
« Antwort #3 am: 26.04.06 - 13:33:23 »
Zitat
Ich würde nun sehr gern wissen wie man auf den eingegegebenen Nachrichten-Text (also auf die VIEW über 'xmlHttp.open('GET', url , true) mittels XMLHttpRequest zugreifen kann?


Und natürlich andersherum, wie man mittels 'POST' Text in der VIEW ablegen kann...

Die Funktion zum Auslesen sieht folgendermaßen aus:

Schau mal unter http://www.codestore.net da hats ein paar beispiele zu AJAX.
Je nachdem wo Du das Script eingefügt hast kannst Du auf den Webdbname zugreifen.
Ich für meinen Teil habe meistens im Form ein Feld "Webdbname", Computed for display mit Formel @Webdbname. Auf dieses kann ich dann von JS aus zugreifen.

Allgemein kannst Du über die NotesURL's auf NotesObjekte zugreifen. Hast Du ja schon rausgefunden, z.B. via ReadViewentries kriegst Du die XML von ner Ansicht.

Alternativ kannst Du z.B. via ?OpenAgent einen Agenten auf dem Server ausführen. Die Rückgabewere vom Agent ( Print Statements im Agent) kannst Du dann via Xmlhttp.responseText auslesen.

Um Daten in eine View zu schreiben, musst Du ein Notesdokument erzeugen.

Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: AJAX in Lotus Notes : VIEW auslesen
« Antwort #4 am: 26.04.06 - 15:07:15 »
Du solltest debug-Techniken entwickeln, mit der du die URL an dieser Stelle
->
Code
var url = '/' + $('WebDBName_').value + '/Messages?ReadViewEntries';
-> HIER
     xmlHttp.open('GET', url , true);
rausschreiben kannst.
Das ist mittlerweile machbar. In codestore werden hierzu auch immer gute Tools genannt.

Ajax hat eigentlich überhaupt nichts mit php, Domino oder sonstwie zu tun. Es ist lediglich eine Browsertechnik, mit der in moderneren Browsern Teile der Seite asynchron nachgeladen werden können und in den DOM-Baum der Webseite eingehängt werden können (zumindest verstehe ich es so). Die nachgeladenen Daten werden in Form von xml, JSON oder geheimes_Rezept (Charles vom DrunkAndRetired-podcast) übermittelt.

Ich fänds aber auch gut, wenn hier mal jemand versucht, sich dem Thema per mini Tutorial oder sonstwie anzunähern.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: AJAX in Lotus Notes : VIEW auslesen
« Antwort #5 am: 26.04.06 - 20:08:16 »
Ich habe mich mal umgeschaut aber leider nichts passendes gefunden. Im Prinzip wäre es in erster Linie interessant wie man mit JavaScript auf eine VIEW zugreifen - und dessen Inhalt auslesen kann.

Das einzige Javascript, das du brauchst, ist das XmlHttpRequest-Objekt.
Mit ihm schickst du Anfragen an den Webserver, empfängst die Antworten und aktualisierst damit deine Seite (den DOM-Baum, den Axel schon genannt hat).

Welche Möglichkeiten es gibt, Anfragen an den Dominoserver über URLs zu schicken, steht hier.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

Offline chili

  • Frischling
  • *
  • Beiträge: 11
Re: AJAX in Lotus Notes : VIEW auslesen
« Antwort #6 am: 27.04.06 - 11:32:14 »
Hallo! Schonmal danke für die Ratschläge, haben mir schon gut weitergeholfen :-)
Ich zeig Euch ambesten mal ein paar Quelltext-Ausschnitte. Meine Vorgehensweise:

(1) Form erstellt in der ich div-tags definiert habe. Im div 'content' soll der Inhalt der  Datenbank über die VIEW  angezeigt werden

(2) Die VIEW Messages enthält die Spalte Message

(3) abfrage.js: 

 
Code
 window.onload=function() {
   var url = '/' + $('WebDBName_').value + '/Messages?ReadViewEntries';
   callServer('GET', url, true, 0,  createCallFunctionWithXMLHandler('getMessage'));
	
 }  // Wie umi bereits gesagt erhalt man damit eine XML der Ansicht

(4) ajax.js

Funktion wird zurückgegeben, die als statusOKHandler aufgerufen werden kann, und eine Funktion mit der Request-Rückgabe (XML) aufruft.
 
Code
function createCallFunctionWithXMLHandler(functionName) {

	// übergebene Parameter prüfen
	if (!pruefeParameter(functionName, 'Der Parameter "functionName" muss übergeben werden.')) return undefined;

	// erzeuge neue Funktion und gib sie zurück
	return  new  Function('request', functionName + '(request.responseXML);');
}

(5) abfrage.js

Wie muss nun die Funktion 'getmessage' aussehen mit der ich den Inhalt der VIEW in dem div anzeigen kann  ???

Habt ihr eine Idee?

Wenn mich nicht alles täuchst ist auch die Zeile
 var url = '/' + $('WebDBName_').value + '/Messages?ReadViewEntries';
noch nicht vollständig...  :-[
bekomme immer einer Debug Fehler das kein Objekt übergeben wurde...

gruß, Mathias



Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: AJAX in Lotus Notes : VIEW auslesen
« Antwort #7 am: 27.04.06 - 11:57:09 »
$('WebDBName_')
sieht nach Prototype Library aus?
Hast du die eingebunden?

Hier sind eine Menge Beispiele:
http://www.rhs.com/poweroftheschwartz/htdocs/lotusdominoajax.htm
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline chili

  • Frischling
  • *
  • Beiträge: 11
Re: AJAX in Lotus Notes : VIEW auslesen
« Antwort #8 am: 27.04.06 - 15:55:00 »
@ Axel Jannssen:

eingebunden habe ich die $('WebDBName_') nicht. Bin davon ausgegangen, dass es auch so funktionieren muss.
Kannst du mir bitte sagen an welcher Stelle und wie man dies einbinden muss?

Ich habe die URL mal eingegeben und erhalte eine XML ausgabe des Dokuments. D.h. der Zugriff auf die Datenbank über die VIEW funktioniert.
Jetzt muss im Prinzip nur noch das XML geparst werden damit ich dies im div ausgegeben kann...

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: AJAX in Lotus Notes : VIEW auslesen
« Antwort #9 am: 27.04.06 - 16:52:26 »
eingebunden habe ich die $('WebDBName_') nicht. Bin davon ausgegangen, dass es auch so funktionieren muss.
Afaik ist $ keine Funktionalität von JavaScript sondern höchstwahrscheinlich eine Funktion der sehr beliebten js-Bibliothek prototype:
http://www.sitepoint.com/article/painless-javascript-prototype
Ich habe die URL mal eingegeben und erhalte eine XML ausgabe des Dokuments.
Das ist gut.
Zitat
D.h. der Zugriff
auf die Datenbank über die VIEW funktioniert.
Heisst aber nicht, dass die Variable url den von dir erwarteten Wert hat:
Code
 
 var url = '/' + $('WebDBName_').value + '/Messages?ReadViewEntries'; 
alert ("url=" + url)
Zitat
Jetzt muss im Prinzip nur noch das XML geparst werden damit ich dies im div ausgegeben kann...
... falls url den von dir erwarteten Wert hat.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline animate

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.540
  • Uh, I'm just gonna go find a cash machine.
    • LA2
Re: AJAX in Lotus Notes : VIEW auslesen
« Antwort #10 am: 27.04.06 - 17:27:54 »
Der gemeine Googler findet das hier und darüber dann das. In der Datenbank solltest du dann finden, was das mit dem $('WebDBName_').value auf sich hat, denke ich.
Thomas

Fortunately, I'm adhering to a pretty strict, uh, drug, uh, regimen to keep my mind, you know, uh, limber.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz