Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: kawie am 27.10.03 - 10:09:34

Titel: Neue Dokumente Erstellen und Import von Anhängen
Beitrag von: kawie am 27.10.03 - 10:09:34
Hallo,

ich habe mich mal an einen Script für  ein automatisches füllen einer Datenbank versucht. Ich habe hier ca. 600 PDF Files liegen und wollte die mit den unten angegebenen Einspielen.

Leider werden die Dateien nach dem Import als graues File Dargestellt. Das wäre nicht soo schlimm aber sie starten teilweise erst beim 2 oder 3 doppelclick... :-(

Wer kann helfen?

Kai

Code
Sub Initialize
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim s As String
   Dim Filename As String
   Dim workspace As New NotesUIWorkspace
   Dim object As NotesEmbeddedObject
   Dim rtitem As NotesRichTextItem
   Dim Counterf As Integer
   Dim Counteri As Integer
   Dim Counterp As Integer
   Dim Counters As Integer
   Dim Counterz As Integer
   Dim f As String
   Dim i As String
   Dim p As String
   Dim son As String
   Dim z As String
   
   s = Inputbox("Pfad zum Importieren angeben","Import Tarife - *.PDF'","c:\Temp")
   
   If s="" Then
      Msgbox "Import abgebrochen"
      Exit Sub
   End If
   
   
   Print "Fachzeitschriften werden eingelesen!"
   f=s+"\F"
   Filename=Dir(f+"\*")
   
   While Not Filename=""
      Print "Filename: " & Filename   
      
      Set db = session.CurrentDatabase
      Set doc = New NotesDocument(db)
      
      doc.form = "m_tarif"
      doc.m_jahr = "2004"
      doc.m_medium = "F - Fachzeitschriften"
      doc.categorie = "2004\F - Fachzeitschriften"
      doc.m_bezeichnung = Strleftback(Filename,".pdf")
      var = doc.m_bezeichnung(0)
      If var = "" Then
         doc.m_bezeichnung = Strleftback(Filename,".PDF")
      End If
      
      
      Print "Importing: " & "",f+"\"+Filename
      Set rtitem = New NotesRichTextItem( doc, "m_anhang" )
      Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", f+"\"+Filename)
      
      Call doc.Save(True, False)
      
      Counterf = Counterf + 1   
      FileName=Dir
      
   Wend
   
   Print "Importierte Fachzeitschriften : " & Str(Counterf)
   
   i=s+"\I"
   Filename=Dir(i+"\*")
   
   Print "International Print werden eingelesen!"
   While Not Filename=""
      Print "Filename: " & Filename   
      
      Set db = session.CurrentDatabase
      Set doc = New NotesDocument(db)
      
      doc.form = "m_tarif"
      doc.m_jahr = "2004"
      doc.m_medium = "I - International Print"
      doc.categorie = "2004\I - International Print"
      doc.m_bezeichnung = Strleftback(Filename,".pdf")
      var = doc.m_bezeichnung(0)
      If var = "" Then
         doc.m_bezeichnung = Strleftback(Filename,".PDF")
      End If
      
      
      Print "Importing: " & "",i+"\"+Filename
      Set rtitem = New NotesRichTextItem( doc, "m_anhang" )
      Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", i+"\"+Filename)
      
      Call doc.Save(True, False)
      
      Counteri = Counteri + 1   
      FileName=Dir
      
   Wend
   
   'nächste Titel werden Eingespielt
   
   Print "Importierte International Print : " & Str(Counteri)
   
   p=s+"\P"
   Filename=Dir(p+"\*")
   
   
   Print "Publikumszeischriften werden eingelesen!"
   
   While Not Filename=""
      Print "Filename: " & Filename   
      
      Set db = session.CurrentDatabase
      Set doc = New NotesDocument(db)
      
      doc.form = "m_tarif"
      doc.m_jahr = "2004"
      doc.m_medium = "P - Publikumszeischriften"
      doc.categorie = "2004\P - Publikumszeischriften"
      doc.m_bezeichnung = Strleftback(Filename,".pdf")
      var = doc.m_bezeichnung(0)
      If var = "" Then
         doc.m_bezeichnung = Strleftback(Filename,".PDF")
      End If
      
      Print "Importing: " & "",p+"\"+Filename
      Set rtitem = New NotesRichTextItem( doc, "m_anhang" )
      Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", p+"\"+Filename)
      
      Call doc.Save(True, False)
      
      Counterp = Counterp + 1   
      FileName=Dir
      
   Wend
   
   Print "Importierte Publikumszeischriften : " & Str(Counterp)
   
   son=s+"\S"
   Filename=Dir(son+"\*")
   
   Print "Sonderpublikationen werden eingelesen!"
   
   While Not Filename=""
      Print "Filename: " & Filename   
      
      Set db = session.CurrentDatabase
      Set doc = New NotesDocument(db)
      
      doc.form = "m_tarif"
      doc.m_jahr = "2004"
      doc.m_medium = "S - Sonderpublikationen"
      doc.categorie = "2004\S - Sonderpublikationen"
      doc.m_bezeichnung = Strleftback(Filename,".pdf")
      var = doc.m_bezeichnung(0)
      If var = "" Then
         doc.m_bezeichnung = Strleftback(Filename,".PDF")
      End If
      
      Print "Importing: " & "",son+"\"+Filename
      Set rtitem = New NotesRichTextItem( doc, "m_anhang" )
      Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", son+"\"+Filename)
      
      Call doc.Save(True, False)
      
      Counters = Counters + 1   
      FileName=Dir
      
   Wend
   
   Print "Importierte Sonderpublikationen : " & Str(Counters)
   
   z=s+"\Z"
   Filename=Dir(z+"\*")
   
   Print "Zeitungen werden eingelesen!"
   
   While Not Filename=""
      Print "Filename: " & Filename   
      
      Set db = session.CurrentDatabase
      Set doc = New NotesDocument(db)
      
      doc.form = "m_tarif"
      doc.m_jahr = "2004"
      doc.m_medium = "Z - Zeitungen"
      doc.categorie = "2004\Z - Zeitungen"
      doc.m_bezeichnung = Strleftback(Filename,".pdf")
      var = doc.m_bezeichnung(0)
      If var = "" Then
         doc.m_bezeichnung = Strleftback(Filename,".PDF")
      End If
      
      Print "Importing: " & "",z+"\"+Filename
      Set rtitem = New NotesRichTextItem( doc, "m_anhang" )
      Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", z+"\"+Filename)
      
      Call doc.Save(True, False)
      
      Counterz = Counterz + 1   
      FileName=Dir
      
   Wend
   
   Print "Importierte Zeitungen : " & Str(Counterz)
   
   Msgbox "Importiert wurden folgende Tarife:" & Chr(10) &_
   "Zeitungen:" & "|" & Str(Counterz) & Chr(10)&_
   "Sonderpublikationen:" & "|" & Str(Counters) & Chr(10)&_
   "International Print:" & "|" & Str(Counteri) & Chr(10)&_
   "Fachzeitschriften:" & "|" & Str(Counterf) & Chr(10)&_
   "Publikumszeitschriften:" & "|" & Str(Counterp)
   
End Sub
Titel: Re:Neue Dokumente Erstellen und Import von Anhängen
Beitrag von: Semeaphoros am 27.10.03 - 10:14:05
Bist Du sicher, dass sie erst beim 2ten oder 3ten Doppelklick starten? PDF hat eine ungeheuer laaaaaaaange Zeit, bis die Anzeige erscheint, das liegt aber an der Art, wie der Reader die Daten verarbeitet, nicht auf der Notes-Seite (gleiches passiert, wenn man aus dem Browser heraus ein PDF startet, auch da sind die Lieferfristen gegen unendlich)
Titel: Re:Neue Dokumente Erstellen und Import von Anhängen
Beitrag von: kawie am 27.10.03 - 10:33:25
Jetzt gerade geht es aber ja ich hatte diesen Fehler...

Ist das script den so O.K.??

Kai
Titel: Re:Neue Dokumente Erstellen und Import von Anhängen
Beitrag von: Semeaphoros am 27.10.03 - 11:08:26
a) wenn es die Attachements produziert, dann funktioniert das Script doch - oder?

b) ein kurzer Ueberblick zeigt nichts "verdächtiges"

c) Was für ein Fehler? Aus meiner schon bald jahrzehnte zählenden Support-Praxis heraus gilt, ein nicht funktionierender Doppelklick ist solange kein Fehler, wie ich ihn nicht selber gesehen habe. Grund: 1. Wartezeiten, wie schon erwähnt, 2. zu langsames Doppelklicken, 3. Mikroverschiebungen der Maus zwischen den Klicks (des öfteren ausgelöst durch die Klicks selber), welche bewirken, dass das BS zwei einzelne Klicks an unterschiedlichen Koordianten sieht statt einem Doppelklick.
Titel: Re:Neue Dokumente Erstellen und Import von Anhängen
Beitrag von: kawie am 27.10.03 - 17:28:36
Weiss den jemand warum die Icons grau dargestellt werden??

Also ohne Namen und Ohne Applications Icon.

Kai

Titel: Re:Neue Dokumente Erstellen und Import von Anhängen
Beitrag von: Semeaphoros am 27.10.03 - 17:33:37
Set notesEmbeddedObject = notesRichTextItem.EmbedObject( type%, class$, source$, [ name$ ] )

Sprich, den Namen kannst Du optional beim Aufrufen von EmbedObject dazuschreiben, da Du den Parameter nicht angegeben hast, wird eben kein Name dazu geschrieben.

Mit LS alleine lässt sich - soweit ich weiss - kein Icon für ein Attachement erzeugen.
Titel: Re:Neue Dokumente Erstellen und Import von Anhängen
Beitrag von: ata am 27.10.03 - 21:08:09
... per Backend erzeugte Attachments werden immer nur mit dem grauen Symbol angezeigt => siehe NotesHilfe...

ata
Titel: Re:Neue Dokumente Erstellen und Import von Anhängen
Beitrag von: kawie am 28.10.03 - 09:23:27
Danke an alle! Ich glaube ich habe das Problem gefunden.

In einer alten version meines scriptes habe ich mit EmbedObject gearbeitet. Kann das daran liegen ?

Kai
Code
Set rtitem = New NotesRichTextItem( doc, "m_anhang" ) 
Set object = rtitem.EmbedObject ( EMBED_OBJECT, "", f+"\"+Filename)

Titel: Re:Neue Dokumente Erstellen und Import von Anhängen
Beitrag von: Semeaphoros am 28.10.03 - 10:03:35
Was ist da der Unterschied zu dem Code, den Du am anfang gepostet hat? Ich sehe ihn nicht.

Und wie Ata schon gesagt hat, Bilder gibt es aus dem Backend heraus nicht.
Titel: Re:Neue Dokumente Erstellen und Import von Anhängen
Beitrag von: kawie am 28.10.03 - 11:38:24
Der Unterschied ist das ich es zuerst mit embeded_object probiert habe und hinterher erst mit embeded_attachment.