FRM-40400 No changes to apply

Dear friends,
I'm using a button to do a commit_form, i have 3 blocks (2 database blocks, 1 non database block).
when ever i push the button for the first time it commits the form without any messages, but after that it always shows (FRM-40400 No changes to apply).
i used :system.message_level like following:
N:= :SYSTEM.MESSAGE_LEVEL;
:SYSTEM.MESSAGE_LEVEL := 0;
COMMIT_FORM;
CLEAR_FORM(NO_VALIDATE);
:SYSTEM.MESSAGE_LEVEL := N;
but the message still appears after 1st push for the button.
can any one help me on this issue.
Please note that this issue happens only if i open the form using open_form method, but if i use new_form it works without any messages.
Best Regards
I found the solution, if you use call_form, you will be able to set the message level as you want. without being overridden by the calling form.
Edited by: Mohammad1981 on Feb 12, 2010 1:23 PM
Edited by: Mohammad1981 on Feb 12, 2010 1:28 PM

i'v found the answer after posing the question. you can find it above.

Similar Messages

  • FRM-40405 (No Changes to apply)

    When i open a form through menu and save record i am getting the message 'FRM-40405 No changes to apply'.
    I am not geeting the error while running the form independently i.e not calling through menu. commit_form built is used in key-commit trigger.
    I am using OAS 4.0.8 and Forms 6i with Patch 1.

    I think in this case, you issued a commit without actually changing any data, so the commit was not necessary. Many Times I had to do this and did not want to see this error.
    What you can do to overcome this is to create a forms 'on error' trigger. Then trap the error like follows -
    DECLARE
    errnum NUMBER := ERROR_CODE;
    errtxt VARCHAR2(80) := ERROR_TEXT;
    errtyp VARCHAR2(3) := ERROR_TYPE;
    BEGIN
    IF errnum = 40301 THEN
    Message('Your search criteria identified no matches... Try Again.');
    ELSIF errnum = 40350 THEN /* no records found */
    null;
    ELSIF errnum = 41026 THEN /* FIELD OUTPUITING*/
    Message('This field is calculated');
    ELSif errnum=40401 then /* double commit somewhere */
    null;
    ELSif errnum=40505 then /* double commit somewhere */
    null;
    ELSif errnum=41050 then /* Record has been saved already */
    null;
    ELSIF errnum=41008 then /* Undefined Keys */
    null;
    ELSIF errnum=40100 then /* beyond first record */
    null;
    ELSIF errnum=40200 then /* field protected against update */
    null;
    ELSIF errnum=40352 then /* beyond last record */
    endif;

  • FRM-40405, No Changes To Apply Message

    Environment : Forms 9i, Web, 9iAS
    Whenever a transaction is made, The "No changes to Apply" message is get displayed and then the transaction is applied and saved message appears.
    How can i get ride to the First message?
    ON-ERROR trigger containss the following code
    if error_type = 'FRM' and error_code = 40405 then
         null;
    else
    message(error_code ||':'||error_text,no_acknowledge);
    end if;
    Eben then, No change to Apply message Appears.

    This is happening for all the Forms in our Application Just a guess...
    Sounds like you are running your forms from a "master form" using OPEN_FORM(form_name, ACTIVATE, NO_SESSION); This will do the commit on both the called form and the calling form (and that's where the FRM-40405 comes from). You can use OPEN_FORM(form_name, ACTIVATE, SESSION); but this will create a new session for each form being called.
    Try the CALL_FORM built-in instead.
    Hope this helps (if my guess is wrong, forget it:)
    Gerald Krieger

  • FRM-40405: No change to apply.  Error Alert.

    The first time a detail is updated this message does not display.
    The second time a detail is updated, this message displays when the form_commit (or COMMIT) trigger fires.
    The alert fires even when a new master record with new details has been queried.
    A form level or block level ON-ERROR trigger does NOT intercept this alert. It does intercept other errors like navigation past the first record error or the out of range error.
    Where is this error generated? Is it caused because we are using a ref-cursor stored procedure?

    That message is issued as a result of a Post; command, not a commit.
    Look for a stray post command in your form.
    And it can ONLY be handled by an on-error trigger. Please post the code in your on-error trigger.
    Also, do not create an On-Error trigger at the block level. (That may be why your trigger is not intercepting it.) From the Forms On-line help:
    In most cases, On-Error triggers should be attached to the form, rather than to a block or item. Trapping certain errors at the block or item level can be difficult if these errors occur while Form Builder is performing internal navigation, such as during a Commit process.

  • FRM-40400: Transaction complete: 1 records applied and saved

    Dear All,
    Hope all of you are doing well,
    Pls go through my problem...
    here is an application developed based on Oracle Forms & Reports 6i.
    I wrote a code, like for some specific Users, various permissions.
    Ex: User A (Payroll Person), User B (HR)
    for employee Master Data HR is the right person to modify master data and all the remain are not permissible.
    I query one person (from Non HR user), try to modify Master Data  then it given user defined message -
    "you are not authorized person to modify Master Data" [OK] - so no changes done
    then I clicked the Query button directly,
    it gave the message - "Do you want to save the changes you have made"  [Yes] [No] [Cancel]
    when I clicked Yes :
    " FRM - 40400 : Transaction complete : 1 records applied and saved "
    In database also it is saving the record..
    Mean for unotherised user also It's modifying the data.
    Please help me the way to handle this issue..
    Thanks in Advance...

    As salamualikum, Md Sirajoddin
    You wrote
    I query one person (from Non HR user), try to modify Master Data  then it given user defined message -
    "you are not authorized person to modify Master Data" [OK] - so no changes done
    That means your code works in some condition. Right ?
    Place your code at Pre-Commit trigger at form level.
    Hope this helps
    Hamid

  • Getting FRM-40400 but data is not in table

    I have a form with three data blocks. The first one is Database Data Block = no because it is used for query purposes only. The second one is Database Data Block = yes and is the only data block in which data gets entered into a table. The final data block is Database Data Block = no because it is a control block that houses my display items and buttons. Now, I am trying to get the data to save by way of a SAVE button. On the button I have code to GO_BLOCK() to the second database block and then perform a commit; I get a message back FRM-40400 which says Transaction complete: 1 records applied and saved. However when I open up the table in the database, nothing is there.... I imagine that this tells me that the form is not actually committing as it says. So, how do I find out what exactly my form is doing?
    Thanks!

    I've modified my form a bit since I posted this...I created a master-detail relationship between my first data block and the second one. I had a suggestion from someone else on this topic that when I press the save button, I should go_block('detail block') before performing the commit and that should work. Well, that didn't work either. It's still trying to commit the first data block. I used commit and commit_form because I wasn't sure which one was appropriate for my form.

  • No commit-message (FRM-40400) == Bug in Headstart

    Hello,
    On committing on or more business rules are violated the 'message-window' appear.
    After correcting the errors and committing the changes i'm not getting the usual
    'commit-message' (FRM-40400). This only happens after on or more business rules are violated.
    This is caused by a bug in the procedure 'QMS$FORMS_ERRORS.PUSH'. Below the solution i have implemented (the complete procedure is displayed). I'm using version 6.5.4.0 of the library 'qmslib65.pll.
    PROCEDURE Push
    ( p_msg IN VARCHAR2
    , p_error IN VARCHAR2 DEFAULT 'I'
    , p_msg_type IN VARCHAR2 DEFAULT ''
    , p_msgid IN NUMBER DEFAULT 0
    , p_loc IN VARCHAR2 DEFAULT '') IS
    -- Purpose Show message to the end-user, standard procedure for the Oracle Forms
    -- Generator of Designer/2000 to pass the display and handling of a message
    -- to a user created procedure.
    -- Usage Called by the Oracle Forms Generator code
    -- Parameters : msg Text message
    -- error ERRor or WARNing
    -- msg_type ORA, API or user TLA
    -- msg_id Id of message
    -- loc Location where error occured
    -- Remarks
    v_msg VARCHAR2(2000) := p_msg;
    v_error VARCHAR2(2000) := p_error;
    v_servermsg VARCHAR2(2000) := DBMS_ERROR_TEXT;
    l_empty_errorrec hil_Message.message_rectype;
    BEGIN
    IF p_msgid != 0
    THEN
    g_errorrec.severity := p_error;
    ELSIF ((SUBSTR (v_msg, 1, 11) = 'API Error: ')) OR
    ((INSTR (v_servermsg, 'ORA-20999') <> 0) AND (v_msg IS NULL)) OR
    (INSTR (v_msg, 'ORA-20999') <> 0)
    THEN
    -- error returned from the API, just display no further action required ?
    HandleServerAPIError (p_msg);
    -- M. Kappel
    /* 11-apr-2001
    - Allow check of v_servermsg even if v_msg contains data.
    - With new-style cdm ruleframe, v_msg contains 'ORA-20998'.
    We never looked at v_servermsg because v_msg was not null.
    - With old-style database trigger business logic, v_msg contains only text.
    If we still never look at v_servermsg, we don't identify that the error is
    a 20998 and therefore we raise an alert 'Transaction Failed' instead of
    showing the 'Errors in this Transaction' window.
    -- ELSIF ((INSTR (v_servermsg, 'ORA-20998') <> 0) AND (v_msg IS NULL)) OR
    -- (INSTR (v_msg, 'ORA-20998') <> 0)
    -- THEN
    On committing on or more business rules are violated the 'message-window' appear.
    After correcting the errors and committing the changes i'm not getting the usual
    'commit-message' (FRM-40400). This only happens after on or more business rules are violated.
    When one or more business rules are violated application error ORA-20998 is raised. To
    detect this DBMS_ERROR_TEXT is used ==> DBMS_ERROR_TEXT contains ALWAYS the text of the
    LAST (dbms-)error (the text contains 'ORA-20998').
    Even when no business rules are violated it's possible that DBMS_ERROR_TEXT contains 'ORA-20998'.
    In that case no FRM-, MNU-, PLS-, SRW-, ORA- or REP-messages are displayed, because the error is
    treated as a voilation of one or more business rules. To avoid this 'v_error = E' is added to the IF-clause:
    when one or more business rule are violated this procedure is called to display an error (p_error ==> E);
    for displaying the FRM-, MNU-, PLS-, SRW-, ORA- and REP-messages this procedure is called to display an
    information (p_error ==> I).
    When Designer generates code to validate p.e. check-constraints it will call this procedure too. See the example
    below:
    IF (:FUNCTIES.MIN_LEEFTIJD < :FUNCTIES.MAX_LEEFTIJD) THEN
    NULL;
    ELSE
    qms$forms_errors.push('CBB-00219', 'E', 'OFG', 0);
    qms$forms_errors.raise_failure;
    END IF;
    In this case the procedure is called to display an error. To avoid that the error is incorecctly treated as a
    violation of one or more business rules '(p_msg_type != 'OFG' or p_msg_type is null)' is added to the IF-clause.
    ELSIF v_error = 'E'
    AND (p_msg_type != 'OFG' or p_msg_type is null)
    AND ( INSTR (v_servermsg, 'ORA-20998') <> 0
    OR INSTR (v_msg, 'ORA-20998') <> 0
    THEN
    HandleServerApplError (p_msg);
    -- error returned from the API, just display no further action required ?
    ELSIF ((INSTR (v_servermsg, 'ORA-20000') <> 0) AND (v_msg IS NULL)) OR
    (INSTR (v_msg, 'ORA-20000') <> 0)
    THEN
    -- error was raised by old Headstart code with raise_application_error
    -- strip ora-20000 : , check if code (get message) or message
    HandleOldHeadstart (v_servermsg);
    ELSIF (SUBSTR (v_msg, 1, 3) IN ('FRM', 'MNU', 'PLS', 'SRW', 'ORA', 'REP'))
    THEN
    HandleOracleError (v_msg, v_error);
    ELSE
         HandleApplError(v_msg, v_error);
    END IF;
    Display_Error (g_errorrec);
    g_errorrec := l_empty_errorrec;
    END Push;

    you can create a KEY-COMMIT form level trigger with the following :
    declare
    msglvl varchar2(3) := :system.message_level ;
    begin
    :system.message_level := 5 ;
    commit_form ;
    :system.message_level := msglvl ;
    end ;
    or put instruction : clear_message; before the commit_form ;

  • No Changes to Apply

    Hi,
    I am running a form on web environment, Forms server 6i with 9iAS on Unix. In one of the key triggers I am inserting some rows into a table and finally committing by using commit_form, Its working fine in client server environment, but when I run it on web, I am getting a message "No Changes to apply." as an alert, and then "Frm40400:Transaction complete 2 records applied and saved". I do'nt know why that "No Changes to apply" alert is coming in between, it doesnt have any error type or code and also neither on-error nor on-message trigger is firing when this message is poping up. I want to supress this message. Kindly help me..
    WIth thanks in advance
    null

    Create a form level trigger, ON-MESSAGE
    Trap the message code, that way you can
    suppress the message.
    Sample ON_MESSAGE trigger:
    declare
    v_message_code number := message_code;
    v_message_text varchar2(200) := substr(message_text,1,200);
    v_message_type varchar2(3) := substr(message_type,1,3);
    v_alert_button number;
    begin
    if v_message_code = 40400 then
    Message('Record saved.');
    elsif
    v_message_code = 40000 then
    null;
    end if;
    null

  • Need to show frm-40400 message

    Hi,
    I would like to show this FRM-40400 message for non database field update to another table .
    Message should display in the status bar as "Frm-40400 Transaction Complete. 1 record applied and saved"
    Please tell me how can i handle this issue.
    Thanks in advance,

    Hi
    While updating the table, counts the record saved to a variable SQL%Rowcount;
    Like below
    Declar
    Cts number ;=0;
    Begin
    Update Table..
    cts := Sql%rowcount;
    Message('Total Record Affected is '||CTS);
    End ;

  • Display the FRM-40400 at the bottom not with popup

    Hi,
    I need help with one form i have to modify, after modifiying the form, i noticed that the message FRM-40400 is displayed as popup but i just want this message to be displayed at the bottom of the form. Do you have any idea?
    Thanks.

    What version of Forms are you using?  What changes did you make to the form?  Did you make changes to the ON-MESSAGE or ON-ERROR triggers?
    The most likely cause of the FRM-40400: Transaction Complete message being promoted to the Default Alert is that you are writting a new message to the status bar but you didn't call the CLEAR_MESSAGE() built-in first.  It is always good (and recommended) practice to call the CLEAR_MESSAGE() built-in before displaying a new message with the MESSAGE() built-in; this ensures the status bar is clear before the message is displayed.  If there is a message already displayed in the status bar when a new message is sent to the status bar then the current message is promoted to the default Alert so the new message can be displayed.
    What message is in the status bar after you click OK on the popup (default Alert)?
    Craig...

  • Replacing FRM-40400 message

    My user doesn't want FRM-40400 'Transaction completed ...' in an alert. I've added the message to the Headstart message table to override the default and made it a severity Message. But now I don't know how many records were inserted or changed.
    Is there another possibility ?

    Gerrit,
    If you are on headstart version 5 or above, do the following:
    Open your application library and change the line
    -- show oracle messages in alert
    qms$forms_errors.set_oracle_message_target('A');
    into
    -- show oracle messages in console
    qms$forms_errors.set_oracle_message_target('M');
    Now this message pops up in the console instead of in an alert that the user has to acknowledge (only when forms needs to display another message after the first one, the first message will still pop up in an alert).
    Regards, Marc Vahsen
    Headstart Team

  • FRM-40401 No changes to save  error

    Hi,
    I have updated one table from form by writing update statement on the when-button-pressed triger.This update statement is doing its job fine and the table is updated.but iam finding 'FRM-40401: No Changes to save 'message in my console . Please tell me why it is coming when changes are made into tables and wat should i do to avoid this . i have written on-error trigger on form level to suppress this message.What effect itcan have on my working.
    Kindly take it on urgent basis.
    regards,
    rajesh

    Usually in Forms, you do not write SQL update statements to update your table. Instead, you create a base-table block, fetch the rows into the block, make your changes, and then commit. Forms automatic processing takes over and creates the update statements for you.
    What you have done is bypassed the default automatic processing, and Forms is complaining. I would try to re-do the form and use a base-table block.

  • Ipod touch 3rd generation is stuck in "waiting for changes to apply" during sync

    My iPod touch 3rd generation is stuck at "waiting for changes to apply" during sync.  I have the latest update and the latest version of iTunes downloaded.  Any suggestions for a remedy to this problem?  Thanks!

    Here is the link for the downgrade from Apple.
    Link: http://support.apple.com/kb/DL1103
    Here is the Link before you install Apple 10.3 downgrade Read Oct. 17th the 1st on of the 17th.where I said "A" OKAY
    Link: https://discussions.apple.com/message/16500143#16500143
    I went into my desktop PC the to Start/My music/iTunes folder.
    In my folder there was nothing called ITunes Library.itl., but I had file called iTunes Library, in the center of it labeled "Lib", so I re-named it to "iTunes Library.itl.backup" Then went to the folder from iTunes" Previous iTunes
    Library" and copied and pasted mine was iTunes Library 2011-04-02 right into the iTunes main folder.
    Close your iTunes folder and then install the previous ver. 10.3 of the Apple link. I did not reboot PC. Did not use Cc cleaner nor add/Remove. then after 10.3 said finished installing 10.3 I clicked on my iTune Icon and iTune came up, iPod not plugged in yet.
    Then I clicked on "let iTune to find all my music and install them", said towards bottom of iTunes.
    Why we don't have the answer but iTune will put all your music in but you will have duplicates of the songs, so you will have your work cut out for you, takes time. plus some of my Artwork was missing, but I save that too.
    I'm not Responsible for this instructions, this is what worked for me.
    I think everything here is in order. Lot of my information came from all of you guys.Thank you. took a lot of reading, and trial and errors 2 1/2 day latter.

  • How to Fire Trigger, when changes are applied on destination??

    Hi,
    I want to fire the following trigger at destination, when changes are applied from source table (cms.test_2) to destination table(cms.test_2).
    create or replace trigger Ins_and_upd
    after insert or update of send_status on cms.test_2
    declare
    begin
    update cms.test_2
    set RECEIVE_STATUS = 'YES'
    where UPPER(send_status)=upper('YES');
    end;
    Thanks,
    faziarain

    I am using oracle10g stream replication, and database version is "10.2.0.1.0".
    Basically I have 2 machines named:
    --> Site#1_DB ----> Having Table TEST_2 -----> Columns (BID,DBID,Send_Status,Receive_Status,Final_Status).
    --> Center_DB ----> Having Table TEST_2 -----> Columns (BID,DBID,Send_Status,Receive_Status,Final_Status).
    My Senario example is following:
    At Site#1_DB TEST_2 Table contains the following data:
    TEST_2 is updating and set the YES value in "Send_Status" column, and this change will replicated to Center_DB TEST_2 table.
    BID----------DBID----------Send_Status----------Receive_Status----------Final_Status
    1----------2----------YES----------NULL----------NULL----------NULL
    2----------3----------YES----------NULL----------NULL----------NULL
    3----------4----------YES----------NULL----------NULL----------NULL
    4----------5----------YES----------NULL----------NULL----------NULL
    At Center_DB TEST_2 Table contains:
    In My Senario changes are successfully replicated at Center_DB TEST_2 Table and after replication
    Test_2 table is same on both machines.
    But Now I want to write my given trigger at Center_DB and this trigger will be fired when changes are replicated
    from Site#1_DB to Center_DB.
    BID----------DBID----------Send_Status----------Receive_Status----------Final_Status
    1----------2----------YES----------NULL----------NULL----------NULL
    2----------3----------YES----------NULL----------NULL----------NULL
    3----------4----------YES----------NULL----------NULL----------NULL
    4----------5----------YES----------NULL----------NULL----------NULL
    Output After Firing the trigger at Center_DB:
    BID----------DBID----------Send_Status----------Receive_Status----------Final_Status
    1----------2----------YES----------YES----------NULL----------NULL
    2----------3----------YES----------YES----------NULL----------NULL
    3----------4----------YES----------YES----------NULL----------NULL
    4----------5----------YES----------YES----------NULL----------NULL
    Thanks,
    Faziarain.
    Edited by: [email protected] on Mar 30, 2009 10:00 PM
    Edited by: [email protected] on Mar 30, 2009 10:17 PM
    Edited by: [email protected] on Mar 31, 2009 3:48 AM

  • How to supress FRM:40405 no changes to save

    Guy,
    How do I supress the forms runtime message
    FRM:40405 no changes to save, I get this message when ever I press the save button irrespective of whether the records are inserted or changed .

    I agree that you shouldn't cover up potential problems. I didn't mean to suggest that. I think there can be valid reasons for suppressing messages sometimes.
    For example, I've used :SYSTEM.MESSAGE_LEVEL := '5'; before to suppress FRM-40401 or FRM-40405 - can't remember which one, it's been a while. In my case I was using exec_sql in forms to retrieve data from a DB2 table and insert it into an Oracle table. In this case forms didn't recognize that work was actually being done and would give the FRM-40401 or 40405 error at the end of the process, even though the records had been successfully inserted.

Maybe you are looking for