2016-02-03 2 views
0

Здравствуй мне нужно, чтобы решить мой старый вопрос XPages search calendar range datetime Так что я переписать свой код для класса использования NotesCalendar и теперь этот код возврата правильно событие (включить повторяющееся/событие повтора)NotesCalendarEntry с повторяющимся событием

var startDateTime:NotesDateTime = session.createDateTime(new Date(2016,0,1)); 
var endDateTime:NotesDateTime = session.createDateTime(new Date(2016,1,1)); 
var cal:NotesCalendar = session.getCalendar(mailDB); 
cal.readRange(startDateTime,endDateTime) //work correctly and return VCAL 

но мне нужно прочитать каждые календарные Записи в создать свой объект JSON так что я должен добавить этот код:

var vect:java.util.Vector=cal.getEntries(startDateTime,endDateTime) 
for(j=0;j<vect.size();j++){ 
     var cale:NotesCalendarEntry = vect.elementAt(j); 
     cale.read(); //this return NULL in recurring Event and work in other case 
     cale.recycle(); 
    } 

Это мой VCAL генерировать из cal.readRange (startDateTime, endDateTime)

BEGIN:VCALENDAR 
VERSION:2.0 
BEGIN:VEVENT 
DTSTART:20160131T080000Z 
TRANSP:TRANSPARENT 
RECURRENCE-ID:20160131T080000Z 
DTSTAMP:20160203T084615Z 
CLASS:PRIVATE 
SUMMARY:test repeat event 
UID:134A501D66B80411C1257E520058802B-Lotus_Notes_Generated 
X-LOTUS-SUMMARYDATAONLY:TRUE 
X-LOTUS-APPTTYPE:4 
BEGIN:VALARM 
ACTION:DISPLAY 
TRIGGER:-PT1H 
DESCRIPTION:test repeat event 
END:VALARM 
END:VEVENT 
BEGIN:VEVENT 
DTSTART:20160131T090000Z 
DTEND:20160131T100000Z 
TRANSP:OPAQUE 
DTSTAMP:20160203T084615Z 
SEQUENCE:0 
CLASS:PRIVATE 
SUMMARY:private test public appointment 
UID:4C5E7D5116C19E7EC1257F4E00301400-Lotus_Notes_Generated 
X-LOTUS-SUMMARYDATAONLY:TRUE 
X-LOTUS-APPTTYPE:0 
END:VEVENT 
BEGIN:VEVENT 
DTSTART:20160201T070000Z 
DTEND:20160201T080000Z 
TRANSP:OPAQUE 
DTSTAMP:20160203T084615Z 
SEQUENCE:0 
CLASS:PUBLIC 
SUMMARY:public test -appointment 
UID:802CB03D0FE29EC7C1257F4C005B9344-Lotus_Notes_Generated 
X-LOTUS-SUMMARYDATAONLY:TRUE 
X-LOTUS-APPTTYPE:0 
END:VEVENT 
END:VCALENDAR 

Если мне нужно прочитать каждые повторяющиеся события, я думаю, что мне нужно использовать функцию cale.read ("20160131T080000Z") прохождения рекуррентного-ID.

Но как я могу в NotesCalendarEntry получить этот параметр my FOR statment?

большое спасибо

P.S. Я могу использовать библиотеку Java Ical4j, которую я знаю. это единственное решение?

+0

Исходный код службы календаря на самом деле находится на Github/OpenNTF - вы проверили, как они это делают? – stwissel

ответ

0

Привет, я решил свою проблему. Я нашел библиотеку JavaScript, которая конвертирует VCAL в объект JSON. Я конвертировал эту клиентскую библиотеку JavaScript в код SSJS и вуаля! Теперь работайте идеально и в простом режиме!

Смежные вопросы