FAQ:
I have updated a table from the form and written a update statement in the when-button-pressed trigger.
while the code is working fine and the table is updated but iam finding this error in the console frm-40401 no changes to save. pls help me why it is coming and what affect it have on my form. i had suppressed this message by writing on-error trigger on form level.
You can bypass this by raising the message level.
Code:
DECLARE
-- Capture the original message level, to reset afterwards.
v_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL;
BEGIN
-- Raise the message level above 5, avoid information messages.
-- Read the Forms help file for more info
:SYSTEM.MESSAGE_LEVEL := 5;
COMMIT_FORM;
-- Reset the message level to the original value
:SYSTEM.MESSAGE_LEVEL := v_message_level;
END;
The message means that no database items in the Form have changed, so the BLOCK_STATUS is still in QUERY_STATUS. As a result, for Forms default transaction processing, there's nothing to save.
Alternatively, you can set the record status manually to changed_status, thus avoiding the message.
Processing:
DECLARE
-- Capture the original message level, to reset afterwards.
l_message_level PLS_INTEGER := :SYSTEM.MESSAGE_LEVEL;
BEGIN
-- Raise the message level above 5, avoid information messages.
-- Read the Forms help file for more info
:SYSTEM.MESSAGE_LEVEL := 5;
kol_osfm_move_trans_private.insert_row;
do_key('COMMIT_FORM');
-- Reset the message level to the original value
:SYSTEM.MESSAGE_LEVEL := l_message_level;
END;