Domino 9 und frühere Versionen > ND7: Entwicklung
Evaluate und split
(1/1)
sja:
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
koehlerbv:
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
Thomas Schulte:
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
--- Ende Code ---
sja:
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
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln