例: 非構造化 (アドホック) アクティビティーの開始 (JavaScript API)

以下の例では、非構造化 (アドホック) アクティビティーを開始する方法を示します。

開始前に

非構造化アクティビティーを開始するには、ユーザーが以下のいずれかのグループのメンバーでなければなりません。
  • BPM 管理者
  • プロセス/ケース管理者
  • プロセス/ケース・インスタンス所有者
  • 該当のレーンのデフォルトのレーン・チーム
非構造化アクティビティーが開始された場合にのみ、REST API によって許可検査が実行されます。

手順

非構造化 (アドホック) アクティビティーを開始するには、以下のステップを実行します。

  1. TWProcessInstance オブジェクト上の一致する非構造化アクティビティーとその ID のリストを取得します。
    ActivityListItem オブジェクトには、現行ユーザー (retrieveActivityList() 呼び出しを実行したユーザー) が使用可能なアクションおよびアクティビティーの ID のリストがあります。 プロセスおよびサービス・フローでのJavaScript APITWProcessInstance オブジェクトの説明を参照してください。
    • 非表示アクティビティーを取得するように 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')
  2. 非構造化アクティビティーの ID を取得したら、 findActivityInstanceByID() 呼び出しを使用してアクティビティーのインスタンスを取得します。 次に、 start(...) を呼び出してインスタンスを開始します。
    プロセスおよびサービス・フローでのJavaScript APITWBPDSystemNamespace オブジェクトの説明を参照してください。 オプション・パラメーター taskOwnerUserId は、指定のユーザー ID にタスクを再割り当てします。 この機能は、ユーザー・タスク実装を持つ非構造化アクティビティーの場合にのみ動作します。 プロセスおよびサービス・フローでのJavaScript APIActivityInstance オブジェクトの説明を参照してください。
    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();