Obter entradas de calendário de hoje no Lotus Notes usando Java
-
19-09-2019 - |
Pergunta
Eu estou tentando obter as entradas de calendário para um determinado dia. O código funciona sem erros no entanto eu estou recebendo uma entrada de data do calendário errado. Estou certo de que a fórmula está correta, mas neverthless gostaria de receber qualquer ajuda sobre isso. Aqui está o código.
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);
Isto é o que é a fórmula que é aplicada.
@IsAvailable(CalendarDateTime) & StartDateTime >= @Date(2009; 10; 3; 0; 0; 0) & EndDateTime <= @Date(2009; 10; 4; 0; 0; 0) & (AppointmentType = "3" | AppointmentType = "0")
Eu recebo as seguintes entradas.
Test Project daily checkpoint 2009-09-08
This is a Test Meeting 2009-10-03
A segunda entrada é correta e é bom, mas por alguma estranha razão a primeira entrada continua aparecendo independentemente da data i dar. Não tenho a certeza se o seu problema de codificação de um ou algum problema de configuração nas minhas notas.
Solução
Você precisa ter cuidado de repetir entradas de calendário, uma vez que estes terão começar e terminar data e hora valores de campo que mapeiam para a primeira entrada da série.