3 Replies Latest reply: Nov 25, 2013 11:29 AM by Andreas Weiden RSS

    FRM 40405 in oracle forms


      Hello experts,     

                          I am using oracle weblogic 10.3.5 with oracle forms 11g at windows 7.I have a form having one base table data block ( say--- emp') and a control data block (say AREA).In the form there are some fields which are not related with the base table data block.But on committing the form there are two conditions:

      1)-- when base table data block items are edited

      2) --- when only those items are edited which are not part of the base table data block (  emp ) ------------>now at this condition if I choose to commit button then there is a message  FRM -40405 no changes to save.

      for this I have tried  SYSTEM.MESSAGE_LEVEL:=5 on pre_form trigger.But first time when I edit the Area data block item....there is no FRM40405 message but I edit the AREA data block item again and press the commit button then there is a message FRM 40405 flashed.Please suggest me what should i do to skip this message.



        • 2. Re: FRM 40405 in oracle forms


          Per  oracle form concept - a data  which is retrived (already stored) from table - on block -. If block changed , then only  SYSTEM.BLOCK_STATUS  - WILL BE  be changed from query to CHANGED.

          Non  base table item  for any action on modifaction/update - you should write your own codding.



          SYSTEM.BLOCK_STATUS represents the status of a Data block where the cursor is located, or the

          current data block during trigger processing. The value can be one of three character strings:

          CHANGED Indicates that the block contains at least one Changed record.

          NEW Indicates that the block contains only New records.

          QUERY Indicates that the block contains only Valid records that have been

          retrieved from the database.

          • 3. Re: FRM 40405 in oracle forms
            Andreas Weiden

            I understand that there are sometimes reasons why your user maybe allowed to change fields which are not database fields, but why should they be able to save that (and what exactly is saved in this cases) ?


            If you want to prevent forms from saving when there are no changes, you could create a KEY-COMMIT-trigger and check the :SYSTEM.FORM_STATUS in it before saving, something like


            END IF;