diff --git a/common/src/main/java/de/ozgcloud/eingang/common/vorgang/VorgangNummerSupplier.java b/common/src/main/java/de/ozgcloud/eingang/common/vorgang/VorgangNummerSupplier.java
index 510b7c92779fa39758cf3da4855a7af4dec20fe1..29b9ca971b5aa597a7df76abdc2537562202ad59 100644
--- a/common/src/main/java/de/ozgcloud/eingang/common/vorgang/VorgangNummerSupplier.java
+++ b/common/src/main/java/de/ozgcloud/eingang/common/vorgang/VorgangNummerSupplier.java
@@ -5,6 +5,7 @@ import java.time.LocalDate;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.springframework.stereotype.Component;
 
+import de.ozgcloud.common.errorhandling.TechnicalException;
 import lombok.RequiredArgsConstructor;
 
 @Component
@@ -17,10 +18,17 @@ public class VorgangNummerSupplier {
 	static final int SUFFIX_LENGTH = 6;
 
 	public String get() {
+		return get(SUFFIX_LENGTH);
+	}
+
+	public String get(int suffixLength) {
+		if (suffixLength <1){
+			throw new TechnicalException("Suffix length must be at least 1");
+		}
 		var today = LocalDate.now();
 		var lastYearNumber = today.getYear() % 10;
 		return VORGANGNUMMER_TEMPLATE.formatted(lastYearNumber, today.getMonthValue(), today.getDayOfMonth(),
-				RandomStringUtils.random(SUFFIX_LENGTH, BASE30_ALPHABET));
+				RandomStringUtils.random(suffixLength, BASE30_ALPHABET));
 	}
 
 }
diff --git a/common/src/test/java/de/ozgcloud/eingang/common/vorgang/VorgangNummerSupplierTest.java b/common/src/test/java/de/ozgcloud/eingang/common/vorgang/VorgangNummerSupplierTest.java
index 2fc9a524f5e23d2bebd9721eb5612d96ad879782..fa604a63010e2b45ef5fb16d76438c870ced4603 100644
--- a/common/src/test/java/de/ozgcloud/eingang/common/vorgang/VorgangNummerSupplierTest.java
+++ b/common/src/test/java/de/ozgcloud/eingang/common/vorgang/VorgangNummerSupplierTest.java
@@ -1,18 +1,20 @@
 package de.ozgcloud.eingang.common.vorgang;
 
 import static org.assertj.core.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.*;
 import static org.mockito.Mockito.*;
 
 import java.time.LocalDate;
-import java.util.Random;
 
 import org.apache.commons.lang3.RandomStringUtils;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
 import org.mockito.InjectMocks;
-import org.mockito.Mock;
 import org.mockito.Spy;
-import org.springframework.test.util.ReflectionTestUtils;
+
+import de.ozgcloud.common.errorhandling.TechnicalException;
 
 class VorgangNummerSupplierTest {
 
@@ -26,7 +28,25 @@ class VorgangNummerSupplierTest {
 	void shouldAddSuffix() {
 		var result = vorgangNummerSupplier.get();
 
-		assertThat(result).hasSize(11);
+		assertThat(getSuffix(result)).hasSize(VorgangNummerSupplier.SUFFIX_LENGTH);
+	}
+
+	@Test
+	void shouldHaveSuffixSize() {
+		var result = vorgangNummerSupplier.get(3);
+
+		assertThat(getSuffix(result)).hasSize(3);
+	}
+
+	@DisplayName("should throw exception when")
+	@ParameterizedTest(name = "suffix length {0}")
+	@ValueSource(ints = { -1, 0 })
+	void shouldThrowException(int suffixLength) {
+		assertThrows(TechnicalException.class, () -> vorgangNummerSupplier.get(suffixLength));
+	}
+
+	private String getSuffix(String string) {
+		return string.substring(string.indexOf('-') + 1);
 	}
 
 	@Test
diff --git a/run_helm_test.sh b/run_helm_test.sh
index 76ae9ac809e2a17d7c58020c0cff75be781f1e48..3e37c7fcde941bda9e3456c45c299dd62c1ecda5 100755
--- a/run_helm_test.sh
+++ b/run_helm_test.sh
@@ -4,4 +4,4 @@ set -e
 
 helm template  ./src/main/helm/ -f src/test/helm-linter-values.yaml
 helm lint -f src/test/helm-linter-values.yaml ./src/main/helm/
-cd src/main/helm && helm unittest -f '../../test/helm/*.yaml' -v '../../test/unit-values.yaml' .
\ No newline at end of file
+cd src/main/helm && helm unittest -f '../../test/helm/*.yaml' .
\ No newline at end of file
diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl
index 410348cb151bd9c0ab6eb1d4a9a3eaf9cd6cb7e5..0915f0f2372d26b4dab57e0c2aa3a25dae0b6b08 100644
--- a/src/main/helm/templates/_helpers.tpl
+++ b/src/main/helm/templates/_helpers.tpl
@@ -1,45 +1,44 @@
 {{/* vim: set filetype=mustache: */}}
 
-{{/* Truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec) */}}
-{{/* Name */}}
-{{- define "app.name" -}}
-{{- default .Release.Name | toString | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
+{{/* error check 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec) */}}
 {{/* Namespace */}}
 {{- define "app.namespace" -}}
-{{- default .Release.Namespace | toString | trunc 63 | trimSuffix "-" -}}
+{{- if gt (len (.Release.Namespace)) 63 -}}
+{{- fail (printf ".Release.Namespace %s ist zu lang (max. 63 Zeichen)" .Release.Namespace) -}}
 {{- end -}}
-
-{{/* Version */}}
-{{- define "app.version" -}}
-{{- default .Chart.Version | toString | trunc 63 | trimSuffix "-" -}}
+{{ printf "%s" .Release.Namespace }}
 {{- end -}}
 
 {{/* Chart: Name + Version */}}
 {{- define "app.chart" -}}
-{{ printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- if gt (len (printf "%s-%s" .Chart.Name .Chart.Version)) 63 -}}
+{{- fail (printf ".Chart.Name-.Chart.Version %s-%s ist zu lang (max. 63 Zeichen)" .Chart.Name .Chart.Version) -}}
+{{- end -}}
+{{ printf "%s-%s" .Chart.Name .Chart.Version }}
 {{- end -}}
 
 {{/* Managed-by -> On Helm, this value is always Helm */}}
 {{- define "app.managedBy" -}}
-{{- default .Release.Service | toString | trunc 63 | trimSuffix "-" -}}
+{{- if gt (len (.Release.Service)) 63 -}}
+{{- fail (printf ".Release.Service %s ist zu lang (max. 63 Zeichen)" .Release.Service) -}}
+{{- end -}}
+{{ printf "%s" .Release.Service }}
 {{- end -}}
 
 {{/* Default Labels: Helm recommended best-practice labels https://helm.sh/docs/chart_best_practices/labels/ */}}
 {{- define "app.defaultLabels" }}
 app.kubernetes.io/instance: afm-adapter
 app.kubernetes.io/managed-by: {{ include "app.managedBy" . }}
-app.kubernetes.io/name: {{ include "app.name" . }}
+app.kubernetes.io/name: {{ .Release.Name }}
 app.kubernetes.io/part-of: ozgcloud
-app.kubernetes.io/version: {{ include "app.version" . }}
+app.kubernetes.io/version: {{ .Chart.Version }}
 app.kubernetes.io/namespace: {{ include "app.namespace" . }}
 helm.sh/chart: {{ include "app.chart" . }}
 ozg-component: eingangsadapter
 {{- end -}}
 
 {{- define "app.matchLabels" }}
-app.kubernetes.io/name: {{ include "app.name" . }}
+app.kubernetes.io/name: {{ .Release.Name }}
 app.kubernetes.io/namespace: {{ include "app.namespace" . }}
 {{- end -}}
 
diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml
index c6aa75141309794cf147ab2b26cd8f9ff599a0c4..25aac6555744ac684adeebce207ec3591d9a5831 100644
--- a/src/main/helm/templates/deployment.yaml
+++ b/src/main/helm/templates/deployment.yaml
@@ -25,7 +25,7 @@
 apiVersion: apps/v1
 kind: Deployment
 metadata:
-  name: {{ include "app.name" . }}
+  name: {{ .Release.Name }}
   namespace: {{ include "app.namespace" . }}
   labels:
     {{- include "app.defaultLabels" . | indent 4 }}
@@ -56,7 +56,7 @@ spec:
         whenUnsatisfiable: DoNotSchedule
         labelSelector:
           matchLabels:
-            app.kubernetes.io/name: {{ include "app.name" . }}
+            app.kubernetes.io/name: {{ .Release.Name }}
       containers:
       - env:
         {{- range (.Values.env).grpc }}
@@ -159,7 +159,7 @@ spec:
       {{- if .Values.imagePullSecret }}
       - name: {{ .Values.imagePullSecret }}
       {{ else }}
-      - name: {{ include "app.name" . }}-image-pull-secret
+      - name: {{ .Release.Name }}-image-pull-secret
       {{- end }}
       restartPolicy: Always
       {{- with .Values.hostAliases }}
diff --git a/src/main/helm/templates/image-pull-secret.yaml b/src/main/helm/templates/image-pull-secret.yaml
index 9ac29e90a738d57e16307c8335a60c032134f1c8..327b37f8b27d39d926ae1a67d6ef35701b9852e8 100644
--- a/src/main/helm/templates/image-pull-secret.yaml
+++ b/src/main/helm/templates/image-pull-secret.yaml
@@ -26,7 +26,7 @@
 apiVersion: v1
 kind: Secret
 metadata:
-  name: {{ include "app.name" . }}-image-pull-secret
+  name: {{ .Release.Name }}-image-pull-secret
   namespace: {{ include "app.namespace" . }}
 type: kubernetes.io/dockerconfigjson
 data:
diff --git a/src/main/helm/templates/ingress.yaml b/src/main/helm/templates/ingress.yaml
index c03c83992ec0a80c726b4c5ea0f5c05a058cdb50..fa2ba46fea9549d096b59469ce9a3ac821883986 100644
--- a/src/main/helm/templates/ingress.yaml
+++ b/src/main/helm/templates/ingress.yaml
@@ -37,7 +37,7 @@ metadata:
     cert-manager.io/cluster-issuer: letsencrypt-prod
     {{- end }}
     {{- end }}
-  name: {{ include "app.name" . }}
+  name: {{ .Release.Name }}
   namespace: {{ include "app.namespace" . }}
 spec:
   {{- if and (.Values.ingress).className }}
@@ -50,7 +50,7 @@ spec:
               service:
                 port:
                   number: 8080
-                name: {{ include "app.name" . }}
+                name: {{ .Release.Name }}
             path: ''
             pathType: ImplementationSpecific
       host: {{ include "app.ingress.host" . }}
@@ -61,7 +61,7 @@ spec:
       {{- if (.Values.ingress).tlsSecretName }}
       secretName: {{ (.Values.ingress).tlsSecretName }}
       {{- else }}
-      secretName: {{ .Values.ozgcloud.bezeichner }}-{{ include "app.name" . }}-tls
+      secretName: {{ .Values.ozgcloud.bezeichner }}-{{ .Release.Name }}-tls
       {{- end }}
       {{- end }}
 {{- end -}}
\ No newline at end of file
diff --git a/src/main/helm/templates/network_policy.yaml b/src/main/helm/templates/network_policy.yaml
index 929afd7c84be59aa8d39ca31148f72375a2c228b..2d70106bb1690fc7ca90516a8f9f1e7e4c01afc7 100644
--- a/src/main/helm/templates/network_policy.yaml
+++ b/src/main/helm/templates/network_policy.yaml
@@ -26,7 +26,7 @@
 apiVersion: networking.k8s.io/v1
 kind: NetworkPolicy
 metadata:
-  name: network-policy-{{ include "app.name" .}}
+  name: network-policy-{{ .Release.Name}}
   namespace: {{ .Release.Namespace }} 
 spec:
   podSelector:
diff --git a/src/main/helm/templates/service.yaml b/src/main/helm/templates/service.yaml
index 541a2679c92c41306fe08d926bd425421a9b99ea..93574b29b45f4157a6c0dafbd69b2ed60a25a9f2 100644
--- a/src/main/helm/templates/service.yaml
+++ b/src/main/helm/templates/service.yaml
@@ -25,7 +25,7 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ include "app.name" . }}
+  name: {{ .Release.Name }}
   namespace: {{ include "app.namespace" . }}
   labels:
     {{- include "app.defaultLabels" . | indent 4 }}
diff --git a/src/main/helm/templates/service_monitor.yaml b/src/main/helm/templates/service_monitor.yaml
index ae25136b8dd6b875a7eb7c1c9e917b37e8b2ae45..053a25810d66a1d9530bfeae0ec3da3f3fc86068 100644
--- a/src/main/helm/templates/service_monitor.yaml
+++ b/src/main/helm/templates/service_monitor.yaml
@@ -25,7 +25,7 @@
 apiVersion: monitoring.coreos.com/v1
 kind: ServiceMonitor
 metadata:
-  name: {{ include "app.name" . }}
+  name: {{ .Release.Name }}
   namespace: {{ include "app.namespace" . }}
   labels:
     {{- include "app.defaultLabels" . | indent 4 }}
diff --git a/src/main/helm/templates/tests/test-ingress-connection.yaml b/src/main/helm/templates/tests/test-ingress-connection.yaml
index 13551e9ef21b7920039e739e78ff86dd85020e0b..6d33a4e544785fedc58153ce275ecfb949c46885 100644
--- a/src/main/helm/templates/tests/test-ingress-connection.yaml
+++ b/src/main/helm/templates/tests/test-ingress-connection.yaml
@@ -25,7 +25,7 @@
 apiVersion: v1
 kind: Pod
 metadata:
-  name: "{{ include "app.name" . }}-test-ingress"
+  name: "{{ .Release.Name }}-test-ingress"
   labels:
     {{- include "app.matchLabels" . | nindent 4 }}
   annotations:
diff --git a/src/main/helm/templates/tests/test-service-connection.yaml b/src/main/helm/templates/tests/test-service-connection.yaml
index 9bc4d39f4b42ccd5e2ee5e37d076a5c43dd39ea2..62dda4f5ef40ec4f566af007a57def2ab26ce7b5 100644
--- a/src/main/helm/templates/tests/test-service-connection.yaml
+++ b/src/main/helm/templates/tests/test-service-connection.yaml
@@ -25,7 +25,7 @@
 apiVersion: v1
 kind: Pod
 metadata:
-  name: "{{ include "app.name" . }}-test-connection"
+  name: "{{ .Release.Name }}-test-connection"
   labels:
     {{- include "app.matchLabels" . | nindent 4 }}
   annotations:
@@ -35,5 +35,5 @@ spec:
     - name: wget
       image: busybox
       command: ['wget']
-      args: ['{{ include "app.name" . }}:8080/ws/intelliform_formDatas.wsdl']
+      args: ['{{ .Release.Name }}:8080/ws/intelliform_formDatas.wsdl']
   restartPolicy: Never
diff --git a/src/test/helm/deployment_63_chars_test.yaml b/src/test/helm/deployment_63_chars_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..1e63b47eed93c5e640879e17856231ee1606eaee
--- /dev/null
+++ b/src/test/helm/deployment_63_chars_test.yaml
@@ -0,0 +1,55 @@
+#
+# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+
+suite: test deyploment less than 63 chars
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+  
+chart:
+  name: eingang-manager
+set:
+  ozgcloud.environment: test
+templates:
+  - templates/deployment.yaml
+
+tests:
+  - it: should fail on .Release.Namespace length longer than 63 characters
+    release:
+      namespace: test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890
+    asserts:
+      - failedTemplate:
+          errorMessage: .Release.Namespace test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 63 Zeichen)
+  - it: should not fail on .Release.Namespace length less than 63 characters
+    asserts:
+      - notFailedTemplate: {}
+  - it: should fail on .Chart.Name-.Chart.Version length longer than 63 characters
+    chart:
+      version: 1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890
+    asserts:
+      - failedTemplate:
+          errorMessage: .Chart.Name-.Chart.Version Intelliform-Adapter-1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 63 Zeichen)
+  - it: should not fail on .Chart.Name-.Chart.Version length less than 63 characters
+    asserts:
+      - notFailedTemplate: {}
\ No newline at end of file
diff --git a/src/test/helm/deployment_bindings_test.yaml b/src/test/helm/deployment_bindings_test.yaml
index a8019796719356545283c8015c2f5ba731766dab..9b3f68067786e6cdcb5a77c4dd07fced16581305 100644
--- a/src/test/helm/deployment_bindings_test.yaml
+++ b/src/test/helm/deployment_bindings_test.yaml
@@ -25,6 +25,8 @@
 suite: deployment bindings
 templates:
   - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
 tests:
   - it: should have temp-dir volume
     asserts:
diff --git a/src/test/helm/deployment_container_security_context_test.yaml b/src/test/helm/deployment_container_security_context_test.yaml
index 416374d56a7f925dfe499c556eb58b6e71eb2029..f8679c7fd3c246ecec861d85e6cbc88eff467faf 100644
--- a/src/test/helm/deployment_container_security_context_test.yaml
+++ b/src/test/helm/deployment_container_security_context_test.yaml
@@ -28,6 +28,8 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
 tests:
   - it: check default values
     asserts:
diff --git a/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml
index d6952edf6d1fb42b2ab2dcc11321b73d35c7e2d5..e5688f081df983cb484ad12faf57719437655b7f 100644
--- a/src/test/helm/deployment_defaults_labels_test.yaml
+++ b/src/test/helm/deployment_defaults_labels_test.yaml
@@ -30,6 +30,8 @@ templates:
   - templates/deployment.yaml
   - templates/service_monitor.yaml
   - templates/service.yaml
+set:
+  ozgcloud.environment: test
 tests:
   - it: check default labels
     asserts:
diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_test.yaml
index c76bf80b818f7ef9e19c301c47699fae83cc7374..fbc35ac562a0fa9aeb4ffae2a198acb173db4cc7 100644
--- a/src/test/helm/deployment_env_test.yaml
+++ b/src/test/helm/deployment_env_test.yaml
@@ -25,6 +25,8 @@
 suite: test environments
 templates:
   - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
 tests:
   - it: check customList
     template: deployment.yaml
@@ -39,8 +41,6 @@ tests:
             name: my_test_environment_name
             value: "A test value"
   - it: check customList test value is not set by default
-    set:
-      ozgcloud.environment: test
     template: deployment.yaml
     asserts:
       - notContains:
diff --git a/src/test/helm/deployment_host_aliases_test.yaml b/src/test/helm/deployment_host_aliases_test.yaml
index 689bf6fd2d5d9eabbb92a6f521397c665bde2f08..5bd226ad13c2cade607f3981f15b3f7ab3bee237 100644
--- a/src/test/helm/deployment_host_aliases_test.yaml
+++ b/src/test/helm/deployment_host_aliases_test.yaml
@@ -28,6 +28,9 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+
+set:
+  ozgcloud.environment: test
 tests:
   - it: should not set hostAliases
     asserts:
diff --git a/src/test/helm/deployment_imagepull_secret_test.yaml b/src/test/helm/deployment_imagepull_secret_test.yaml
index 2c72debd4fe921192fd925b909f7e6b85c649685..e48100c1bbd73d6d9ec54caa7fbf40a0cbaee231 100644
--- a/src/test/helm/deployment_imagepull_secret_test.yaml
+++ b/src/test/helm/deployment_imagepull_secret_test.yaml
@@ -28,6 +28,8 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
 tests:
   - it: should use default imagePull secret
     asserts:
diff --git a/src/test/helm/deployment_resources_test.yaml b/src/test/helm/deployment_resources_test.yaml
index 744cc072737cf7858190c1af10d9be704eb7436e..e945125e67791a5d195ac5d27d420732e995d3b6 100644
--- a/src/test/helm/deployment_resources_test.yaml
+++ b/src/test/helm/deployment_resources_test.yaml
@@ -27,6 +27,8 @@ release:
   name: afm-adapter
 templates:
   - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
 tests:
   - it: test resources
     set:
diff --git a/src/test/helm/deployment_routing-strategy.yaml b/src/test/helm/deployment_routing-strategy.yaml
index ff18c1c83bbbc4eaf837fea1d2c8d0bce3f279af..72d2046884e5cc96194448ef52daad3c170ee969 100644
--- a/src/test/helm/deployment_routing-strategy.yaml
+++ b/src/test/helm/deployment_routing-strategy.yaml
@@ -30,6 +30,7 @@ templates:
   - deployment.yaml
 set:
   image.tag: latest
+  ozgcloud.environment: test
 tests:
   - it: validate default routing values without questions.yaml
     asserts:
diff --git a/src/test/helm/deployment_service_account_test.yaml b/src/test/helm/deployment_service_account_test.yaml
index 43aa6fcf59131f1fd9f4e0530a60b14551f89c9b..1c3b8a40130177ef415443d82574265202f89243 100644
--- a/src/test/helm/deployment_service_account_test.yaml
+++ b/src/test/helm/deployment_service_account_test.yaml
@@ -28,6 +28,9 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+
+set:
+  ozgcloud.environment: test
 tests:
   - it: should use afm-adapter service account name
     set:
diff --git a/src/test/helm/deployment_springProfile_test.yaml b/src/test/helm/deployment_springProfile_test.yaml
index dcdccb8008eea2ea7e84b4a49e8dd81aa524a37b..446ce8f43177fd6f67bb53b780d2159c5edc228d 100644
--- a/src/test/helm/deployment_springProfile_test.yaml
+++ b/src/test/helm/deployment_springProfile_test.yaml
@@ -27,6 +27,7 @@ release:
   name: if-adapter
 templates:
   - templates/deployment.yaml
+
 tests:
   - it: should override spring profiles
     set:
@@ -40,6 +41,8 @@ tests:
             name: spring_profiles_active
             value: oc,stage,ea
   - it: should generate spring profiles
+    set:
+      ozgcloud.environment: test
     asserts:
       - isKind:
           of: Deployment
diff --git a/src/test/helm/deployment_test.yaml b/src/test/helm/deployment_test.yaml
index ca8169b68401d2b65038514a34145a36917e54b7..7edba4d797ab8fb1484784d4d1cef9079f627eb6 100644
--- a/src/test/helm/deployment_test.yaml
+++ b/src/test/helm/deployment_test.yaml
@@ -28,6 +28,8 @@ release:
   namespace: sh-helm-test
 templates:
   - deployment.yaml
+set:
+  ozgcloud.environment: test
 tests:
   - it: validate image type and container image
     asserts:
diff --git a/src/test/helm/ingress-create-or-not.yaml b/src/test/helm/ingress-create-or-not.yaml
index 7bf967dda4211df292b300c73a6c3f8265a4320a..fa92ab46b56c118237bd47ad6f9ef891d9278777 100644
--- a/src/test/helm/ingress-create-or-not.yaml
+++ b/src/test/helm/ingress-create-or-not.yaml
@@ -25,6 +25,11 @@
 suite: test ingress creation dependent from values
 templates:
   - templates/ingress.yaml
+
+set:
+  ozgcloud:
+    bezeichner: helm
+    
 tests:
   - it: create ingress by config
     set:
diff --git a/src/test/helm/ingress-nginx-tests.yaml b/src/test/helm/ingress-nginx-tests.yaml
index 4659dbbd94ab5784d075c00f1f8e76e6318fff05..f968300409794fbe83e56b70fd48e1dea3cee088 100644
--- a/src/test/helm/ingress-nginx-tests.yaml
+++ b/src/test/helm/ingress-nginx-tests.yaml
@@ -25,6 +25,11 @@
 suite: test ingress options
 templates:
   - templates/ingress.yaml
+
+set:
+  ozgcloud:
+    bezeichner: helm
+    
 tests:
   - it: should create afm ingress tls
     release:
diff --git a/src/test/helm/ingress_test.yaml b/src/test/helm/ingress_test.yaml
index 493d124a19b6f9d087d1d850dbdeaaea312535c3..ee0b43da744be9805ca8e9a5930f532f34e502db 100644
--- a/src/test/helm/ingress_test.yaml
+++ b/src/test/helm/ingress_test.yaml
@@ -28,6 +28,9 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/ingress.yaml
+set:
+  ozgcloud:
+    bezeichner: helm
 tests:
   - it: should match basic data
     asserts:
diff --git a/src/test/unit-values.yaml b/src/test/unit-values.yaml
deleted file mode 100644
index 4c10588096434157f0e0ce39098dfcb134dec497..0000000000000000000000000000000000000000
--- a/src/test/unit-values.yaml
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
-# Ministerpräsidenten des Landes Schleswig-Holstein
-# Staatskanzlei
-# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-#
-# Lizenziert unter der EUPL, Version 1.2 oder - sobald
-# diese von der Europäischen Kommission genehmigt wurden -
-# Folgeversionen der EUPL ("Lizenz");
-# Sie dürfen dieses Werk ausschließlich gemäß
-# dieser Lizenz nutzen.
-# Eine Kopie der Lizenz finden Sie hier:
-#
-# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-#
-# Sofern nicht durch anwendbare Rechtsvorschriften
-# gefordert oder in schriftlicher Form vereinbart, wird
-# die unter der Lizenz verbreitete Software "so wie sie
-# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-# ausdrücklich oder stillschweigend - verbreitet.
-# Die sprachspezifischen Genehmigungen und Beschränkungen
-# unter der Lizenz sind dem Lizenztext zu entnehmen.
-#
-
-baseUrl: test.sh.ozg-cloud.de
-
-ozgcloud:
-  bundesland: sh
-  environment: test
-  bezeichner: helm
-
-routing:
-  targetVorgangManagerName: vorgang-manager
-
-image:
-  repo: docker.ozg-sh.de
-  name: intelliform-adapter
-  tag: latest
diff --git a/xta-adapter/run_helm_test.sh b/xta-adapter/run_helm_test.sh
index 8cfc42013cc858b0d2f5afc2c43b12eb56b68bab..9a57c3aa8f89a760772338f83d79796e04c242cb 100755
--- a/xta-adapter/run_helm_test.sh
+++ b/xta-adapter/run_helm_test.sh
@@ -2,6 +2,6 @@
 
 set -e
 
-helm template  ./src/main/helm/ -f src/main/helm/test-values.yaml
-helm lint -f src/test/helm/values/unit-values.yaml ./src/main/helm/
-cd src/main/helm && helm unittest -f '../../test/helm/*.yaml' -v '../../test/helm/values/unit-values.yaml' .
\ No newline at end of file
+helm template  ./src/main/helm/ -f src/test/helm-linter-values.yaml
+helm lint -f src/test/helm-linter-values.yaml ./src/main/helm/
+cd src/main/helm && helm unittest -f '../../test/helm/*.yaml'  .
diff --git a/xta-adapter/src/main/helm/templates/_helpers.tpl b/xta-adapter/src/main/helm/templates/_helpers.tpl
index 203aab813c0e2dbb6505eb2af8acc5ca1631b146..afcc6d669c8d184bc9029f310e6b9464372b5cfd 100644
--- a/xta-adapter/src/main/helm/templates/_helpers.tpl
+++ b/xta-adapter/src/main/helm/templates/_helpers.tpl
@@ -1,38 +1,37 @@
 {{/* vim: set filetype=mustache: */}}
 
-{{/* Truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec) */}}
-{{/* Name */}}
-{{- define "app.name" -}}
-{{- default .Release.Name | toString | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
+{{/* error check 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec) */}}
 {{/* Namespace */}}
 {{- define "app.namespace" -}}
-{{- default .Release.Namespace | toString | trunc 63 | trimSuffix "-" -}}
+{{- if gt (len (.Release.Namespace)) 63 -}}
+{{- fail (printf ".Release.Namespace %s ist zu lang (max. 63 Zeichen)" .Release.Namespace) -}}
 {{- end -}}
-
-{{/* Version */}}
-{{- define "app.version" -}}
-{{- default .Chart.Version | toString | trunc 63 | trimSuffix "-" -}}
+{{ printf "%s" .Release.Namespace }}
 {{- end -}}
 
 {{/* Chart: Name + Version */}}
 {{- define "app.chart" -}}
-{{ printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
+{{- if gt (len (printf "%s-%s" .Chart.Name .Chart.Version)) 63 -}}
+{{- fail (printf ".Chart.Name-.Chart.Version %s-%s ist zu lang (max. 63 Zeichen)" .Chart.Name .Chart.Version) -}}
+{{- end -}}
+{{ printf "%s-%s" .Chart.Name .Chart.Version }}
 {{- end -}}
 
 {{/* Managed-by -> On Helm, this value is always Helm */}}
 {{- define "app.managedBy" -}}
-{{- default .Release.Service | toString | trunc 63 | trimSuffix "-" -}}
+{{- if gt (len (.Release.Service)) 63 -}}
+{{- fail (printf ".Release.Service %s ist zu lang (max. 63 Zeichen)" .Release.Service) -}}
+{{- end -}}
+{{ printf "%s" .Release.Service }}
 {{- end -}}
 
 {{/* Default Labels: Helm recommended best-practice labels https://helm.sh/docs/chart_best_practices/labels/ */}}
 {{- define "app.defaultLabels" }}
-app.kubernetes.io/instance: {{ include "app.name" . }}
+app.kubernetes.io/instance: {{ .Release.Name }}
 app.kubernetes.io/managed-by: {{ include "app.managedBy" . }}
-app.kubernetes.io/name: {{ include "app.name" . }}
+app.kubernetes.io/name: {{ .Release.Name }}
 app.kubernetes.io/part-of: ozgcloud
-app.kubernetes.io/version: {{ include "app.version" . }}
+app.kubernetes.io/version: {{ .Chart.Version }}
 app.kubernetes.io/namespace: {{ include "app.namespace" . }}
 helm.sh/chart: {{ include "app.chart" . }}
 {{- end -}}
diff --git a/xta-adapter/src/main/helm/templates/image-pull-secret.yaml b/xta-adapter/src/main/helm/templates/image-pull-secret.yaml
index 9ac29e90a738d57e16307c8335a60c032134f1c8..327b37f8b27d39d926ae1a67d6ef35701b9852e8 100644
--- a/xta-adapter/src/main/helm/templates/image-pull-secret.yaml
+++ b/xta-adapter/src/main/helm/templates/image-pull-secret.yaml
@@ -26,7 +26,7 @@
 apiVersion: v1
 kind: Secret
 metadata:
-  name: {{ include "app.name" . }}-image-pull-secret
+  name: {{ .Release.Name }}-image-pull-secret
   namespace: {{ include "app.namespace" . }}
 type: kubernetes.io/dockerconfigjson
 data:
diff --git a/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml b/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml
index 8f8f55aea4531cbe52c88983d7491551b9c2354e..04e62c964cce2c3d83c1771b114d4d1ac94fe5e4 100644
--- a/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml
+++ b/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml
@@ -25,7 +25,7 @@
 apiVersion: batch/v1
 kind: CronJob
 metadata:
-  name: {{ include "app.name" . }}
+  name: {{ .Release.Name }}
   namespace: {{ include "app.namespace" . }}
   labels:
     {{- include "app.defaultLabels" . | indent 4 }}
@@ -166,11 +166,11 @@ spec:
             {{- if .Values.imagePullSecret }}
             - name: {{ .Values.imagePullSecret }}
             {{ else }}
-            - name: {{ include "app.name" . }}-image-pull-secret
+            - name: {{ .Release.Name }}-image-pull-secret
             {{- end }}
           {{- if (.Values.securityContext).fsGroup }}
           securityContext:
             fsGroup: {{ (.Values.securityContext).fsGroup }}
           {{- else }}
           securityContext: {}
-          {{- end }}
\ No newline at end of file
+          {{- end }}
diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java
index 0fe6d495bf3382335bbb41a8fc186feeb30ba300..9e60b84b7ac4ba0dafc491ae1d80742a4d002d58 100644
--- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java
+++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java
@@ -9,6 +9,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import de.ozgcloud.eingang.common.formdata.FormData;
+import de.ozgcloud.eingang.common.formdata.FormHeader;
+import de.ozgcloud.eingang.common.vorgang.VorgangNummerSupplier;
 import lombok.NonNull;
 import lombok.extern.log4j.Log4j2;
 
@@ -17,11 +19,14 @@ import lombok.extern.log4j.Log4j2;
 class XtaService {
 
 	static final String DFOERDERMITTELANTRAG_MESSAGE_TYPE = "Geschaeftsgang.Geschaeftsgang.0201";
+	static final int VORGANG_NUMMER_SUFFIX_LENGTH = 4;
 
 	@Autowired
 	private XtaRemoteService remoteService;
 	@Autowired
 	private XtaMessageMapper mapper;
+	@Autowired
+	private VorgangNummerSupplier vorgangNummerSupplier;
 
 	public Stream<FormData> getMessages() {
 		return createXtaMessageStream().filter(this::filterByMessageType).map(this::getFormData);
@@ -45,7 +50,16 @@ class XtaService {
 
 	public FormData getFormData(@NonNull XtaMessageMetaData metaData) {
 		var msg = remoteService.getMessage(metaData.getMessageId());
-		return mapper.toFormData(msg.toBuilder().metaData(metaData).build());
+		var formData = mapper.toFormData(msg.toBuilder().metaData(metaData).build());
+		return updateHeader(formData);
+	}
+
+	FormData updateHeader(FormData formData) {
+		return formData.toBuilder().header(setVorgangNummer(formData.getHeader())).build();
+	}
+
+	FormHeader setVorgangNummer(FormHeader formHeader) {
+		return formHeader.toBuilder().vorgangNummer(vorgangNummerSupplier.get(VORGANG_NUMMER_SUFFIX_LENGTH)).build();
 	}
 
 	public void acknowledgeReceive(@NonNull XtaMessageId messageId) {
diff --git a/xta-adapter/src/main/helm/test-values.yaml b/xta-adapter/src/test/helm-linter-values.yaml
similarity index 100%
rename from xta-adapter/src/main/helm/test-values.yaml
rename to xta-adapter/src/test/helm-linter-values.yaml
diff --git a/xta-adapter/src/test/helm/cronjob_service_account_test.yaml b/xta-adapter/src/test/helm/cronjob_service_account_test.yaml
index 933e2c64f494bff262c48c680a46df70239662bd..b84278f12a2b95b750f3dbe657f66f0e54d46bbf 100644
--- a/xta-adapter/src/test/helm/cronjob_service_account_test.yaml
+++ b/xta-adapter/src/test/helm/cronjob_service_account_test.yaml
@@ -28,6 +28,8 @@ templates:
 release:
   name: xta-adapter
   namespace: helm-test
+set: 
+  ozgcloud.environment: test
 tests:
   - it: should use service account with default name
     set:
diff --git a/xta-adapter/src/test/helm/values/unit-values.yaml b/xta-adapter/src/test/helm/values/unit-values.yaml
deleted file mode 100644
index fe20e41e9122cdb398e01905ee0fe53db2463cdc..0000000000000000000000000000000000000000
--- a/xta-adapter/src/test/helm/values/unit-values.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
-# Ministerpräsidenten des Landes Schleswig-Holstein
-# Staatskanzlei
-# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
-#
-# Lizenziert unter der EUPL, Version 1.2 oder - sobald
-# diese von der Europäischen Kommission genehmigt wurden -
-# Folgeversionen der EUPL ("Lizenz");
-# Sie dürfen dieses Werk ausschließlich gemäß
-# dieser Lizenz nutzen.
-# Eine Kopie der Lizenz finden Sie hier:
-#
-# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
-#
-# Sofern nicht durch anwendbare Rechtsvorschriften
-# gefordert oder in schriftlicher Form vereinbart, wird
-# die unter der Lizenz verbreitete Software "so wie sie
-# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
-# ausdrücklich oder stillschweigend - verbreitet.
-# Die sprachspezifischen Genehmigungen und Beschränkungen
-# unter der Lizenz sind dem Lizenztext zu entnehmen.
-#
-
-ozgcloud:
-  bundesland: sh
-  environment: test
-  bezeichner: helm
\ No newline at end of file
diff --git a/xta-adapter/src/test/helm/xta_adapter_63_chars_test.yaml b/xta-adapter/src/test/helm/xta_adapter_63_chars_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b2a1223a8dbe928d2d0ce41ae6dd03d005e706eb
--- /dev/null
+++ b/xta-adapter/src/test/helm/xta_adapter_63_chars_test.yaml
@@ -0,0 +1,55 @@
+#
+# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+
+suite: test less than 63 chars
+release:
+  name: xta-adapter
+  namespace: sh-helm-test
+set:
+  ozgcloud.environment: test
+chart:
+  name: xta-adapter
+
+templates:
+  - templates/xta_adapter_cronjob.yaml
+
+tests:
+  - it: should fail on .Release.Namespace length longer than 63 characters
+    release:
+      namespace: test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890
+    asserts:
+      - failedTemplate:
+          errorMessage: .Release.Namespace test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 63 Zeichen)
+  - it: should not fail on .Release.Namespace length less than 63 characters
+    asserts:
+      - notFailedTemplate: {}
+  - it: should fail on .Chart.Name-.Chart.Version length longer than 63 characters
+    chart:
+      version: 1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890
+    asserts:
+      - failedTemplate:
+          errorMessage: .Chart.Name-.Chart.Version xta-adapter-1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 63 Zeichen)
+  - it: should not fail on .Chart.Name-.Chart.Version length less than 63 characters
+    asserts:
+      - notFailedTemplate: {}
\ No newline at end of file
diff --git a/xta-adapter/src/test/helm/xta_adapter_bindings_test.yaml b/xta-adapter/src/test/helm/xta_adapter_bindings_test.yaml
index ef1560522dcf450be3069f560c9aaa04bc7bb52b..959b0b824e88969cbc4012198b340d64836e5c61 100644
--- a/xta-adapter/src/test/helm/xta_adapter_bindings_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_bindings_test.yaml
@@ -25,6 +25,8 @@
 suite: xta-adapter bindings
 templates:
   - templates/xta_adapter_cronjob.yaml
+set:
+  ozgcloud.environment: test
 tests:
   - it: should have temp-dir volume
     asserts:
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml
index a75640cc51806e0a22c85787acb094ed8218b0bf..c42c4aadc068555e2f789fa4d449fcea8ac22d2d 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml
@@ -28,6 +28,9 @@ templates:
 release:
   name: xta-adapter
   namespace: helm-test
+set:
+  ozgcloud.environment: dev  
+  
 tests:
   - it: validate basic data 
     template: xta_adapter_cronjob.yaml
@@ -70,7 +73,6 @@ tests:
     template: xta_adapter_cronjob.yaml
     set:
       image.name: xta-adapter
-      ozgcloud.environment: dev
     asserts:
       - equal:
           path: spec.schedule
@@ -79,7 +81,6 @@ tests:
     template: xta_adapter_cronjob.yaml
     set:
       image.name: xta-adapter
-      ozgcloud.environment: dev
     asserts:
     - equal:
         path: spec.jobTemplate.spec.template.spec.containers[0].image
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_dummy_probes_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_dummy_probes_test.yaml
index 0a3ef9a964538609c475ec585b624d12892fc984..93637305c8f873e3557b93817da786ea391e32aa 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_dummy_probes_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_dummy_probes_test.yaml
@@ -28,6 +28,8 @@ templates:
 release:
   name: xta-adapter
   namespace: helm-test
+set:
+  ozgcloud.environment: test
 tests:
   - it: check dummy livenessProbe default disabled
     template: xta_adapter_cronjob.yaml
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml
index 5e4ca8ae1ee9d03f4c10c05eab3596eb9f47d013..45eb29fa69debf6962737e66509cc2c2c807ad29 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml
@@ -28,6 +28,8 @@ templates:
 release:
   name: xta-adapter
   namespace: helm-test
+set: 
+  ozgcloud.environment: test
 tests:
   - it: check default env
     template: xta_adapter_cronjob.yaml
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_image_pull_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_image_pull_test.yaml
index d74e945ac83c43e56c43f2065615719c412c9432..bf1fb21e365ad092aceaa9829bfcb9520e65012d 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_image_pull_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_image_pull_test.yaml
@@ -28,8 +28,12 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/xta_adapter_cronjob.yaml
+set: 
+  ozgcloud.environment: dev
+  
 tests:
   - it: should use default imagePull secret
+    set:
     asserts:
       - equal:
           path: spec.jobTemplate.spec.template.spec.imagePullSecrets[0].name
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_resources_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_resources_test.yaml
index 198021ea113204629eca21b78cc1b6fa373a28c9..02efe39637d3eeb149ffa8322d8f0e5d2e149f20 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_resources_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_resources_test.yaml
@@ -28,6 +28,8 @@ templates:
 release:
   name: xta-adapter
   namespace: helm-test
+set: 
+  ozgcloud.environment: dev
 tests:
   - it: check resources
     template: xta_adapter_cronjob.yaml
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml
index 95013323f05525f8a9d21ee106f3a9b0f29d5169..6acac9f4f2a7376cef9ca583eb3e82ae9cec76ec 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml
@@ -28,6 +28,8 @@ templates:
 release:
   name: xta-adapter
   namespace: helm-test
+set: 
+  ozgcloud.environment: dev
 tests:
   - it: check volume mounts
     template: xta_adapter_cronjob.yaml
diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java
index 643602f8918e4082a2c71cc0cf6223a79945a596..d1fc3de86803ba5fc9c49a574011b41adf8e3be0 100644
--- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java
+++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java
@@ -6,6 +6,7 @@ import static org.mockito.Mockito.*;
 
 import java.util.stream.Stream;
 
+import org.assertj.core.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
@@ -15,6 +16,9 @@ import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Spy;
 
+import de.ozgcloud.eingang.common.formdata.FormData;
+import de.ozgcloud.eingang.common.vorgang.VorgangNummerSupplier;
+
 class XtaServiceTest {
 
 	private static final String MESSAGE_TYPE_OTHER = "MESSAGE_TYPE_OTHER";
@@ -27,6 +31,8 @@ class XtaServiceTest {
 	private XtaRemoteService remoteService;
 	@Mock
 	private XtaMessageMapper mapper;
+	@Mock
+	private VorgangNummerSupplier vorgangNummerSupplier;
 
 	@Nested
 	class TestGetMessagesAsFormData {
@@ -49,6 +55,7 @@ class XtaServiceTest {
 
 		@Test
 		void shouldCallFilterByMessageType() {
+			when(mapper.toFormData(any())).thenReturn(FormDataTestFactory.create());
 			when(remoteService.getMessage(any(XtaMessageId.class))).thenReturn(message);
 
 			service.getMessages().toList();
@@ -58,6 +65,7 @@ class XtaServiceTest {
 
 		@Test
 		void shouldCallGetFormData() {
+			when(mapper.toFormData(any())).thenReturn(FormDataTestFactory.create());
 			when(remoteService.getMessage(any(XtaMessageId.class))).thenReturn(message);
 			doReturn(true).when(service).filterByMessageType(messageMetaData);
 
@@ -101,6 +109,8 @@ class XtaServiceTest {
 
 		@Captor
 		private ArgumentCaptor<XtaMessage> messageCaptor;
+		@Mock
+		private FormData formData;
 
 		@BeforeEach
 		void init() {
@@ -109,6 +119,8 @@ class XtaServiceTest {
 
 		@Test
 		void shouldCallRemoteService() {
+			doReturn(formData).when(service).updateHeader(any());
+
 			service.getFormData(XtaMessageMetaDataTestFactory.create());
 
 			verify(remoteService).getMessage(XtaMessageTestFactory.MESSAGE_ID);
@@ -116,6 +128,8 @@ class XtaServiceTest {
 
 		@Test
 		void shouldCallMapper() {
+			doReturn(formData).when(service).updateHeader(any());
+
 			service.getFormData(XtaMessageMetaDataTestFactory.create());
 
 			verify(mapper).toFormData(any());
@@ -123,7 +137,9 @@ class XtaServiceTest {
 
 		@Test
 		void shouldHaveMetaData() {
+			doReturn(formData).when(service).updateHeader(any());
 			XtaMessageMetaData metaData = XtaMessageMetaDataTestFactory.create();
+
 			service.getFormData(metaData);
 
 			verify(mapper).toFormData(messageCaptor.capture());
@@ -134,6 +150,7 @@ class XtaServiceTest {
 		void shouldReturnMappedResult() {
 			var mapped = FormDataTestFactory.create();
 			when(mapper.toFormData(any())).thenReturn(mapped);
+			doReturn(mapped).when(service).updateHeader(any());
 
 			var result = service.getFormData(XtaMessageMetaDataTestFactory.create());
 
@@ -141,6 +158,50 @@ class XtaServiceTest {
 		}
 	}
 
+	@Nested
+	class TestUpdateHeader {
+
+		@Test
+		void shouldCallSetVorgangNummer() {
+			var formData = FormDataTestFactory.create();
+
+			service.updateHeader(formData);
+
+			verify(service).setVorgangNummer(formData.getHeader());
+		}
+
+		@Test
+		void shouldSetUpdatedHeader() {
+			var updatedHeader = FormHeaderTestFactory.create();
+			doReturn(updatedHeader).when(service).setVorgangNummer(any());
+
+			var result = service.updateHeader(FormDataTestFactory.create());
+
+			Assertions.assertThat(result.getHeader()).isSameAs(updatedHeader);
+		}
+	}
+
+	@Nested
+	class TestSetVorgangNummer {
+
+		@Test
+		void shouldCallVorgangNummerSupplier() {
+			service.setVorgangNummer(FormHeaderTestFactory.create());
+
+			verify(vorgangNummerSupplier).get(XtaService.VORGANG_NUMMER_SUFFIX_LENGTH);
+		}
+
+		@Test
+		void shouldSetVorgangNummer() {
+			var vorgangNummer = "vorgang-1";
+			when(vorgangNummerSupplier.get(anyInt())).thenReturn(vorgangNummer);
+
+			var result = service.setVorgangNummer(FormHeaderTestFactory.create());
+
+			assertThat(result.getVorgangNummer()).isEqualTo(vorgangNummer);
+		}
+	}
+
 	@Nested
 	class TestAcknowledgeReceive {