以下の例では、非構造化 (アドホック) アクティビティーを開始する方法を示します。
開始前に
非構造化アクティビティーを開始するには、ユーザーが以下のいずれかのグループのメンバーでなければなりません。
- BPM 管理者
- プロセス/ケース管理者
- プロセス/ケース・インスタンス所有者
- 該当のレーンのデフォルトのレーン・チーム
非構造化アクティビティーが開始された場合にのみ、REST API によって許可検査が実行されます。
手順
非構造化 (アドホック) アクティビティーを開始するには、以下のステップを実行します。
-
TWProcessInstance
オブジェクト上の一致する非構造化アクティビティーとその ID のリストを取得します。ActivityListItem
オブジェクトには、現行ユーザー (
retrieveActivityList()
呼び出しを実行したユーザー) が使用可能なアクションおよびアクティビティーの ID のリストがあります。
プロセスおよびサービス・フローでのJavaScript APIの
TWProcessInstance
オブジェクトの説明を参照してください。
- 非表示アクティビティーを取得するように
hiddenFilter
パラメーターを設定します。
checkAuthorization
パラメーターを true
に設定して、現行ユーザーがプロセス・インスタンスまたはケース・インスタンスに対して表示が許可される結果のみを受け取るようにします。
log.info("querying for piid: " + tw.local.piid);
var pi = tw.system.findProcessInstanceByID(tw.local.piid);
log.info("found process instance: " + pi);
var activitiyListProperties = new tw.object.ActivityListProperties();
var activityListFilter = new tw.object.ActivityListFilter();
activityListFilter.executionStateFilter = ["READY"];
activitiyListProperties.filters = new
tw.object.listOf.ActivityListFilter();
activitiyListProperties.filters.insertIntoList(0, activityListFilter);
log.info("querying for activity list ...");
tw.local.activities = pi.retrieveActivityList(activitiyListProperties)
log.info("activities found: " + tw.local.activities);
tw.local.aiid = // get the id of the activity you want to start (and
'actions' contains 'ACTION_START_ACTIVITY')
- 非構造化アクティビティーの ID を取得したら、
findActivityInstanceByID()
呼び出しを使用してアクティビティーのインスタンスを取得します。 次に、 start(...)
を呼び出してインスタンスを開始します。 プロセスおよびサービス・フローでのJavaScript APIの
TWBPDSystemNamespace
オブジェクトの説明を参照してください。 オプション・パラメーター
taskOwnerUserId
は、指定のユーザー ID にタスクを再割り当てします。 この機能は、ユーザー・タスク実装を持つ非構造化アクティビティーの場合にのみ動作します。
プロセスおよびサービス・フローでのJavaScript APIの
ActivityInstance
オブジェクトの説明を参照してください。
log.info("querying for aiid: " + tw.local.aiid);
var ai = tw.system.findActivityInstanceByID(tw.local.aiid);
log.info("starting activity with id: " + tw.local.aiid);
ai.start();