AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
20.06.13 - 13:38:27
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 6
| |-+  ND6: Entwicklung (Moderatoren: _Arne_, Axel, eknori, ata, koehlerbv)
| | |-+  Bilder aus Notes DB exportieren
« vorheriges nächstes »
Seiten: [1] 2 Nach unten Drucken
Autor Thema: Bilder aus Notes DB exportieren  (Gelesen 1896 mal)
Gerhard
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 711


Wenn man es weiss ist es nicht mehr schwer ....


« 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.
Gespeichert
m3
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 7629


Non ex transverso sed deorsum!


WWW
« Antworten #1 am: 20.06.12 - 13:18:05 »

ja? Welche Frage hast Du Konkret?
Gespeichert

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
Gerhard
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 711


Wenn man es weiss ist es nicht mehr schwer ....


« Antworten #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?
Gespeichert
DerAndre
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1615


Ich guck nicht böse!


« Antworten #3 am: 20.06.12 - 13:30:53 »

Hi.

Schau Dir mal die ExtractFile Methode in der Designerhilfe an.
Gespeichert

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 )
ascabg
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 2915


« Antworten #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
Gespeichert
Gerhard
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 711


Wenn man es weiss ist es nicht mehr schwer ....


« Antworten #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
Gespeichert
klauss
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 5245


.. ich liebe meinen Job...


WWW
« Antworten #6 am: 20.06.12 - 13:44:41 »

Heißt das Feld mit dem Bild denn auch "Body" ?
Gespeichert

klaus

Operative Hektik ist ein Zeichen von geistiger Windstille.
Die Klugen leben von den Dummen, die Dummen von der Arbeit.
Nur Kinder und einfache Leute mögen lebhafte Farben. (Goethe)
Männer sind primitiv, aber glücklich.
Frauen widerspricht man nicht - man wartet, bis sie es selbst tun.
Demokratie ist, wenn drei Wölfe und ein Schaf entscheiden, was
gefressen werden soll.
Gerhard
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 711


Wenn man es weiss ist es nicht mehr schwer ....


« Antworten #7 am: 20.06.12 - 13:46:00 »

Nein, natürlich nicht, sorry, das werd ich gleich mal ändern *die Hitze ist schuld*.
Gespeichert
Gerhard
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 711


Wenn man es weiss ist es nicht mehr schwer ....


« Antworten #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.
Gespeichert
DerAndre
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1615


Ich guck nicht böse!


« Antworten #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?
Gespeichert

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 )
Gerhard
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 711


Wenn man es weiss ist es nicht mehr schwer ....


« Antworten #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.
Gespeichert
klauss
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 5245


.. ich liebe meinen Job...


WWW
« Antworten #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.
Gespeichert

klaus

Operative Hektik ist ein Zeichen von geistiger Windstille.
Die Klugen leben von den Dummen, die Dummen von der Arbeit.
Nur Kinder und einfache Leute mögen lebhafte Farben. (Goethe)
Männer sind primitiv, aber glücklich.
Frauen widerspricht man nicht - man wartet, bis sie es selbst tun.
Demokratie ist, wenn drei Wölfe und ein Schaf entscheiden, was
gefressen werden soll.
Gerhard
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 711


Wenn man es weiss ist es nicht mehr schwer ....


« Antworten #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
Gespeichert
Driri
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6356



« Antworten #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.
Gespeichert

Gruß, Ingo
------------------------------------------------------------
11 Domino-Server (8.5.3 auf i5 und Windows)
500 Notes 8.5.3, 2300 Notes 8.0.2

IBM Content Manager / Content Collector für Mailarchivierung
ClearSwift Appliance (Anti-Spam, Anti-Virus)
We4IT docLinkr
Axceler NOTRIX

Lotus Notes Traveler 8.5.3 UP2
ca. 650 Smartphones (Android) und Tablets (iPad)
klauss
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 5245


.. ich liebe meinen Job...


WWW
« Antworten #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....
Gespeichert

klaus

Operative Hektik ist ein Zeichen von geistiger Windstille.
Die Klugen leben von den Dummen, die Dummen von der Arbeit.
Nur Kinder und einfache Leute mögen lebhafte Farben. (Goethe)
Männer sind primitiv, aber glücklich.
Frauen widerspricht man nicht - man wartet, bis sie es selbst tun.
Demokratie ist, wenn drei Wölfe und ein Schaf entscheiden, was
gefressen werden soll.
Gerhard
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 711


Wenn man es weiss ist es nicht mehr schwer ....


« Antworten #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 ?
Gespeichert
klauss
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 5245


.. ich liebe meinen Job...


WWW
« Antworten #16 am: 20.06.12 - 14:46:30 »

o.Name
Gespeichert

klaus

Operative Hektik ist ein Zeichen von geistiger Windstille.
Die Klugen leben von den Dummen, die Dummen von der Arbeit.
Nur Kinder und einfache Leute mögen lebhafte Farben. (Goethe)
Männer sind primitiv, aber glücklich.
Frauen widerspricht man nicht - man wartet, bis sie es selbst tun.
Demokratie ist, wenn drei Wölfe und ein Schaf entscheiden, was
gefressen werden soll.
Axel
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8608


It's not a bug, it's Notes


« Antworten #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


Gespeichert

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

Server: 8.5.1 und 8.5.2 auf Win2003 (R2) und Win2008 32/64bit
Clients: 8.5.2 dt. und engl. auf WinXP und Win7
Gerhard
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 711


Wenn man es weiss ist es nicht mehr schwer ....


« Antworten #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 ?
Gespeichert
klauss
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 5245


.. ich liebe meinen Job...


WWW
« Antworten #19 am: 20.06.12 - 15:09:22 »

If doc.HasItem("Bild...) then
  Set....
.
.
.
.
     end if
  end if
set doc = dc.....
Gespeichert

klaus

Operative Hektik ist ein Zeichen von geistiger Windstille.
Die Klugen leben von den Dummen, die Dummen von der Arbeit.
Nur Kinder und einfache Leute mögen lebhafte Farben. (Goethe)
Männer sind primitiv, aber glücklich.
Frauen widerspricht man nicht - man wartet, bis sie es selbst tun.
Demokratie ist, wenn drei Wölfe und ein Schaf entscheiden, was
gefressen werden soll.
Seiten: [1] 2 Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: Tinte / Toner günstig  | handys