プログラミングガイド

Nauticaワークフローが提供するAPIのプログラミング例を示します。

RMI over IIOP

リモートメソッドを呼び出すプログラミング例です。

プロセスインスタンスの開始

認証によるセッションIDの取得からプロセスインスタンスの開始までを示します。

// ワークフローエンジンに接続し、セッションIDを取得
ConnectionInfo conInfo = new ConnectionInfo(
    "engine001", "", "userId", "password");
WorkflowServiceAccessor wsa = new WorkflowServiceAccessor(conInfo);
String session = wsa.open();

// プロセスインスタンスを生成
WorkflowEngineHandlerRemote weh = wsa.getWorkflowEngineHandler();
String pid = weh.createProcess(
    session, "testDefId", "testDefInstanceName");

// プロセスインスタンスの開始
weh.startProcess(session, pid);
Nauticaサービス

Nauticaサービスを呼び出すプログラミング例です。なお、プログラミング内では、Apache Axis のWSDL2Javaツールによって自動生成されたJavaクラスを使用しています。WSDL2Javaツールの使用方法は Apache Axis サイトを参照してください。

プロセスインスタンスの開始

認証によるセッションIDの取得からプロセスインスタンスの開始までを示します。

// ワークフローエンジンに接続し、セッションIDを取得
WorkflowServiceConnectorServiceLocator locator = 
	new WorkflowServiceConnectorServiceLocator();
URL url = new URL(
	"http://127.0.0.1:8080/WorkflowAxis/services/WorkflowServiceConnector");
WorkflowServiceConnector connector = locator.getWorkflowServiceConnector(url);
String session = connector.connect("userId", "password");
		
// プロセスインスタンスを生成
WorkflowEngineHandlerServiceLocator locator = 
	new WorkflowEngineHandlerServiceLocator();
URL url = new URL(
	"http://127.0.0.1:8080/WorkflowAxis/services/WorkflowEngineHandler");
WorkflowEngineHandler weh = locator.getWorkflowEngineHandler(url);
String pid = weh.createProcess(session, "testDefId", "testDefInstanceName");

// プロセスインスタンスの開始
weh.startProcess(session, pid);
サーブレット

Nauticaサーブレットを呼び出すHttpServletクラスのプログラミング例です。

プロセスインスタンスの開始

認証によるセッションIDの取得からプロセスインスタンスの開始までを示します。

protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException,IOException {

    // ConnectServletを呼び出す。
    req.setAttribute("NWF_USER", "userId");
    req.setAttribute("NWF_PASSWORD", "password");
    this.getServletConfig().getServletContext().
        getDispatcher("/servlet/ConnectServlet").include(req, res);
    // ConnectServletの結果(セッションID)を取得する。
    String sessionID = (String) req.getAttribute("NWF_CONNECT_RESULT");
    
    // CreateProcessServletを呼び出す。
    req.setAttribute("NWF_SESSION", sessionID);
    req.setAttribute("NWF_PROCESS_DEFINITION_ID", "testDefId");
    req.setAttribute("NWF_PROCESS_INSTANCE_NAME", "testDefInstanceName");
    this.getServletConfig().getServletContext()
        .getDispatcher("/servlet/CreateProcessServlet").include(req, res);
    // CreateProcessServletの結果(プロセスインスタンスID)を取得する。
    String pid = (String) req.getAttribute("NWF_CREATE_PROCESS_RESULT");
    
    // StartServletを呼び出す。
    req.setAttribute("NWF_PROCESS_INSTANCE_ID", pid);
    this.getServletConfig().getServletContext().
        getDispatcher("/servlet/StartProcessServlet").include(req, res);
    
    ・・・中略・・・
}