JAVA/CORBA クラス


AgentBase クラス

Lotus Notes/Domino エージェントは AgentBase から派生して、その関数コードのエントリポイントとして NotesMain() を使う必要があります。Session オブジェクトを取得するには getSession() を使用します。Lotus Notes Client (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 Client では、フォアグラウンドエージェントの System.out および System.err は、Java のデバッグコンソールに出力されます。[ファイル] メニューから [ツール] - [Java コンソールの表示] を選択すると、この出力結果に対し、個別のタスクとしてアクセスできます。バックグラウンドエージェントは、Lotus Domino ログに出力します。
OpenAgent URL コマンドによって起動したエージェントからブラウザに出力するには、AgentBase.getAgentOutput() を呼び出して java.io.PrintWriter オブジェクトを取得する必要があります。このオブジェクトの出力結果は、Lotus Notes Client だけでなく、ブラウザにも出力されます。

次の部分コードは、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);

}


関連項目