Autor Thema: $File ohne Attachment?  (Gelesen 649 mal)

Offline hoschie

  • Junior Mitglied
  • **
  • Beiträge: 57
$File ohne Attachment?
« am: 02.06.25 - 10:11:19 »
Guten Morgen zusammen,

ich exportiere Dokumente und möchte Anhänge passend zum Dokument mit speichern.
Um zu erkennen, welche Anhänge im Dokument sind, verwende ich
Code
objectsNames = Evaluate("@AttachmentNames", oDoc)

Allerdings habe ich nun folgendes Phänomen bei einigen Dokumenten, hier ein Beispiel:
Dokument hat keine Anhänge, ABER:
evaluate bringt mir 2 Attachment Namen:
STG12502 und  EXT11761
Während 2 $File items vorhanden sind, siehe Bilder im Anhang.

Macht das Sinn?
Sind das Fragmente?
Wie kann ich das abfangen, rein durch Errorhandling oder gibt es noch andere Möglichkeiten?

Danke vorab für eure Expertise!



Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.742
  • Geschlecht: Männlich
Antw:$File ohne Attachment?
« Antwort #1 am: 03.06.25 - 06:34:27 »
Deine "Attachments" sind keine Attachments. Du solltest immer mit NotesEmbeddedObject Type https://help.hcl-software.com/dom_designer/12.0.2/basic/H_TYPE_PROPERTY_OBJECT.html prüfen, ob es sich wirklich um ein Attachment handelt.

Code
If ( rtitem.Type = RICHTEXT ) Then
  Forall o In rtitem.EmbeddedObjects
    Select Case o.Type
    Case EMBED_ATTACHMENT:
      ' yeah!
    Case EMBED_OBJECTLINK:
     ' go grazy
    Case EMBED_OBJECT:
      ' freak out
    End Select
  End Forall
End If
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline hoschie

  • Junior Mitglied
  • **
  • Beiträge: 57
Antw:$File ohne Attachment?
« Antwort #2 am: 04.06.25 - 15:44:35 »
Danke eknori für das Beispiel!

ich hab es jetzt möglichst fehlertolerant so eingebaut:
Code
			Set oItem = oDoc.Getfirstitem("Body")
			If Not (oItem Is Nothing) Then
				If (oItem.Type = RICHTEXT) Then
					Set oRTItem = oItem
					If Not (oRTItem Is Nothing) Then
						If (oRTItem.Type = RICHTEXT) Then
							oObjects = oRTItem.EmbeddedObjects
							If IsArray(oObjects) Then
								ForAll oObject In oObjects
									Select Case oObject.Type
									Case EMBED_ATTACHMENT:
										REM hier kommt mein Code
									Case Else:
										REM können wir ignorieren
								End Select
								End ForAll						
							End If
						End If
					End If
				End If
			End If


Danke nochmal!
Matthias

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz