diff --git a/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java b/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java
index 1d9fec5f0f6106859ce05eb3f48b2a692e5e4371..9584200a47f784405c35ea92172122bd7068e455 100644
--- a/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java
+++ b/src/main/java/de/ozgcloud/aggregation/AggregationManagerRunner.java
@@ -94,15 +94,17 @@ public class AggregationManagerRunner implements CommandLineRunner {
 	void runWithTransformation(Transformation transformation, FormIdentifier formIdentifier) {
 		try (Execution execution = new Execution(transformation)) {
 			ThreadContext.put(MDC_EXECUTION, execution.id.toString());
-			loadVorgaengeIntoRepository(Stream.concat(
-					extractBatchesOfVorgaengeFromDataSource(execution, formIdentifier),
-					extractBatchesOfDeletedVorgaengeFromDataSource(execution)));
+			var vorgaenge = extractBatchesOfVorgaengeFromDataSource(execution, formIdentifier);
+			var deletedVorgaenge = Objects.isNull(formIdentifier) ? extractBatchesOfDeletedVorgaengeFromDataSource(execution)
+					: Stream.<Batch>empty();
+			loadVorgaengeIntoRepository(Stream.concat(vorgaenge, deletedVorgaenge));
 		} finally {
 			ThreadContext.remove(MDC_EXECUTION);
 		}
 	}
 
 	void loadVorgaengeIntoRepository(Stream<Batch> batches) {
+		repository.deleteAll();
 		batches.map(this::transformBatchToDocumentEntries).forEach(this::loadDocumentEntriesIntoRepository);
 	}
 
diff --git a/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java b/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java
index 92d4198ba9e3c40faedf75c6dc5b51956f633a66..fde2d1ad0d8cc5ec8e87d724c7ea4a76fae3bb4a 100644
--- a/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java
+++ b/src/test/java/de/ozgcloud/aggregation/AggregationManagerRunnerTest.java
@@ -201,15 +201,12 @@ class AggregationManagerRunnerTest {
 		private final FormIdentifier formIdentifier = FormIdentifierTestFactory.create();
 		@Mock
 		private Batch batchOfVorgaenge;
-		@Mock
-		private Batch batchOfDeletedVorgaenge;
 		@Captor
 		private ArgumentCaptor<Stream<Batch>> batchStreamCaptor;
 
 		@BeforeEach
 		void init() {
 			doReturn(Stream.of(batchOfVorgaenge)).when(runner).extractBatchesOfVorgaengeFromDataSource(any(), any());
-			doReturn(Stream.of(batchOfDeletedVorgaenge)).when(runner).extractBatchesOfDeletedVorgaengeFromDataSource(any());
 			doNothing().when(runner).loadVorgaengeIntoRepository(any());
 		}
 
@@ -220,19 +217,50 @@ class AggregationManagerRunnerTest {
 			verify(runner).extractBatchesOfVorgaengeFromDataSource(argThat(hasTransformation), eq(formIdentifier));
 		}
 
-		@Test
-		void shouldExtractBatchesOfDeletedVorgaengeFromDataSource() {
-			runner.runWithTransformation(transformation, formIdentifier);
+		@Nested
+		class TestOnFormIdentifierIsNull {
+
+			@Mock
+			private Batch batchOfDeletedVorgaenge;
+
+			@BeforeEach
+			void mock() {
+				doReturn(Stream.of(batchOfDeletedVorgaenge)).when(runner).extractBatchesOfDeletedVorgaengeFromDataSource(any());
+			}
+
+			@Test
+			void shouldExtractBatchesOfDeletedVorgaengeFromDataSource() {
+				runner.runWithTransformation(transformation, null);
+
+				verify(runner).extractBatchesOfDeletedVorgaengeFromDataSource(argThat(hasTransformation));
+			}
+
+			@Test
+			void shouldLoadVorgaengeIntoRepository() {
+				runner.runWithTransformation(transformation, null);
 
-			verify(runner).extractBatchesOfDeletedVorgaengeFromDataSource(argThat(hasTransformation));
+				verify(runner).loadVorgaengeIntoRepository(batchStreamCaptor.capture());
+				assertThat(batchStreamCaptor.getValue()).containsExactly(batchOfVorgaenge, batchOfDeletedVorgaenge);
+			}
 		}
 
-		@Test
-		void shouldLoadVorgaengeIntoRepository() {
-			runner.runWithTransformation(transformation, formIdentifier);
+		@Nested
+		class TestOnFormIdentifierIsNotNull {
+
+			@Test
+			void shouldNotExtractBatchesOfDeletedVorgaengeFromDataSource() {
+				runner.runWithTransformation(transformation, formIdentifier);
+
+				verify(runner, never()).extractBatchesOfDeletedVorgaengeFromDataSource(any());
+			}
 
-			verify(runner).loadVorgaengeIntoRepository(batchStreamCaptor.capture());
-			assertThat(batchStreamCaptor.getValue()).containsExactly(batchOfVorgaenge, batchOfDeletedVorgaenge);
+			@Test
+			void shouldLoadVorgaengeIntoRepository() {
+				runner.runWithTransformation(transformation, formIdentifier);
+
+				verify(runner).loadVorgaengeIntoRepository(batchStreamCaptor.capture());
+				assertThat(batchStreamCaptor.getValue()).containsExactly(batchOfVorgaenge);
+			}
 		}
 	}
 
@@ -253,6 +281,13 @@ class AggregationManagerRunnerTest {
 			doNothing().when(runner).loadDocumentEntriesIntoRepository(any());
 		}
 
+		@Test
+		void shouldDropCollection() {
+			loadVorgaengeIntoRepository();
+
+			verify(repository).deleteAll();
+		}
+
 		@Test
 		void shouldTransform() {
 			loadVorgaengeIntoRepository();