Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: MUslar am 30.07.03 - 21:15:08
-
Moin,
ich habe ein Problem mit einem RTF Feld und einem Agenten. Die Idee ist ein Agent, der in einer DOc COllection die einzelnen Dokumente durchgeht und dann Felder in eine Textdatei rausschreibt. Bei "Normalen" feldern klappt dies auch tadellos, bei RTF gibts allerdings manchmal Probleme der Art, dass bei einem leeren Feld die Meldung Object variable not set kommt und der Agent abbricht. hier kurz der entsprechende Codeteil:
Set item = doc.GetFirstItem("Anmerkungen")
text = item.text
Print #filenum%,"<Note>"
Print #filenum%,text
Print #filenum%,"</Note>"
Es existiert jedoch in jedem feld das RTF Feld Anmerkungen, jedoch ist es nicht immer gefüllt. Weiss wer mehr oder hatte ähnliche Probleme??
???
mfg
Mathias
-
Hi,
der Fehler liegt nicht daran, dass das Feld leer ist, sondern dass das Feld gar nicht vorhanden ist.
Also: Vor dem Zugriff auf Items IMMER abfragen, ob diese vorhanden sind:
If doc.HasItem("Body") Then
Set item = doc.GetFirstItem("Body")
text = item.text
Print #filenum%,"<Note>"
Print #filenum%,text
Print #filenum%,"</Note>"
end if
Andreas
-
Ja,
das hatte ich auch tatsächlich überall gemacht, nur an dieser einen Stelle nicht (..elende Else If Schachtelungen...) jetzt geht es tadellos.
Allerdings sind habe ich jetzt nur noch das Problem, dass das produzierte XML leider noch & und <,> enthält, die raus müssen. Aber mein Chef wird frog sein, dass nicht wider alle 560 Bücher neu in die neue DB müssen. Vielen Dank für eure Tipps, setze den Thread dann mal auf erledigt.
mfg
Mathias
-
Hi,
die "&", "<" und ">" bekommen wir auch noch raus.
dim ret_eval as Variant
If doc.HasItem("Anmerkungen") Then
Set item = doc.GetFirstItem("Anmerkungen")
text = item.text
ret_eval = Evaluate( |@ReplaceSubstring("| + text + |";"&":"<":">";"":"":"")| )
text = ret_eval(0)
Print #filenum%,"<Note>"
Print #filenum%,text
Print #filenum%,"</Note>"
end if
Das sollte gehen.
Andreas
-
Klasse, danke für den Code. Werde ich gleich mal testen, habe die "XML" bislang immer einfach durch ne Search and Destroy Editor gejagt :)) Das & werde ich allerdings durch ein & ersetzen, dann habe ich aber auch schonmal in Formel gemacht.
mfg
Mathias