Domino 9 und frühere Versionen > Entwicklung
Verschieben in eine andere Datenbank
Selin:
Hallo Ihr Lieben,
ich habe eine Formel erstellt, die eine Mail in eine andere Datenbank vershcieben soll.
Die Pickliste öffnet die Ordnerstruktur der Zieldatenbank und soll die Mail in den gewählten Ordner verschieben
temp:=@PickList([Folders]; "Server":"db.nsf");
@Command([Folder]; temp; "1");
Allerdings kommt die Meldung "Ungültiger Ordnername".
Habe mal ein @Prompt vor dem @Command gesetzt und temp ausgegeben.
Da kam auch der von mir ausgewählte Ordnername.
Habt Ihr ein Tip?
Danke + Gruß
Selin
rar:
Hi Selin,
der @Command([Folder] verschiebt IMHO ein Dokument in der aktuellen Datenbank in einen bestimmten Folder. Du wählst zwar aus einem anderen DB den Namen eines Folders aus, aber in deiner aktuellen DB existiert der Ordner nicht. Deshalb kommt der Fehler. Der Command weiß ja nicht was deine ZielDatenbank ist.
Die einzige Möglichkeit ist Script. Dokument in die ZielDB kopieren, mit PutInFolder dem Ordner zuordnen und dann in der QuellDB löschen.
lG
-daniel
Selin:
Hi Daniel,
danke für die Antwort.
Habe jetzt mal die PutinFolder Option versucht.
Habe es erst einmal für einen bestmmten Ordner in der aktuellen Maildb getestet.
Hat funktioniert.
Allerdings weiß ich nicht, wie ich die Ordnerstruktur der anderen Datebank ansprechen soll.
Sowas wie die @picklist([Folder]) habe ich in Script nicht gefunden.
Gibt es da was?
Sub Click(Source As Button)
Dim ws As New notesUIWorkspace
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Set uidoc =ws.CurrentDocument
Set doc = uidoc.Document
Call doc.PutInFolder( "TEST" )
Call doc.RemoveFromFolder("($Inbox)")
End Sub
danke + Gruß
Selin
Glombi:
Du kannst via Script die Ansichten/Ordner aus einer anderen Datenbank lesen.
Bsp.
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Forall v In db.Views
Messagebox( v.Name )
End Forall
Mit
To get: flag = notesView.IsFolder
Return value
True indicates tha the NotesView object represents a folder
False indicates that the NotesView object represents a view
kannt Du dann abfragen, ob es ein Folder (Ordner) ist.
Andreas
koehlerbv:
Hallo, Selin,
die Aufnahme eines Dokuments in einen Folder beruht lediglich auf einer klitzekleinen Information (oder ggf. zwei Informationen): Der Folder "weiss", welche Dokumente dort dargestellt werden sollen, und ggf. wird diese Information auch im Dokument selbst abgelegt. Das Dokument an sich ist davon ansonsten vollkommen unberührt.
Du kannst also unter gar keinen Umständen ein Dokument von DB1 in DB2 einfach so "von Ordner zu Ordner" verschieben.
Wenn Du also von DB1 (woher auch immer - View oder Folder) ein Dokument in DB2 in einen bestimmten Folder "verschieben" (genauer gesagt: Dokument kopieren und einem bestimmten Folder in DB2 zuordnen) möchtest, musst Du wie folgt vorgehen:
- Dokument in DB1 auswählen
- Zielordner in DB2 auswählen (wie von Glombi bereits beschrieben - allerdings ist das Verfahren dafür in grösseren DBs heikel - die Standard-Notes-Methoden zur Ermittlung der vorhandenen Folder sind hier alles andere als performant. In R5 sollte man auf Damien Katz' DBDesign Class zurückgreifen, in R6 gibt es endlich die NotesNoteCollection class, die nochmals performanter ist)
- Dokument nach DB2 kopieren
- In DB2 jetzt das (ja nach dem Kopiervorgang nach wie vor bekannte) NotesDocument object in den ausgewählten Folder aufnehmen via PutInFolder.
Langer Rede kurzer Sinn: Einen @Command-Befehl oder eine Methode in irgendeiner Notes-Klasse, der das alles in einem Aufwasch erledigt, gibt es nicht.
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln