Solved

Match today's date with dates in NotesDocument field

Posted on 2011-02-24
8
935 Views
Last Modified: 2013-12-18
Lotus Notes repeating calendar entries store their repeating dates in a field named RepeatInstanceDates.

With @Formula, I can use @IsMember to find if a value is in a list, but the members of RepeatInstanceDates are dates in the format 02/21/2011 05:15:00 PM CST, however I only want to match against the date portion, 02/21/2011.

Is there any way of doing this in the @Formula language?
0
Comment
Question by:jlalande
  • 5
  • 3
8 Comments
 
LVL 46

Accepted Solution

by:
Sjef Bosman earned 500 total points
ID: 34975839
I can't check right now, but I suppose the field RepeatInstanceDates contains a date value, not a string. Let's also assume your date x is a date value.

To check whether date x is in the field, try this condition (can be used in the query):
      @Text(x; "D0S0")=@Text(RepeatInstanceDates; "D0S0")
which is shorthand for
      @IsMember(@Text(x; "D0S0"); @Text(RepeatInstanceDates; "D0S0"))
0
 

Author Comment

by:jlalande
ID: 34976210
I've tried both and neither work for me.

If I already have the date in string format, is @Text(x; "D0S0") needed?  If not, what format should the date string 'x' be in?  I am assuming that D0S0 is a format argument.

Looking over this it looks like you are taking a list of dates and converting it to a list of strings in the format specified by 'D0S0', and checking if 'x' is in that list.
0
 

Author Comment

by:jlalande
ID: 34976292
BTW, I am working in C# using the Domino COM Toolkit.
0
Space-Age Communications Transitions to DevOps

ViaSat, a global provider of satellite and wireless communications, securely connects businesses, governments, and organizations to the Internet. Learn how ViaSat’s Network Solutions Engineer, drove the transition from a traditional network support to a DevOps-centric model.

 

Author Comment

by:jlalande
ID: 34976449
Actually, I think we're almost there.  I replaced 'x' with @Today and now get matches.  However, where I only have one repeating meeting today, I am getting four.

The other three are likely bookkeeping entries.  Is there a way to filter these out?
0
 

Author Closing Comment

by:jlalande
ID: 34976634
Actually, there were two repeating calendar entries for today.  I found a filter that works by checking if a field RepeatUnit exists using @IsAvailable.  This returns a valid set of calendar entries for today.

My complete query string looks like:

Form = "Appointment" & Repeats = "1" & (AppointmentType = "3" | AppointmentType = "2") & @IsAvailable(RepeatUnit) & NoticeType != "C" & NoticeType != "R" & @IsMember(@Text(@Today; "D0S0"); @Text(RepeatInstanceDates; "D0S0"))

Can you see anything that could be done better or faster?

Thanks so much!
0
 
LVL 46

Expert Comment

by:Sjef Bosman
ID: 34977748
Probably not much faster, but a little shorter:

Form = "Appointment" & Repeats = "1" & AppointmentType = "3":"2" & @IsAvailable(RepeatUnit) & !(NoticeType= "C":"R") & @IsMember(@Text(@Today; "D0S0"); @Text(RepeatInstanceDates; "D0S0"))
0
 

Author Comment

by:jlalande
ID: 34980328
I adopted your changes and added support for additionally getting today's non-repeating calendar entries, thereby completing the solution to retrieve all of the meetings scheduled for today, repeating and non-repeating:

Form = "Appointment" & AppointmentType = "3":"2" & !(NoticeType = "C":"R")
   & ((Repeats = "1" & @IsAvailable(RepeatUnit) & @IsMember(@Text(@Today; "D0S0"); @Text(RepeatInstanceDates; "D0S0")))
         | (!@IsAvailable(Repeats) & @Text(@Today; "D0S0") = @Text(STARTDATETIME; "D0S0")))

Please let me know if I have missed anything.

You've been a great help.  Thank you very much.
0
 
LVL 46

Expert Comment

by:Sjef Bosman
ID: 34980634
Looks fine to me. You're doing an excellent job, sir!
0

Featured Post

Webinar: Aligning, Automating, Winning

Join Dan Russo, Senior Manager of Operations Intelligence, for an in-depth discussion on how Dealertrack, leading provider of integrated digital solutions for the automotive industry, transformed their DevOps processes to increase collaboration and move with greater velocity.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

'Between' is such a common word we rarely think about it but in SQL it has a very specific definition we should be aware of. While most database vendors will have their own unique phrases to describe it (see references at end) the concept in common …
This article describes how to use the timestamp of existing data in a database to allow Tableau to calculate the prior work day instead of relying on case statements or if statements to calculate the days of the week.
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

685 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question