Domino 9 und frühere Versionen > ND6: Entwicklung
Attachment exportieren
TMC:
Sehr wichtig ist auch, welche Agenten-Einstellungen Du hast.
Hier kommt noch eine Msgbox, die Dir die Anzahl der erkannten Docs anzeigt:
Außerdem ein ErrorHandler.
--- Code: ---Sub Initialize
On Error Goto ErrorHandler
Dim s As New NotesSession
Dim w As New NotesUIWorkspace
Dim rtItem As NotesRichTextItem
Dim RTNames List As String
Dim DOCNames List As String
Dim itemCount As Integer
Dim sDefaultFolder As String
Dim x As Integer
Dim vtDir As Variant
Dim iCount As Integer
Dim j As Integer
Dim lngExportedCount As Long
Dim attachmentObject As Variant
Dim sDir As String
Dim doc As NotesDocument
Dim dc As NotesDocumentCollection
Dim db As NotesDatabase
Dim strTest As String
Set db = s.CurrentDatabase
Set dc = db.UnprocessedDocuments
'**********************************************
Msgbox "Es wurden >" & dc.Count & "< Dokumente ausgewählt.", 64, "Info"
'**********************************************
Set doc = dc.GetFirstDocument
x = Msgbox("This action will extract all attachments from the " & Cstr(dc.Count) & _
" document(s) you have selected, and place them into the folder of your choice." & _
Chr(10) & Chr(10) & "Would you like to continue?", 32 + 4, "Export Attachments")
If x <> 6 Then Exit Sub
sDefaultFolder = s.GetEnvironmentString("LPP_ExportAttachments_DefaultFolder")
If sDefaultFolder = "" Then sDefaultFolder = "F:"
vtDir = w.SaveFileDialog( False, "Export attachments to which folder?", "All files|*.*", sDefaultFolder, "Choose Folder and Click Save")
If Isempty(vtDir) Then Exit Sub
sDir = Strleftback(vtDir(0), "\")
Call s.SetEnvironmentVar("LPP_ExportAttachments_DefaultFolder", sDir)
While Not (doc Is Nothing)
iCount = 0
itemCount = 0
lngExportedCount = 0
Erase RTNames
Erase DocNames
'Scan all items in document
Forall i In doc.Items
' Messagebox i.Name
If i.Type = RICHTEXT Then
Set rtItem = doc.GetfirstItem(i.Name)
If Not Isempty(rtItem.EmbeddedObjects) Then
RTNames(itemCount) = Cstr(i.Name)
itemCount = itemCount +1
End If
End If
End Forall
For j = 0 To itemCount-1
Set rtItem = Nothing
Set rtItem = doc.GetfirstItem(RTNames(j))
Forall Obj In rtItem.EmbeddedObjects
If ( Obj.Type = EMBED_ATTACHMENT ) Then
'**************************************************************
strTest = strTest & Chr(10) & Obj.Name
'**************************************************************
' Call ExportAttachment(Obj)
' Call Obj.Remove
' Call doc.Save( False, True ) 'creates conflict doc if conflict exists
End If
End Forall
Next
Set doc = dc.GetNextDocument(doc)
Wend
'**************************************************************
Msgbox strTest, 64, "Folgende Attachments wurden erkannt:"
'**************************************************************
' Msgbox "Export Complete.", 16, "Finished"
GoOut:
Exit Sub
ErrorHandler:
Msgbox "Fehler #" & Err & " — " & Error$ & " (Zeile: " & Erl & ")", 48, "Laufzeitfehler"
Resume GoOut
End Sub
--- Ende Code ---
cheech:
Es hat funktioniert.... ;D
In der Messagebix word das Attachment angezeigt.
Also sind die Attachments falsch im Dokument hinzugefügt worden ?
oder gibt es eine andere Möglichkeit diese auszulesen ?
Cheech
TMC:
Na ja, "falsch" ist relativ, eigentlich gibt es "falsch" nicht ;D
Wie wurden die denn hinzugefügt?
Gibt's da ein Icon, welches man doppelklicken kann, und dann eine Box erscheint, in der man diese auf die Festplatte speichern kann? Screenshot wäre vielleicht ganz gut.
Kann auch sein, dass die Dokumente "zerstört" sind. Aber da brauchen wir weitere Infos (Screenshot etc)
cheech:
Leider weiß ich nicht wie die Attachments hinzugefügt worden sind, ich habe die Aufgabe bekommen diese aus der DB in einen Ordner zu exportieren.
Anbei ein Screenshot
TMC:
alles klar, embedded Object >:(
Die User haben das als Objekt eingebunden, sehr unpraktisch :(
Spontan würde ich sagen: schwierig, AFAIK mit den aktuellen Klassen nicht möglich, die Teile auf die Festplatte zu bekommen, da die ExtractFile-Methode nur bei echten Attachments greift.
Schau mir das jetzt mal kurz mit DXL an, Moment......
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln