---
title: V8 Job Submit and Form Changes
slug: v8-job-submit-and-form-changes
docTags: 
createdAt: 2025-06-11T20:26:20.403Z
---

The Web.Wizard controls the process that the user sees to enter the data to submit a Request. It is a combination of built-in pages and custom forms.  

A typical Web.Wizard might look something like this.

- SelectUser
- SelectMultipleDL
- GenericConfirm

## Versions V7 or older

Each page is shown, and when the user clicks next, the following happens:

- The user clicks on a button to start a new Request.
  - A new Job is created in memory on the server for the specified Task.
- The first Page or Form is shown
- The user enters the data and then clicks Next
  - Form data is sent to the server to process. 
  - This form data is used to bind to the [ASP.NET](//ASP.NET) controls
  - These controls then update the Job Arguments in Memory on the server
- The next page is generated and shown to the user as HTML
- Repeat the process above until the user clicks 'Submit' on GenericConfirm
  - The Job in memory is saved to the database where the Job Service picks it up and starts the Workflow.

Summary

- The Job is stored in session memory on the server
  - This means it is possible to lose the job if the session times out
  - The UI and Job can get out of sync if the user uses the Back button.

## V8 or Newer

The process is quite different in mechanism.

- The user clicks on a button to start a new request.
  - The server generates a JobViewModel for the first page
    - This contains a JSON model of the Job and the first form to display.
    - Job Model
      - The Job is NOT stored on the server and only exists in the Model
      - The Job in the model contains the arguments and a securityToken. This securityToken is a SHA256 Hash of the data in the Job.
      - The Job data cannot be changed by the client and is sent back to the server to update.
    - View Model - information required to display the form
      - Form Controls
      - Model
        - The model contains the data that can be updated by the form.
      - Bindings
        - The bindings contain the mapping between the Form Controls -> Model -> ActivateBind
        - The bindings controls the validation and the mapping between the Model and the Job ActivateBind statements.
        - This also protected by a SHA256 hash and cannot be changed on the client.
  - The client renders the Form Controls and displays the data from the model for each control.
  - The user changes the Model by interacting with the controls.
- Submit the Form
  - The Job, Model and Bindings are sent the server
  - The Server validates the Model data for each binding and updates the Job with the new data.
  - The server then returns the updated Job with the new View model for the next page.
- Submitting the Request
  - The GenericConfirm page will update and validate the Job and then submit the Job to Activate Orchestrator for processing.

Key Differences

- The Job is never stored on the Web Server and only exists in the model and is stored in the history for each Page.
- If the user hits the back button the Job will be restored to the correct version for that page.
- Any changes made in 'future' pages are lost and the job is restored to a consistent state.
