Autor Thema: Evaluate und split  (Gelesen 1654 mal)

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Evaluate und split
« 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
« Letzte Änderung: 28.11.06 - 15:56:46 von sja »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Schon wieder Evaluate
« Antwort #1 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

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Schon wieder Evaluate
« Antwort #2 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
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline sja

  • Senior Mitglied
  • ****
  • Beiträge: 328
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re: Schon wieder Evaluate
« Antwort #3 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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz