Maintenance
Upgrading to V8
V8 Job Submit and Form Changes
4 min
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 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