Activiti は有望なビジネス プロセス エンジンであり、多くの組織が Activiti を使用してビジネス プロセス管理システムの開発を開始しています。
私の場合、Activiti を使用して特定のビジネス要件を満たす BPM システムを開発したいと考えていますが、Activiti エンジンの機能は私のビジネス要件の約 70% しかカバーしていません。
追加したいビジネス要件のほとんどは、bpmn 関連ではありません。回避策に取り組み、特定のビジネス要件を追加することにしました。
問題は、Activiti プロセス エンジンの機能を拡張するためにどのような方法が望ましいかということです。
現在、2 つの一般的なオプションがあります。
Activiti のソース コードを直接変更する。ソース コードの実装クラスを直接編集する必要がありますか? そのほうが速くなりますが、新しいバージョンへのアップグレードが難しくなるのではないでしょうか? それとも、いくつかの実装クラスを拡張してラップする必要がありますか? この選択は、予期しない動作につながるのではないでしょうか?
Activiti エンジンを依存関係として使用し、その実装クラスの一部を拡張してラップすることにより、新しい機能を追加します。もう 1 つの選択肢は、完全に独立したデータ モデルを使用して、完全に Activiti エンジンの外部に拡張機能を追加することです。適応するための好ましい方法が何であるかはわかりません。
あなたの意見は何ですか?