Domino 9 und frühere Versionen > ND6: Entwicklung

Attachment exportieren

<< < (3/4) > >>

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