diff --git a/Jenkinsfile b/Jenkinsfile
index ef44d538b0f0f4cf970a4f323f586c31d43b6f5c..60dca36040f40383218dc6a2acfabae632f2b5e2 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -137,15 +137,12 @@ pipeline {
             }
         }
         stage('Tag and Push Docker Image') {
-            when {
-                anyOf {
-                    branch 'master'
-                    branch 'release'
-                }
-            }
             steps {
                 script {
                     FAILED_STAGE = env.STAGE_NAME
+                    IMAGE_TAG = generateImageTag('pom.xml')
+
+					tagAndPushDockerImage('vorgang-manager', IMAGE_TAG)
 
                     if (isMasterBranch()) {
                         tagAndPushDockerImage('snapshot-latest')
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidHistorieProcessor.java b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidHistorieProcessor.java
index 3a134ac79f67c11e6168fe0116bcebbbfe94b24f..836adfdc95b6ca002dc00e842398b34b93279560 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidHistorieProcessor.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/bescheid/BescheidHistorieProcessor.java
@@ -39,6 +39,9 @@ class BescheidHistorieProcessor implements HistorieProcessor {
 	private static final Predicate<Command> IS_NOT_UPDATE_ATTACHED_ITEM = Predicate
 			.not(command -> command.getCommandOrder() == CommandOrder.UPDATE_ATTACHED_ITEM
 					&& IS_BESCHEID_ATTACHED_ITEM.test(command));
+	private static final Predicate<Command> IS_NOT_PATCH_ATTACHED_ITEM = Predicate
+			.not(command -> command.getCommandOrder() == CommandOrder.PATCH_ATTACHED_ITEM
+					&& IS_BESCHEID_ATTACHED_ITEM.test(command));
 
 	@Override
 	public List<Command> process(List<Command> commands) {
@@ -52,6 +55,7 @@ class BescheidHistorieProcessor implements HistorieProcessor {
 				.filter(IS_NOT_DELETE_BESCHEID_COMMAND)
 				.filter(IS_NOT_CREATE_ATTACHED_ITEM)
 				.filter(IS_NOT_UPDATE_ATTACHED_ITEM)
+				.filter(IS_NOT_PATCH_ATTACHED_ITEM)
 				.toList();
 	}
 
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidHistorieProcessorTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidHistorieProcessorTest.java
index ac60d058d4b2b3a315ac2312cae6375a160275d6..b3a68ed0ad5e3d441a2705cf6181e802882d0e55 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidHistorieProcessorTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/bescheid/BescheidHistorieProcessorTest.java
@@ -79,7 +79,7 @@ class BescheidHistorieProcessorTest {
 		@ParameterizedTest
 		@EnumSource(mode = Mode.INCLUDE, names = { "CREATE_BESCHEID", "DELETE_BESCHEID" })
 		void shouldFilterCommandWithOrder(CommandOrder order) {
-			var command = CommandTestFactory.createBuilder().order(order.toString()).build();
+			var command = CommandTestFactory.createBuilder().order(order.name()).build();
 
 			var commands = processor.filterByOrder(Collections.singletonList(command));
 
@@ -89,30 +89,19 @@ class BescheidHistorieProcessorTest {
 		@ParameterizedTest
 		@EnumSource(mode = Mode.EXCLUDE, names = { "CREATE_BESCHEID", "DELETE_BESCHEID" })
 		void shouldKeepCommandWithOrder(CommandOrder order) {
-			var command = CommandTestFactory.createBuilder().order(order.toString()).build();
+			var command = CommandTestFactory.createBuilder().order(order.name()).build();
 
 			var commands = processor.filterByOrder(Collections.singletonList(command));
 
 			assertThat(commands).containsExactly(command);
 		}
 
-		@DisplayName("should filter bescheid related create attached item command")
-		@Test
-		void shouldFilterCreateAttachedItemCommand() {
-			var command = CommandTestFactory.createBuilder().order(CommandOrder.CREATE_ATTACHED_ITEM.toString())
-					.body(Map.of(VorgangAttachedItem.FIELD_ITEM_NAME, BescheidHistorieProcessor.BESCHEID_ITEM_NAME))
-					.build();
-
-			var commands = processor.filterByOrder(Collections.singletonList(command));
-
-			assertThat(commands).isEmpty();
-		}
-
-		@DisplayName("should filter bescheid related update attached item command")
-		@Test
-		void shouldFilterUpdateAttachedItemCommand() {
-			var command = CommandTestFactory.createBuilder().order(CommandOrder.UPDATE_ATTACHED_ITEM.toString())
-					.body(Map.of(VorgangAttachedItem.FIELD_ITEM_NAME, BescheidHistorieProcessor.BESCHEID_ITEM_NAME))
+		@ParameterizedTest
+		@EnumSource(mode = Mode.INCLUDE, names = { "CREATE_ATTACHED_ITEM", "UPDATE_ATTACHED_ITEM", "PATCH_ATTACHED_ITEM" })
+		@DisplayName("should filter bescheid related command")
+		void shouldFilterAttachedItemCommand(CommandOrder order) {
+			var command = CommandTestFactory.createBuilder().order(order.name())
+					.body(Collections.singletonMap(VorgangAttachedItem.FIELD_ITEM_NAME, BescheidHistorieProcessor.BESCHEID_ITEM_NAME))
 					.build();
 
 			var commands = processor.filterByOrder(Collections.singletonList(command));
@@ -156,17 +145,17 @@ class BescheidHistorieProcessorTest {
 		private final Command sendBescheidCommand = CommandTestFactory.createBuilder()
 				.id(UUID.randomUUID().toString())
 				.relationId(BescheidTestFactory.ID)
-				.order(CommandOrder.SEND_BESCHEID.toString())
+				.order(CommandOrder.SEND_BESCHEID.name())
 				.build();
 		private final Command updateBescheidCommand = CommandTestFactory.createBuilder()
 				.id(UUID.randomUUID().toString())
 				.relationId(BescheidTestFactory.ID)
-				.order(CommandOrder.UPDATE_BESCHEID.toString())
+				.order(CommandOrder.UPDATE_BESCHEID.name())
 				.build();
 		private final Command updateBescheidCommandOfBescheidNotSent = CommandTestFactory.createBuilder()
 				.id(UUID.randomUUID().toString())
 				.relationId(UUID.randomUUID().toString())
-				.order(CommandOrder.UPDATE_BESCHEID.toString())
+				.order(CommandOrder.UPDATE_BESCHEID.name())
 				.build();
 		private final List<Command> commands = List.of(sendBescheidCommand, updateBescheidCommand, updateBescheidCommandOfBescheidNotSent);
 
@@ -197,7 +186,7 @@ class BescheidHistorieProcessorTest {
 		private final Command sendBescheidCommand = CommandTestFactory.createBuilder()
 				.id(UUID.randomUUID().toString())
 				.relationId(BescheidTestFactory.ID)
-				.order(CommandOrder.SEND_BESCHEID.toString()).build();
+				.order(CommandOrder.SEND_BESCHEID.name()).build();
 
 		private final Command relatedUpdateBescheidCommand = CommandTestFactory.createBuilder().id(UUID.randomUUID().toString())
 				.createdAt(ZonedDateTime.now()).build();
@@ -293,7 +282,6 @@ class BescheidHistorieProcessorTest {
 
 		private Map<String, Object> createBescheidMap(SendBy sendBy) {
 			var item = BescheidTestFactory.createAsMap();
-			item.remove(Bescheid.SEND_BY_FIELD);
 			item.put(Bescheid.SEND_BY_FIELD, sendBy);
 			return item;
 		}
@@ -317,7 +305,7 @@ class BescheidHistorieProcessorTest {
 		@ParameterizedTest
 		@EnumSource(mode = Mode.INCLUDE, names = { "UPDATE_BESCHEID" })
 		void shouldKeepUpdateBescheidCommandsOnly(CommandOrder order) {
-			var commandWithNonMatchingOrder = CommandTestFactory.createBuilder().order(order.toString()).build();
+			var commandWithNonMatchingOrder = CommandTestFactory.createBuilder().order(order.name()).build();
 
 			var relatedCommands = processor.getRelatedUpdateBescheidCommands(command, Collections.singletonList(commandWithNonMatchingOrder));
 
@@ -327,7 +315,7 @@ class BescheidHistorieProcessorTest {
 		@ParameterizedTest
 		@EnumSource(mode = Mode.EXCLUDE, names = { "UPDATE_BESCHEID" })
 		void shouldFilterNonUpdateBescheidCommands(CommandOrder order) {
-			var commandWithNonMatchingOrder = CommandTestFactory.createBuilder().order(order.toString()).build();
+			var commandWithNonMatchingOrder = CommandTestFactory.createBuilder().order(order.name()).build();
 
 			var relatedCommands = processor.getRelatedUpdateBescheidCommands(command, Collections.singletonList(commandWithNonMatchingOrder));
 
@@ -381,7 +369,8 @@ class BescheidHistorieProcessorTest {
 
 		@Test
 		void shouldThrowOnMissingSendBy() {
-			assertThatThrownBy(() -> processor.isManualSent(Map.of())).isInstanceOf(NullPointerException.class);
+			var bescheidItemMap = Collections.<String, Object>emptyMap();
+			assertThatThrownBy(() -> processor.isManualSent(bescheidItemMap)).isInstanceOf(NullPointerException.class);
 		}
 	}