Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Leddl am 21.11.07 - 11:43:51

Titel: Agent von externem Programm starten
Beitrag von: Leddl am 21.11.07 - 11:43:51
Hallo zusammen,

wir haben hier ein externes Programm, in dem wir per VBA gerne einen Agenten in Lotus Notes starten würden. Ist das möglich, und falls ja: wie?

Danke, Axel
Titel: Re: Agent von externem Programm starten
Beitrag von: m3 am 21.11.07 - 11:48:05
Ja. "NotesAgent" Klasse in der Designer-Hilfe ansehen. "notesAgent.Run()" ist was Du suchst.
Titel: Re: Agent von externem Programm starten
Beitrag von: Leddl am 21.11.07 - 11:53:10
Ja. "NotesAgent" Klasse in der Designer-Hilfe ansehen. "notesAgent.Run()" ist was Du suchst.
Und wie komm ich an den Agenten aus dem Programm heraus ran? ???
Titel: Re: Agent von externem Programm starten
Beitrag von: m3 am 21.11.07 - 11:58:58
Na komm, zumindest auf "Examples" könntest bei dem Designerhilfe-Eintrag (http://www-12.lotus.com/ldd/doc/domino_notes/6.5.1/help65_designer.nsf/855dc7fcfd5fec9a85256b870069c0ab/3a8414d0b80a47e085256e00004a6945?OpenDocument&Highlight=0,notesAgent.Run) klicken. Da stehen alle relevanten Infos drinnen.
Titel: Re: Agent von externem Programm starten
Beitrag von: Leddl am 21.11.07 - 12:06:20
Na komm, zumindest auf "Examples" könntest bei dem Designerhilfe-Eintrag (http://www-12.lotus.com/ldd/doc/domino_notes/6.5.1/help65_designer.nsf/855dc7fcfd5fec9a85256b870069c0ab/3a8414d0b80a47e085256e00004a6945?OpenDocument&Highlight=0,notesAgent.Run) klicken. Da stehen alle relevanten Infos drinnen.
???
Danke für deine Hilfe, aber ich glaube du verstehst mich nicht richtig. Wir haben hier ein externes Programm, das rein gar nichts mit Notes zu tun hat und möchten daraus einen Agenten in Notes anstoßen.
Wie ich einen Agenten in LS starte war mir schon längst bewusst, auch die Beispiele habe ich mir schon x mal angeschaut. Nur bringt mir das nichts für das Problem hier. ;)

Irgendwie muss ich ja erstmal mit VBA auf die NotesDatenbank zugreifen, damit ich den Agenten starten kann :(
Titel: Re: Agent von externem Programm starten
Beitrag von: m3 am 21.11.07 - 12:13:32
COM? Also ich dachte schon, dass ihr schon so weit seid. OK. Dann braucht ihr vorher:

1) Designer-Hilfe, Kapitel Accessing the Domino Objects through COM (http://www.lotus.com/ldd/doc/domino_notes/6.5.1/help65_designer.nsf/855dc7fcfd5fec9a85256b870069c0ab/6e6328fcef0425cf85256e00004a5312?OpenDocument) 

2) Auf der Lotus Domino Designer documentation page (http://www.ibm.com/developerworks/lotus/documentation/dominodesigner/65x.html?S_TACT=105AGX13&S_CMP=LPLOTUS) die beiden PDFs "Domino Objects for LotusScript/COM/OLE, Part 1" und "Domino Objects for LotusScript/COM/OLE, Part 2"

Damit sollte dann alles klar sein. :)
Titel: Re: Agent von externem Programm starten
Beitrag von: Leddl am 21.11.07 - 13:27:41
Super, danke! Mit COM habe ich mich bisher noch nie auseinandergesetzt und dachte auch nicht, dass das so einfach ist.
Dann werde ich das mal versuchen!

Danke für Deine Hilfe!
Titel: Re: Agent von externem Programm starten
Beitrag von: Leddl am 22.11.07 - 10:58:03
Ich habe jetzt folgenden VBA-Code in Word:
Code
Dim s As Object
Dim db As Object
Dim agent As Object
	
Set s = CreateObject("Lotus.NotesSession")
Call s.Initialize
Set db = s.GetDatabase(Server, DB)
Set agent = db.getAgent("test")
	
if agent.Run() = 0 then
  MsgBox ("hat geklappt")
else
  MsgBox ("hat nicht geklappt")
end if

Leider hängt sich beim Ausführen Word auf, und zwar genau beim Ausführen des Agenten. Starte ich selbigen von Hand, klappt alles einwandfrei. Am Agenten selbst sollte es also IMHO nicht liegen...

Achso, bevor die Frage kommt:
SERVER und DB stehen hier nur stellvertretend für die entsprechenden Daten. Die Korrektheit habe ich schon überprüft, indem ich mir die Anzahl der Dokumente in der DB angezeigt habe. Da liegt der Fehler also auch nicht.
Per Debugger läuft alles auch gut durch, bis die Zeile mit agent.run kommt.
Titel: Re: Agent von externem Programm starten
Beitrag von: Leddl am 23.11.07 - 09:06:42
Hat keiner eine Idee, woran das liegen kann?
Titel: Re: Agent von externem Programm starten
Beitrag von: MadMetzger am 23.11.07 - 09:21:01
Was macht der Agent denn? Vielleicht liegt es an dem? Vielleicht hat er ein Problem mit der Verwendung von UI-Klassen innerhalb des Agenten...
Titel: Re: Agent von externem Programm starten
Beitrag von: Leddl am 23.11.07 - 09:51:55
Bisher macht der Agent nichts anderes, als ein neues Dokument in die Datenbank einzufügen. Sieht dann so aus:
Code
Dim db As Notesdatabase
Dim doc as NotesDocument

Set db = New NotesDatabase(SERVER, DB)

Set doc = db.CreateDocument
Call doc.ReplaceItemValue("Form","Kundendaten")
doc.Kundennummer = 10

Call doc.save(True,False)
Nichts dramatisches, und es läuft ja auch problemlos, wenn ich ihn per Hand oder Zeitplan in Notes selbst starte.
Titel: Re: Agent von externem Programm starten
Beitrag von: dirk_2909 am 23.11.07 - 10:07:08
Wie sieht es mit den rechten aus? Darf "Word" via com Docs erstellen ??
Titel: Re: Agent von externem Programm starten
Beitrag von: Leddl am 23.11.07 - 10:16:19
Da ich mich bisher mit meinem Passwort anmelden muss, gehe ich doch eigentlich davon aus, dass das unter meinem Benutzerkontext läuft, oder? Muss ich da etwa noch extra Einstellungen machen?
Titel: Re: Agent von externem Programm starten
Beitrag von: Thomas Schulte am 23.11.07 - 10:35:37
Lass doch den Agent einfach nur ein print "Juhu ich bin gelaufen" ausgeben. Das müsste dann auf der Server Konsole auftauchen.

Damit schließt du schon mal aus das es an nicht vorhandenen Rechten des Benutzers in der Datenbank liegt.

und dann gibt es im Agenten selber ja noch ein paar Möglichkeiten einzustellen wer was und wie mit dem Agenten machen darf.