Autor Thema: Dateianhänge lösen  (Gelesen 2998 mal)

Offline Hedwig14

  • Aktives Mitglied
  • ***
  • Beiträge: 221
Dateianhänge lösen
« am: 15.07.11 - 15:54:31 »
Hallo !
ich habe ein kleines Problem.
Ich möchte per Script bei ca 200 Documenten die Dateianhänge lösen.
Nun werden die Anhänge aber nicht im Richtext-Feld "Body" gespeichert sondern in "$File". Daher passt mein Script leider nicht ! Wie muss ich das Scipt jetzt umschreiben ???


While Not(doc Is Nothing)
'Set rtitem = doc.GetFirstItem( "Body" )
Set rtitem = doc.GetFirstItem( "$FILE" )

If ( rtitem.Type = RICHTEXT ) Then
 Forall o In rtitem.EmbeddedObjects
   If ( o.Type = EMBED_ATTACHMENT ) Then
   datei = o.name            
   fileCount = fileCount + 1
   Call o.ExtractFile    ( pfad + datei)
  'Call o.Remove
  'Call doc.Save( True, True )
End If
End Forall
End If
Call session.UpdateProcessedDoc( doc )
Set doc = collection.GetNextDocument(doc)
Wend

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Dateianhänge lösen
« Antwort #1 am: 15.07.11 - 16:08:21 »
Attachments sind immer in "$File"... die Frage ist: Wie kommen sie dahin... Meist sind sie in einerm Richtextfeld angehängt, dann ist Dein Code mit set rtitem = doc.GetFirstItem( "Body" ) korrekt...

Manchmal sind Attachments aber auch direct ans Dokument gehängt, dann musst Du googeln, weil man an solche Attachments leider nicht über NotesDocument.EmbeddedObjects rankommt (Auszug aus der Designer- Hilfe: "Unlike the EmbeddedObjects property in NotesRichTextItem, this property does not include file attachments, nor OLE/1 objects created in Notes Release 3")..

Manchmal sind Attachments auch als MIME- Element im Dokument drin, dann braucht man wieder anderen Code (gilt für Mails, die aus dem Internet gekommen sind).

Das "sauber" zu handeln erfordert jede Menge Know How... Vielleicht findest Du ja was fertiges, oder einer hier im Forum hat was, aber üblicherweise sind solch komplexe Anforderungen das Kapital, aus dem Dienstleister (ich auch) Ihren Profit ziehen, deshalb kann es durchaus sein, dass Du nichts "für Ummme" findest...

Viel Glück
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Mitch

  • Gast
Re: Dateianhänge lösen
« Antwort #2 am: 15.07.11 - 16:35:17 »
Wie Torsten gesagt hat: Erstmal gucken ob die nicht in einem anderen Feld hängen. Oder direkt am Dokument (doc.EmbeddedObjects).

Im Notfall könntest du auch mit doc.GetAttachment arbeiten, in der Art von:

Code
	Forall item In doc.Items
		If item.Name = "$FILE" Then
			Set obj = doc.GetAttachment(item.Values(0))
			Call obj.ExtractFile("C:\Temp\" & obj.Source)
			Call obj.Remove
		End If
	End Forall
	Call doc.Save(True, False)

Damit kommt man auch an Attachments dran, die weder in einem Item noch unter doc.EmbeddedObjects hängen (allerdings haben die dann meistens keinen schönen Dateinamen).

Gruß,

Mitch

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dateianhänge lösen
« Antwort #3 am: 15.07.11 - 16:40:13 »
... ob die nicht in einem anderen Feld hängen.

Mitch - Feld ist hier falsch und völlig uninteressant und etwas ganz anderes: Es geht um Items. Ein himmelweiter Unterschied ...

Bernhard

Mitch

  • Gast
Re: Dateianhänge lösen
« Antwort #4 am: 15.07.11 - 16:50:33 »
Hast Recht, ich weiß es ja eigentlich auch:

Damit kommt man auch an Attachments dran, die weder in einem Item noch unter doc.EmbeddedObjects hängen (allerdings haben die dann meistens keinen schönen Dateinamen).

Schlechte Angewohnheit... :)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Dateianhänge lösen
« Antwort #5 am: 15.07.11 - 16:59:27 »
Ich seh schon  :)

Sorry für das penetrante Darauf-Herumreiten, aber das ist gerade für Anfänger wie "Hedwig14" u.a. entscheidend, diesen Unterschied genau zu kennen. Man kann Dokumente mit x Masken (und n*x Feldern) bearbeiten, aber in den Items kann etwas anderes stehen, als die Felder erwarten lassen. Es kann weit mehr Items in einem Dokument geben, als in der einen Maske, mit der es gemeinhin erzeugt und bearbeitet wird. Ein Agent kann wieder etwas ganz anderes treiben ...

Das ist wie mit Back- und Frontend: Ohne diese Grundzusammenhänge (und -begriffe!) geht es nicht.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz