【问题标题】:How to schedule a recurring meeting in lotus notes in java如何在 Java 中的 Lotus Notes 中安排定期会议
【发布时间】:2014-02-11 06:57:37
【问题描述】:

我目前采用的方法如下。

  • 我正在从 Webservicebase 类获取会话。
  • 我正在从 session.openmaildatabase 访问数据库。
  • 我正在从 database.createDocument 方法创建一个文档。
  • 我正在设置文档的所有属性。我通过在 lotus notes 中创建定期会议来获取这些属性。
  • 即使在这样做之后,我也没有将会议保存为定期会议。

任何人都可以帮助如何做到这一点。任何对相关材料的引用也会有所帮助。谢谢大家。

【问题讨论】:

    标签: lotus-notes lotus-domino lotus domino-designer-eclipse


    【解决方案1】:

    这是当前 Lotus Notes C&S schema 的链接。这是所有更新都已发布并将继续发布的地方。

    根据您使用的 Notes 版本,您可能能够使用 C&S API。 IBM 在 Notes 9.0 中公开了 C&S API。 API 是公开 Domino 的框架和方法集 日历和日程安排功能,无需了解所有架构细节。

    API 提供了使用 iCalendar 在邮件文件中创建、读取、更新和删除日历数据的能力。它们还允许对日历条目和通知进行显式操作(接受、拒绝、取消等)。

    还有一个发布到 OpenNTF 的 REST 服务 API,它利用了这些新 API。您可以在here获取更多详细信息。

    如果您在 9.0 之前的版本上构建,则必须完全依赖已发布的架构并自己制作所有文档。

    【讨论】:

      【解决方案2】:

      正如 Richard 和 Bruce 所说,Notes 日历模式有据可查。如果您使用的是 N/D 8.5.3 或更早版本,则在创建日历条目时必须了解架构。但是,如果您使用的是 N/D 9.0 或更高版本,您可能会发现使用 Java NotesCalendar、NotesCalendarEntry 和 NotesCalendarNotice 接口更容易。这些新 API 需要对 iCalendar 有所了解,但使用 iCalendar 通常比完全了解 Notes 日历架构的详细信息要容易。

      例如,考虑这个重复事件的 iCalendar 表示:

      BEGIN:VCALENDAR
      PRODID:-//Lotus Development Corporation//NONSGML Notes 9.0//EN_API_S
      BEGIN:VEVENT
      DTSTART:20140319T180000Z
      DTEND:20140319T200000Z
      TRANSP:OPAQUE
      RRULE:FREQ=WEEKLY;COUNT=15;BYDAY=WE
      SEQUENCE:0
      CLASS:PUBLIC
      SUMMARY:Track workout
      LOCATION:High school track
      END:VEVENT
      END:VCALENDAR
      

      此事件的第一个实例于 2014 年 3 月 19 日 18:00 UTC 开始(请参阅 DTSTART),并在 20:00 UTC 结束(请参阅 DTEND)。该活动每周三重复 15 周(参见 RRULE)。

      您可以使用几行 Java 代码将此类事件添加到 Notes 数据库:

      // Get the NotesCalendar object from the database
      NotesCalendar notesCalendar = session.getCalendar(database);
      if ( notesCalendar == null ) {
          throw new Exception("Cannot open calendar.");
      }
      
      // Create the meeting on the Notes calendar
      NotesCalendarEntry entry = notesCalendar.createEntry(icalendar);
      

      在这段代码中,icalendar 只是一个包含上面显示的 iCalendar 数据的字符串,NotesCalendar 和 NotesCalendarEntry 接口来自lotus.domino 包。 createEntry 方法将事件添加到日历中。更好的是,它会自动向与会者发送邀请(当存在于 iCalendar 数据中时),并处理重复事件的复杂性。

      有关更多 iCalendar 示例,请参阅iCalendar representation of an event。有关 iCalendar 规范,请参阅RFC5545

      【讨论】:

        【解决方案3】:

        这是 Notes 日历 schema 的链接。

        根据您上面的描述,您似乎遗漏的最重要的一点是,Lotus Notes 中的重复会议由一组具有父子关系的文档表示,而不仅仅是一个文档。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-03
          相关资源
          最近更新 更多