Autor Thema: Newsletter-Agent/Datumsabfrage  (Gelesen 1267 mal)

Offline cordi

  • Frischling
  • *
  • Beiträge: 34
  • Ich liebe dieses Forum!
Newsletter-Agent/Datumsabfrage
« am: 19.07.06 - 15:23:55 »
Hallo -
ich habe ein Problem, bei dem ich überhaupt nicht weiter komme.
Folgendes: habe die Diskussions-DB (R6) als Grundlage genommen und will hier den Newsletter-Agenten anpassen. Diverses funktioniert auch sehr gut. Aber jetzt habe ich in die New-Maske (MainTopic) ein Datumsfeld (verdatum) eingefügt mit der Absicht, dass bei der Suche nur die Dokumente berücksichtigt und somit auch verschickt werden, die das heutige Datum tragen. Sinn dahinter: ich möchte ermöglichen, dass ein Veröffentlichungsdatum eingegeben werden kann. Das Datumsfeld in der Maske habe ich mit @Today vorbelegt. Das Problem nun: im Debugger sehe ich, dass er dieses Datum aus der MainTopic-Maske gar nicht ausliest und somit auch nicht mit dem errechneten heutigen Datum vergleichen kann. Irgendwie schnall ich nicht, wie ich das machen soll. Habe mal die Zeile aus dem Newsletterscript angefügt.
Ich hoffe sehr, dass mir jemand helfen kann.

Vielen Dank schon mal!

Dim whenNow As String
   Dim datum As String
   whenNow$ = Today()
   datum = note.verdatum
   
   totalquery = totalquery & " and (not(field form contains log, profile, Kategorien))" & " and (@contains(datum ; whenNow)"

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Newsletter-Agent/Datumsabfrage
« Antwort #1 am: 19.07.06 - 15:26:08 »
Hallo,

korrigier mal die Zeile

datum = note.verdatum

in

datum = note.verdatum(0)

Rainer
Rainer Zaske

MCSD - C#

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Newsletter-Agent/Datumsabfrage
« Antwort #2 am: 19.07.06 - 22:03:07 »
   totalquery = totalquery & " and (not(field form contains log, profile, Kategorien))" & " and (@contains(datum ; whenNow)"

Und das kann auch nix werden: whenNow bezieht sich auf eine LS-Variable, die im Kontext des QueryStrings garantiert nicht bekannt ist! Da der komplette Code fehlt, kann ich nur sagen: Da whenNow sowieso mit Today belegt wird (warum ist dann aber whenNow vom Typ String??), dann kannst Du dort auch gleich @Today einsetzen.

Meine Vermutung: Das komplette Konstrukt, mit dem Du da herumprobierst, ist unbrauchbar. Bestätigen können wir dies aber nur, wenn wir den kompletten Code kennen.

Bernhard

Offline cordi

  • Frischling
  • *
  • Beiträge: 34
  • Ich liebe dieses Forum!
Re: Newsletter-Agent/Datumsabfrage
« Antwort #3 am: 20.07.06 - 06:45:27 »
Guten Morgen Bernhard -
den Verdacht hatte ich wohl auch schon, dass das falsch ist. Die Sache mit dem String habe ich aus der Hilfe, da @contains sich ja nur auf String bezieht. Mit @Today hatte ich auch schon rumprobiert. Mein Problem - denke ich- ist, dass ich nicht weiß/finde, wie ich an den Wert von "verdatum" komme, also das Feld, mit dem verglichen wird. Das mit dem heutigen Datum ist dann eher nicht so wild. Im Initialize werden nur die Werte aus dem Profil-Doc der DB ausgelesen, die FTSearch/FormularSearch ausgeführt  und der Newsletter verschickt. Ich hatte den Code nicht ganz gepostet, weil der so elendig lang ist. Aber mach ich gerne, würde mich sehr freuen, wenn Dir oder jemand anders was dazu einfällt. Merci!
(Füge nur Teile ein, das sprengt sonst den Rahmen)

Sub DoFTSearch
   searchtype = "FT"
   totalquery = ""
   
   Forall n  In pCategories
      BuildTextList(n)
   End Forall
   If textlist <> "" Then
      query = "field Categories contains (" & textlist & ")"
      BuildTotalQuery         
   End If         
   
   Forall n In pAuthors
      BuildTextList(n)
      If textlist <> "" Then
         query = "field AbbreviateFrom contains " & textlist & " Or field AltFrom contains " & textlist
         BuildTotalQuery         
      End If         
   End Forall
   
   Forall n In pStrings
      BuildTextList(n)

   End Forall

...(Teile weggenommen)

If textlist <> "" Then
      query = "field ThreadId contains (" & textlist & ")"
      BuildTotalQuery         
   End If
   Dim whenNow As String
   Dim datum As String
   whenNow$ = Today()
   datum = note.verdatum(0)
   
   totalquery = totalquery & " and (not(field form contains log, profile, Kategorien))" & " and (@contains(datum ; whenNow)"
   

   
   Set collection = db.UnprocessedFTSearch(totalquery, 0)
   
End Sub




Sub DoFormulaSearch
   searchtype = "Formula"
   totalquery = ""
   
   If pCategories(0) <> "" Then
      Forall n In pCategories
         BuildTextList(n)
      End Forall
      If textlist <> "" Then
         query = "(@Contains(@UpperCase(Categories); @UpperCase(" & textlist &_
         ")) | @AllDescendants)"
         BuildTotalQuery         
      End If
   End If

...(Teile weg)

If pThreads(0) <> "" Then
      Forall n In pThreads
         BuildTextList(n)
      End Forall
      If textlist <> "" Then
         query = "@Contains(@UpperCase(ThreadId); @UpperCase(" & textlist & "))"
         BuildTotalQuery         
      End If
   End If
   Dim whenNow As String
   whenNow$ = Today()
   Dim datum As String
   datum = note.verdatum(0)
   totalquery = totalquery & " & @isavailable(NewsletterSubject) & (!@Contains(Form; ""Log"" : ""Profile"" : ""Kategorien"")) & (readers = """")"   & " and (@contains(datum ; whenNow)"
   
   Set collection = db.UnprocessedSearch(totalquery, Nothing, 0)
   
End Sub


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz