最後の正常な状態でのエンティティの保持

ビジネス・エンティティをある状態から別の状態に遷移している間にエラーが発生した場合、デフォルトでは、すべての変更がロールバックされて、エンティティは元の状態になります。

適用可能な場合、メンテナンス・オブジェクトは、元の状態にすべてロールバックするのではなく、最後の正常な状態のエンティティを常に保持するように構成できます。この操作は、「セーブポイントの取得」と呼ばれる場合があります。エラーの場合は、正常に開始された最後の状態にエンティティをロールバックし、エラーをメンテナンス・オブジェクトのログに記録します。この方法では、エラーはコール・プロセスに返されず、単にログに記録されることに注意してください。

エラーを適切に記録するロジックは、「遷移エラー」メンテナンス・オブジェクト・プラグイン内にあります。このようなアルゴリズムがメンテナンス・オブジェクトにプラグインされている場合、そのメンテナンス・オブジェクトは「セーブポイント」を実行するとみなされます。

エラーの場合にメンテナンス・オブジェクトが「セーブポイント」を実行した場合でも、状態が一時的にマークされている場合、または「開始」 アルゴリズムのいずれかでエンティティは次の状態に進む必要があると判断した場合、エンティティは正常に開始した最後の状態に保持されません。システムは、これらの条件に一致しない最初の状態までロールバックします。