マルチサーバ環境でアプリケーションを作成する場合は,以下に示す説明をお読みください。シングルサーバ環境では,特にお読みいただく必要はありません。
Groupmax Workflow - Library Extensionには,以下に示す4種類のセションがあります。
セション分類 | セション種別 | セションを生成する関数又はメソッド |
---|---|---|
メインセション | Workflow管理サーバとのセション |
|
サブセション | 各ユーザのホームサーバとのセション |
|
ビジネスプロセス定義の登録サーバとのセション |
| |
ロールの登録サーバとのセッション |
|
Groupmax Workflow - Library Extensionを使用するときは,まずGroupmax Workflow管理サーバと接続します。
メインセションは,Groupmax Workflow - Library Extensionの使用開始時にWorkflow管理サーバと接続したときに生成されます。サブセションは,上記の「セションを生成する関数又はメソッド」で表示するAPI関数又はOCXメソッドによって,必要に応じて生成されます。
HwfAdCleanUp関数(WFadCleanUpメソッド)を発行して,メインセションを終了します。このとき,そのメインセションで生成されているサブセションもすべて終了します。
各関数又はメソッドは,表7-3で示す実行サーバで実行します。
関数又はメソッドの発行前に,実行サーバとのセションを生成してください。
また,Groupmax Workflow管理サーバ以外のサーバで実行される関数又はメソッドは,接続した時点が最も後のサーバに対して要求されます。
このため,マルチサーバ環境でビジネスプロセス定義やユーザの操作,ロールを操作する場合,操作対象のビジネスプロセス定義の登録サーバ,ユーザのホームサーバ,ロールの登録サーバに対して,操作の直前にHwfAdConnectBp関数(WFadConnectBpメソッド)又はHwfAdConnectUser関数(WFadConnectUserメソッド),HwfAdConnectRole関数(WFadConnectRoleメソッド)を発行してください(API関数を使用する場合)。
例えば,あるユーザのホームサーバに接続した後,別のユーザのホームサーバに接続する場合を考えてみます。その場合,HwfAdConnectUser関数(WFadConnectUserメソッド)を発行してあるユーザのホームサーバに接続した後,別のユーザに対してHwfAdConnectUser関数(WFadConnectUserメソッド)を発行します。
そのときに,先に接続したユーザのホームサーバと後から接続するユーザのホームサーバが異なるサーバであれば,先に接続したユーザのホームサーバとの接続が切断され,後から接続するユーザのホームサーバと接続されます。その状態で,先に接続したユーザのユーザトレー中の案件を参照したり,ヒストリを参照したりすると,指定したユーザが見つからないエラーが発生します。そのため,ユーザを操作したり,ユーザトレー中の案件を操作したりするときは,必ず目的のユーザに対してHwfAdConnectUser関数(WFadConnectUserメソッド)を発行してユーザのホームサーバに接続してから,操作してください。
また,例えば,あるユーザのホームサーバに接続した後,あるビジネスプロセス定義やロールを操作しようとした場合を考えてみます。その場合,HwfAdConnectUser関数(WFadConnectUserメソッド)であるユーザのホームサーバに接続した後,あるビジネスプロセス定義やロールを操作しようとしてHwfAdConnectBp関数(WFadConnectBpメソッド),HwfAdConnectRole関数(WFadConnectRoleメソッド)を発行します。そのときに,ユーザのホームサーバとビジネスプロセス定義の登録サーバやロールの登録サーバが異なるサーバであれば,関数又はメソッドはビジネスプロセス定義の登録サーバやロールの登録サーバに対して要求されます。したがって,その後でユーザを操作しようとしても正常に処理できません。
その場合は,再びユーザに対してHwfAdConnectUser関数(WFadConnectUserメソッド)を発行する必要があります。
表7-3 関数及びメソッドの実行サーバ
区分 | 関数名称 | メソッド名称 | 処理サーバ | ||||
---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | |||
セション管理 | HwfAdStartUp | WFadStartUp | ○ | ||||
HwfAdCleanUp | WFadCleanUp | ○ | |||||
HwfAdConnectHome | WFadConnectHome | ○ | ○ | ○ | ○ | ○ | |
ユーザ,組織操作機能 | HwfAdConnectUser | WFadConnectUser | ○ | ||||
HwfAdGetOrganizationList | WFadGetOrganizationList | ○ | |||||
HwfAdGetUserListFromOrgan | WFadGetUserListFromOrgan | ○ | |||||
HwfAdGetUserHistory | WFadGetuserHistory | ○ | |||||
HwfAdDeleteUserHistory | WFadDeleteUserHistory | ○ | |||||
HwfAdGetUserListFromRole | WFadGetUserListFromRole | ○ | |||||
ビジネスプロセス定義操作機能 | HwfAdConnectBp | WFadConnectBp | ○ | ||||
HwfAdCreateBpList | WFadCreateBpList | ○ | |||||
HwfAdSelectBpList | WFadSelectBpList | ○ | |||||
HwfAdGetBpList | WFadGetBpList | ○ | |||||
HwfAdGetBpOperationList | WFadGetBpOperationList | ○ | |||||
ロール操作機能 | HwfAdConnectRole | WFadConnectRole | ○ | ||||
HwfAdCreateRoleList | WFadCreateRoleList | ○ | |||||
HwfAdSelectRoleList | WFadSelectRoleList | ○ | |||||
HwfAdGetRoleList | WFadGetRoleList | ○ | |||||
HwfAdAddUserToRole | WFadAddUserToRole | ○ | |||||
HwfAdDeleteUserFromRole | WFadDeleteUserFromRole | ○ | |||||
ワーク操作機能 | HwfAdCreateWorkList | WFadCreateWorkList | ○ | ||||
HwfAdSelectWorkList | WFadSelectWorkList | ○ | |||||
HwfAdGetWorkList | WFadGetWorkList | ○ | |||||
HwfAdGetWorkHistory | WFadGetWorkHistory | ○ | |||||
HwfAdCancelWork | WFadCancelWork | ○ | |||||
HwfAdSetWorkPriority | WFadSetWorkPriority | ○ | |||||
HwfAdSetWorkTerm | WFadSetWorkTerm | ○ | |||||
HwfAdSuspendWork | WFadSuspendWork | ○ | |||||
HwfAdResumeWork | WFadResumeWork | ○ | |||||
案件操作機能 | HwfAdCreateCaseList | WFadCreateCaseList | ○※1 | ○※2 | |||
HwfAdSelectCaseList | WFadSelectCaseList | ○ | ○ | ||||
HwfAdGetCaseList | WFadGetCaseList | ○ | ○ | ||||
HwfAdSetCaseNextUser | WFadSetCaseNextUser | ○ | ○ | ||||
HwfAdCaseNext | WFadCaseNext | ○ | ○ | ||||
HwfAdCaseToUser | WFadCaseToUser | ○ | ○ | ||||
HwfAdGetCaseAttribute | WFadGetCaseAttribute | ○ | ○ | ||||
HwfAdSetCaseAttribute | WFadSetCaseAttribute | ○ | ○ | ||||
HwfAdFailedCaseToUser | WFadFailedCaseToUser | ○ | ○ | ||||
HwfAdCaseToRole | WFadCaseToRole | ○ | |||||
HwfAdCaseFromRole | WFadCaseFromRole | ○ | |||||
オブジェクト操作機能 | HwfAdGetObject | WFadGetObject | ○※1 | ○※3 | ○※4 | ||
HwfAdSetObject | WFadSetObject | ○※1 | ○※3 | ||||
リスト操作機能 | HwfAdDeleteList | WFadDeleteList | |||||
HwfAdCreateSortList | WFadCreateSortList |
なお,クライアント管理者ライブラリでは,一つのアプリケーション(プロセス)で一つのメインセションを使用できます。サーバ管理者ライブラリでは,一つのアプリケーション(プロセス)で複数のサブセションを使い分けることができます。
Groupmax Workflow - Library Extensionは,運用モニタ(Groupmax Workflow Monitor)やビジュアル定義(Groupmax Workflow Definer)と同様の管理者セションを使用しています。同時ログインユーザ数に制限はありませんが,管理者セションはサーバの資源を消費するため,使用後は早めにセションを終了してください。
また,HwfAdStartUp関数で管理サーバとのセションを生成した場合は,必ずHwfAdCleanUp関数で管理サーバとのセションを解放してください。
WindowsマシンでLoadLibrary関数を使って,Workflow Library Extensionを使用する場合は特に注意してください。セションが生成されている状態でFreeLibrary関数を使って,Groupmax Workflow Library ExtensionのDLLを切り離してもセションは解放されません。必ずHwfAdCleanUp関数を発行してからFreeLibrary関数を使用するようにしてください。
Groupmax Workflow - Library Extensionでは,ビジネスプロセス定義,ワーク,案件,及びロールについて,一覧リストを作成できます。
一覧リストを作成する関数又はメソッドを以下に示します。
一覧リスト種別 | 一覧リストを作成する関数又はメソッド |
---|---|
ビジネスプロセス定義一覧リスト |
|
ワーク一覧リスト |
|
案件一覧リスト |
|
ロール一覧リスト |
|
一覧リストの要素数が多く,それぞれのオブジェクト属性値の取得に時間が掛かると判断できる場合や,一覧表示が1画面に収まらないで操作しにくい場合は,一覧リストを検索する関数又はメソッドを使用して絞り込み検索ができます。
一覧リストを検索する関数又はメソッドを以下に示します。
一覧リスト種別 | 一覧リストを検索する関数又はメソッド |
---|---|
ビジネスプロセス定義一覧リスト |
|
ワーク一覧リスト |
|
案件一覧リスト |
|
ロール一覧リスト |
|
また,一覧リストから属性値をソートして取得する場合,まず,HwfAdCreateSortList関数(WFadCreateSortListメソッド)を使用してソート済みの一覧リストを作成します。その後で一覧リストから属性値を取得する関数又はメソッドを使用して,属性値を取得します。
一覧リストから属性値を取得する関数又はメソッドを以下に示します。
一覧リスト種別 | 一覧リストから属性値を取得する関数又はメソッド |
---|---|
ビジネスプロセス定義一覧リスト |
|
ワーク一覧リスト |
|
案件一覧リスト |
|
ロール一覧リスト |
|
一覧リストから属性値を取得する場合,一覧リストに含まれているオブジェクトが既に削除されていることがあります。この場合,文字列属性には「*」,数値属性には0がセットされて返却されます。
なお,一覧リストの実体はサーバのメモリ上にあります。したがって,一覧リストを作成したままにしておくとサーバの資源を浪費します。また,一つのセションで作成できる一覧リストの数には上限があります。そのため,一覧リストは必要がなくなったときに,HwfAdDeleteList関数(WFadDeleteListメソッド)で削除してください。