例: DocumentContext property

次のエージェントは、メモリ内文書の [Subject] フィールドの値を出力します。

  1. 次のエージェントは、Notes® クライアントのビューから実行されると、現在の文書の Subject アイテムを表示します。
    import lotus.domino.*;
    
    public class JavaAgent extends AgentBase {
    
        public void NotesMain() {
    
            try {
              Session session = getSession();
              AgentContext agentContext = session.getAgentContext();
    
              // (Your code goes here) 
              Document doc = agentContext.getDocumentContext();
              System.out.println
                (doc.getItemValueString("Subject"));/
    
            } catch(Exception e) {
                e.printStackTrace();
            }
        }
    }
  2. 次のエージェントは、ブラウザから @Command([RunAgent]) で実行されると、現在の文書の Subject アイテムを表示します。
    import lotus.domino.*;
    import java.io.PrintWriter;
    
    public class JavaAgent extends AgentBase {
    
        public void NotesMain() {
    
            try {
              Session session = getSession();
              AgentContext agentContext = session.getAgentContext();
    
              // (Your code goes here)
              Document doc = agentContext.getDocumentContext();
              PrintWriter pw = getAgentOutput();
              pw.println("<H2>" + doc.getItemValueString("Subject") +
                "</H2>");
    
            } catch(Exception e) {
                e.printStackTrace();
            }
        }
    }
  3. 次のエージェントは、ブラウザから OpenAgent URL コマンドまたは @Command([ToolsRunMacro]) で実行されると、CGI 変数 Remote_Addr が現在の文書に使用されているフォーム上のフィールドである場合は、CGI 変数 Remote_Addr を表示します。
    import lotus.domino.*;
    import java.io.PrintWriter;
    
    public class JavaAgent extends AgentBase {
    
        public void NotesMain() {
    
            try {
              Session session = getSession();
              AgentContext agentContext = session.getAgentContext();
    
              // (Your code goes here) 
              Document doc = agentContext.getDocumentContext();
              System.out.println(doc.getItemValueString("Remote_Addr"));
              PrintWriter pw = getAgentOutput();
              pw.println("<H2>IP address is " + 
                doc.getItemValueString("Remote_Addr") + "</H2>");
    
            } catch(Exception e) {
                e.printStackTrace();
            }
        }
    }
  4. 次のエージェントはカウンタを増加します。これを WebQueryOpen で呼び出すと、Web ページが開かれた回数をトラッキングすることができます。カウンタは Access_counter という名前でプロフィール文書内で実行されます。名前のアイテムは、文書が開いたときのみ表示するために存在します。
    import lotus.domino.*;
    
    public class JavaAgent extends AgentBase {
    
        public void NotesMain() {
    
            try {
              Session session = getSession();
              AgentContext agentContext = session.getAgentContext();
    
              // (Your code goes here) 
              Document doc = agentContext.getDocumentContext();
              Database db = agentContext.getCurrentDatabase();
              Document profile =
                db.getProfileDocument("(AccessCounterProfile)", null);
              String numStr = 
                profile.getItemValueString("Access_counter");
              String numStr2;
              if (numStr.equals(" ") || numStr.equals("")) {
                  numStr2 = new String("1");
                    }
              else {
                  Integer numInt = new Integer(numStr);
                  int num = numInt.intValue() + 1;
                  Integer numInt2 = new Integer(num);
                  numStr2 = new String(numInt2.toString());
                  }
                
              profile.replaceItemValue("Access_counter", numStr2);
              profile.save(false, false);
              doc.replaceItemValue("Access_counter", numStr2);
    
            } catch(Exception e) {
                e.printStackTrace();
            }
        }
    }