November Happy Hour will be moved to Thursday December 5th.

Multi-step form not submitting all data if store 'form submissions' is unchecked

Vote:
 

Hello, 

I am experiencing an issue where a simple multi-step Optimizely Form is only posting the submission data from the final step to a custom actor introduced into the solution. The frustrating part is this only happens when the 'store form submissions' option is unchecked. I need this unchecked because I don't want data to be stored in the DDS and presented in the form submission UI on the container inside the CMS. The idea is to store the data in an external system which is the job of the custom actor except I'm losing the submission data in this scenario. 

Example Scenario

Complete Step 1 > submit will go to the next step

Complete Step 2 > post data to to the default '/EPiServer.Forms/DataSubmit'

This is what SubmissionData.Data in the custom actor (which inherits PostSubmissionActorBase).It's missing all step 1 properties

If I re-enable 'store form submissions' in the CMS and repeat the process above to populate all properties in the two steps I get the following in SubmissionData.Data in the custom actor.

It's worth pointing out that when 'store form submissions' is unchecked if I use developer tools and inspect the network tab I can see that the payload contains all of the data when i select submit btn. Ive also completely stripped all custom js and styles so the form is raw. I still see the issue so it must be on the server side.

Convinced that this surely wasn't by design I created an Alloy Demo site, installed the Episerver.Forms package, and created an identical simple multi-step form. My testing confirmed that regardless of 'store form submissions' published value the SubmissionData.Data always contained the full dataset. 🥴

This pointed to an issue with the solution I was working so I also tried

  • The forms package I had installed on the Alloy Demo site was 4.30.4 (forms, core & UI) so I updated the package in my solution - didn't work
  • Updated the dependency resolver to match Alloy so that the custom actor was being registered in the same way - didn't work
  • Removed all custom routes/form related logic - didn't work
  • Compared all configurations on the containers/elements and they are identical 

I raised an Optimizely support ticket to engage them and although I have scree shared to demo the issue, understandable without the solution they are struggling to pinpoint what might be happening. The only real difference is the CMS versions (alloy = 11.15, solution 11.13) but that shouldn't make any difference I don't think. I guess I'm raising this ticket to see if anyone can think of anything else I can try to get to the bottom of this?

Thank you for reading!

Paul

#280296
Edited, May 13, 2022 16:28
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.