diff --git a/alfa-client/libs/command-shared/src/lib/command.model.ts b/alfa-client/libs/command-shared/src/lib/command.model.ts
index 86fbc485c7b5143be1ab69d70e04644bafb1328b..d93097c851859299d3310f8a1edd27c5e9bea514 100644
--- a/alfa-client/libs/command-shared/src/lib/command.model.ts
+++ b/alfa-client/libs/command-shared/src/lib/command.model.ts
@@ -99,3 +99,5 @@ export interface CreateCommandProps {
   snackBarMessage?: string;
   snackBarErrorMessage?: string;
 }
+
+export type CreateCommandPropsWithoutResource = Omit<CreateCommandProps, 'resource'>;
diff --git a/alfa-client/libs/command-shared/test/command.ts b/alfa-client/libs/command-shared/test/command.ts
index ff7aae6c8ba99ae02f921c49b9a789c675e404bd..05fec9de4806f6473cf2d4204ee196ed71db5da0 100644
--- a/alfa-client/libs/command-shared/test/command.ts
+++ b/alfa-client/libs/command-shared/test/command.ts
@@ -35,6 +35,7 @@ import {
   CommandStatus,
   CreateCommand,
   CreateCommandProps,
+  CreateCommandPropsWithoutResource,
 } from '../src/lib/command.model';
 
 export function createCommand(): Command {
@@ -85,8 +86,11 @@ export function createCreateCommand(order: CommandOrder = CommandOrder.VORGANG_A
 }
 
 export function createCreateCommandProps(): CreateCommandProps {
+  return { ...createCreateCommandPropsWithoutResource(), resource: createCommandResource() };
+}
+
+export function createCreateCommandPropsWithoutResource(): CreateCommandPropsWithoutResource {
   return {
-    resource: createCommandResource(),
     linkRel: faker.internet.url(),
     command: createCreateCommand(),
     snackBarMessage: faker.word.sample(5),
diff --git a/alfa-client/libs/forwarding-shared/src/lib/forwarding.service.spec.ts b/alfa-client/libs/forwarding-shared/src/lib/forwarding.service.spec.ts
index 32c7dcbe9469d168c5b4911268a5316a5ac21a9f..fc179766649daf312ed6f0f1680e8dd59a791fef 100644
--- a/alfa-client/libs/forwarding-shared/src/lib/forwarding.service.spec.ts
+++ b/alfa-client/libs/forwarding-shared/src/lib/forwarding.service.spec.ts
@@ -21,7 +21,7 @@
  * Die sprachspezifischen Genehmigungen und Beschränkungen
  * unter der Lizenz sind dem Lizenztext zu entnehmen.
  */
-import { CommandOrder, CommandResource, CommandService, CreateCommandProps } from '@alfa-client/command-shared';
+import { CommandOrder, CommandResource, CommandService, CreateCommandPropsWithoutResource } from '@alfa-client/command-shared';
 import { NavigationService } from '@alfa-client/navigation-shared';
 import {
   EMPTY_STRING,
@@ -43,7 +43,7 @@ import { faker } from '@faker-js/faker/.';
 import { ResourceUri } from '@ngxp/rest';
 import { hot } from 'jest-marbles';
 import { CommandLinkRel } from 'libs/command-shared/src/lib/command.linkrel';
-import { createCommandResource, createCreateCommandProps } from 'libs/command-shared/test/command';
+import { createCommandResource, createCreateCommandPropsWithoutResource } from 'libs/command-shared/test/command';
 import {
   createVorgangForwardRequest,
   createVorgangResource,
@@ -359,33 +359,26 @@ describe('ForwardingService', () => {
 
   describe('forward', () => {
     const forwardingToUri: ResourceUri = faker.internet.url();
-    const vorgangResource: VorgangWithEingangResource = createVorgangWithEingangResource();
-    const createCommandProps: CreateCommandProps = createCreateCommandProps();
+
+    const createCommandProps: CreateCommandPropsWithoutResource = createCreateCommandPropsWithoutResource();
     const commandResource: CommandResource = createCommandResource();
     const commandStateResource: StateResource<CommandResource> = createStateResource(commandResource);
 
     beforeEach(() => {
-      vorgangService.selectVorgangWithEingang.mockReturnValue(of(createStateResource(vorgangResource)));
+      vorgangService.createCommand.mockReturnValue(of(commandStateResource));
       service._buildForwardCreateCommandProps = jest.fn().mockReturnValue(createCommandProps);
-      commandService.createCommandByProps.mockReturnValue(of(commandStateResource));
-    });
-
-    it('should call vorgang service to get vorgang with eingang', () => {
-      service.forward(forwardingToUri).subscribe();
-
-      expect(vorgangService.selectVorgangWithEingang).toHaveBeenCalled();
     });
 
     it('should call build forward create command', () => {
       service.forward(forwardingToUri).subscribe();
 
-      expect(service._buildForwardCreateCommandProps).toHaveBeenCalledWith(vorgangResource, forwardingToUri);
+      expect(service._buildForwardCreateCommandProps).toHaveBeenCalledWith(forwardingToUri);
     });
 
-    it('should call command service to create command', () => {
+    it('should call vorgang service to create command', () => {
       service.forward(forwardingToUri).subscribe();
 
-      expect(commandService.createCommandByProps).toHaveBeenCalledWith(createCommandProps);
+      expect(vorgangService.createCommand).toHaveBeenCalledWith(createCommandProps, true);
     });
 
     it('should return response from command service', () => {
@@ -397,16 +390,15 @@ describe('ForwardingService', () => {
 
   describe('build forward command props', () => {
     const forwardingToUri: ResourceUri = faker.internet.url();
-    const vorgangResource: VorgangWithEingangResource = createVorgangWithEingangResource();
 
     it('should contains linkrel', () => {
-      const commandProps: CreateCommandProps = service._buildForwardCreateCommandProps(vorgangResource, forwardingToUri);
+      const commandProps: CreateCommandPropsWithoutResource = service._buildForwardCreateCommandProps(forwardingToUri);
 
       expect(commandProps.linkRel).toBe(VorgangWithEingangLinkRel.FORWARD_BY_OZGCLOUD);
     });
 
     it('should contains command', () => {
-      const commandProps: CreateCommandProps = service._buildForwardCreateCommandProps(vorgangResource, forwardingToUri);
+      const commandProps: CreateCommandPropsWithoutResource = service._buildForwardCreateCommandProps(forwardingToUri);
 
       expect(commandProps.command).toEqual({
         order: CommandOrder.VORGANG_FORWARD,
@@ -415,15 +407,9 @@ describe('ForwardingService', () => {
     });
 
     it('should contains empty snackbar message', () => {
-      const commandProps: CreateCommandProps = service._buildForwardCreateCommandProps(vorgangResource, forwardingToUri);
+      const commandProps: CreateCommandPropsWithoutResource = service._buildForwardCreateCommandProps(forwardingToUri);
 
       expect(commandProps.snackBarMessage).toBe(EMPTY_STRING);
     });
-
-    it('should contains resource', () => {
-      const commandProps: CreateCommandProps = service._buildForwardCreateCommandProps(vorgangResource, forwardingToUri);
-
-      expect(commandProps.resource).toBe(vorgangResource);
-    });
   });
 });
diff --git a/alfa-client/libs/forwarding-shared/src/lib/forwarding.service.ts b/alfa-client/libs/forwarding-shared/src/lib/forwarding.service.ts
index 032a0569f57ad920f08a3db64238636d93c2a67f..fc1013d6c5b3d70a0d8dec41b1f5a68953a92dea 100644
--- a/alfa-client/libs/forwarding-shared/src/lib/forwarding.service.ts
+++ b/alfa-client/libs/forwarding-shared/src/lib/forwarding.service.ts
@@ -26,7 +26,7 @@ import {
   CommandResource,
   CommandService,
   CreateCommand,
-  CreateCommandProps,
+  CreateCommandPropsWithoutResource,
   isDone,
   isPending,
 } from '@alfa-client/command-shared';
@@ -37,7 +37,6 @@ import {
   createEmptyStateResource,
   createStateResource,
   hasStateResourceError,
-  mapToResource,
 } from '@alfa-client/tech-shared';
 import {
   ForwardRequest,
@@ -52,7 +51,7 @@ import { Params } from '@angular/router';
 import { ResourceUri } from '@ngxp/rest';
 import { isNil } from 'lodash-es';
 import { BehaviorSubject, Observable, Subscription } from 'rxjs';
-import { first, map, startWith, switchMap, tap } from 'rxjs/operators';
+import { first, map, startWith, tap } from 'rxjs/operators';
 import { ForwardingLinkRel } from './forwarding.linkrel';
 import { ForwardingListResource, ForwardingResource } from './forwarding.model';
 import { ForwardingRepository } from './forwarding.repository';
@@ -181,23 +180,14 @@ export class ForwardingService implements OnDestroy {
   }
 
   public forward(forwardingToUri: ResourceUri): Observable<StateResource<CommandResource>> {
-    return this.selectVorgangWithEingang().pipe(
-      switchMap((vorgang: VorgangWithEingangResource) => {
-        return this.commandService.createCommandByProps(this._buildForwardCreateCommandProps(vorgang, forwardingToUri));
-      }),
-    );
-  }
-
-  private selectVorgangWithEingang(): Observable<VorgangWithEingangResource> {
-    return this.vorgangService.selectVorgangWithEingang().pipe(first(), mapToResource());
+    return this.vorgangService.createCommand(this._buildForwardCreateCommandProps(forwardingToUri), true);
   }
 
-  _buildForwardCreateCommandProps(vorgang: VorgangWithEingangResource, forwardingToUri: ResourceUri): CreateCommandProps {
-    return <any>{
+  _buildForwardCreateCommandProps(forwardingToUri: ResourceUri): CreateCommandPropsWithoutResource {
+    return {
       linkRel: VorgangWithEingangLinkRel.FORWARD_BY_OZGCLOUD,
       command: this.createBuildForwardCommand(forwardingToUri),
       snackBarMessage: EMPTY_STRING,
-      resource: vorgang,
     };
   }
 
diff --git a/alfa-client/libs/vorgang-shared/src/lib/vorgang.service.spec.ts b/alfa-client/libs/vorgang-shared/src/lib/vorgang.service.spec.ts
index 841db70f825511dbd592a67f7a614955ff11f515..5e9995262ed38703521d02d10ee078a330163cbd 100644
--- a/alfa-client/libs/vorgang-shared/src/lib/vorgang.service.spec.ts
+++ b/alfa-client/libs/vorgang-shared/src/lib/vorgang.service.spec.ts
@@ -23,18 +23,26 @@
  */
 import { ApiRootLinkRel, ApiRootResource, ApiRootService } from '@alfa-client/api-root-shared';
 import { BinaryFileListResource } from '@alfa-client/binary-file-shared';
-import { CommandOrder, CommandResource, CommandService, CreateCommandProps } from '@alfa-client/command-shared';
+import {
+  CommandOrder,
+  CommandResource,
+  CommandService,
+  CreateCommandProps,
+  CreateCommandPropsWithoutResource,
+} from '@alfa-client/command-shared';
 import { Environment } from '@alfa-client/environment-shared';
 import { NavigationService } from '@alfa-client/navigation-shared';
 import { EMPTY_STRING, StateResource, createEmptyStateResource, createStateResource } from '@alfa-client/tech-shared';
 import { Mock, mock, useFromMock } from '@alfa-client/test-utils';
 import { HttpErrorResponse } from '@angular/common/http';
+import { faker } from '@faker-js/faker';
 import { ResourceUri, getUrl } from '@ngxp/rest';
 import { cold, hot } from 'jest-marbles';
 import { createApiRootResource } from 'libs/api-root-shared/test/api-root';
 import { createBinaryFileListResource } from 'libs/binary-file-shared/test/binary-file';
 import { CommandLinkRel } from 'libs/command-shared/src/lib/command.linkrel';
-import { createCommandResource } from 'libs/command-shared/test/command';
+import { createCommandResource, createCreateCommandPropsWithoutResource } from 'libs/command-shared/test/command';
+import { singleColdCompleted } from 'libs/tech-shared/test/marbles';
 import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang';
 import { Observable, of } from 'rxjs';
 import { VorgangFacade } from './+state/vorgang.facade';
@@ -42,9 +50,6 @@ import { VorgangWithEingangLinkRel } from './vorgang.linkrel';
 import { AdditionalActions, VorgangResource, VorgangWithEingangResource } from './vorgang.model';
 import { VorgangService } from './vorgang.service';
 
-import { faker } from '@faker-js/faker';
-
-import { singleColdCompleted } from 'libs/tech-shared/test/marbles';
 import * as VorgangNavigationUtil from './vorgang-navigation.util';
 
 describe('VorgangService', () => {
@@ -537,4 +542,43 @@ describe('VorgangService', () => {
       expect(vorgangWithEingangStateResource$).toBeObservable(singleColdCompleted(vorgangStateResource));
     });
   });
+
+  describe('create command', () => {
+    const vorgangResource: VorgangWithEingangResource = createVorgangWithEingangResource();
+
+    const createCommandProps: CreateCommandPropsWithoutResource = createCreateCommandPropsWithoutResource();
+    const commandResource: CommandResource = createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]);
+    const commandStateResource: StateResource<CommandResource> = createStateResource(commandResource);
+
+    beforeEach(() => {
+      facade.getVorgangWithEingang.mockReturnValue(of(createStateResource(vorgangResource)));
+      commandService.createCommandByProps.mockReturnValue(of(commandStateResource));
+    });
+
+    it('should call facade to get vorgang with eingang', () => {
+      service.createCommand(createCommandProps).subscribe();
+
+      expect(facade.getVorgangWithEingang).toHaveBeenCalled();
+    });
+
+    it('should call command service to create command', () => {
+      service.createCommand(createCommandProps).subscribe();
+
+      expect(commandService.createCommandByProps).toHaveBeenCalledWith({ ...createCommandProps, resource: vorgangResource });
+    });
+
+    it('should return response from command service', () => {
+      const forwardCommand$: Observable<StateResource<CommandResource>> = service.createCommand(createCommandProps);
+
+      expect(forwardCommand$).toBeObservable(singleColdCompleted(commandStateResource));
+    });
+
+    it('should call reload if command is done and reload flag is true', () => {
+      service.reloadVorgang = jest.fn();
+
+      service.createCommand(createCommandProps, true).subscribe();
+
+      expect(service.reloadVorgang).toHaveBeenCalled();
+    });
+  });
 });
diff --git a/alfa-client/libs/vorgang-shared/src/lib/vorgang.service.ts b/alfa-client/libs/vorgang-shared/src/lib/vorgang.service.ts
index 27fbe8ff8a03361c403cd38d034cacac177ef7ec..7e43262e9757d58e030c4bbe2900aae791255e96 100644
--- a/alfa-client/libs/vorgang-shared/src/lib/vorgang.service.ts
+++ b/alfa-client/libs/vorgang-shared/src/lib/vorgang.service.ts
@@ -28,15 +28,17 @@ import {
   CommandResource,
   CommandService,
   CreateCommandProps,
+  CreateCommandPropsWithoutResource,
   getEffectedResourceUrl,
+  tapOnCommandSuccessfullyDone,
 } from '@alfa-client/command-shared';
 import { ENVIRONMENT_CONFIG, Environment } from '@alfa-client/environment-shared';
 import { NavigationService } from '@alfa-client/navigation-shared';
-import { StateResource, createEmptyStateResource, doIfLoadingRequired, isNotNull } from '@alfa-client/tech-shared';
+import { StateResource, createEmptyStateResource, doIfLoadingRequired, isNotNull, mapToResource } from '@alfa-client/tech-shared';
 import { Inject, Injectable } from '@angular/core';
 import { ResourceUri, hasLink } from '@ngxp/rest';
 import { Observable, combineLatest } from 'rxjs';
-import { filter, map, startWith, tap, withLatestFrom } from 'rxjs/operators';
+import { filter, first, map, startWith, switchMap, tap, withLatestFrom } from 'rxjs/operators';
 import { VorgangFacade } from './+state/vorgang.facade';
 import { buildLinkRelFromPathSegments } from './vorgang-navigation.util';
 import { VorgangWithEingangLinkRel } from './vorgang.linkrel';
@@ -142,10 +144,6 @@ export class VorgangService {
     return this.facade.getAssignUserCommand();
   }
 
-  public reloadVorgang(commandResource: CommandResource): void {
-    this.facade.loadVorgangWithEingang(getEffectedResourceUrl(commandResource));
-  }
-
   public getBackButtonUrl(): Observable<string> {
     return this.facade.getBackButtonUrl();
   }
@@ -199,7 +197,27 @@ export class VorgangService {
     return this.commandService.createCommand(vorgang, VorgangWithEingangLinkRel.SET_AKTENZEICHEN, createCommand);
   }
 
+  public createCommand(
+    createCommandProps: CreateCommandPropsWithoutResource,
+    reloadResource: boolean = false,
+  ): Observable<StateResource<CommandResource>> {
+    return this.selectVorgangWithEingang().pipe(
+      first(),
+      mapToResource(),
+      switchMap((vorgang: VorgangWithEingangResource) =>
+        this.commandService.createCommandByProps({ ...createCommandProps, resource: vorgang }),
+      ),
+      tapOnCommandSuccessfullyDone((commandStateResource: StateResource<CommandResource>) => {
+        if (reloadResource) this.reloadVorgang(commandStateResource.resource);
+      }),
+    );
+  }
+
   public selectVorgangWithEingang(): Observable<StateResource<VorgangWithEingangResource>> {
     return this.facade.getVorgangWithEingang();
   }
+
+  public reloadVorgang(commandResource: CommandResource): void {
+    this.facade.loadVorgangWithEingang(getEffectedResourceUrl(commandResource));
+  }
 }