Autor Thema: Probleme mit NotesRichTextNavigator  (Gelesen 2591 mal)

Offline enny

  • Junior Mitglied
  • **
  • Beiträge: 84
  • Geschlecht: Männlich
  • Don't drink and su!
Probleme mit NotesRichTextNavigator
« am: 09.11.05 - 13:46:13 »
Hallo zusammen,

habe da ein kleines Problem:

Ich versuche in Dokumenten gespeicherte Objekte als Datei zu speichern um die Objekte
gegen Anhänge auszutauschen.
Eigentlich stellt das für mich kein Problem dar, doch leider stehen über den Objekten
Beschriftungen. -> Anhang steht nicht mehr unter Beschriftung -> keiner hat eine Ahnung was
welcher Anhang ist!!!
Meine Idee war mit Hilfe eines NotesRichTextNavigators an die Position des Objekts zu
springen das Objekt zu löschen und den Anhang einzuhängen. Dann weiter zum nächsten
Objekt usw.
Leider scheitere ich beim Einsatz des Navigators, da dieser anscheinend nicht richtig
erstellt wurde (bekomme kein Objekt beim Aufruf von GetFirstElement bzw. SetPosition(Objekt)
bringt eine Fehlermeldung das entweder das Objekt oder der Navigator nicht richtig
initialisiert wurde).

Folgenden Code habe ich bisher:

Sub Initialize
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim handle As Variant
   Dim rtitem As NotesRichTextItem
   Dim rtnav As NotesRichTextNavigator
   Dim obj As NotesEmbeddedObject
   Dim i, j As Integer
   
   Set db = s.CurrentDatabase
   Set dc = db.UnprocessedDocuments
   
   For i = 1 To dc.Count
      Set doc = dc.GetNthDocument(i)
      
      If doc.HasEmbedded Then
         Set rtitem = doc.GetFirstItem("Body")
         
         Set rtnav = rtitem.CreateNavigator
         Set obj = rtnav.GetFirstElement(9)
         
         While( Not (obj Is Nothing))
            rtnav.SetPosition(obj)
            
            If obj.Type = 1453 Then
               Set handle = obj.Activate(True)
               If Instr(1, obj.Class, "Word.Document") Then
                  handle.SaveAs("C:\temp\doc" + Format(j+1,"00") + ".doc")
                  obj.Remove
                  Call rtitem.EmbedObject(1454, "", "C:\temp\doc" + Format(j+1,"00") + ".doc")
               Elseif Instr(1, obj.Class, "Excel.Sheet") Then
                  handle.SaveAs("C:\temp\doc" + Format(j+1,"00") + ".xls")
                  obj.Remove
                  Call rtitem.EmbedObject(1454, "", "C:\temp\doc" + Format(j+1,"00") + ".xls")
               Elseif Instr(1, obj.Class, "AmiProDocument") Then
                  handle.SaveAs("C:\temp\doc" + Format(j+1,"00") + ".sam")
                  obj.Remove
                  Call rtitem.EmbedObject(1454, "", "C:\temp\doc" + Format(j+1,"00") + ".sam")
               End If
            End If
            Set obj = rtnav.GetNextElement
         Wend
         Call doc.Save(True,False)
      End If
   Next
End Sub


« Letzte Änderung: 09.11.05 - 13:48:11 von enny »
Server:
  Platformen: 1 x Windows 2000 Server, 4 x Windows 2003 Server, 1 x OS400
  Versionen: 4 x 6.5.4 FP2, 2 x 8.0.1
Clients:
  Anzahl: ca. 600
  Versionen: 6.5.3, 6.5.4, 8.0.1

Offline enny

  • Junior Mitglied
  • **
  • Beiträge: 84
  • Geschlecht: Männlich
  • Don't drink and su!
Re: Probleme mit NotesRichTextNavigator
« Antwort #1 am: 10.11.05 - 15:15:00 »
So als zusätzlicher Hinweis:

 Set obj = rtitem.EmbeddedObjects(0)
 Call rtnav.SetPosition(obj)

gibt den Fehler "Element or Navigator is invalid"
Server:
  Platformen: 1 x Windows 2000 Server, 4 x Windows 2003 Server, 1 x OS400
  Versionen: 4 x 6.5.4 FP2, 2 x 8.0.1
Clients:
  Anzahl: ca. 600
  Versionen: 6.5.3, 6.5.4, 8.0.1

Offline enny

  • Junior Mitglied
  • **
  • Beiträge: 84
  • Geschlecht: Männlich
  • Don't drink and su!
Re: Probleme mit NotesRichTextNavigator
« Antwort #2 am: 15.11.05 - 13:06:12 »
Also habe noch ein bißchen getestet.

Agent auf Java umsetzen -> selber Fehler

Habe auch Notes R7 ausprobiert -> selber Fehler

Funktioniert allerdings mit Einschränkungen unter Verwendung von FindNthElement.
Problem beim Einsatz von FindNthElement ist das ich folgenden Fehler bekomme:

Warnung: Ein Teil des Dokuments, das eine Funktion aus einer anderen Notes-Version verwendet, wird ignoriert

Dieser Fehler tritt leider nur bei manchen Dokumenten auf und zwar bei denen die auf
unserem alten R5 bzw. R4.6 Server bereits angelegt wurden.

Werde wegen der Fehlermeldung einen weiteren Thread öffnen.

Zum anderen Thread: http://atnotes.de/index.php?topic=27031.0
« Letzte Änderung: 15.11.05 - 14:22:52 von enny »
Server:
  Platformen: 1 x Windows 2000 Server, 4 x Windows 2003 Server, 1 x OS400
  Versionen: 4 x 6.5.4 FP2, 2 x 8.0.1
Clients:
  Anzahl: ca. 600
  Versionen: 6.5.3, 6.5.4, 8.0.1

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz