例: refresh method

  1. 次のエージェントは、ビューに表示される文書の作成前と作成後に、カテゴリに分類されていないビューのエントリ数を表示します。この数は、文書の作成後ビューの更新を実行していないため同じになります。
    import lotus.domino.*;
    
    public class JavaAgent extends AgentBase {
    
      public void NotesMain() {
    
        try {
          Session session = getSession();
          AgentContext agentContext = session.getAgentContext();
    
          // (Your code goes here) 
          Database db = agentContext.getCurrentDatabase();
          View view = db.getView("All");
          System.out.println("Entries = " + view.getTopLevelEntryCount());
          Document doc = db.createDocument();
          doc.appendItemValue("Form", "Main Topic");
          doc.appendItemValue("Subject", "New document");
          doc.save();
          /* Entry count is the same because the view is not refreshed */
          System.out.println("Entries = " + view.getTopLevelEntryCount());
          
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }
  2. 次のエージェントは、ビューに表示される文書の作成前と作成後に、カテゴリに分類されていないビューのエントリ数を表示します。この数は、文書の作成後ビューを更新するため増分があります。
    import lotus.domino.*;
    
    public class JavaAgent extends AgentBase {
    
      public void NotesMain() {
    
        try {
          Session session = getSession();
          AgentContext agentContext = session.getAgentContext();
    
          // (Your code goes here) 
          Database db = agentContext.getCurrentDatabase();
          View view = db.getView("All");
          System.out.println("Entries = " + view.getTopLevelEntryCount());
          Document doc = db.createDocument();
          doc.appendItemValue("Form", "Main Topic");
          doc.appendItemValue("Subject", "New document");
          doc.save();
          view.refresh();
          /* Entry count is incremented because the view is refreshed */
          System.out.println("Entries = " + view.getTopLevelEntryCount());
          
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }
  3. 次のエージェントは、ビューが変更されている場合、ビューから文書を取り出す前にビューを更新します。
    import lotus.domino.*;
    public class JavaAgent extends AgentBase {
      public void NotesMain() {
        try {
          Session session = getSession();
          AgentContext agentContext = session.getAgentContext();
          // (Your code goes here) 
          Database db = agentContext.getCurrentDatabase();
          // Open view and sleep for 10 seconds
          View view = db.getView("By Category");
          sleep(10000);
          // Meanwhile someone else may have modified the view
          view.refresh();
          // Do your work
          Document getdoc = view.getDocumentByKey("Latest news");
          if (getdoc == null)
            System.out.println("getdoc is null");
          else
            System.out.println(getdoc.getItemValueString("Subject"));
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }