Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: sja am 28.11.06 - 12:10:33

Titel: Evaluate und split
Beitrag von: sja am 28.11.06 - 12:10:33
Hallo @All,

wenn jemand mir bitte weiterhelfen würde?

Ein Agent geht durch alle Dokumente in der Ansicht "tmpOffeneFragen"(jeder Dokument hat ein Sammelfeld, wo sind die folgende Daten als String gespeichert: "Datum~FrageNr#Fragesteller~Antwortgeber") und soll eine Email an den Fragesteller senden.

Das folgende Script ist den Ausschnitt aus dem Agent:

Dim db As NotesDatabase
Dim view As NotesView
Dim VEC As NotesViewEntryCollection   
Dim ve As NotesViewEntry
Dim s As  NotesSession
Dim doc As NotesDocument
Dim MailDoc As NotesDocument
Dim rtitem As NotesRichTextItem

Dim tmpListe As String
Dim tmpAdressat As Variant
Dim tmpFrageNr As Variant

Set s = New NotesSession
Set db = s.CurrentDatabase
Set view =db.getview("tmpOffeneFragen")
Set VEC = view.AllEntries

If Not(view.EntryCount = 0) Then
      
   Set ve = VEC.GetFirstEntry()
   Set doc = ve.Document
      
   While Not (ve Is Nothing)
      Set doc = ve.Document

      Forall tmpListe In doc.frageAgent      
         tmpAdressat  = Evaluate({@Left(@Right(tmpListe; "#");"~")})
         tmpFrageNr = Evaluate({@Right(@Left(tmpListe; "#");"~")})
   
       Call MailSenden               
      End Forall
         
      Set ve = VEC.getNextEntry(ve)               
   Wend   
      
End If


Mein Problem ist folgendes:

In Debuger wird die Variable tmpList mit richtigem Wert angezeigt
Bsp. aus dem Debuger:

TMPLISTE   "19.11.2006~01#User1~User2"

Aber die Variable tmpAdressat und tmpFrageNr nach den entsprechenden Schritten sind leer. Debuger  zeigen folgende Werte:

TMPADRESSAT   [""]
TMPFRAGENR   [""]


Die Formel
@Left(@Right(frageAgent; "#");"~")   und
@Right(@Left(frageAgent; "#");"~")
habe ich in einer Ansicht überprüft -> die Werte werden richtig angezeigt.
Kann nicht heraus finden, warum in dem Agent sind die leer ???

Vielen Dank im Voraus für jede Hilfe.

Schoene Gruesse
Sofia
Titel: Re: Schon wieder Evaluate
Beitrag von: koehlerbv am 28.11.06 - 12:17:43
Bei der verwendeten Syntax wird impliziert, dass es im Dokument ein Feld "tmpListe" gibt - in Wirklichkeit ist das aber eine LS-Variable von Dir. tmpListe darf also nicht so in die Formel von Evaluate eingeschlossen werden, sondern zusammengebaut werden. Etwas so:
Evaluate({@Left(@Right("} & tmpListe & {; ... usw.

HTH,
Bernhard
Titel: Re: Schon wieder Evaluate
Beitrag von: Thomas Schulte am 28.11.06 - 12:21:10
Warum machst du nicht einfach ein paar Splits und gut ist das?

Code
Forall tmpListe In doc.frageAgent      
         splitListe = split(tmpListe,"#")
         splitAdressat = split(splitliste(1),"~")
         tmpAdressat = splitAdressat(0)
         splitFrage = split(splitliste(0),"~")
         tmpFrageNr = splitFrage(1)
End Forall
Titel: Re: Schon wieder Evaluate
Beitrag von: sja am 28.11.06 - 13:02:59
Hallo Bernhard,
Hallo Thomas,

vielen Dank für Eure schnelle und fantastische Hilfe.

Habe schon wieder daraus gelernt! Ich probiere beide Möglichkeiten.

Noch mal herzlichen Dank und liebe Gruesse
Sofia