カレンダーエントリを作成します。
NotesCalendarEntry NotesCalendar.createEntry(String icalentry)
throws NotesException
NotesCalendarEntry NotesCalendar.createEntry(String icalentry, int flags)
throws NotesException
パラメータ | 説明 |
---|---|
icalentry | iCalendar 形式のカレンダーエントリへの入力。 |
flags | フラグを書き込みます。
|
戻り値 | 説明 |
---|---|
NotesCalendarEntry | カレンダーエントリ。 |
可能性のある例外 | 値 | テキスト | 説明 |
---|---|---|---|
NotesError.NOTES_ERR_ERRSENDINGNOTICES | 4809 | 通知の送信でエラーが発生しました | 会議の通知を送信するときに問題が発生しました。会議を再度更新してください。 |
NotesError.NOTES_ERR_ENTRYEXISTS | 4815 | エントリは既に存在します | このエントリはカレンダーに存在します。 |
問題が解消されない場合は、notes.ini 変数 CSDebugAPI=1 を設定して実行してみてください。例外が発生する場合は、コンソールログで詳細を調べてください。
会議の場合、AutoSendNotices を false に設定せず、NotesCalendar.CS_WRITE_DISABLE_IMPLICIT_SCHEDULING も設定しなければ、通知は自動的に参加者に送信されます。
icalentry が繰り返しルール (RRULE 項目) を含む場合、このメソッドは専用の識別子 (RECURRENCE-ID 項目) を使用して、繰り返しごとにカレンダーイベントを作成します。反復識別子の形式は、UTC 形式でのイベント時刻です (20120913T160000Z など)。ただし、後からイベントの時刻を変更しても、識別子は変更されません。
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 メソッド