FRM-40401 No changes to save error

时间:2022-01-31 08:59:26

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;