Thanks, actually I missed this note on the same page:
If an element is marked as Required then using ‘!’ as the default return on the prompt value will satisfy the ‘required’ stipulation without the user necessarily selecting anything from the presented drop-down list. This may not be desirable. For Required elements a preferred option would be to use nil as the default return, for example:
values_hash[nil] = '-- select from list --'
This would then not satisfy the ‘required’ stipulation, and so force the user to select a presented ‘real’ value from the drop-down list.
So I added
values_hash[nil] = '-- select item(s) --'
This seems to cure the issue in the single select dropdown list case. However, if I turn on Multiselect for the dropdown, I can submit the dialog without selecting anything. Actually,
-- select item(s) -- is pre-selected. In this case the System/Process instance is not called and I do not see anything in the logs - behaves like I pressed Cancel.
I tried to add
dialog_field['default_value'] = nil
but this prevents the dialog appearing.
I also tried
dialog_field['default_value'] = [nil]
In this case Nothing selected is shown on the dropdown, but I can still submit the form.
So I still do not have a good solution for a mandatory multiselect dropdown, just one step closer.