In this article, we will discuss on how we can control form fields' values saving based on which button is clicked on form submission. Let's use this form as an example.
The business requirement is to not save the value for "Contact" when "Save As Draft" button is used to submit the form.
In order to address this requirement, the field "contact" needs to be in its own section. This is because form section offers permission control.
In the section where the subform is, set the permission of the section to Bean Shell Script.
We will then need to detect when the "Save As Draft" button is clicked or not to determine the next step forward.
//the following will return false (hash not empty against empty string) if "save as draft" button is clicked on form submission, othwerise, it will return true (form loading) return "#requestParam.saveAsDraft?java#".equals("");
The same script can also be placed in the subform's form section permission, or in the subform's form permission too.
With this, the value "c" will only gets replaced with user's input value when "Complete" button is hit, otherwise, it will stays as it is.