AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
25.05.12 - 01:43:23
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Domino 5 und frühere Versionen
| |-+  Entwicklung (Moderatoren: Axel, Don Pasquale, eknori, Hoshee, ata, Thomas Schulte, koehlerbv)
| | |-+  Java-Agenten
« vorheriges nächstes »
Seiten: [1] 2 Nach unten Drucken
Autor Thema: Java-Agenten  (Gelesen 2394 mal)
FRANKI
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 346


vergiss nicht zu tanzen...


« am: 09.12.02 - 12:05:39 »

Hallo,
ich möchte einen Agenten aus einer Maske heraus aufrufen.
Der Agent ist in JAVA geschrieben.
Der Aufruf erfolgt nach dem abspeichern des Dokument's.
Beim Aufruf möchte ich die DocUID dem Agenten mitgeben.

Kann mir je erklären, wie ich dem Agenten Parameter mitgeben kann (hier die DocID)

Danke
FRANKI
Gespeichert
magic_halli
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 348



« Antworten #1 am: 04.11.08 - 10:35:56 »

Hi,

ist zwar schon ewig her, seit das Thema erstellt wurde... Aber ich habe mir bereits die gleiche Frage gestellt!
Ich habe genau das gleich vor - hast bzw. wie hast Du das gelöst?

Gruß
Gespeichert

Lotus Notes 8.0.2
MadMetzger
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1046


f.k.a. Alexis Pyromanis


« Antworten #2 am: 04.11.08 - 10:55:13 »

Einem Agenten kann man optional eine DocId beim Aufruf der run-Methode via Script oder auch Java mitgeben:
notesAgent.Run( [ noteID$ ] )

Das steht alles in der Desingerhelp beschrieben.
Gespeichert

FRANKI
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 346


vergiss nicht zu tanzen...


« Antworten #3 am: 04.11.08 - 11:01:18 »

Hi,

ich mach es mittlerweile immer so, dass ich dem Aufruf des Agenten Parameter mitgebe
(so in der Art: datenbank+"/Agentenname?OpenAgent&action="+action )

Die URL werte ich dann im Agenten mit session.evaluate  aus.

Aufrufen kannst Du den Agenten durch ein Ereignis, z.B. onSubmit o.ä.)

Gruß
FRANKI
Gespeichert
magic_halli
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 348



« Antworten #4 am: 04.11.08 - 11:51:48 »

Mh, ich präzisiere mal mein Vorhaben:

Ich möchte aus einer Maske per Buttonklick einen Java-Agent aufrufen. Dieser Agent sollte aus der Maske einige Feldinhalte als Übergabeparameter erhalten und diese dann intern weiterverarbeiten.

1. Wie übergebe ich solche Feldinhalte an einen Java-Agent?
2. Wie würde der Aufruf des Agent mittels @Command dann aussehen?

Danke und Gruß
Gespeichert

Lotus Notes 8.0.2
FRANKI
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 346


vergiss nicht zu tanzen...


« Antworten #5 am: 04.11.08 - 11:58:47 »

also:

Du erstellst in Deiner Maske einen Button.
Die "Click"-Eigenschaften des Button könnten in Formelsprache so aussehen:

@Command([ReloadWindow] );
@Command([FileCloseWindow]);

@URLOpen(datenbank + "/Agentenname?OpenAgent&ID=" + @Text(@DocumentUniqueID))


Im Agenten holst Du Dir über session.evaluate die DocID und list dann z.B. per dok.getItemValueString("Feldname") die Feldwerte aus.

Gruß
Frank
Gespeichert
magic_halli
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 348



« Antworten #6 am: 04.11.08 - 12:06:03 »

Danke erstmal... ich meine aber keinen Browser Client, sondern den Notes-Client, an dem das mittels eines importierten Java-Agent realisiert werden soll! Nur zur Info... weil mich der @URLOpen-Aufruf hierbei stutzig macht.  Huh
Gespeichert

Lotus Notes 8.0.2
MadMetzger
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1046


f.k.a. Alexis Pyromanis


« Antworten #7 am: 04.11.08 - 12:10:29 »

Wenn du das mit der Maske geöffnete Dokument gespeichert hast, kannst du den Agent via Button und den oben von mir erwähnten Methodenaufrufen samt Parametern aufrufen. Und lies mal in der Designerhilfe nach. Mit dem Parameter DocId hast du das Dokument in dem aufgerufenen Agent im Kontext und kannst dir die benötigten Werte über die Methoden der Klasse Notesdocument auslesen.
Gespeichert

FRANKI
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 346


vergiss nicht zu tanzen...


« Antworten #8 am: 04.11.08 - 13:06:11 »

genau so .....

Viel Erfolg!
Gruß
Gespeichert
magic_halli
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 348



« Antworten #9 am: 04.11.08 - 13:18:27 »

Ok, danke. Hier mal ein simples Beispiel, ob ich´s denn auch wirklich verstanden habe:  Roll Eyes

importierten Java-Agent bei Buttonklick aufrufen:
Zitat
@Command([ToolsRunMacro]; myAgent)

myAgent sieht dann so aus (liest bspw. einen Feldwert des aktuell geöffneten Dokuments aus):
Zitat
public class JavaAgent extends AgentBase {

  public void NotesMain() {
    try{
      Session session = getSession();
      AgentContext ac = session.getAgentContext();
      Database db = ac.getCurrentDatabase();

      // über DocID an geöffnetes Dokument bei Agent-Ausführung gelangen und dann evtl. Dokumentwerte auslesen
      Agent ag = ac.getCurrentAgent();
      Document curDoc = db.getDocumentByID(ag.getParameterDocID());
      // bspw. StringValue vom Feld "Subject" auslesen
      String sSubject = curDoc.getItemValueString("Subject");
     
    }catch(Exception e){
      e.printStackTrace();
    }
  }

War das so gemeint... konnte es leider noch nicht testen, da ich im Vorfeld erst abklären muß, wie einige Sachen in Notes funktionieren.  Wink

Danke und Gruß
Gespeichert

Lotus Notes 8.0.2
MadMetzger
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1046


f.k.a. Alexis Pyromanis


« Antworten #10 am: 04.11.08 - 13:22:54 »

Liest du auch, was wir schreiben? Bei uns war bisher nicht von einem @Command die Rede. So wie du es da jetzt hast, meinte ich es zumindest nicht. Ich weiß nämlich nicht, ob der Agent da das aktuelle Dokument mitbekommen hat.
Gespeichert

FRANKI
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 346


vergiss nicht zu tanzen...


« Antworten #11 am: 04.11.08 - 13:28:23 »

ich kann auch nicht sagen, ob das so funktioniert.

verscuhe doch mal folgendes:

1. Dokument abspeichern mit @Command([FileSave]);
2. Agent aufrunfen mit @URLOpen(datenbank + "/Agentenname?OpenAgent&ID=" + @Text(@DocumentUniqueID))
3. Im Agenten mit session.evaluate die DOCID aus der URL lesen.
4. Felder mit getItemValueString vom Agenten lesen.

so ungefähr sollte es klappen.
melde Dich wieder, wenn Du das mal ausprobiert hast.

Gruß
Frank
Gespeichert
magic_halli
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 348



« Antworten #12 am: 04.11.08 - 13:49:13 »

Ok, danke... ich melde mich.
Gespeichert

Lotus Notes 8.0.2
magic_halli
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 348



« Antworten #13 am: 04.11.08 - 14:09:32 »

Sorry, aber ich glaube, wir haben uns grundsätzlich falsch verstanden, was den Aufruf und die Verwendung des Agent anbelangt!
Der Java-Agent soll kein WebAgent sein und auch nicht aus dem Browser aufgerufen werden!
Es soll ein Java-Agent sein, der von einem Notes-Client aus aufgerufen wird.

@URLOpen([...]) habe ich bisher nur in Zusammenhang mit Websites und Notes gelesen!  Huh
DominoDesigner Hilfe meint dazu:
Zitat
Retrieves a World Wide Web page specified by its URL.

Hab ich da bisher was falsch verstanden?!
Gespeichert

Lotus Notes 8.0.2
MadMetzger
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1046


f.k.a. Alexis Pyromanis


« Antworten #14 am: 04.11.08 - 14:35:31 »

Hast du meine Postings genau gelesen? Da habe ich dir schon eine Antwort gegeben.
Gespeichert

m3
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 7276


Non ex transverso sed deorsum!


WWW
« Antworten #15 am: 04.11.08 - 14:45:19 »

Markus, er will/kann/darf aber nicht LotusScript, sondern nur @-Formulas und Java (und das alles am Besten, ohne mit Notes überhaupt nur in Berührung zu kommen). Da is er mit 5 Zeilen Lotusscript überfordert!
Gespeichert

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

Weeks of programming can save you hours of planning!
magic_halli
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 348



« Antworten #16 am: 04.11.08 - 15:20:11 »

...Sorry, wenn ich anscheinend ein geistiger Spätzünder oder Nullchecker bin!
Ich setze mich halt leider erst seit paar Tagen mit Notes, Agents usw. auseinander und bekomme immer neue Inputs wie man was machen kann.  Ahnungslos

Zitat
Wenn du das mit der Maske geöffnete Dokument gespeichert hast, kannst du den Agent via Button und den oben von mir erwähnten Methodenaufrufen samt Parametern aufrufen. ... Mit dem Parameter DocId hast du das Dokument in dem aufgerufenen Agent im Kontext und kannst dir die benötigten Werte über die Methoden der Klasse Notesdocument auslesen.
OK...
1. Ich weiß nunmal leider (noch) nicht, wie der Agentaufruf mit mit 'notesAgent.Run( [ noteID$ ] )' hinter einem Button aussehen soll, da ich bisher immer nur was von @Command gelesen habe.
2. Ist mein Java-Quellcode denn nun falsch, oder nur mein AgentAufruf (siehe mein obiges Posting)?
3. Die Klasse 'Notesdocument' existiert (bei mir) im Notes.jar nicht?! Edit: Ahh, gibts nur in LotusScript!

Zitat
Markus, er will/kann/darf aber nicht LotusScript, sondern nur @-Formulas und Java (und das alles am Besten, ohne mit Notes überhaupt nur in Berührung zu kommen). Da is er mit 5 Zeilen Lotusscript überfordert!
...ich möchte einfach soviel wie möglich durch Java realisieren, um relativ unabhängig von Eingriffen in Notes zu sein, wenn´s später mal irgendwie auf einem noch jungfräulichen Notes analog realisiert werden soll.

Gruß

PS: Ich hoffe, ich lag nun nicht wieder meilenweit mit meinen Gedanken daneben...
« Letzte Änderung: 04.11.08 - 15:31:27 von magic_halli » Gespeichert

Lotus Notes 8.0.2
Ralf_M_Petter
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1492


Jeder ist seines eigenen Glückes Schmied


WWW
« Antworten #17 am: 04.11.08 - 16:22:05 »

Notesdocument ist in Java Document

Grüße

Ralf
Gespeichert

Neu Mein Blog: Lotus Notes Java & Co.
eknori
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 10103


No guts, No glory!!


WWW
« Antworten #18 am: 04.11.08 - 16:25:32 »

Zitat
Ich setze mich halt leider erst seit paar Tagen mit Notes, Agents usw. auseinander und bekomme immer neue Inputs wie man was machen kann.

OK, aber ohne sich mal hinzusetzen, den Designer zu starten und einfach mal ein paar Sachen ausprobieren wird das nie und nimmer was.
Gespeichert

Gruß Ulrich (eknori) Krause

"Reich wird man nicht durch das, was man verdient, sondern durch das, was man spart"

pulmonale Hypertonie e.V.
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 19053



« Antworten #19 am: 04.11.08 - 16:34:17 »

...ich möchte einfach soviel wie möglich durch Java realisieren, um relativ unabhängig von Eingriffen in Notes zu sein, wenn´s später mal irgendwie auf einem noch jungfräulichen Notes analog realisiert werden soll.

Dieses Argument greift hinsichtlich Notes / Domino auch vollkommen daneben. Entweder, die Java-Elemente stecken a) sowieso in den Notes-Anwendungen (Datenbanken) oder sind b) komplett extern. In Fall a) ergibt sich keinerlei Unterschied zwischen den Programmiersprachen, in Fall b) erhöht sich der Aufwand sogar.

Zwei prinzipielle Ratschläge:
- Zuerst die Auseinandersetzung mit der Middleware Notes / Domino - dann die Details
- Auf jeden Fall die jeweils adäquaten / einfachen (und einfach zu portierenden) Mittel zur Erreichung des Ziels einsetzen und sich nicht auf eine Art der Programmierung stürzen und die anderen ausser Acht zu lassen.

Bernhard
Gespeichert
Seiten: [1] 2 Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: Tinte / Toner günstig