このエージェントは、最後に実行された後に更新された、現在のデータベースにあるすべてのデータ文書を取得します。getModifiedDocuments が動作するたびに、データベース終了時刻がプロフィール文書に保存されます。
import lotus.domino.*;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
// (Your code goes here)
Database db = agentContext.getCurrentDatabase();
// Check UntilTime in profile document
Document profile = db.getProfileDocument("Profile", null);
DateTime untilTime = null;
DocumentCollection dc = null;
if (profile.hasItem("UntilTime")) {
// Start processing from UntilTime
Vector untilTimeVector =
profile.getItemValueDateTimeArray("UntilTime");
untilTime = (DateTime)untilTimeVector.firstElement();
dc = db.getModifiedDocuments(
untilTime, Database.DBMOD_DOC_DATA);
}
else {
// First time through get all documents
dc = db.getModifiedDocuments(
null, Database.DBMOD_DOC_DATA);
}
if (dc.getCount() > 0) {
// Display LastModified and Subject from each document
Document doc = dc.getFirstDocument();
while(doc != null) {
System.out.println(
doc.getLastModified() + " " +
doc.getItemValueString("Subject"));
doc = dc.getNextDocument(doc);
}
}
else {
// If nothing modified since last time
if (profile.hasItem("UntilTime"))
System.out.println("No documents modified since " +
untilTime.getLocalTime());
else
System.out.println("No documents modified since beginning");
}
// Write UntilTime back to profile document
profile.replaceItemValue("UntilTime", dc.getUntilTime());
profile.save(true, true, true);
} catch(Exception e) {
e.printStackTrace();
}
}
}