JAVA/CORBA クラス
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); }
例 関連項目