Hi all.
We are busy with a POC to see if we will be able to replace our Oracle Workflow system that has been running with a Forms front end for about 18 years. The system still work 100%. We just want to replace the forms front end so that it can run on any platform including mobile.
So we have been converting one of the processes that is not that complicated to prove that it will work.
We are using Apex 5.1 with the Universal Theme.
The process has a submit screen that does all the validation and once everything is valid then the page will kick off the Oracle Workflow process. This works 100%.
Now I am busy with the approval screen. As you can see there are a couple of buttons at the top that the manager can click. Each one of these buttons have different business rules and validations behind them.
Here is the Oracle Forms page

And here is the same page in the Apex system

For example If you click a button like Reject, the manager has to give a reason why. This reason is only required on a reject, he can enter a note anyway on any of the other buttons by clicking the notes button that I highlighted and then enter the note before he makes his selection, but is is only mandatory on Reject. On the forms app we force the user to enter the reason by displaying a error message and then stop execution by firing a "RAISE FORM_TRIGGER_FAILURE;"

Then the form will open a dialog so the manager can enter the reason.

I know how to call a dialog and pass data to and from it so the add the note is not the problem.

I do all the validation in PL/SQL in an dynamic action. But how do I stop execution of that action so that the page is not submitted or processed further like I do with a RAISE FORM_TRIGGER_FAILURE; if there is something wrong (not just a format of a field or item required validation, the validation can be a lookup of a project code and a lot more, it is complex validations, this is just a sample)
And also how do I popup a message like we do in forms, So that the user will know what to do ?
I have read 2 books so far that are recommended and have looked at a number of tutorial, none show a way to do this. What is the best way to get this working in a similar way to the Forms version.

I am sorry if I left out anything that you need more. I am new in this community. Been using Oracle for 20 years but on the Forms and DB side.
Kind Regards.