JAVA/CORBA クラス


AgentBase クラス

Lotus Notes/Domino エージェントは AgentBase から派生して、その関数コードのエントリポイントとして NotesMain() を使用する必要があります。Session オブジェクトを取得するには getSession() を使用します。Lotus Notes クライアント (Java デバッグコンソール) だけでなくブラウザにも出力するには、getAgentOutput() を使用して PrintWriter オブジェクトを作成します。

Java エージェントのスケルトン

Java エージェントを作成すると、Lotus Domino Designer は次のスケルトンコードを生成します。エージェントをインポートする場合は、これに似たコードを手動で供給する必要があります。最低限、AgentBase から派生したクラスを作成し、NotesMain() という関数を提供し、AgentBase.getSession() を呼び出して Session オブジェクトを作成する必要があります。NotesMain() 内のコードは、エージェントの起動時に実行されます。

import lotus.domino.*;

public class JavaAgent extends AgentBase {

 public void NotesMain() {

   try {
     Session session = getSession();
     AgentContext agentContext = session.getAgentContext();

     // (Your code goes here)

   } catch(Exception e) {
     e.printStackTrace();
   }
 }
}

NotesException 例外を特別に処理するために、このスケルトンの修正が必要となる場合もあります。以下に例を示します。

} catch(NotesException ne) {
     System.out.println(ne.id + " " + ne.text);
   } catch(Exception e) {
     E.printStackTrace();

次のようにはしないでください。

} catch(Exception e) {
     E.printStackTrace();

出力の表示

Lotus Notes クライアントでは、フォアグラウンドエージェントの System.out および System.err は、Java のデバッグコンソールに出力されます。[ファイル] メニューから [ツール] - [Java コンソールの表示] を選択すると、この出力結果に対し、個別のタスクとしてアクセスできます。バックグラウンドエージェントは、Lotus Domino ログに出力します。

OpenAgent URL コマンドによって起動したエージェントからブラウザに出力するには、AgentBase.getAgentOutput() を呼び出して java.io.PrintWriter オブジェクトを取得する必要があります。このオブジェクトの出力結果は、Lotus Notes クライアントだけでなく、ブラウザにも出力されます。

次の部分コードは、URL コマンドをブラウザに出力することで、現在のデータベースのビューを開く方法を示します。このコードは、円記号をスラッシュに、スペースを + 記号にそれぞれ置き換え、URL コマンドはカッコで囲みます。

import java.io.PrintWriter;

PrintWriter pw = getAgentOutput();
Database db = agentContext.getCurrentDatabase();
String n = db.getFileName();
n = n.replace('\\', '/').replace(' ', '+');
pw.println("[/" + n + "/Main+View?OpenView]");

AgentBase の仕様

AgentBase クラスの仕様 (public メソッド) は、次のとおりです。

public class AgentBase extends NotesThread {
   protected Session m_session;
   public AgentBase();
   public final void startup(AgentInfo info);
   public final void runNotes() throws NotesException;
   public void NotesMain();
   public Session getSession();
   public boolean isRestricted();
   public PrintWriter getAgentOutput();
   public void setDebug(boolean debug);
   public void setTrace(boolean trace);
   public void dbgMsg(String msg, PrintStream ps);
   public void dbgMsg(String msg, PrintWriter pw);
   public void dbgMsg(String msg);
   
}


関連項目