2009-10-03 5 views
1

J'essaie d'obtenir les entrées d'agenda pour un jour donné. Le code fonctionne sans erreur mais je reçois une mauvaise entrée de date de calendrier. Je suis sûr que la formule est correcte, mais apprécierait néanmoins toute aide à ce sujet. Voici le code.Récupérer les entrées d'agenda d'aujourd'hui dans Lotus Notes en utilisant Java

 long startTime; 
     long endTime; 
     String searchFormula; 
     DocumentCollection dc_CalendarEntries; 

     System.out.println("Getting default TimeZone"); 
     TimeZone calTZ = TimeZone.getDefault(); 
     GregorianCalendar startDay = new GregorianCalendar(calTZ); 
     startDay.set(startDay.get(1), startDay.get(2), startDay.get(5), 0, 0, 0); 
     startTime = startDay.getTime().getTime(); 
     GregorianCalendar endDay = new GregorianCalendar(calTZ); 
     endDay.setTime(startDay.getTime()); 
     endDay.add(5, 1); 
     endTime = endDay.getTime().getTime(); 
     System.out.println("Creating Search Formula"); 

     StringBuffer searchFormulaStringBuffer = new StringBuffer("@IsAvailable(CalendarDateTime)"); 
     searchFormulaStringBuffer.append(" & StartDateTime >= @Date(").append(startDay.get(1)).append("; ").append(startDay.get(2) + 1).append("; ").append(startDay.get(5)).append("; ").append(startDay.get(10)).append("; ").append(startDay.get(12)).append("; ").append(startDay.get(13)).append(")"); 
     searchFormulaStringBuffer.append(" & EndDateTime <= @Date(").append(endDay.get(1)).append("; ").append(endDay.get(2) + 1).append("; ").append(endDay.get(5)).append("; ").append(endDay.get(10)).append("; ").append(endDay.get(12)).append("; ").append(endDay.get(13)).append(")"); 
     searchFormulaStringBuffer.append(" & (AppointmentType = \"3\" | AppointmentType = \"0\")"); 
     searchFormula = searchFormulaStringBuffer.toString();   
     System.out.println(searchFormula); 
     dc_CalendarEntries = db_Mail.search(searchFormula); 

C'est la formule qui est appliquée.

@IsAvailable(CalendarDateTime) & StartDateTime >= @Date(2009; 10; 3; 0; 0; 0) & EndDateTime <= @Date(2009; 10; 4; 0; 0; 0) & (AppointmentType = "3" | AppointmentType = "0") 

Je reçois les entrées suivantes.

Test Project daily checkpoint 2009-09-08 
This is a Test Meeting 2009-10-03 

La deuxième entrée est correcte et est très bien, mais pour une raison étrange la première entrée ne cesse d'apparaître quelle que soit la date que je donne. Je ne suis pas sûr que ce soit un problème de codage ou un problème de configuration dans mes notes.

+0

Vous avez peut-être déjà essayé, mais si ce n'est pas le cas, essayez de créer une vue avec la formule de sélection définie dans votre formule ci-dessus. Est-ce que ce document supplémentaire apparaît? –

+0

non je ne l'ai pas encore essayé, je vais l'essayer et revenir vers vous. – vikramjb

Répondre

2

Vous devez faire attention à la répétition des entrées de calendrier, car celles-ci auront des valeurs de champ date/heure de début et de fin correspondant à la première entrée de la série.

+0

Cela pourrait être le cas car l'entrée invalide a des entrées répétées. – vikramjb

Questions connexes