エンジンが提供するAPI [MS WORD] [PDF]

ワークフローエンジンの機能は、RMI over IIOPとWebサービス(Nauticaサービス)、サーブレットとして提供しています。

RMI over IIOP

Nauticaは、ワークフローエンジンの各APIをJavaのリモートメソッド呼び出し(RMI over IIOP)から利用できるインタフェースを提供しています。リモートメソッドを呼び出すプログラミング例は、プログラミングガイドを参照してください。

WfMCは、ワークフロークライアントアプリケーションのためのWAPI (Workflow Application Programming Interface) を規定しています。 Nauticaが提供するAPIとの対応表を以下に示します。

No Nautica提供インタフェース WAPI 機能説明
1 connect() WMConnect ワークフローエンジンへの接続
2 disconnect() WMDisconnect ワークフローエンジンとの切断

No Nautica提供インタフェース WAPI 機能説明
3 getProcessDefinitions() WMOpenProcessDefinitionsList プロセス定義一覧のオープン
4 getProcessDefinitionStates() WMOpenProcessDefinitionStatesList プロセス定義状態一覧のオープン
5 changeProcessDefinitionState() WMChangeProcessDefinitionState プロセス定義状態の変更
6 createProcess() WMCreateProcessInstance プロセスインスタンスの生成
7 startProcess() WMStartProcess プロセスの開始
8 terminateProcess() WMTerminateProcessInstance プロセスの停止
9 getProcessStates() WMOpenProcessInstanceStatesList プロセスインスタンス状態一覧のオープン
10 changeProcessState() WMChangeProcessInstanceState プロセスインスタンス状態の変更
11 getProcessAttributes() WMOpenProcessInstanceAttributesList プロセスインスタンス属性一覧のオープン
12 getProcessAttributeValue() WMGetProcessInstanceAttributeValue プロセスインスタンス属性の属性値の取得
13 assignProcessAttribute() WMAssignProcessInstanceAttribute プロセスインスタンス属性の割り当て

No Nautica提供インタフェース WAPI 機能説明
14 getActivityStates() WMOpenActivityInstanceStatesList アクティビティインスタンス状態一覧のオープン
15 changeActivityState() WMChangeActivityInstanceState アクティビティインスタンス状態の変更
16 getActivityAttributes() WMOpenActivityInstanceAttributesList アクティビティインスタンス属性一覧のオープン
17 getActivityAttributeValue() WMGetActivityInstanceAttributeValue アクティビティインスタンス属性の属性値の取得
18 assignActivityAttribute() WMAssignActivityInstanceAttribute アクティビティインスタンス属性の割り当て

No Nautica提供インタフェース WAPI 機能説明
19 getProcesses() WMOpenProcessInstancesList プロセスインスタンス一覧のオープン
20 getProcess() WMGetProcessInstance プロセスインスタンスの取得

No Nautica提供インタフェース WAPI 機能説明
21 getActivities() WMOpenActivityInstancesList アクティビティインスタンス一覧のオープン
22 getActivity() WMGetActivityInstance アクティビティインスタンスの取得

No Nautica提供インタフェース WAPI 機能説明
23 getWorkItems() WMOpenWorkList ワークアイテム一覧のオープン
24 getWorkItem() WMGetWorkItem ワークアイテムの取得
25 completeWorkItem() WMCompleteWorkItem ワークアイテムの完了
26 getWorkItemStates() WMOpenWorkitemStatesList ワークアイテム状態一覧のオープン
27 changeWorkItemState() WMChangeWorkitemState ワークアイテム状態の変更
28 reassignWorkItem() WMReassignWorkItem ワークアイテムの再割り当て
29 getWorkItemAttributes() WMOpenWorkItemAttributesList ワークアイテム属性一覧のオープン
30 getWorkItemAttributeValue() WMGetWorkItemAttributeValue ワークアイテム属性の取得
31 assignWorkItemAttribute() WMAssignWorkItemAttribute ワークアイテム属性の割り当て

No Nautica提供インタフェース WAPI 機能説明
32 changeProcessesState() WMChangeProcessInstancesState プロセスインスタンス状態の変更
33 changeActivitiesState() WMChangeActivityInstancesState アクティビティインスタンス状態の変更
34 terminateProcesses() WMTerminateProcessInstances プロセスインスタンスの停止
35 assignProcessesAttribute() WMAssignProcessInstancesAttribute プロセスインスタンス属性の割り当て
36 assignActivitiesAttribute() WMAssignActivityInstancesAttribute アクティビティインスタンス属性の割り当て
37 abortProcesses() WMAbortProcessInstances 複数のプロセスインスタンスの中断
38 abortProcess() WMAbortProcessInstance プロセスインスタンスの中断

No Nautica提供インタフェース WAPI 機能説明
39 invokeApplication() WMTAInvokeApplication アプリケーションの起動
40 requestAppStatus() WMTARequestAppStatus アプリケーション状態の要求
41 terminateApplication() WMTATerminateApp アプリケーションの停止

WfMCドキュメント(WFMC-TC-1012 Ver2.0b)に機能的に準拠します。 このドキュメントではAPIの名称を定義していないので機能を記述している章番号を下表に示します。

No Nautica提供インタフェース WAPI 機能説明
42 changeProcessState() 6.2.1 Change Process Instance State プロセスインスタンス状態の変更
43 createProcess() 6.2.2 Create Process Instance プロセスインスタンスの生成
44 getProcessAttributes() 6.2.3 Get Process Instance Attributes プロセスインスタンス属性の取得
45 getProcessState() 6.2.4 Get Process Instance State プロセスインスタンス状態の取得
46 processAttributesChanged() 6.2.5 Process Instance Attributes Changed プロセスインスタンス属性の変更通知
47 processStateChanged() 6.2.6 Process Instance State Changed プロセスインスタンス状態の変更通知
48 setProcessAttributes() 6.2.7 Set Process nstance Attributes プロセスインスタンス属性の設定
49 triggerActivity() 6.2.8 Trigger Activity アクティビティに対するトリガー
50 getProcessIDs() 6.2.9 List Process Instances プロセスインスタンス一覧の取得
51 relinquishProcess() 6.2.10 Relinquish Process Instance プロセスインスタンスの放棄


※Nauticaでは上記APIによって必要機能を提供しており、以下のWAPIは実装していません。
WMFetchProcessDefinitionWMCloseProcessDefinitionsList
WMFetchProcessDefinitionStateWMCloseProcessDefinitionStatesList
WMFetchProcessInstanceStateWMCloseProcessInstanceStatesList
WMFetchProcessInstanceAttributeWMCloseProcessInstanceAttributesList
WMFetchActivityInstanceStateWMCloseActivityInstanceStatesList
WMFetchActivityInstanceAttributeWMCloseActivityInstanceAttributesList
WMFetchProcessInstanceWMCloseProcessInstancesList
WMFetchActivityInstanceWMCloseActivityInstancesList
WMFetchWorkItemWMCloseWorkList
WMFetchWorkitemStateWMCloseWorkitemStatesList
WMFetchWorkItemAttributeWMCloseWorkItemAttributesList
WMTAConnectWMTADisconnect

Nauticaサービス

Nauticaは、ワークフローエンジンの各APIをSOAPベースのWebサービスとして提供しています。

Nauticaサービスは、Axisエンジン上のWebサービスとして動作します。Axisは、SOAP形式のデータを処理するためのフレームワークです。SOAPは、Webサービスでデータをやり取りするための通信プロトコルの1つです。AxisやSOAPに関する詳細は Apache Axisサイト を参照してください。

ワークフローエンジンの各APIをWebサービスとして利用するためには、Axisライブラリを含むWebアプリケーションを、Tomcat上にデプロイする必要があります。詳しくは、Nauticaサービス設定を参照してください。

Nauticaサービスが提供する機能やその利用方法は、WSDL(Web Services Description Language)に記述されます。Nauticaサービスを利用してクライアントアプリケーションを作る場合、AxisのWSDL2Javaツールを使用します。WSDL2Javaツールは、Webサービスに接続するためのJavaソースコードを出力します。詳しくは Apache Axisサイトを参照してください。

Nauticaサービスを呼び出すプログラミング例は、プログラミングガイドを参照してください。

Nauticaサービスとその提供機能を以下に示します。

サービス名WAPI機能
WorkflowServiceConnector サービス 接続機能
DefinitionRepository サービス プロセス制御機能(プロセス定義操作のみ)
WorkflowEngineHandler サービス プロセス制御機能(プロセス定義操作をのぞく)
アクティビティ制御機能
プロセス状態関連機能
アクティビティ状態関連機能
WorkItemHandler サービス ワークアイテム関連機能
WorkflowAdminHandler サービス 管理関連機能
サーブレット

Nauticaは、ワークフローエンジンの各API呼び出し部分を実装したServlet (以下 Nauticaサーブレット) を提供しています。

Nauticaサーブレットは、Webアプリケーション開発者が定義するHttpServletクラスでインクルード (include) されます。Nauticaサーブレットとのデータの受け渡しは HttpServletRequest オブジェクトのサーブレット属性を使用します。Nauticaサーブレットをインクルードする手順は以下のとおりです。

  1. HttpServletRequestのサーブレット属性に必要なデータを設定
  2. Nauticaサーブレットをインクルード
  3. HttpServletRequestから実行結果を取得 (実行結果が取得可能な場合)

Nauticaサーブレットを呼び出すHttpServletクラスのプログラミング例は、プログラミングガイドを参照してください。

Nauticaサーブレットの一覧を以下に示します。

No サーブレット名
(WAPI機能名)
サーブレット属性キー名(設定する値/クラス名) 結果取得キー名(取得する値/クラス名)
1 ConnectServlet
(WMConnect)
NWF_USER(ユーザ名)
NWF_PASSWORD(パスワード)
NWF_CONNECT_RESULT
(セッションID)
2 DisconnectServlet
(WMDisconnect)
NWF_SESSION(セッションID) なし

No サーブレット名
(WAPI機能名)
サーブレット属性キー名(設定する値/クラス名) 結果取得キー名(取得する値/クラス名)
3 GetProcessDefinitionsServlet
(WMOpenProcessDefinitionsList)
NWF_SESSION(セッションID)
NWF_GET_PROCESS_DEFINITIONS_FILTER(Filter)
NWF_GET_PROCESS_DEFINITIONS_RESULT
(ProcessDefinitionの配列)
4 GetProcessDefinitionStatesServlet
(WMOpenProcessDefinitionStatesList)
NWF_SESSION(セッションID)
NWF_PROCESS_DEFINITION_ID(プロセス定義ID)
NWF_GET_PROCESS_DEFINITION_STATES_RESULT
(ProcessDefinitionStateの配列)
5 ChangeProcessDefinitionStateServlet
(WMChangeProcessDefinitionState)
NWF_SESSION(セッションID)
NWF_PROCESS_DEFINITION_ID(プロセス定義ID)
NWF_PROCESS_DEFINITION_STATE(ProcessDefinitionState)
なし
6 CreateProcessServlet
(WMCreateProcessInstance)
NWF_SESSION(セッションID)
NWF_PROCESS_DEFINITION_ID(プロセス定義ID)
NWF_PROCESS_INSTANCE_NAME(プロセスインスタンス名)
NWF_CREATE_PROCESS_RESULT
(プロセスインスタンスID)
7 StartProcessServlet
(WMStartProcess)
NWF_SESSION(セッションID)
NWF_PROCESS_INSTANCE_ID(プロセスインスタンスID)
NWF_START_PROCESS_RESULT
(プロセスインスタンスID)
8 TerminateProcessServlet
(WMTerminateProcessInstance)
NWF_SESSION(セッションID)
NWF_PROCESS_INSTANCE_ID(プロセスインスタンスID)
なし
9 GetProcessStatesServlet
(WMOpenProcessInstanceStatesList)
NWF_SESSION(セッションID)
NWF_PROCESS_INSTANCE_ID(プロセスインスタンスID)
NWF_GET_PROCESS_STATES_FILTER(Filter)
NWF_GET_PROCESS_STATES_RESULT
(ProcessStateの配列)
10 ChangeProcessStateServlet
WMChangeProcessInstanceState
NWF_SESSION(セッションID)
NWF_PROCESS_DEFINITION_ID(プロセス定義ID)
NWF_CHANGE_PROCESSES_STATE_FILTER(Filter)
NWF_PROCESS_STATE(ProcessState)
なし
11 GetProcessAttributesServlet
WMOpenProcessInstanceAttributesList
NWF_SESSION(セッションID)
NWF_PROCESS_INSTANCE_ID(プロセスインスタンスID
NWF_GET_PROCESS_ATTRIBUTES_FILTER(Filter)
NWF_GET_PROCESS_ATTRIBUTES_RESULT
(Attributeの配列)
12 GetProcessAttributeValueServlet
(WMGetProcessInstanceAttributeValue)
NWF_SESSION(セッションID)
NWF_PROCESS_INSTANCE_ID(プロセスインスタンスID)
NWF_ATTRIBUTE_NAME(属性名)
NWF_GET_PROCESS_ATTRIBUTE_VALUE_RESULT
(Attribute)
13 AssignProcessAttributeServlet
(WMAssignProcessInstanceAttribute)
NWF_SESSION(セッションID)
NWF_PROCESS_INSTANCE_ID(プロセスインスタンスID)
NWF_ATTRIBUTE(Attribute)
なし

No サーブレット名
(WAPI機能名)
サーブレット属性キー名(設定する値/クラス名) 結果取得キー名(取得する値/クラス名)
14 GetActivityStatesServlet
(WMOpenActivityInstanceStatesList)
NWF_SESSION(セッションID)
NWF_PROCESS_INSTANCE_ID(プロセスインスタンスID)
NWF_ACTIVITY_INSTANCE_ID(アクティビティインスタンスID)
NWF_GET_ACTIVITY_STATES_FILTER(Filter)
NWF_GET_ACTIVITY_STATES_RESULT
(ActivityStateの配列)
15 ChangeActivityStateServlet
(WMChangeActivityInstanceState)
NWF_SESSION(セッションID)
NWF_PROCESS_INSTANCE_ID(プロセスインスタンスID)
NWF_ACTIVITY_INSTANCE_ID(アクティビティインスタンスID)
NWF_ACTIVITY_STATE(ActivityState)
なし
16 GetActivityAttributesServlet
(WMOpenActivityInstanceAttributesList)
NWF_SESSION(セッションID)
NWF_PROCESS_INSTANCE_ID(プロセスインスタンスID)
NWF_ACTIVITY_INSTANCE_ID(アクティビティインスタンスID)
NWF_GET_ACTIVITY_ATTRIBUTES_FILTER(Filter)
NWF_GET_ACTIVITY_ATTRIBUTES_RESULT
(Attributeの配列)
17 GetActivityAttributeValueServlet
(WMGetActivityInstanceAttributeValue)
NWF_SESSION(セッションID)
NWF_PROCESS_INSTANCE_ID(プロセスインスタンスID)
NWF_ACTIVITY_INSTANCE_ID(アクティビティインスタンスID)
NWF_ATTRIBUTE_NAME(属性名)
NWF_GET_ACTIVITY_ATTRIBUTE_VALUE_RESULT
(Attribute)
18 AssignActivityAttributeServlet
(WMAssignActivityInstanceAttribute)
NWF_SESSION(セッションID)
NWF_PROCESS_INSTANCE_ID(プロセスインスタンスID)
NWF_ACTIVITY_INSTANCE_ID(アクティビティインスタンスID)
NWF_ATTRIBUTE(Attribute)
なし

No サーブレット名
(WAPI機能名)
サーブレット属性キー名(設定する値/クラス名) 結果取得キー名(取得する値/クラス名)
19 GetProcessesServlet
(WMOpenProcessInstancesList)
NWF_SESSION(セッションID)
NWF_GET_PROCESSES_FILTER(Filter)
NWF_GET_PROCESSES_RESULT
(Processの配列)
20 GetProcessServlet
(WMGetProcessInstance)
NWF_SESSION(セッションID)
NWF_PROCESS_INSTANCE_ID(プロセスインスタンスID)
NWF_GET_PROCESS_RESULT
(Process)

No サーブレット名
(WAPI機能名)
サーブレット属性キー名(設定する値/クラス名) 結果取得キー名(取得する値/クラス名)
21 GetActivitiesServlet
(WMOpenActivityInstancesList)
NWF_SESSION(セッションID)
NWF_GET_ACTIVITIES_FILTER(Filter)
NWF_GET_ACTIVITIES_RESULT
(Activityの配列)
22 GetActivityServlet
(WMGetActivityInstance)
NWF_SESSION(セッションID)
NWF_PROCESS_INSTANCE_ID(プロセスインスタンスID)
NWF_ACTIVITY_INSTANCE_ID(アクティビティインスタンスID)
NWF_GET_ACTIVITY_RESULT
(Activity)

No サーブレット名
(WAPI機能名)
サーブレット属性キー名(設定する値/クラス名) 結果取得キー名(取得する値/クラス名)
23 GetWorkItemsServlet
(WMOpenWorkList)
NWF_SESSION(セッションID)
NWF_GET_WORK_ITEMS_FILTER(Filter)
NWF_GET_WORK_ITEMS_RESULT
(WorkItemの配列)
24 GetWorkItemServlet
(WMGetWorkItem)
NWF_SESSION(セッションID)
NWF_WORKITEM_ID(ワークアイテムID)
NWF_GET_WORK_ITEM_RESULT
(WorkItem)
25 CompleteWorkItemServlet
(WMCompleteWorkItem)
NWF_SESSION(セッションID)
NWF_WORKITEM_ID(ワークアイテムID)
なし
26 GetWorkItemStatesServlet
(WMOpenWorkitemStatesList)
NWF_SESSION(セッションID)
NWF_WORKITEM_ID(ワークアイテムID)
NWF_GET_WORK_ITEM_STATES_FILTER(Filter)
NWF_GET_WORK_ITEM_STATES_RESULT
(WorkItemStateの配列)
27 ChangeWorkItemStateServlet
(WMChangeWorkitemState)
NWF_SESSION(セッションID)
NWF_WORKITEM_ID(ワークアイテムID)
NWF_WORKITEM_STATE(WorkItemState)
なし
28 ReassignWorkItemServlet
(WMReassignWorkItem)
NWF_SESSION(セッションID)
NWF_SOURCE_USER(Participant)
NWF_TARGET_USER(Participant)
NWF_WORKITEM_ID(ワークアイテムID)
なし
29 GetWorkItemAttributesServlet
(WMOpenWorkItemAttributesList)
NWF_SESSION(セッションID)
NWF_WORKITEM_ID(ワークアイテムID)
NWF_GET_WORK_ITEM_ATTRIBUTES_FILTER(Filter)
NWF_GET_WORK_ITEM_ATTRIBUTES_RESULT
(Attributeの配列)
30 GetWorkItemAttributeValueServlet
(WMGetWorkItemAttributeValue)
NWF_SESSION(セッションID)
NWF_WORKITEM_ID(ワークアイテムID)
NWF_ATTRIBUTE_NAME(属性名)
NWF_GET_WORK_ITEM_ATTRIBUTE_VALUE_RESULT
(Attribute)
31 AssignWorkItemAttributeServlet
(WMAssignWorkItemAttribute)
NWF_SESSION(セッションID)
NWF_WORKITEM_ID(ワークアイテムID)
NWF_ATTRIBUTE(Attribute)
なし

No サーブレット名
(WAPI機能名)
サーブレット属性キー名(設定する値/クラス名) 結果取得キー名(取得する値/クラス名)
32 ChangeProcessesStateServlet
(WMChangeProcessInstancesState)
NWF_SESSION(セッションID)
NWF_PROCESS_DEFINITION_ID(プロセス定義ID)
NWF_CHANGE_PROCESSES_STATE_FILTER(Filter)
NWF_PROCESS_STATE(ProcessState)
なし
33 ChangeActivitiesStateServlet
(WMChangeActivityInstancesState)
NWF_SESSION(セッションID)
NWF_PROCESS_DEFINITION_ID(プロセス定義ID)
NWF_ACTIVITY_DEFINITION_ID(アクティビティ定義ID)
NWF_CHANGE_ACTIVITIES_STATE_FILTER(Filter)
NWF_ACTIVITY_STATE(ActivityState)
なし
34 TerminateProcessesServlet
(WMTerminateProcessInstances)
NWF_SESSION(セッションID)
NWF_PROCESS_DEFINITION_ID(プロセス定義ID)
NWF_TERMINATE_PROCESSES_FILTER(Filter
なし
35 AssignProcessesAttributeServlet
(WMAssignProcessInstancesAttribute)
NWF_SESSION(セッションID)
NWF_PROCESS_DEFINITION_ID(プロセス定義ID)
NWF_ASSIGN_PROCESSES_ATTRIBUTE_FILTER(Filter)
NWF_ATTRIBUTE(Attribute)
なし
36 AssignActivitiesAttributeServlet
(WMAssignActivityInstancesAttribute)
NWF_SESSION(セッションID)
NWF_PROCESS_DEFINITION_ID(プロセス定義ID)
NWF_ACTIVITY_DEFINITION_ID(アクティビティ定義ID)
NWF_ASSIGN_ACTIVITIES_ATTRIBUTE_FILTER(Filter)
NWF_ATTRIBUTE(Attribute)
なし
37 AbortProcessesServlet
(WMAbortProcessInstances)
NWF_SESSION(セッションID)
NWF_PROCESS_DEFINITION_ID(プロセス定義ID)
NWF_ABORT_PROCESSES_FILTER(Filter
なし
38 AbortProcessServlet
(WMAbortProcessInstance)
NWF_SESSION(セッションID)
NWF_PROCESS_INSTANCE_ID(プロセスインスタンスID)
なし