Hallo zusammen,
schon wieder habe ich ein Problem und vielen Dank für jede Hilfe im Voraus.
Ich habe folgendes Problem:
In den Dokumenten (Datenbank „db“) gibt es ein Feld "DateiHyperlink", wo können einige DocLinks zu den Dokumenten in der Datenbank „dbMailCopy“ gespeichert werden.
Die Aufgabe:
- das Dokument in der Datenbank „dbMailCopy“ für das entsprechendes DocLinks identifizieren
- in der Datenbank „AdbMC“ das identifizierte Dokument kopieren
- das entsprechende DocLink („db“) zu der erstellte Kopie in der „AdbMC“ aktualisieren.
Ich habe versucht das mit dem folgenden Script zu machen. Folgendes passiert: die Dokumente werden richtig ermitteln, in der Datenbank „AdbMC“ kopiert.
Für die Aktualisierung des DocLink habe ich verwendet:
rtlink.DbReplicaID = IDAdbMC
rtlink.ViewUNID = IDAvMC
rtlink.DocUnID = IDAdocMC
Call docMC.Save( True, True )
Und Messagebox zeigt das auch (s. Bild 2.), aber die Verknüpfung wird nicht aktualisiert und zeigt nicht auf das Kopie-Dokument in der Datenbank „AdbMC“, sondern auf das Original-Dokument in der Datenbank „dbMailCopy“ (s. Bild 3.)
Dim session As NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim rti As NotesRichTextItem
Dim rtnav As NotesRichTextNavigator
Dim rtlink As NotesRichTextDocLink
'MailCopyDB
Dim dbMailCopy As NotesDatabase
Dim vMailCopy As NotesView
Dim IDdbMailCopy As String
Dim IDvMailCopy As String
Dim IDrtlink As String
Dim docMC As NotesDocument
'Archiv MailCopyDb
Dim AdbMC As NotesDatabase
Dim AvMC As NotesView
Dim tmpAvMC As NotesView
Dim IDAdbMC As String
Dim IDAvMC As String
Dim AdocMC As NotesDocument
Dim IDAdocMC As String
Sub Initialize
Set session = New NotesSession
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument
Set rti = doc.GetFirstItem("DateiHyperlink")
Set rtnav = rti.CreateNavigator
Set dbMailCopy = session.GetDatabase( "", "mail\mailcopy.nsf" )
IDdbMailCopy = dbMailCopy.ReplicaID
Set vMailCopy = dbMailCopy.GetView( "($All)" )
IDvMailCopy = vMailCopy.UniversalID
Set AdbMC = session.GetDatabase( "", "mail\archivMC.nsf" )
IDAdbMC = AdbMC.ReplicaID
Set AvMC = AdbMC.GetView( "($All)" )
IDAvMC = AvMC.UniversalID
Set tmpAvMC = AdbMC.GetView( "tmpArchiv" )
If Not rtnav.FindFirstElement(RTELEM_TYPE_DOCLINK) Then
Exit Sub
End If
Do
Set rtlink = rtnav.GetElement
IDrtlink = rtlink.DocUnID
Messagebox "DB: " & rtlink.DbReplicaID & " = " & IDdbMailCopy & _
Chr(13) & "View: " & rtlink.ViewUNID & " = " & IDvMailCopy & _
Chr(13) & "Doc: " & rtlink.DocUnID & " = " & Idrtlink
Bild 1.
Set docMC = dbMailCopy.GetDocumentByUNID( IDrtlink )
docMC.Categories = "archiv"
Call docMC.Save( True, True )
Call docMC.CopyToDatabase( AdbMC )
Call tmpAvMC.Refresh
Set AdocMC = tmpAvMC.GetFirstDocument
IDAdocMC = AdocMC.UniversalID
rtlink.DbReplicaID = IDAdbMC
rtlink.ViewUNID = IDAvMC
rtlink.DocUnID = IDAdocMC
Call docMC.Save( True, True )
Messagebox "DB: " & rtlink.DbReplicaID & " = " & IDAdbMC & _
Chr(13) & "View: " & rtlink.ViewUNID & " = " & IDAvMC & _
Chr(13) & "Doc: " & rtlink.DocUnID & " = " & IDAdocMC
Bild 2.
AdocMC.Categories = ""
Call tmpAvMC.Refresh
Call AdocMC.Save( True, True )
Loop While rtnav.FindNextElement(RTELEM_TYPE_DOCLINK)
End Sub
Leider hab nicht begriffen wie kann ich hier Bilder hinzufügen.
Hoffentlich habe ich das Problem richtig geschildert.
Vielen Dank für jeden Typ
Gruessen
Sofia