Autor Thema: Dokumente in andere Datenbanken verschieben...  (Gelesen 1479 mal)

Offline gere

  • Aktives Mitglied
  • ***
  • Beiträge: 216
  • Geschlecht: Männlich
Dokumente in andere Datenbanken verschieben...
« am: 29.10.05 - 23:09:08 »
Hallo zusammen,

Ich möchte gerne mit einem Agenten Dokumente aus einer Datenbank in mehrere andere Datenbanken verschieben. Das Dumme ist nur, dass die Dokumente in Abhängigkeit des ersten Buchstabens des Erstellers in eine andere Datenbank verschoben werden sollen. Ich habe dafür 6 weitere identische Datenbanken erstellt (A-D, E-H, I-L, M-P, Q-T, U-Z), wenn z.B in der Quelldatenbank ein Dokument von Carsten Müller/OU1/OU2/O erstellt wurde, dann soll das Dokument auf Knopfdruck in die Datenbank "M-P" (Müller = M) verschoben werden.

Ist sowas möglich, wenn ja wie? Hat jemand für sowas zufällig ein Script?

Vielen Dank für Eure Hilfe,
Gruß Gere

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Dokumente in andere Datenbanken verschieben...
« Antwort #1 am: 29.10.05 - 23:26:31 »
Hat jemand für sowas zufällig ein Script?
Das musst Du Dir schon selber schreiben  ;)

Den Ersteller eines Dokuments bekommst Du AFAIK nicht über @Formula oder LotusScript.
D.h. es sollte in den Dokumenten ein Feld vorhanden sein, das den Ersteller enthält.
Per @Formula / LS bekommst Du nur das Erstellungs-Datum.

Den Nachnamen aus einem NotesName bekommst Du über NotesName.Surname

Deine Bedingungen würde ich über Select Case durchgehen, also:

Select Left$(strNachname,1)
  Case "A" to "D":
    docLoop.CopyToDatabase(db_A_to_D)
  Case "E" to "H":
    docLoop.CopyToDatabase(db_E_to_H)
  (usw)   
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline gere

  • Aktives Mitglied
  • ***
  • Beiträge: 216
  • Geschlecht: Männlich
Re: Dokumente in andere Datenbanken verschieben...
« Antwort #2 am: 29.10.05 - 23:35:29 »
Zitat
Das mußt Du Dir schon selber schreiben

Einfacher gesagt als getan..!  ::)
Bis jetzt bin ich soweit, dass ich die Dokumente in EINE andere Datenbank kopiere, wenns dann aber um die Abhängigkeit nach Anfangsbuchstabe des Nachnamens geht wirds für mich schwierig.

Jeder Dokument enthält übrigens ein Feld mit dem Namen des Erstellers (DocInfoCreatedBy). Das wär also kein Problem.

Gruß Gere

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Dokumente in andere Datenbanken verschieben...
« Antwort #3 am: 29.10.05 - 23:44:40 »
OK, das ist gut, dass Du das Feld schon hast.
Oben hab ich eigentlich schon fast alles beschrieben.

Setze Dir eine NotesDocumentCollection über NotesDatabase.AllDocuments.
Dann arbeitest Du in einer Schleife alle Dokumente ab nach dem Schema wie oben beschrieben.

Schreib doch mal den LS-Code hierzu und stell ihn hier rein. Wir helfen dann und sagen Dir, was verbessert werden kann bzw. wo es noch hakt.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline gere

  • Aktives Mitglied
  • ***
  • Beiträge: 216
  • Geschlecht: Männlich
Re: Dokumente in andere Datenbanken verschieben...
« Antwort #4 am: 31.10.05 - 13:31:24 »
Hallo zusammen,

Also im Moment sieht das Script noch so aus, dass ich testweise Dokumente in eine statisch hinterlegte Datenbank verschiebe (FileContainerAD.nsf). Das funktioniert auch, wenn ich ein Status-Feld habe, das "archiviert" enthält. Das mit dem Namen auslesen bekomme ich aber nicht auf die Reihe, zumal die Dokumente in Abhängigkeit vom ersten Buchstaben des Ersteller-Nachnamens automatisch in verschiedene DB's verschoben werden sollen, und zwar in FileContainerEH, FileContainerIL, FileContainerMP, FileContainerQT, FileContainerUZ

Hier ist der im Moment funktionierende Code, bin leider nicht so erfahren mit LotusScript. Wer kann mir da weiterhelfen?

Sub Initialize
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim archive As New NotesDatabase("Server" , "test\FileContainerAD.nsf")
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim wert As Variant
   Dim nextdoc As notesdocument
   
   Print "Archivierung gestartet"
   Set db = session.CurrentDatabase
   Set dc = db.AllDocuments
   Set doc = dc.GetFirstDocument
   
   Do Until doc Is Nothing
      Set nextdoc = dc.getnextdocument(doc)
      wert = doc.GetItemValue("Status")
      If wert(0) = "Archiviert" Then
         Call doc.CopyToDatabase(archive)               
         Call Doc.Remove( True )     
      End If
      Set doc = nextdoc
   Loop
   
End Sub


Danke Euch, Gere

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: Dokumente in andere Datenbanken verschieben...
« Antwort #5 am: 31.10.05 - 15:34:20 »
Also den Benutzernamen bekommst Du über die Notessession.
Davon nimmst Du den CommonName, davon den rechten Teil bis zum _ (=Nachname) und davon wieder nur den ersten Buchstaben von links.

Dann machst Du einen Select:
Select case AB '(=Anfangsbuchstabe)
case"A", "B":
 set archDB=....
case "C","D",....
....
end select.
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz