createEntry (NotesCalendar - Java)

カレンダーエントリを作成します。

定義位置

NotesCalendar

構文

NotesCalendarEntry NotesCalendar.createEntry(String icalentry)
	throws NotesException
NotesCalendarEntry NotesCalendar.createEntry(String icalentry, int flags)
	throws NotesException
パラメータ 説明
icalentry iCalendar 形式のカレンダーエントリへの入力。
flags フラグを書き込みます。
  • NotesCalendar.CS_WRITE_DISABLE_IMPLICIT_SCHEDULING (2) は、 参加者への通知の自動送信を無効にします。このフラグを設定することは、 このメソッドを呼び出す前に AutoSendNotices を false に設定することと同等です。
戻り値 説明
NotesCalendarEntry カレンダーエントリ。
可能性のある例外 テキスト 説明
NotesError.NOTES_ERR_ERRSENDINGNOTICES 4809 通知の送信でエラーが発生しました 会議の通知を送信するときに問題が発生しました。会議を再度更新してください。
NotesError.NOTES_ERR_ENTRYEXISTS 4815 エントリは既に存在します このエントリはカレンダーに存在します。

使用法

入力値が正しくない場合は、例外が発生します。 この形式について「Internet Calendaring and Scheduling Core Object Specification (iCalendar)」(http://tools.ietf.org/html/rfc5545) を参照するか、読み取り操作の結果をテンプレートとして使用してください。ここに記載する例では、予定と会議の基本的な形式を示します。

問題が解消されない場合は、notes.ini 変数 CSDebugAPI=1 を設定して実行してみてください。例外が発生する場合は、コンソールログで詳細を調べてください。

会議の場合、AutoSendNotices を false に設定せず、NotesCalendar.CS_WRITE_DISABLE_IMPLICIT_SCHEDULING も設定しなければ、通知は自動的に参加者に送信されます。

icalentry が繰り返しルール (RRULE 項目) を含む場合、このメソッドは専用の識別子 (RECURRENCE-ID 項目) を使用して、繰り返しごとにカレンダーイベントを作成します。反復識別子の形式は、UTC 形式でのイベント時刻です (20120913T160000Z など)。ただし、後からイベントの時刻を変更しても、識別子は変更されません。

このエージェントは、UTC の今日と明日 16 時に対し会議のカレンダーエントリを作成し、通知は送信せず、UID を環境変数に書き込みます。
import lotus.domino.*;

public class JavaAgent extends AgentBase {

    public void NotesMain() {

      try {
          Session session = getSession();
          AgentContext agentContext = session.getAgentContext();

          // (Your code goes here)
          DbDirectory dbdir = session.getDbDirectory("");
          Database maildb = dbdir.openMailDatabase();
          NotesCalendar cal = session.getCalendar(maildb);
          java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyyMMdd");
          String today = formatter.format(new java.util.Date());
          String icale = "BEGIN:VCALENDAR¥n" +
          "BEGIN:VEVENT¥n" +
          "DTSTART:" + today + "T160000Z¥n" +
          "DTEND:" + today + "T170000Z¥n" +
          "RRULE:FREQ=DAILY;COUNT=2¥n" +
          "ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=¥"Roberta Person/Westford/IBM¥";¥n" +
          " RSVP=FALSE:mailto:roberta_person@us.ibm.com¥n" +
          "ATTENDEE;ROLE=REQ-PARTICIPANT¥n" +
          " ;CN=¥"Doc Test/Bedford/IBM¥";RSVP=TRUE:mailto:doctest@us.ibm.com¥n" +
          "SUMMARY:Sample Meeting¥n" +
          "ORGANIZER;CN=¥"Roberta Person/Westford/IBM¥"¥n" +
          " :mailto:roberta_person@us.ibm.com¥n" +
          "END:VEVENT¥n" +
          "END:VCALENDAR¥n";
          NotesCalendarEntry calentry = cal.createEntry(icale, NotesCalendar.CS_WRITE_DISABLE_IMPLICIT_SCHEDULING);
          session.setEnvironmentVar("currentuid", calentry.getUID());
          session.setEnvironmentVar("currentrecurid", today + "T160000");

      } catch(Exception e) {
          e.printStackTrace();
       }
   }
}

クロスリファレンス

LotusScript® NotesCalendar クラスの CreateEntry メソッド