Autor Thema: Problem mit EmbeddedObject  (Gelesen 2251 mal)

Offline Pavel

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Problem mit EmbeddedObject
« am: 14.01.13 - 14:54:01 »
Hallo und ein verspätetes Gesundes Neues Jahr an alle.
Vielleicht weiß jemand Rat oder hat einen Tipp.
Ich nutze nachfolgenden Code (Ausschnitt), um ein txt-datei in ein Notesdokument zu hängen und später über eine URL wie ..../$FILE/export.txt zu öffnen.
Es funktioniert auch alles ganz wunderbar, allerdings fehlen in der angehängten Datei mehrere Zeilen am Ende der Datei.
Die Datei schreibe ich zuerst ins Filesystem, da ist sie noch komplett vorhanden, erst im Notesdokument fehlt etwas.
Woran könnte es liegen?

Gruß
René

hier der Code: sName beinhaltet den kompletten Pfad mit Dateiname.

      Dim rtitem As NotesRichTextItem
      Dim item As NotesItem
      Dim object As NotesEmbeddedObject

      If ndoc.HasItem("Body") Then
         Set item = ndoc.GetFirstItem( "Body" )
         Call item.Remove
         Call ndoc.Save(True,True)         
      End If

      Set rtitem = New NotesRichTextItem( ndoc, "Body" )
      Set object=rtitem.Embedobject(EMBED_ATTACHMENT,"", sName)

      Call ndoc.Save(True,true)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Problem mit EmbeddedObject
« Antwort #1 am: 14.01.13 - 19:56:37 »
Das ist sicher einti ing- Problem. Bist Du sicher, dass das file fertig gespeichert ist, wenn Du es attached? Ich fürchte, der save des textfiles passiert zu spät... Weil emeddobject verändert NICHTS
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)

Offline Pavel

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Problem mit EmbeddedObject
« Antwort #2 am: 15.01.13 - 07:37:45 »
@Tode

Hallo,

ja es scheint ein Timing Problem zu sein, konnte es nachvollziehen. Mal sehen, wie ich es lösen kann.
Danke.

Gruß
René

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Problem mit EmbeddedObject
« Antwort #3 am: 15.01.13 - 07:55:07 »
Du könntest nach dem Speichern der Datei eine zweite Datei (ohne Inhalt) erstellen und beim Import das Vorhandensein der zweiten abfragen. Zwischendurch wartest Du mit Sleep.

Offline Pavel

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Problem mit EmbeddedObject
« Antwort #4 am: 15.01.13 - 09:05:31 »
Hallo,

konnte jetzt nachvollziehen, was passiert.
Habe mal das komplette Script reingestellt.

Folgendes passiert:
Die Datei wird geschrieben, aber nicht komplett. Der Rest der Datei wird erst geschrieben, wenn das Script (Agent) beendet ist.

Gibt es eine Möglichkeit den NotesDXLExporter zu beenden oder dazu zu zwingen  die Datei komplett zu schreiben bevor das script beendet ist?
Oder woran könnte es liegen, das dieser Effekt auftritt?

Notlösung wäre, daß ich einen 2. Agent erstelle, denn ein paar Minuten später läuft und die exportierte Date holt, aber eigentlich sollte es auch so klappen.

Gruß
René


   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim ndoc As NotesDocument
   Dim nView As NotesView
   Dim stream As NotesStream   
   Dim exporter As NotesDXLExporter
   
   Dim sname As String
   
   
   Set session = New NotesSession
   Set db = session.CurrentDatabase
   
   Set nView = db.GetView ( "(xmlexportansicht)" )
   Dim dc As NotesDocumentCollection
   
   Set dc=nView.Getalldocumentsbykey("1", False)
   
   sName="c:\temp\exportadr.txt"
   Set stream = session.CreateStream
   Print "start export adr2xml"
   If Not stream.Open( sName ) Then
'      MessageBox "Cannot open " & sName,, "Error"
      Print "export adr2xml fehler!!!!"
      Exit Sub
   End If   
   
   Call stream.Truncate
   Set exporter = session.CreateDXLExporter ( dc, stream )
   Call exporter.process
   
Print "export adr2xml ein wenig geschlafen"
Sleep 900   
   
   Print "export adr2xml mail schicken"

   Dim blindcopystr (1 To 3) As String
   Dim maildoc As NotesDocument   
   Set maildoc = New NotesDocument(db)
   maildoc.Form = "Memo"
'   maildoc.SendTo = ""
   blindcopystr(1)="ein Notes Empfänger"
   blindcopystr(2)=""
   blindcopystr(3)=""
   maildoc.blindcopyto=blindcopystr         
   maildoc.Subject = "Export ins XML Format erfolgt"
   Call maildoc.Send( False )
      
'   exportiertes dok in xmlaustauschdok reinhängen



   Set nView = db.GetView ( "(xmlaustauschansicht)" )   
   Set ndoc = nview.GetFirstDocument      
   If Not(ndoc Is Nothing) Then
      'datei in dok reinbringen
      Dim rtitem As NotesRichTextItem
      Dim item As NotesItem
      Dim object As NotesEmbeddedObject

      If ndoc.HasItem("Body") Then
         Set item = ndoc.GetFirstItem( "Body" )
         Call item.Remove
         Call ndoc.Save(True,True)         
      End If

      Set rtitem = New NotesRichTextItem( ndoc, "Body" )   
      Set object=rtitem.Embedobject(EMBED_ATTACHMENT,"", sName)

      Call ndoc.Save(True,true)
   Else
      ' kein austauschdok gefunden
      Exit Sub
   End If      
      
   Print "export adr2xml beendet"      

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: Problem mit EmbeddedObject
« Antwort #5 am: 15.01.13 - 09:52:41 »
Hi

evtl. hilft es, wenn nach dem exporter.process() noch ein stream.close() einfügst.
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline Pavel

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re: Problem mit EmbeddedObject
« Antwort #6 am: 15.01.13 - 09:58:04 »
@umi

Danke für den Tipp, damit klappt es.

Gruß
René

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz