Domino 9 und frühere Versionen > ND6: Entwicklung
Existierende DocLink auf ein anderes Dokument umlinken
sja:
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
TMC:
--- Zitat von: sja am 16.11.04 - 16:33:14 ---Leider hab nicht begriffen wie kann ich hier Bilder hinzufügen.
--- Ende Zitat ---
2 Möglichkeiten:
a) Auf die "erweiterten Optionen..." klicken unterhalb der Texteingabe-Box. Dort kannst Du pro Posting bis zu 2 Bilder anhängen. Diese werden dann unten angezeigt.
b) Wenn die Bilder auf einem Webspace sind, dann über [ img ] URL [ /img ] einbinden (Leerzeichen weglassen!).
sja:
Hallo Matthias,
vielen Dank für den Hinweis. Die Bilder sind jetzt da.
Ob ich das Problem richtig geschildert habe? (wegen meinen keinen perfekten deutsch).
Leute, bitte spricht mit mir!
Danke
Sofia
umi:
Naja, nach langer analyse könnte es sein, dass Du das Doc am Schluss nicht speicherst? Und dadurch der Doclink auch nicht gespeichert wird?
sja:
Hallo umi,
Du hast ja absolut Recht, in der Wirklichkeit habe ich alle Doc's gespeichert, ausser Doc mit dem Link selbst:
Call doc.Save( True, True )
Es war ganz dumme Versehen von mir. Jetzt funktioniert alles wunderbar!
Vielen vielen Dank!!!
Viele Gruessen
Sofia
P. S. Danke, wenn jemand verratet mir, wie soll das Symbol ausgewählt werden, wenn das Thema glücklich abgeschlossen ist.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln