3.10. プロセスの更新

時間が経つにつれてプロセスの要件が変更する場合がありません。プロセスを更新するには、プロセスの更新版をデプロイする必要があります。更新プロセスには、古いプロセスと区別するため更新版の番号がないといけません。既存のプロセスインスタンスがいまだに古いプロセスを必要とする場合があるため、これは必要です。
プロセスを更新する際は必ず、すでに実行中のプロセスインスタンスがどうなるか判断することが重要です。可能性として 3 つあげられます。
  • Proceed: 実行中のプロセスインスタンスは通常どおり進み、プロセスインスタンスの開始時に定義したようにプロセス定義に従います。結果、すでに実行中のインスタンスは、プロセスが更新されていないかのように振る舞います。新規インスタンスは、更新プロセスを使用して開始することができます。
  • Abort (および restart): すでに実行中のインスタンスは中断されます。必要であればプロセスインスタンスは新規プロセス定義を使用して再起動されます。
  • Transfer: プロセスインスタンスは新規プロセス定義に移行されます。つまり正常に移行されると、更新されたプロセスロジックに従い実行が継続されます。詳細は 「プロセスインスタンスの移行」 を参照してください。
デフォルトの動作は、proceed のアプローチを取りますが、同じプロセスが複数バージョンデプロイされることになります。既存のプロセスインスタンスは、そのインスタンスを開始したときに使用したプロセス定義に従い実行を継続します。
バージョン番号は、プロセスインスタンスが使用するプロセス定義のバージョンがどれかを判断できるようにトラッキングする必要があります。プロセスの現在のバージョンは以下で取得できます。
processInstance.getProcess().getVersion()