IM-BPM for Accel Platform IM-BPM 仕様書 第18版 2024-04-01

4.3. プロセス

プロセスについて説明します。

4.3.1. プロセス定義

業務プロセスの定義した単位を指します。
BPMN2.0により記述されたダイアグラム図およびその実行に必要な情報を含みます。

4.3.1.1. プロセス定義キー

業務プロセスに対し付与されたキーです。
プロセス定義キーは複数のバージョンのプロセス定義を跨って一意です。

4.3.1.2. バージョニング

業務プロセスは複数のバージョンを持ちます。
同一のプロセス定義キーは、同一プロセス定義とみなし新しいプロセス定義がデプロイされたタイミングで新しいバージョンとして登録されます。
バージョンを指定せず業務プロセスを開始する場合は常に最新バージョンが実行されます。

4.3.1.3. プロセス定義ID

デプロイされたプロセス定義に対し一意に割り当てられるIDです。
プロセス定義IDはデプロイ時に決定されるため任意のIDを割り当てることは出来ません。
プロセス定義IDのフォーマットは {プロセス定義キー}:{バージョン番号}:{自動採番されたID} です。
このプロセス定義IDは主にAPI等を利用して業務プロセスを開始させる場合に利用されます。

4.3.1.4. プロセス定義名

プロセス定義を表す名称です。

注意

プロセス定義の多言語化に関して

プロセス定義名は単一の項目として扱います。
その為、多言語化には対応していません。

4.3.1.5. カテゴリ

プロセス定義をカテゴライズするために利用します。
カテゴリはBPMN2.0(XML)内で名前空間として利用されます、その為URI形式で設定することを推奨します。
例: http://www.intra_mart.jp/bpmn/MY_CATEGORY

注意

カテゴリの多言語化に関して

カテゴリは単一の項目です。
その為、多言語化には対応していません。

4.3.1.6. 状態

プロセス定義は以下の状態を持ちます。
  • 有効
  • 無効
無効状態のプロセス定義は新規に業務プロセスの開始は行えません。
既に実行中の業務プロセスは処理を行うことができます。

4.3.1.7. 権限

プロセス定義は、そのプロセス定義を開始可能な権限情報を持ちます。
権限は、以下の2種類の設定が行えます。
  • ロール
  • ユーザコード
それぞれの権限は、OR条件にて判断されます。
また、権限はカンマにより区切ることにより複数設定可能です。

4.3.2. プロセスインスタンス

プロセス定義を元とし、実行されたインスタンスを指します。
一つのプロセス定義につき複数のプロセスインスタンスが存在します。
プロセスインスタンスの実行元となるプロセス定義およびそのバージョンは固定です。
プロセス定義(バージョンを含む)を元に実行されたプロセスインスタンスは終了するまで同じプロセス定義、バージョンで実行されます。

コラム

後述するプロセスマイグレーション機能を利用することにより実行中のプロセスインスタンスを別バージョンに移行できます。

4.3.2.1. プロセスインスタンスID

プロセスインスタンスに付与されるIDです。
日付をベースとした一意となるIDが付与されます。

注意

プロセスインスタンスIDの採番方法を別の方法に変更することは出来ません。

4.3.2.2. 業務キー

プロセスインスタンスに付与可能な一意となるキーです。
プロセスインスタンスIDが自動的に採番されるIDであるのに対して、業務キーは任意のキーを設定できます。
以下の方法により業務キーを登録できます。
  • プロセス開始時の確認ダイアログでの入力
  • 開始イベントに設定したIM-FormaDesignerのアプリケーションにて、フィールド識別IDを bpm_business_key とした画面アイテムでの入力
  • APIによる登録

コラム

プロセス開始時の確認ダイアログでの入力については、プロセス定義の設定により入力有無を変更できます。
業務キーの入力有無の設定に関しては、「IM-BPM プロセスデザイナ 操作ガイド」を参照してください。

4.3.2.3. 変数

プロセスインスタンスは、その業務プロセスで利用される任意の変数を格納できます。
変数として利用可能な型は以下の通りです。
  • string

    文字列です、4000バイト以内の文字列の場合は、一覧画面等から検索として利用できます。
    4000バイトを超えた場合には、データベース上のBLOBカラムに格納される為検索を行うことは出来ません。
  • integer

    数値型です。
    java.lang.Integer型に相当します。
  • short

    数値型です。
    java.lang.Short型に相当します。
  • long

    数値型です。
    java.lang.Long型に相当します。
  • double

    数値型です。
    java.lang.Double型に相当します。
  • boolean

    数値型です。
    java.lang.Boolean型に相当します。
  • date

    日付型です。
    java.util.Date型に相当します。
  • serializable

    上記データ型に該当しない場合には、serializableとみなし扱われます。
    このデータ型の場合、変数を用いた検索には利用できません。
    java.io.Serializableインタフェースを実装したデータ型のみ格納できます。

4.3.2.4. 変数スコープ

変数は2種類のスコープを持ちます。
  • プロセスインスタンス

    プロセスインスタンス内からアクセス可能なスコープです。
    主に、アクティビティ間でのデータの受け渡し等が必要となる場合にはこのスコープを利用します。
  • タスク

    タスク、アクティビティに閉じたスコープの変数です。
    特定のアクティビティの実行結果等を永続化する場合等に利用します。

注意

変数の数に関して

変数に上限は存在しませんが、変数の内容はデータベース上に格納されます。
変数が多い場合、レコード数が相対的に増えるためパフォーマンスに影響を与える可能性があります。
変数が多い場合には業務で利用されるキーのみを変数として扱う、または複数の変数を直列化可能なjava.util.Map型等のオブジェクトに格納しserializable型の変数として扱う等の検討を行ってください。

4.3.2.5. 履歴

プロセスインスタンスの実行履歴です。
履歴は全てデータベースに永続化されます。
履歴には、以下の5種類が存在します。
  • プロセスインスタンス履歴

    プロセスインスタンス自身の開始、終了に関する履歴です。
  • 変数履歴

    プロセスインスタンス変数、またはタスク変数操作に関する履歴です。
    常に最新の変数情報の履歴のみが永続化されています。
  • アクティビティ履歴

    プロセスに含まれるアクティビティに関する履歴です。
    アクティビティに対する到着時間と処理完了までの間隔等が保存されています。
  • タスク履歴

    ユーザタスク、またはワークフロー連携タスクに関する履歴です。
    タスクに対する処理者、到着時間と処理完了までの間隔等が保存されています。
  • 詳細履歴

    変数履歴と違い、変数に対する操作を含めた全ての履歴です。
    この詳細履歴はデフォルトの設定では無効です。
    この履歴は非常にレコード数が膨大となるため、運用環境等では注意が必要です。

コラム

履歴は、設定ファイルによる履歴レベル設定により内容が変化します。
履歴は”none”, “activity”, “audit”(デフォルト), “full”の設定が可能です。
履歴に”none”、”activity”を設定した場合、一部の画面からその履歴情報が閲覧できなくなるため注意が必要です。

注意

2016 Summer(Nirvana)時点では、audit以外の履歴レベルでは一部の画面が正常に表示できません。
その為、履歴レベルの変更は行わないでください。

4.3.2.6. 関係者

プロセスインスタンス内のタスク等を処理したユーザは、プロセスインスタンスの関係者として記録されます。
プロセスインスタンスの関係者は、タスクの処理履歴、プロセスインスタンスの履歴等に対して参照が行えます。

コラム

関係者の権限の詳細は、「関係者権限」 を参照してください。