Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: sja am 05.01.05 - 18:33:26
-
Hallo
Vielen Dank im Voraus für Hilfe mit folgenden zwei Fragen:
1)
Folgendes Script sollte ein markiertes Dokument in eine DB kopieren. In Frontend (Dokument geöffnet) funktioniert das ohne Problem, aber ich brauche das in Backend und beim Ausführen bekomme ich „Object variable not set“.
Sub Click(Source As Button)
Dim s As New NotesSession
Dim ws As New NotesUIWorkspace
Dim CopyDB As NotesDatabase
Dim doc As NotesDocument
Dim docKopie As NotesDocument
Set doc = ws.CurrentDocument.Document
Set CopyDB = s.GetDatabase( "", "mail\mailcopy.nsf" )
Set docKopie = doc.CopyToDatabase( CopyDB )
End Sub
2)
Um ein Dokument in andere DB zu verschieben, soll ich das Dokument erst in andere DB kopieren und dann aus current DB löschen? Oder gibt es dafür eine Methode in LotusScript, bzw. in Formula Language, die ich übersehen habe?
Viele Gruesse
Sofia
-
Sofia, du hast Frontend-Klassen verwendet. Die funktionieren im Backend nicht.
Dim ws As New NotesUIWorkspace
oder
Set doc = ws.CurrentDocument.Document
Frontend/User-Interface (UI) kann nicht verwendet werden im Backend.
Bau dir im Backend eine DocumentCollection auf, die greift die gewählten Dokumente und kann diese im Backend weiterverarbeiten.
zu deiner zweiten Frage: Es gibt für NotesDocument ein Methode doc.CopyToDatabase, aber keine doc.MoveToDatabase.
ascom
-
Hallo ascom,
ich danke Dir für Deine Hilfe.
also, dann
für 1. -> probiere ich mit DocumentCollection
für 2. -> mache ich so, wie ich gedacht habe, kopieren in andere DB und lösche in der current DB
Noch Mal vielen Dank und Viele Gruesse
Sofia
-
Bau dir im Backend eine DocumentCollection auf, die greift die gewählten Dokumente und kann diese im Backend weiterverarbeiten.
Die DocumentCollection kannst du dir für markierte Dokumente mit der UnprocessedDocuments Eigenschaft aus der NotesDatabase Klasse erstellen.
Viel Erfolg
Gruß Sascha
-
Hallo Sascha,
vielen Dank für Deine genau rechtzeitige Hilfe!
Die Frage: wie bekomme ich DocumentCollection für markierte Dokumente, hat mich gerade beschäftigt. :) Sehr nett!
Schöne Gruesse
Sofia
-
Hi,
So geht's:
Dim session As New NotesSession
Dim db AS NotesDatabase
Dim collection As NotesDocumentCollection
Set db= session.CurrentDatabase
Set collection = db.UnprocessedDocuments
...
Axel
-
Hallo,
erst danke ich herzlich alle für die Hilfe.
Aber jetzt bekam ich neues Problem, und zwar:
Database mail\mailcopy has not been opendd jet
das Script sieht jetzt so aus:
Sub Initialize
Dim s As New NotesSession
Dim ws As New NotesUIWorkspace
Dim CopyDB As NotesDatabase
Dim doc As NotesDocument
Dim docKopie As NotesDocument
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Set CopyDB = s.GetDatabase( "", "mail\mailcopy.nsf" )
Set db = s.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
'Messagebox collection.Count
While Not(doc Is Nothing)
Set docKopie = doc.CopyToDatabase( CopyDB )
Set doc = collection.GetNextDocument(doc)
Wend
End Sub
Glaube habe ich über das Problem schon hier im Forum gelesen, aber jetzt kann das nicht finden. Vielen Dank für einen Rat bzw. Link ...
Gruesse
Sofia
-
Öffne mal die DB folgendermassen:
Set CopyDB = New NotesDatabase ("", "mail\mailcopy.nsf")
Alternativ (bei bestehenden Code) müsstest Du die Deklaration wie folgt ändern:
Dim CopyDB as New NotesDatabase ("", "")
HTH,
Bernhard
-
Hallo Leute,
erst sorry für das falsche Info. Es ist mir eine Fehler unterlaufen: habe für den Test eine DB erstellt, aber in falschem Verzeichnis, und klar die DB könnte nicht geöffnet werden.
Es funktioniert ! mit alle drei Varianten: mit dem ursprünglichen und mit die beide zwei, die ganz nett von Bernhard vorgeschlagen wurde.
Bernhard hat mir damit sehr geholfen, da wenn ich seine Vorschläge ausprobierte, und das ging nicht, denke ich sofort, dass mit der DB was nicht in Ordnung ist, weil Bernhard gibt immer nur richtige Vorschläge. Und ich habe damit wieder was neues gelernt :)
Ich danke herzlich alle für eure Hilfe und ... ich liebe dieses Forum!
Gruesse
Sofia
-
Auch wenn ich Deine netten Worte, Sofia, die bei runtergegangen sind wie Honig ;) jetzt gerne unkommentiert so stehen lassen würde: Nein, auch ich irre, und auch ich habe hier schon falsche Auskünfte gegeben.
Aber ich arbeite daran ;)
Bernhard
PS: So, wie Du Dich bedankst, freut man sich schon immer auf Deine nächste Frage :)