Autor Thema: Agenten im Kontext des Webbenutzers ausführen  (Gelesen 5220 mal)

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Agenten im Kontext des Webbenutzers ausführen
« am: 08.12.06 - 09:51:48 »
Hi, hab einen Agenten den der Kunde online aufruft. Der Kunde ist als Notes Benutzer angemeldet. Wenn ich den Benutzer von der Session abfrage, dann wird mir der Serverbenutzer zurückgeliefert. Im 6er Designer gibt es die Option bei einem Agenten, das dieser im Kontext des Webbenutzers ausgeführt werden soll. Gibt es da für Notes 5 auch einen Workaround?

Glombi

  • Gast
Re: Agenten im Kontext des Webbenutzers ausführen
« Antwort #1 am: 08.12.06 - 10:01:37 »
Es kommt drauf an, was Du erreichen willst.

Um den Namen des aktuellen Users zu bekommen, kannst Du ein Feld - Berechnet zur Anzeige - erstellen und als Formel @Username eingeben.
Das kannst Du in dem Agenten auswerten.

Andreas

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Agenten im Kontext des Webbenutzers ausführen
« Antwort #2 am: 08.12.06 - 10:05:53 »
Sinn des ganzen... eine Notes DB die zu groß wurde, ist jetzt ausgelagert in Oracle. Kundeninterface ist aber immer noch in Notes. Also einen Agenten gemacht der sich via ODBC die Daten zieht. Klappt so weit auch wunderbar. Jetzt soll der Agent aber wissen, von welchem Benutzer er aufgerufen wurde, damit er auch nur die zu dem gehörenden Datensätze ausgibt.

Die Benutzersessions im Web verwaltet der Domino nach dem Einloggen ja automatisch. Nur ich möchte den Benutzernamen wissen. Ein Feld, wie soll ich ein Feld in einem Agenten unterbringen? Der wird direkt aufgerufen, ist mit keiner Maske verknüpft.

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Agenten im Kontext des Webbenutzers ausführen
« Antwort #3 am: 08.12.06 - 12:31:16 »
Wenn ich im Script ein Doc erstelle und mir mit Evaluate und @UserName den User hole, müsste doch auch der User des Agenten zurückkommen, was dann der Server ist. Versteh ich das so richtig?

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: Agenten im Kontext des Webbenutzers ausführen
« Antwort #4 am: 11.12.06 - 08:27:21 »
Hallo

Woraus wird den der Agent gestartet? nicht aus einem Dokument heraus?
Wenn Du den Agent aus einem Dokument heraus startest, müsstest Du (wie Glombi es beschrieben hat) ein Feld integrieren und könntest dann im Agenten via Notessession.DocumentContext.getItemvalue(Feldname)(0) auf das Feld zugreifen und so den Benutzernamen auslesen.

Zitat
Zitat einfügen 
Wenn ich im Script ein Doc erstelle und mir mit Evaluate und @UserName den User hole, müsste doch auch der User des Agenten zurückkommen, was dann der Server ist. Versteh ich das so richtig?

Genau, unter R5 ist das so. Erst ab R6 lässt sich ein WebAgent mit  den Rechten des Users ausführen lassen.
Gruss

Urs

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

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Agenten im Kontext des Webbenutzers ausführen
« Antwort #5 am: 11.12.06 - 08:32:17 »
Das aus dem Dokument aufrufen ist sicher machbar, aber kann ich dann auch etwas mit dem Agenten an den User ausgeben?

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: Agenten im Kontext des Webbenutzers ausführen
« Antwort #6 am: 11.12.06 - 08:37:31 »
Da gibt es mehrere Möglichkeiten

z.B. kannst Du direkt den HTTP Code an den Benutzer ausgeben via Print

oder Du erstellst ein Dokument mit den Daten aus der ODBC Verbindung und gibst die URL des Dokuments an den Benutzer via Print "[" & URL & "]"
Gruss

Urs

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

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Agenten im Kontext des Webbenutzers ausführen
« Antwort #7 am: 11.12.06 - 14:33:39 »
Ok, hab mal was probiert.

> Feld in Maske das den Agenten aufruft, Fehlermeldung, ist nicht erlaubt in dem Kontext.

> Event QueryOpen, passiert nix. Als wenn es nicht ausgeführt wird.

Von wo aus kann ich denn den Agenten aus einem Dokument aufrufen? Und wie krieg ich mit LS in einer Maske fürs Web Werte in die Felder? Schien so einfach, stellt sich aber als harter Brocken dar :| Bin für jede Hilfe dankbar :)

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Agenten im Kontext des Webbenutzers ausführen
« Antwort #8 am: 11.12.06 - 16:33:59 »
Juchu! Endlich ans Laufen bekommen :D

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Agenten im Kontext des Webbenutzers ausführen
« Antwort #9 am: 13.12.06 - 10:50:25 »
Nächstes Problem *gg* Der Agent läuft wie er soll, das klappt. Aber: Die Informationen die er zurückgeben soll, sind zu groß für ein normales Feld. (So 220.000 Zeichen). Also nehme ich ein RT Feld und kloppe da den Inhalt rein. Der Inhalt ist vom Agenten generierter HTML Code. Nur... das RT Feld kommentiert alle < > " & etc... aus. Also hab ich immo ein JS geschrieben das den Code ncohmal parst. Kann ich so eine große Rückgabe des Agenten auch irgendwie direkt ausgeben ?

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: Agenten im Kontext des Webbenutzers ausführen
« Antwort #10 am: 13.12.06 - 13:51:11 »
Du schreibst also den HTML Code in ein Feld und gibst das zughörige Dokument wieder an den Browser? oder wie hast Du es gelöst?
evtl. reicht es, wenn Du den HTML Code vom Agent mit "[" beginnst und mit "]" beendest. z.B.
[<div id="meinDiv">Dies ist der Code vom Agent </div>]

mit den [< und >] markierst Du den Text innerhalb quasi als DurchgangsHTML
Gruss

Urs

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

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Agenten im Kontext des Webbenutzers ausführen
« Antwort #11 am: 13.12.06 - 13:57:24 »
Der Agent wird über @Command([ToolsRunMacro]; "(agWebSpam)") im Event WebQueryOpen der Maske aufgerufen. Das was er ausgibt, würde ja verpuffen, deswegen schreibe ich die Rückgabe in ein Feld.

Würdest du den Agenten anders einbinden?

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: Agenten im Kontext des Webbenutzers ausführen
« Antwort #12 am: 13.12.06 - 14:09:15 »
Kommt darauf an was er machen soll, das Resultat des Agents verfügbar sein muss.
Evtl. kannst Du den Agent auch via AJAX starten, es gibt verschiedene Wege

Hast Du schon mal Probiert das Richtextfeld als DurchgangsHTML zu markieren?
Gruss

Urs

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

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Agenten im Kontext des Webbenutzers ausführen
« Antwort #13 am: 13.12.06 - 15:13:55 »
Ja, aber im Web wird daraus eine <textarea> und alles HTML-Artige (s.o.) wird auskommentiert.

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: Agenten im Kontext des Webbenutzers ausführen
« Antwort #14 am: 13.12.06 - 15:28:39 »
Also wenn die Daten im Dokument nur angezeigt werden sollen (es gibt keine weiteren von diesen Daten abhängigen Felder) würde ich den Ajax Ansatz mal probiern.
Dabei hilft dir evtl. Prototype.js oder Ähnliche JS-Frameworks welche Dir einiges an Arbeit mit dem xmlhttpRequest abnehmen.
Dein Agent wird dann via URL aufgerufen und "druckt" das Resultat an die Aufrufende JS-Funktion. Dann brauchst Du nur noch einen HTML Container z.B. ein DIv wo du den HTML Code des Agents ablegen kannst.
Gruss

Urs

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

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Agenten im Kontext des Webbenutzers ausführen
« Antwort #15 am: 13.12.06 - 15:42:48 »
Ab Notes 6 ja. Aber in Notes 5 weiß der Agent wieder nicht welcher Kunde ihn auruft. Dass müßte ihm dann das JS mit übergeben. Von daher kommt diese Lösung nicht in Frage.

Kann ich mit LS dynamisch Felder in einer Maske anlegen?

Offline 0xse

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 507
  • Geschlecht: Männlich
Re: Agenten im Kontext des Webbenutzers ausführen
« Antwort #16 am: 13.12.06 - 17:45:23 »
Maximum Perversum: 200 Textfelder die alle hintereinander sind, als Durchgangs HTML, und von dem Agenten gefüllt werden. Wenigstens funktionierts jetzt =)

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: Agenten im Kontext des Webbenutzers ausführen
« Antwort #17 am: 14.12.06 - 11:28:20 »
Mach Dir doch ein 'HTML-Island', in das Du vom Agenten aus den Text reinschreibst. Da gibt es keine Größenbeschränkungen.

Sieht so aus: Berechneter Wert mit z.B.: Value HTML <- wichtig: ohne Hochkommas, also wie auf ein Feld berechnet.

Im WebQueryOpen-Agenten setzt Du den Wert mit:

docCTX.HTML = <Dein Text>


EDIT: Hab noch vergessen: Der berechnete Wert muss als Durchgangs-HTML markiert sein, sons wird das im Web nicht angezeigt
« Letzte Änderung: 14.12.06 - 11:33:24 von Thomator »
+++To be human is more important than to be important!+++

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz