Domino 9 und frühere Versionen > Entwicklung
Hilfe für Anänge aktualisieren
nyen:
Hallo zusammen,
Bitte Hilfe, ich komme mit meinem Agent nicht weiter, der die PDF-Dateien in die Datenbank importiert und aktualsieren soll. Der Importvorgang funktioniert soweit gut, allerdings können die Berechtingungen auf die Dokumente nicht gesetzt werden, da die Dokumente jedes Mal gelöscht werden.
Mein Problem: Wie kann ich meinen Agenten beibringen, dass er die Anhänge nur aktualisiert (ohne Dokumente zu löschen).
Kann mir da jemand helfen?
Wäre Super.
Grüße
Nyen
Hier ist mein Code:
Dim s As New NotesSession
Dim db As notesdatabase
Dim doc As NotesDocument
Dim view As NotesView
Dim vc As NotesViewEntryCollection
Dim fileName As String
Dim rtitem As NotesRichTextItem
Dim collection As NotesDocumentCollection
Dim searchFormula As String
Set db=s.CurrentDataBase
Set view = db.GetView("Alle Dokumente")
Set vc = view.AllEntries
pathName$="D:\Test\"
If pathName$ = "" Then
Msgbox"Pfad oder Dateien nicht vorhanden"
End If
filename$ =Dir$(pathName$+"*.pdf",0)
Do While fileName$<>""
A = filename$ + "#" + typ$
searchFormula = |Dateiname = "| + A +|"|
Set collection = db.Search(searchFormula$, Nothing,0)
Call collection.RemoveAll(True)
' RemoveAttachments = True
fileName$=Dir$()
Loop 'Messagebox("ende erste Schleife")
filename$ =Dir$(pathName$+"*.pdf",0)
Do While fileName$<>""
Set doc =db.CreateDocument
Print fileName$
doc.Form="Main Topic"
Set rtitem =New NotesRichTextItem(doc, "Body")
Set notesembeddedobject = rtitem.EmbedObject(EMBED_ATTACHMENT,"",pathName$+fileName$)
Call doc.ComputeWithForm(False, False)
Call doc.Save(True, True)
fileName$=Dir$()
Loop
Call doc.ComputeWithForm(False, False)
Call doc.Save(True, True)
fileName$=Dir$()
koehlerbv:
Das Verfahren finde ich etwas "schräg". Warum löschst Du denn überhaupt die Dokumente, anstatt aus den gefundenen Dokumenten nur die Attachments, um sie dann erneut anzuhängen? Mit NotesEmbeddedObject.Remove ist das doch kein Problem.
Auch das Problem mit den "nicht zu setzenden Berechtigungen" erschliesst sich aus Deinem Posting nicht wirklich.
Sag' mal genaueres zu Deinem Problem.
Bernhard
nyen:
Hallo,
joo, das ist eben mein Problem, nämlich die gefundenen Dokumente nur die Attachments erneut anzuhängen. Ich habe es bisjetzt nicht hinbekommen.
Mit NotesEmbeddedObject.Remove kann ich die Anhänge wahrschienlich löschen, ich möchte aber die gefundene Dokumente dann erneut anhängen.
Wie geht es weiter?
Danke
Nyen
nyen:
Hallo,
Es klappt einfach nicht. Mit folgendem Code werden die Anhänge gelöscht, jedoch nicht die gefundene nicht erneut angehängt.
Wo liegt der Feher ?
Kann jemand mir bitte helfen, es ist drigend !!!!
Danke
Nyen
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim strFilename As String
Const strPath = "D:\Temp\"
Set db = session.CurrentDatabase
Set collection = db.AllDocuments
Set doc = collection.GetFirstDocument()
While Not(doc Is Nothing)
If doc.HasEmbedded Then
Call detachFiles( doc )
End If
Set doc = collection.GetNextDocument(doc)
Wend
End Sub
Sub detachFiles( doc As NotesDocument )
Dim rtitem As Variant
Set rtitem = doc.GetFirstItem( "Body" )
Forall o In rtitem.EmbeddedObjects
If o.Type = EMBED_ATTACHMENT Then
strFilename = strPath & o.Source
'Call o.ExtractFile(strFilename & o.Source )
Call o.Remove
Call doc.Save( True, True )
End If
End Forall
'Anhängen der Datei
Set rtitem = doc.GetFirstItem( "Body" )
Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", strFilename)
End Sub
Untitled:
So auf die Schnelle: Zuunterst im Sub "detachFiles" müsste nochmal ein "doc.Save" hin.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln