If the POST Built-in is executed when there are no changes to be posted, Oracle Forms displays the error message:
FRM-40405: No changes to post.
To avoid this error, before attempting to post, check the system variable SYSTEM.FORM_STATUS to verify that at least one record in the form has been validated as CHANGED:
ENTER;
IF system.form_status = 'CHANGED' THEN
POST;
END IF;
CALL_FORM('form_b', no_hide);
Since the default rollback mode when exiting a form is TO_SAVEPOINT, you must explicitly override this functionality to avoid a rollback. For example, if the end user selects the Exit item on the default Action menu, changes made in the called form will be lost. To override the default Exit command, you might write the following trigger:
Key-EXIT Trigger:
IF system.form_status = 'CHANGED' THEN
POST;
END IF;
EXIT_FORM(no_commit, no_rollback);
You can use this same technique when you leave the current form by executing the NEW_FORM procedure instead of EXIT_FORM.
IF system.form_status = 'CHANGED' THEN
POST;
END IF;
NEW_FORM(no_commit, no_rollback);
In this case, changes posted by the called form can then be committed by the new form that takes its place.