自動アクティビティの設計
このパターンを使用してアクションフローを設計し、[Automatic Activity](<../../../ref/lang/auto/Class.Automatic Activity.final.md>)を使用して、自動化されたビジネスロジックをプロセスに追加します。たとえば、以下のような場合です。
-
拡張を使用して外部システムと統合する。外部システムのポーリングの設計の例をご覧ください。
-
エンティティアクションなどを使用して、アプリケーションの動作を変更する。
-
プロセスフローのアクティビティを管理する、またはプロセス拡張アクションを使用して他のプロセスを開始する。
トランザクションの処理
Automatic Activityを開始するとトランザクションが開始し、アクティビティが終了したときにコミットされます。
外部システムとの統合の要素がアクティビティにある場合、一貫性の確保のため、トランザクションの処理には一層の注意を要します。
安全な再実行の確保
エラーによりAutomatic Activityの実行に失敗した場合は、しばらく経過してから再実行されます(サーバーの過負荷を避けるため、再実行の間隔が長くなります)。エラーの場合にはすべての変更がロールバックされるため、Automatic Activityの再実行は多くの場合安全です。
ただし、トランザクションがアクティビティフローで(CommitTransationシステムアクションを使用して)明示的にコミットされた場合や、外部システムとの統合がある場合などでは、再実行での矛盾を避けるためアクティビティ側で予防措置が必要となります。
例
例として、特定の時点で外部システムにエンティティレコードを作成するAutomatic Activityについて考えます。この場合、再実行の際に重複レコードを作成しないための予防措置を追加する必要があります。