Autor Thema: Ein Dokument (Backend) in andere DB kopieren/verschieben  (Gelesen 2091 mal)

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
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
« Letzte Änderung: 06.01.05 - 13:09:41 von sja »

ascom40

  • Gast
Re: Ein Dokument (Backend) in andere DB kopieren/verschieben
« Antwort #1 am: 05.01.05 - 18:48:29 »
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

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Ein Dokument (Backend) in andere DB kopieren/verschieben
« Antwort #2 am: 05.01.05 - 19:01:41 »
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

Offline mibo11

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
Re: Ein Dokument (Backend) in andere DB kopieren/verschieben
« Antwort #3 am: 05.01.05 - 23:09:17 »
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

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Ein Dokument (Backend) in andere DB kopieren/verschieben
« Antwort #4 am: 06.01.05 - 09:43:38 »
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

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Ein Dokument (Backend) in andere DB kopieren/verschieben
« Antwort #5 am: 06.01.05 - 11:07:23 »
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
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Ein Dokument (Backend) in andere DB kopieren/verschieben
« Antwort #6 am: 06.01.05 - 12:00:12 »
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


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Ein Dokument (Backend) in andere DB kopieren/verschieben
« Antwort #7 am: 06.01.05 - 12:17:52 »
Ö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

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Ein Dokument (Backend) in andere DB kopieren/verschieben
« Antwort #8 am: 06.01.05 - 13:09:07 »
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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Ein Dokument (Backend) in andere DB kopieren/verschieben
« Antwort #9 am: 06.01.05 - 13:53:38 »
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  :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz