Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Brednich am 11.05.10 - 10:50:59

Titel: Body als Text speichern
Beitrag von: Brednich am 11.05.10 - 10:50:59
Hi,

ich möchte den Body eines NotesDocument als Text auslesen. Geht eigentlich ganz einfach und klappt auch fast immer, aber leider nur fast. Bei manchen Mails bekomme ich mit meiner Methode nur Teiles des Bodys.

Ich gehe so vor:

   If doc.HasItem ("Body") Then
      Dim bodyTxt As String
      Dim rtitem As Variant
      Set rtitem = doc.GetFirstItem("Body")
      If (rtitem.Type = RICHTEXT) Then
         bodyTxt = rtitem.GetUnformattedText()
      Else
         bodyTxt = doc.GetItemValue("Body")(0)
      End If
   End If      

Was könnte daran falsch sein? Oder gibt es eine bessere Methode, an den Bodytext zu kommen?

Danke,
Michael
   
Titel: Re: Body als Text speichern
Beitrag von: Peter Klett am 11.05.10 - 11:18:10
Habe das gerade ausprobiert. Wenn sehr viel Text im Richtextitem ist, werden mehrere Items "Body" angelegt. Wenn Du mit doc.GetFirstItem auf das Body-Feld zugreifst, bekommst Du nur den Inhalt des ersten Items.

bodyTxt = doc.GetItemValue("Body")(0)

Gibt den kompletten Text des Items aus, unabhängig davon, ob es sich um ein Text- oder Richtextfeld handelt und (zumindest bei Richtext) wieviele Items mit gleichem Namen sich im Dokument befinden.
Titel: Re: Body als Text speichern
Beitrag von: Peter Klett am 11.05.10 - 11:31:00
IRRTUM: Mein Beitrag von eben ist falsch!!

Korrekt ist, dass bodyTxt = doc.GetItemValue("Body")(0) weniger Text ausgibt, als bodyTxt = rtitem.GetUnformattedText()

(Wenn man zu blöd ist, seine eigenen Testergebnisse zu lesen, kommt sowas dabei heraus  :(, sorry)
Titel: Re: Body als Text speichern
Beitrag von: Brednich am 11.05.10 - 11:37:56
Ich glaube nicht, dass die Problemursache darin zu finden ist, dass es mehrere Body-Items gibt. Die betroffenen Mails enhalten Aufzählungen im Bodytext, also z.B. so etwas wie
   
     hallo xyz,

     1. hier steht ein text
     2. und hier noch einer
     3. das war's

     und tschüß


Wenn ich einen solchen Body mit der genannten Methode speichere, dann sieht das Ergebnis so aus:

     hallo xyz,
     1. 2. 3.    und tschüß


Es fehlt also der eigentliche Text der Aufzählung. Und merkwürdigerweise passiert das nur bei bestimmten Mails. Werden diese Mails weitergeleitet, dann ist das Problem in der weitergeleiteten Mail nicht mehr nachvollziehbar.
Titel: Re: Body als Text speichern
Beitrag von: Jens Winkelmann am 11.05.10 - 15:09:25

Sind die betroffenen Body Felder vom Typ Rich Text oder MIME?

Also was steht in der Property 'Data Type' der betroffenen Body Felder. 

Titel: Re: Body als Text speichern
Beitrag von: Brednich am 12.05.10 - 08:07:10
Kann ich leider im Moment nicht sagen. Ich kann das Problem nicht nachstellen, es tritt lediglich bei einem Kunden von uns auf. Und bis ich den dazu bewogen habe, ein neues Script zu probieren wird ein paar Tage dauern. Ich probier's mal.
Titel: Re: Body als Text speichern
Beitrag von: pram am 12.05.10 - 08:33:55
Evtl Session.ConvertMime während der Verarbeitung auf True setzen.
Danach stellt man aber am Besten den alten Status wieder her, da dies "clientweit" gilt.

Gruß
Roland