具有重复事件

时间:2016-02-03 09:48:07

标签: xpages ssjs

你好我需要解决我的旧问题XPages search calendar range datetime 所以我重写了我的代码以使用NotesCalendar类,现在这段代码正确地返回事件(包括重复/重复事件)

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();
    }

这是我从 cal.readRange(startDateTime,endDateTime)生成的VCAL

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”) 传递RECURRENCE-ID。 / p>

但是我怎么能在NotesCalendarEntry中获取这个参数我的FOR状态?

非常感谢

P.S。我可以使用我知道的Ical4j J​​ava库。这是唯一的解决方案吗?

1 个答案:

答案 0 :(得分:0)

您好我已经解决了我的问题。 我找到了一个将VCAL转换为JSON对象的JavaScript库。 我用SSJS代码转换了这个JavaScript客户端库,瞧! 现在工作完美,并以简单的方式!