Autor Thema: Bilder aus Notes DB exportieren  (Gelesen 17550 mal)

Offline Gerhard

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 711
  • Geschlecht: Männlich
  • Wenn man es weiss ist es nicht mehr schwer ....
Bilder aus Notes DB exportieren
« am: 20.06.12 - 13:12:21 »
Hallo zusammen!

Habe eine Notes-DB mit 1317 Dokumenten in denen jeweils ein Bild angehängt ist. Ich muss nun diese Bilder wieder lösen und soll die in einem Ordner am Filesystem zur Verfügung stellen.
Das Ganze wäre naürlich gut über einen Agenten und für alle Dokumente auf einmal.
Habe Notes6.5,
danke für einen eventuelle Hilfe,
Gerhard.

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Bilder aus Notes DB exportieren
« Antwort #1 am: 20.06.12 - 13:18:05 »
ja? Welche Frage hast Du Konkret?
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline Gerhard

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 711
  • Geschlecht: Männlich
  • Wenn man es weiss ist es nicht mehr schwer ....
Re: Bilder aus Notes DB exportieren
« Antwort #2 am: 20.06.12 - 13:19:53 »
Wie muss ein Script ausschauen oder mit welchem Freeware Tool kann ich diese 1317 Bilder auf das Filesystem automatisch abspeichern?

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Bilder aus Notes DB exportieren
« Antwort #3 am: 20.06.12 - 13:30:53 »
Hi.

Schau Dir mal die ExtractFile Methode in der Designerhilfe an.
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.696
  • Geschlecht: Männlich
Re: Bilder aus Notes DB exportieren
« Antwort #4 am: 20.06.12 - 13:32:26 »
Hallo,

Das Script gibt es doch schon - wenn auch nur in den Grundzuegen - fertig in der Designer-Hilfe.

siehe NotesEmbeddedObject und hier ExtractFile.


Andreas

Offline Gerhard

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 711
  • Geschlecht: Männlich
  • Wenn man es weiss ist es nicht mehr schwer ....
Re: Bilder aus Notes DB exportieren
« Antwort #5 am: 20.06.12 - 13:38:42 »
Hi,
habe nun lt. Designer Hilfe dieses Script verwendet, bekomme aber immer in der Zeile
Set rtitem = doc.GetFirstItem("Body") die Fehlermeldung Object Variable not set.
Was kann ich tun ? Bin leider nicht so fit in Lotus Script.

Dim doc As NotesDocument
Dim rtitem As Variant
Dim fileCount As Integer
Const MAX = 100
fileCount = 0   
'...set value of doc...
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
  Forall o In rtitem.EmbeddedObjects
    If ( o.Type = EMBED_ATTACHMENT ) _
    And ( o.FileSize > MAX ) Then
      fileCount = fileCount + 1
      Call o.ExtractFile _
      ( "c:\reports\newfile" & Cstr(fileCount) )
      Call doc.Save( True, True )
    End If
  End Forall
End If

klaussal

  • Gast
Re: Bilder aus Notes DB exportieren
« Antwort #6 am: 20.06.12 - 13:44:41 »
Heißt das Feld mit dem Bild denn auch "Body" ?

Offline Gerhard

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 711
  • Geschlecht: Männlich
  • Wenn man es weiss ist es nicht mehr schwer ....
Re: Bilder aus Notes DB exportieren
« Antwort #7 am: 20.06.12 - 13:46:00 »
Nein, natürlich nicht, sorry, das werd ich gleich mal ändern *die Hitze ist schuld*.

Offline Gerhard

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 711
  • Geschlecht: Männlich
  • Wenn man es weiss ist es nicht mehr schwer ....
Re: Bilder aus Notes DB exportieren
« Antwort #8 am: 20.06.12 - 13:55:32 »
Im Feld $FILE steht u.a.:

Objekttyp: Datei
Objekt-ID: 0000220A
Objektlänge: 239617
Dateiname: 0032.jpg
Flags: SIGNED
Host: MSDOS/OS2

Das wäre das Bild das ich herauslösen bzw. auch woanders als jpg eben abspeichern will.
Was muss ich im Code ändern damit es funktioniert ? Statt Body dann $FILE einfügen bringt diesselbe Fehlermeldung.

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Bilder aus Notes DB exportieren
« Antwort #9 am: 20.06.12 - 14:07:32 »
Hi.

Wie heisst den das Feld, wo das Bild drin steckt?

Ist das Bild als Bild oder als Datei in dem Feld?
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline Gerhard

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 711
  • Geschlecht: Männlich
  • Wenn man es weiss ist es nicht mehr schwer ....
Re: Bilder aus Notes DB exportieren
« Antwort #10 am: 20.06.12 - 14:19:06 »
Das Feld heisst Bild_A4, hier ist tatsächlich das Bild als jpg reingehängt, bei den Feldeigenschaften steht aber
Feldname: Bild_A4
Datentyp: Rich Text
Datenlänge: 2632 Byte
Seq.-Num.: 3
Doppeleintrags-ID: 0
Feld-Flags:

Und mich wundert warum hier nicht steht wie gross das Attachment ist, dies steht nur im Feld $FILE.

klaussal

  • Gast
Re: Bilder aus Notes DB exportieren
« Antwort #11 am: 20.06.12 - 14:21:48 »
Also nimmst Du das Feld "Bild_A4" für das Script.

Und die Abfrage mit der FileSize ist wohl überflüssig.

Offline Gerhard

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 711
  • Geschlecht: Männlich
  • Wenn man es weiss ist es nicht mehr schwer ....
Re: Bilder aus Notes DB exportieren
« Antwort #12 am: 20.06.12 - 14:30:03 »
Die Filesize hab ich schon rausgetan, beim Feld hab ich Bild_A4 reingeschrieben, das Script sieht nun so aus und funktioniert noch immer nicht....

Sub Initialize
   Dim doc As NotesDocument
   Dim rtitem As Variant
   Dim fileCount As Integer
   fileCount = 0   
'...set value of doc...
   Set rtitem = doc.GetFirstItem( "Bild_A4" )
   If ( rtitem.Type = RICHTEXT ) Then
      Forall o In rtitem.EmbeddedObjects
         If ( o.Type = EMBED_ATTACHMENT ) Then
            fileCount = fileCount + 1
            Call o.ExtractFile _
            ( "c:\reports\newfile" & Cstr(fileCount) )
            Call doc.Save( True, True )
         End If
      End Forall
   End If   
End Sub

Driri

  • Gast
Re: Bilder aus Notes DB exportieren
« Antwort #13 am: 20.06.12 - 14:36:11 »
Wenn das das komplette Script ist, kann das so auch nicht funktionieren, denn doc ist gar nicht definiert. Da fehlt noch eine Schleife, um durch alle Dokumente zu laufen.

Das würde dann so aussehen, wobei da noch einiges an Errorhandling verbessert werden könnte :

Code
Sub Initialize
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim rtitem As Variant
   Dim fileCount As Integer
   fileCount = 0   

   Set db = session.CurrentDatabase
   Set dc = db.AllDocuments
   
   If dc.Count > 0 Then
   	Set doc = dc.GetFirstDocument
   	While Not (doc Is Nothing)
	   	Set rtitem = doc.GetFirstItem( "Bild_A4" )
	   	If ( rtitem.Type = RICHTEXT ) Then
		   	ForAll o In rtitem.EmbeddedObjects
			   	If ( o.Type = EMBED_ATTACHMENT ) Then
				   	fileCount = fileCount + 1
				   	Call o.ExtractFile _
				   	( "c:\reports\newfile" & CStr(fileCount) )
				   	Call doc.Save( True, True )
			   	End If
		   	End ForAll
	   	End If   
	   	Set doc = dc.GetNextDocument(doc)
   	Wend
  End If
End Sub


Edit : Achso, das Call doc.Save würde ich persönlich auch weglassen. Du brauchst die Dokumente nach zu speichern, nur weil das Attachment auf die Platte gelöst wird.

klaussal

  • Gast
Re: Bilder aus Notes DB exportieren
« Antwort #14 am: 20.06.12 - 14:37:40 »
Zitat
das Script sieht nun so aus und funktioniert noch immer nicht....

Diese Aussage ist ja nicht gerade hilfreich....

Offline Gerhard

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 711
  • Geschlecht: Männlich
  • Wenn man es weiss ist es nicht mehr schwer ....
Re: Bilder aus Notes DB exportieren
« Antwort #15 am: 20.06.12 - 14:41:25 »
Danke Ingo.

Funktioniert nun super, er schreibt nun newfile und den Counter.

Wie krieg ich das noch hin das der Dateiname dann der Name des Attachments ist ?

klaussal

  • Gast
Re: Bilder aus Notes DB exportieren
« Antwort #16 am: 20.06.12 - 14:46:30 »
o.Name

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Bilder aus Notes DB exportieren
« Antwort #17 am: 20.06.12 - 14:47:06 »
Ändere die Zeile

Call o.ExtractFile( "c:\reports\newfile" & CStr(fileCount) )

in

Call o.ExtractFile ( "c:\reports\" & o.name)

ab.

Axel


Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Gerhard

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 711
  • Geschlecht: Männlich
  • Wenn man es weiss ist es nicht mehr schwer ....
Re: Bilder aus Notes DB exportieren
« Antwort #18 am: 20.06.12 - 15:00:16 »
Super, danke bestens, funktioniert.

Und nun hoffentlich ein Letztes: Welche Abfrage brauche ich damit ich keinen Fehler bekomme wenn das Feld Bild_A4 kein Attachment beinhaltet bzw. nicht vorhanden ist ?

klaussal

  • Gast
Re: Bilder aus Notes DB exportieren
« Antwort #19 am: 20.06.12 - 15:09:22 »
If doc.HasItem("Bild...) then
  Set....
.
.
.
.
     end if
  end if
set doc = dc.....

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz