2016-07-21 11 views
0

アクティビティ: モデル作成後、deploy.ProcessDefinitionが生成されます。そのため、processDefinitionIdは 'Testprocess:1:577504'となります。これがどのように生成されるのか、そしてバージョン番号がどのように役立つのでしょうか。アクティビティのプロセス定義IDの生成

var processEngine: ProcessEngine = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration.buildProcessEngine() 
val repositoryService: RepositoryService = processEngine.getRepositoryService 
val processDefinitions = repositoryService.createProcessDefinitionQuery.deploymentId(577501).list.asScala.toList.map(_.getId) 

RESULT: 
processDefinitions =List(Testprocess:1:577504) 
+0

コードはありますか?あなたが書いたコードを私たちに与えないと、あなたを助けることはできません。問題を診断するのが難しい。 – wheaties

+0

あなたはそのIDが何であるか、それがどのように構築されているか気にする必要はありません。 – biziclop

+0

@wheaties一度コードを確認してください –

答えて

1

多くの人々が反応しましたが、誰もあなたの質問に実際に答えませんでした。 1. IDはどのように生成されますか? ./src/main/java/org/activiti/engine/impl/db/DbIdGenerator.java ./src/main/java/:

IDは、ご使用の構成に応じて、次のクラスのいずれかによって生成されますorg/activiti/engine/impl/persistence/StrongUuidGenerator.java

  1. IDはどのように使用されますか? プロセス展開にIDを使用すると、プロセス定義のバージョンを特定できます。長時間実行されているプロセスは、数ヶ月または数年間生存しており、1つのプロセスの複数のバージョンを同時にアクティブにすることは可能です。一意のIDを持つことにより、正しいサブプロセス(アクティビティと呼ばれる)、リソース、フォーム(フォームキーを使用する場合)が取得されます。

起動時に気を配っていたのが最も最近に展開されたバージョンであれば、コードでプロセスキーを使用できます。これによりバージョンが無視され、最新の展開が開始されます。

これが役に立ちます。 Greg

2

プロセス定義IDにバージョンが含まれているのは、プロセス定義がActivitiエンジンごとにキャッシュされているためです。

1つのエンジンを再デプロイすると、他のエンジンは新しいバージョンがあることを認識しません。したがって、特定のプロセス定義のプロセスインスタンスを開始するときに、このIDを使用してクイックチェックが行われ、それがまだ最新であるかどうかがチェックされます。

関連する問題