Domino 9 und frühere Versionen > ND6: Entwicklung
Wo befinde ich mich
pram:
ja hört sich sehr ähnlich nach meinem Problem an ;D (und auch die Hürden die du umschiffen musst, hatte ich)
ich hab nochmal im Code nachgesehen, wie ich das gemacht habe:
Im Smarticon steht bei mir:
@Command([Compose];"server!!pfad\zur\db.nsf";"smarticon.form")
(diese Maske ist NICHT in der MailDB)
in der "smarticon.form" steht dann:
Public currDB As NotesDatabase
Public currView As NotesUIView
Public currDoc As NotesUIDocument
Sub Initialize
On Error Resume Next
Dim currWS As New NotesUIWorkspace
Set currDB = currWS.CurrentDatabase.Database
Set currView = currWS.CurrentView
Set currDoc = currWS.CurrentDocument
On Error Goto 0
Call run(currDB, currView, currDoc)
End Sub
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
continue=False
End Sub
Ist ein Doc geöffnet so ist currDB und currDoc gesetzt. Bist du hingegen in einer Ansicht ist zusätzlich noch currView gesetzt. (Am Workspace ist nur currDB gesetz)
Wichtig ist dabei, dass man sich currentXXX bereits im Initialize holt.
MartinN:
Danke für den Tipp, werde mal sehen ob ich das so hinbekommen.
Dennoch bleiben Fragen?
--- Zitat von: pram am 26.05.09 - 15:29:31 ---
Im Smarticon steht bei mir:
@Command([Compose];"server!!pfad\zur\db.nsf";"smarticon.form")
(diese Maske ist NICHT in der MailDB)
--- Ende Zitat ---
Wo denn dann? In der DB wo der Agent liegt? Wieso benötige ich eine Maske?
pram:
Also, um einen Agent aus dem Smarticon heraus zu starten ist mir (nur) folgender Weg bekannt.
--- Code: ---@SetEnvironment( "currentDocumentRef"; @Implode(@DbName;"!!")+"#"+@Text(@DocumentUniqueID) );
@Command([FileOpenDatabase];"server":"roland\\sandbox.nsf");
@Command([FileCloseWindow]);
@Command([RunAgent];"MyAgent")
--- Ende Code ---
Das Problem ist hier
a) dass ich in die notes.ini rein schreiben muss
b) die Datenbank öffnen muss (ein Parameter für RunAgent a la "server!!database\MyAgent" gibt es meines Wissens nicht
-> im Agent kann ich über LS nicht mehr auf die gerade geöffnete DB zugreifen, es muss vorher alles in der Ini abgespeichert werden
Mache ich hingegen ein
--- Code: ---@Command([Compose];"server!!roland\\sandbox.nsf";"MyForm")
--- Ende Code ---
so kann ich
a) direkt den Verweis zur DB angeben (ich muss die DB nicht Öffnen/schließen wie oben)
b) im Initialize der Form über LS auf die gerade geöffnete DB (welches in deinem Fall die MailDB ist) zugreifen
Du benötigst eine Maske (in der DB in der der Agent liegt) da du diese direkt per Compose öffnen kannst. In das initialze der Maske packst du deinen Agentcode (die Maske ersetzt praktisch den Agent)
Ich geb zu, dass dies ggf. eine etwas "unorthodoxe" Methode ist, aber ich hab leider keine andere Möglichkeit gefunden, um dieses Problem zu lösen.
Gruß
Roland
MartinN:
Danke für die Antworten!
Werde ich mal testen.
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln