Autor Thema: rtItem.EmbeddedObjects Verhalten in R8.5.1 anders/falsch  (Gelesen 4745 mal)

DatenDuck

  • Gast
Hallo Forum,

jaja, lang ists her...

Ich erlebe gerade ein seltsames Problem in Notes bei dem ich Eure Hilfe brauche.
Mit folgender Schleife möchte ich über sämtliche Attachments des Dokuments loopen und diverse Dinge damit anstellen.

Code
ForAll item In docSource.Items
			If (item.Type = RICHTEXT) Then
				emObArr = item.EmbeddedObjects
				If IsArray(emObArr) Then
					ForAll objAtt In item.EmbeddedObjects
						If (objAtt.Type = EMBED_ATTACHMENT) Then	
							If objAtt.Name = objAtt.Source Then
								strAttFileName = objAtt.Source
							Else
								strAttFileName = objAtt.Name + "_" + objAtt.Source
							End If
							
							usw...

						End If
					End ForAll
				'End If
			End If
		End ForAll

Jetzt gibt es das Problem, dass der Bereich mit
...
emObArr = item.EmbeddedObjects
If IsArray(emObArr) Then
...
in einem 6er Client ganz normal funktioniert und IsArray True zurückgibt und in einem 8.5.1er Client mit dem selben Dokument in der selben Datenbank item.EmbeddedObjects leer ist ????

Gibt es irgend einen verständlichen Grund, wieso das so ist? Braucht Ihr noch irgendwelche Informationen zu dem Dokument oder DB um erklären zu können, wieso die EmbeddedObjects in 8.5.1 plötzlich (aus meiner Sicht) zickt?

Vielen Dank schon mal!

Bis dann,
-Moritz

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: rtItem.EmbeddedObjects Verhalten in R8.5.1 anders/falsch
« Antwort #1 am: 26.03.10 - 18:48:02 »
Hallo Moritz,

du mögest dir evaluate, @AttachmentNames und notesDocument.GetAttachment ansehen und daraus eine Schleife bauen ;)

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

DatenDuck

  • Gast
Re: rtItem.EmbeddedObjects Verhalten in R8.5.1 anders/falsch
« Antwort #2 am: 29.03.10 - 14:45:21 »
Hallo Roland,

danke, dass funktioniert! :D
Bleibt nur die Frage, wie lange und ob es in allen Situationen zuverlässig funktioniert.
Der ursprüngliche loop hat ja bis jetzt auch immer wunderbar funktioniert und spinnt nur in R8.5.1...  :-\

Generell ist Dein Weg aber der schnellere, denn mein loop kreiselt sich ja in jedem Fall durchs Dokument.

Bis dann,
-Moritz

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: rtItem.EmbeddedObjects Verhalten in R8.5.1 anders/falsch
« Antwort #3 am: 29.03.10 - 17:00:02 »
Ich kann mich irren, aber soweit ich weiß funktioniert EmbeddedObjects nicht zuverlässig, OBWOHL in der Designerhilfe folgendes Beispiel drin steht (was ja deinem sehr ähnlich ist)
Code
Dim doc As NotesDocument
Dim rtitem As Variant
'...set value of doc...
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
  Forall o In rtitem.EmbeddedObjects
    If ( o.Type = EMBED_ATTACHMENT ) Then
      Call o.ExtractFile( "c:\samples\" & o.Source )
      Call o.Remove
      Call doc.Save( False, True )
    End If
  End Forall
End If
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

DatenDuck

  • Gast
Re: rtItem.EmbeddedObjects Verhalten in R8.5.1 anders/falsch
« Antwort #4 am: 29.03.10 - 17:02:28 »
Bin verwirrt.. Was funktioniert jetzt nicht zuverlässig? Mein Weg oder Dein Weg? Dass meiner nicht zuverlässig funktioniert war ja die Ursache dieses Beitrags und ich hoffe Dein Weg ist ist zuverlässige Alternative!

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: rtItem.EmbeddedObjects Verhalten in R8.5.1 anders/falsch
« Antwort #5 am: 29.03.10 - 18:55:33 »
Sorry,
Also mein Weg hat (bis jetzt) immer funktioniert, wenn ich es auch unschön finde, dass man mit Evaluate eine Formel ausführen muss.

mit rtItems.embeddedObjects hatte ich auch schon mal meine Probleme (ist aber schon eine Weile her, so dass ich nicht mehr genau weiß was genau das Problem war, es tat jedenfalls nicht so wie ich das wollte)

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

DatenDuck

  • Gast
Re: rtItem.EmbeddedObjects Verhalten in R8.5.1 anders/falsch
« Antwort #6 am: 30.03.10 - 16:09:52 »
Args.. Dein funktioniert zwar, dafür ist die Parent Property des Anhangs nicht gefüllt... Vom Regen in die Traufe

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: rtItem.EmbeddedObjects Verhalten in R8.5.1 anders/falsch
« Antwort #7 am: 30.03.10 - 20:45:39 »
Was steht im Parent Property nochmal drin? das RT-Item?

Als Würgaround kannst du (wenn wirklich nichts anderes mehr hilft!!) die RT-Items nacheinander in ein temporäres Dokument kopieren (der Anhang wird nicht mitkopiert, nur eine Referenz, sollte deshalb auch ausreichend schnell gehen) und mit @AttachmentNames dann im TempDoc schauen, welche Attachments du gerade kopiert hast... :-:

Evtl hat aber auch noch wer eine bessere Lösung.

Vielleicht beschreibst du aber auch dein Problem noch etwas ausführlicher. Manchmal kommt man auf andere/bessere Lösungen wenn man das "drumherum" kennt.


Gruß
Roland

« Letzte Änderung: 30.03.10 - 21:08:40 von pram »
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

DatenDuck

  • Gast
Re: rtItem.EmbeddedObjects Verhalten in R8.5.1 anders/falsch
« Antwort #8 am: 31.03.10 - 10:03:05 »
Jo, im Parent steht das RTItem.

Im Grunde muss ich in beliebigen Dokumenten sämtliche Anhänge finden und mit den Anhängen auch Name/Source und "Mutter-RTItem" speichern. Nur so ist es möglich, z.B. gelöschte Anhänge bei Bedarf wieder an den Ursprungsort wiederherzustellen. Die getrennte Behandlung von Dokument und Anhängen ist Absicht.
Fehlt der Name des parent RTItem, kann ein Anhang nur "irgendwo" im Dokument wiederangehängt werden und das ist nicht ausreichend.

Die ärgerliche Situation ist jetzt: Ein Code der jahrelang problemlos funktionierte, tut das mit Notes 8.5.1 nicht mehr. Da man von IBM keine Hilfe zu erwarten braucht, suche ich jetzt nach Work Arounds aber einen vollwertigen Ersatz scheint es soweit noch nicht zu geben.

Momentan prüfe ich mit dem Evaluate("@AttachmentNames",doc) ob es Anhänge gibt und mit dem obigen Loop hole ich dann alle Info die zu den Anhängen die gebraucht werden. Da der Loop fehlschlägt und im Loop eine abweichende Anzahl (genaugenommen gar keine Anzahl) an Anhängen behandelt wird, könnte ich darauf hinweisen "Achtung, es gibt Anhänge im Dokument aber es können nicht alle nötigen Informationen zu den Anhängen ausgelesen werden", aber das würde ich eigentlich nur dann gerne machen wenn ich eine Alternative hätte mit der man das ganze System wieder zum Laufen bringen kann. Z.B. durch erneutes speichern des Dokuments oder was auch immer. Habe dazu soweit noch nichts gefunden...

DatenDuck

  • Gast
Re: rtItem.EmbeddedObjects Verhalten in R8.5.1 anders/falsch
« Antwort #9 am: 11.05.10 - 12:17:43 »
Nur falls hier noch mal jemand drüber stolpert der das selbe Problem hat (NotesRichTextItem.EmbeddedObjects ist trotz Anhängen leer).
Die Sache ist inzwischen von IBM als SPR (8.5.1.) eingetragen. Betroffene Dokumente können "repariert" werden indem man das Dokument in den Bearbeitungsmodus holt und dann ohne Änderungen speichert.
Anschließend funktioniert zumindest NotesDocument.GetAttachment().
Eine back-end Lösung gibt es (zumindest bis jetzt) noch nicht.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz