Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: sja am 16.11.04 - 16:33:14
-
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
-
Leider hab nicht begriffen wie kann ich hier Bilder hinzufügen.
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!).
-
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
-
Naja, nach langer analyse könnte es sein, dass Du das Doc am Schluss nicht speicherst? Und dadurch der Doclink auch nicht gespeichert wird?
-
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.
-
Aber klar doch, Du mußt den ersten Post editieren und dort das Symbol auf "Daumen hoch" ändern.
-
Sofia, manchmal sind es wirklich die ganz kleinen Dinge, die das grösste Kopfzerbrechen bereiten ... Wer nicht programmiert, baut auch keine Programmfehler ;)
Das "Erledigt"-Zeichen ist leider der neuen Forums-Software zum Opfer gefallen. Bis das wieder funktioniert, kannst Du Dich eines Tricks bedienen: Editiere Dein erstes Posting noch einmal und setze dort das Thread-Icon auf den "Daumen hoch".
HTH,
Bernhard
-
Danke Leute!
ich bin nie müde es wiederholen: "Ich liebe dieses Forum!".
Danke für Hinweis mit "Daumen hoch". Ich habe immer fleissig nach dem Bild-Symbol gesucht. :)
Viele Gruessen
Sofia