新規招集のカレンダーエントリを取得します。
getNewInvitations(start:NotesDateTime、since:NotesDateTime) : java.util.Vector
パラメータ | 説明 |
---|---|
start | 新規招集の適用対象である会議の開始時刻。デフォルトはすべての会議です。 |
since | 対象とする新規招集を開始する時刻。デフォルトはすべての新規招集です。このパラメータは UntilTime とともに使用し、最後の呼び出し以降に投稿された招集を取得します。 |
戻り値 | 説明 |
---|---|
java.util.Vector | 新規招集。招集がない場合は空ベクトル。各ベクトル要素は NotesCalendarNotice 型です。 |
var dbdir:NotesDbDirectory = session.getDbDirectory("");
var maildb:NotesDatabase = dbdir.openMailDatabase();
var cal:NotesCalendar = session.getCalendar(maildb);
var jdt:java.util.Calendar = new java.util.Calendar.getInstance();
jdt.set(2012, 1, 1, 1, 1, 1);
var dt1:NotesDateTime = session.createDateTime(jdt);
if (sessionScope.untilTime == null) {
var dt2:NotesDateTime = session.createDateTime("Yesterday 02");
} else {
var dt2:NotesDateTime = session.createDateTime(sessionScope.untilTime);
}
requestScope.status = dt2.getLocalTime() + "¥n";
var invites:java.util.Vector = cal.getNewInvitations(dt1, dt2);
sessionScope.untilTime = cal.getUntilTime().getLocalTime();
if (invites.size() > 0) {
for (i = 0; i < invites.size(); i++) {
requestScope.status = requestScope.status + invites.elementAt(i).read() + "¥n";
}
} else {
requestScope.status = requestScope.status + "No invitations¥n";
}
NotesCalendar.GetNewInvitations(Optional start As NotesDateTime, Optional since As NotesDateTime) As Variant
このエージェントは、2012 年 1 月 1 日以降のメッセージのカレンダー招集と、10 月 1 日深夜 0 時以降の招集を取得します。次にエージェントは、
ユーザーの希望に応じて、最後に処理した招集より後の招集を取得します。Sub Initialize
REM On Error GoTo handler
Dim session As New NotesSession
Dim maildb As New NotesDatabase("", "")
Dim cal As NotesCalendar
Dim dt1 As NotesDateTime
Dim dt2 As NotesDateTime
Dim invites As Variant
Call maildb.Openmail()
Set cal = session.getCalendar(maildb)
Set dt1 = session.createdatetime("01/01/2012 00:00 AM")
Set dt2 = session.createdatetime("10/01/2012 00:00 AM")
invites = cal.Getnewinvitations(dt1, dt2)
Do
If IsEmpty(invites) Then
MessageBox "No invitations",, "Nothing"
Else
Dim invite As NotesCalendarNotice
Dim i As Integer
On Error Resume Next
For i = LBound(invites) To UBound(invites)
Set invite = invites(i)
MessageBox invite.Read(),, "Invitation"
Next
End If
if (MessageBox(|Do you want to get new invitations since | & _
cal.Untiltime.Localtime & |?|, MB_YESNO, "Again?") = IDNO) Then
Exit do
End if
invites = cal.Getnewinvitations(dt1, cal.Untiltime)
Loop
Exit Sub
handler:
MsgBox Error,, Err()
Exit sub
End Sub
java.util.Vector NotesCalendar.getNewInvitations()
java.util.Vector NotesCalendar.getNewInvitations(DateTime start, DateTime since)
このエージェントは、2012 年 1 月 1 日以降のメッセージのカレンダー招集を、30 分間隔で 3 回取得します。1 回目の呼び出しでは、
昨日の午前 2:00 以降の招集を取得します。次の 2 回の呼び出しでは、最後に処理した招集より後の招集を取得します。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.util.Calendar jdt = java.util.Calendar.getInstance();
jdt.set(2012, 1, 1, 1, 1, 1);
DateTime dt1 = session.createDateTime(jdt);
DateTime dt2 = session.createDateTime("Yesterday 02");
java.util.Vector invites = cal.getNewInvitations(dt1, dt2);
Database db = agentContext.getCurrentDatabase();
for (int j = 0; j < 3; j++) {
// Create document to post results
Document doc = db.createDocument();
doc.appendItemValue("Form", "main");
doc.appendItemValue("subject", "New invitations");
RichTextItem body = doc.createRichTextItem("body");
if (invites.size() == 0) body.appendText("No invitations");
else {
for (int i = 0; i < invites.size(); i++) {
NotesCalendarNotice cale = (NotesCalendarNotice)invites.elementAt(i);
body.appendText(cale.read());
cale.recycle();
body.addNewLine();
}
}
doc.save(true, true);
java.util.concurrent.TimeUnit.MINUTES.sleep(30);
invites = cal.getNewInvitations(dt1, cal.getUntilTime());
}
} catch(Exception e) {
e.printStackTrace();
}
}
}