HCL Notes / Domino / Diverses > Entwicklung
NotesUIView, DIalogBox und die CaretNoteID
LordKiri:
Hallo Notes-Forum,
ich hab da mal ein Problem.
Ich möchte eine DialogBox anzeigen, in der Box ist eine embedded View und in der View ein Button.
Der User soll ein Dokument markieren und dann per Button die CaretNoteID zurückgeben.
Das Ganze funktioniert, wenn ich die ID in einer MSGbox ausgeben lasse, aber ich möchte die ID in meinem Agent weiter verwenden und das bekomme ich nicht hin.
Ich habe versucht das als EnvironmentVariable zu schreiben, das macht er aber nicht und wenn ich die ID in ein Feld in der DialogBox schreibe funktioniert das zwar, aber wie komme ich da dann in meinem Agenten dran, das Feld wird nicht an das Dokument weitergereicht?
Ich habe auch versucht per Button in der DialogBox das Ganze zu realisieren, aber dann bekommt er die NotesUIView nicht.
Danke im Voraus.
Grüße
Andreas
JoachimB:
Moin,
du kannst die NoteID einfach an den Agenten übergeben beim starten:
Call Agent.Run(uiview.CaretNoteID)
oder
Call Agent.RunOnServer(uiview.CaretNoteID)
Eine andere Methode könnte auch sein das Dokument in einen Ordner zu werfen und diesen Ordner im Agenten zu nutzen als Quelle.
Im Agenten dann abrufen mit:
If meagent.Parameterdocid = "" Then
' Keine NoteID übergeben
' Alternativ könnte er hier einen Ordner nehmen wo markierte Dokumente verarbeitet werden
' oder Fehlermeldung werfen usw
Exit Sub
Else
' mit der NoteID fortfahren
Dim NoteID As String
NoteID = meagent.Parameterdocid
EndIf
Hoffe es hilft.
Mfg
Joachim
LordKiri:
Naja, der Agent wird vorher gestartet und der erzeugt die DialogBox
JoachimB:
Also dann ginge es auch so:
Im Button die CaretNoteID bekommen -> Dokument holen und in einen Ordner packen.
CaretNoteID = uiview.CaretNoteID
Set wdoc = medb.GetDocumentByID(CaretNoteID)
Call wdoc.PutInFolder("MeinTempOrdner")
Ordner im Agenten aufrufen und Dokument rausholen
Dim MeinTempOrdner As NotesView
Set MeinTempOrdner = medb.GetView("MeinTempOrdner")
Danach nicht vergessen das/die Dokumente aus dem Ordner wieder zu entfernen.
Entweder einzeln doc.RemoveFromFolder("MeinTempOrdner")
Call MeinTempOrdner.AllEntries.RemoveAllFromFolder("MeinTempOrdner")
Alternativ damit bekommst du alle in der Ansicht ausgewählten Dokumente über deinen Button in der EmbeddedView:
Dim doccol As Notesdocumentcollection
Set doccol = medb.UnprocessedDocuments
If doccol.Count > 0 Then
Call doccol.PutAllInFolder("MeinTempOrdner")
End If
Werner Götz:
Ich verstehe nicht, warum bei Deinem ursprünglichen Ansatz das Schreiben in der notes.ini nicht funktionieren sollte, wenn Du quasi an der selben Stelle die ID in einer Messagebox ausgeben kannst. Ich denke, das sollte man hinbekommen - könnte da im Code ein anderer Fehler sein?
-Werner
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln