Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Steffen_Jakubowski am 24.08.06 - 14:58:49
-
Hallo
Ich habe eine Frage an euch.
Folgendes Szenario:
Ich möchte mehrere markierte Dokumente bearbeiten, sagen wir ein Feld einfügen.
Hier die Schwierigkeit dabei:
Es gib eine sogenannte Portaldatenbank und es gibt die Usermaildatenbank. Der User öffnet seine Mail allerdings nur über eine Rahmengruppe in der Portaldatenbank, die volle Mailfunktionalität ist gegeben.
Die Rahmengruppe baut sich aus zwei Rahmen auf. Rahmen1 enthält die Maildatenbank, Rahmen2 enthält eine Aktionsleiste (über eine Maske gebaut) für zusätzliche Funktionen.
Ich möchte nun in die Aktionsleiste in Rahme2 eine Aktion einbauen, die ein zusätzliches Feld in ausgewählte Maildokumente schreibt.
Folgende Scriptformel habe ich bisher innerhalb der Maildatenbank dafür verwendet:
Sub Initialize
Dim s As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim doc As NotesDocument
Set db = s.CurrentDatabase
Set col = db.UnprocessedDocuments
Set doc = col.GetFirstDocument
While Not doc Is Nothing
Call doc.ReplaceItemValue("_privat",25)
Call doc.Save(True,False,False)
Set doc = col.GetNextDocument(doc)
Wend
End Sub
Hat jemand eine Idee wie ich das Script ändern müsste so das ich die Aktion über die Portaldatenbank ausführen kann???
Für eure währe ich euch sehr dankbar.
Viele Grüße Steffen
-
Hi Steffen
Benutze "Dim db As New NotesDatabase( server$, dbfile$ )". Dann musst du als Parameter deine MailDB angeben. Anschliessend kannst du die Zeile "Set db = s.CurrentDatabase" streichen. Sollte meiner Meinung nach klappen...
Falls es Probleme gibt, kannst du den Code in einen Agenten packen und den Agenten von der Portaldatenbank aus starten (mit LS).
Grüsse
Moritz
P.S. Im Betreff ist es immer sinnvoll, etwas mehr zu schreiben als nur die zwei wichtigsten Stichworte. So gibts dann auch mehr Reaktionen auf deine Fragen. Bewährt hat sich: Objekt + Problem. (Und die Ausrufezeichen erhöhen das Interesse auch nicht, höchstens im Gegenteil...)
-
Benutze "Dim db As New NotesDatabase( server$, dbfile$ )". Dann musst du als Parameter deine MailDB angeben. Anschliessend kannst du die Zeile "Set db = s.CurrentDatabase" streichen. Sollte meiner Meinung nach klappen...
Das liefert aber nicht die markierten Dokumente. Meines Erachtes hast du kaum eine Chance auf markierte Dokumente in einer Ansicht aus einem anderen Frame zuzugreifen.
Axel
-
Hallo
Danke Moritz für Deinen Tip, allerdings muß ich Axel recht geben, denn ich habe es auch schon über den weg probiert. Damit kommt man genauso nicht weiter.
Es müsste irgend eine Möglichkeit geben wie in der Formelsprache den "SetTargetFrame" Befehl zu nutzen.
Denn mit Formel kann ich jeweils "ein" Dokument verändern aber eben nicht ausgewählte Dokumente.....
@SetTargetFrame("xyz")
@SetField("[Field]";[Wert])
Das geht, allerdings nur immer ein Dokument. :-\
Vielleicht hat ja noch jemand ein Tip.
Wäre sehr dankbar.
Viele Grüße Steffen
-
nur mal so ins blaue geschossen: Probier doch mal ein
@SetTargetFrame( ... )
@UpdateFormulaContext
@Command([ToolsRunMacro] ; "AgentInDerMailDBMitDeinemScriptCode" )
Eventuell hilft das (ungetestet).
Tode