Domino 9 und frühere Versionen > Entwicklung

Hilfe für Anänge aktualisieren

(1/6) > >>

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