Database trigger causes error in Form

I have a database trigger on the per_performance_reviews table. When I try to save a performance review record from the forms I get the following error:
FRM-40403: A calling form has unapplied changes. Save not allowed.
Any suggestions???
Here is my trigger:
CREATE OR REPLACE TRIGGER APPS.XXPER_UPDATE_PERF_REVIEW
BEFORE INSERT ON HR.PER_PERFORMANCE_REVIEWS
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE
l_hire_date DATE;
l_next_review_Date DATE;
l_event_type VARCHAR2(40);
BEGIN
select papf.START_DATE, pe.type
into l_hire_date, l_event_type
from per_all_people_f papf, per_performance_reviews ppr, per_events pe
where ppr.performance_review_id = :NEW.performance_review_id
and papf.person_id = ppr.person_id
and pe.event_id = ppr.event_id
and sysdate between papf.effective_start_date and papf.effective_end_date;
l_next_review_date := l_hire_date + (365 * 2);
IF l_event_type = 'APPRAISAL' THEN
:NEW.NEXT_PERF_REVIEW_DATE := l_next_review_date;
END IF;
END XXPER_UPDATE_PERF_REVIEW;

There is a forms forum here too.
However this error message
FRM-40403: A calling form has unapplied changes. Save not allowed.
implies that you opend your current form without posting/commiting in the previous form. This is not allowed. Your changes never even touched the database.

Similar Messages

  • Database Trigger gives error in APEX form

    Hi
    I have a table that has an on insert and on update trigger on the database table that is in the apex form. when applying changes or creating a new row fields are populated in the table for who and date. This works as expected but not in APEX.
    in apex when trying to create or apply changes the following error is given
    ORA-20505: Error in DML: p_rowid=hello, p_alt_rowid=ID, p_rowid2=, p_alt_rowid2=. ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at "AIT_MSTR.UPDATE_ACCOUNT_ROW", line 9 ORA-04088: error during execution of trigger 'AIT_MSTR.UPDATE_ACCOUNT_ROW'
    Error Unable to process row of table ACCOUNT.
    I am not sure, but I think this error is around the DATE field in the row. How can APEX be modified to not error out on the execution of the trigger?
    the trigger is very simple
    CREATE OR REPLACE TRIGGER AIT_MSTR.UPDATE_ACCOUNT_ROW
    BEFORE UPDATE
    OF ID
    ,DESCRIPTION
    ,CONNECT_ONLY
    ON AIT_MSTR.ACCOUNT
    REFERENCING NEW AS New OLD AS Old
    FOR EACH ROW
    NAME: UPDATE_ACCOUNT_ROW
    PURPOSE:
    REVISIONS:
    Ver Date Author Description
    1.0 6/9/2011 1. Created this trigger.
    NOTES:
    Automatically available Auto Replace Keywords:
    Object Name: UPDATE_ACCOUNT_ROW
    Sysdate: 6/9/2011
    Date and Time: 6/9/2011, 11:39:59 AM, and 6/9/2011 11:39:59 AM
    Username: (set in TOAD Options, Proc Templates)
    Table Name: ACCOUNT (set in the "New PL/SQL Object" dialog)
    Trigger Options: (set in the "New PL/SQL Object" dialog)
    BEGIN
    :NEW.Update_Date := SYSDATE;
    :NEW.Updated_By := USER;
    EXCEPTION
    WHEN OTHERS THEN
    -- Consider logging the error and then re-raise
    RAISE;
    END UPDATE_ACCOUNT_ROW;
    Any help is greatly appreciated

    Hi
    Yes you are correct it was the length of the Created_by and Updated_by column. i had to increase the size of those columns in the table
    Now it works.
    HOWEVER, it is not capturing the user name of the person logging into APEX that is creating or updating the record. The entry I see in the created_by or updated_by is ANONYMOUS. Which is not want is needed to be captured and recorded. Where is this anonymous value coming from and how can i get it to be the id of the APEX user instead?
    Any help is greatly appreciated on this new issue

  • Reducing number of rows displayed causes error in Forms 6

    I created a search page - really just a tabular form displaying 29 records and a scroll bar at the end. Each record has a button adjacent to it. The idea being that the user can search for a specific map in a field and have all records where that map is referenced displayed. When the user clicks the button a trigger takes it to a detail screen where the entire record (and 7 more screens) is displayed. Everything works fine.
    Problem is I want to reduce the number of records displayed to 15, so I select the appropriate block in the object navigator, then change Number of Records Displayed from 29 to 15 and press enter - the number changes in the property palette - but nothing changes in the form.
    When I compile the form I get the following error
    FRM-30356: Too many records displayed for this item.
    Item: MDD_NO
    Block: SEARCH
    Form: MODULE1
    FRM-30085: Unable to adjust form for output.
    If I change the rows displayed back to 29, everything works fine again.
    Any idea of what I am doing wrong?
    All help appreciated
    Glenn

    Thank you - solved the problem
    The number of items displayed property was set to 29 for each column on that page. As I usually only set the Items Displayed at the Data Block Level - I was suprised to see it set at the Item level.
    Since this was the only page where it was set at the Item level - all my other multiple row pages are set at the Block level - Any idea what I may have done to cause this?
    Thanks Again
    glenn

  • Database trigger causes "TooManyObjectsException JBO-25013" in view object

    Hi all,
    I have two tables in a parent - child relationship. Each has it's entity and view object with appropriate associations and links. The parent table has an insert trigger which inserts default rows into the child table when a new parent row is created.
    So the sequence is as follows:
    1) User has view of parent and child tables on one form.
    2) Clicks on parent table row, associated child rows are displayed in child table.
    3) User clicks on Insert button on parent table nav bar.
    4) User enters data and clicks the Commit button on parent table nav bar.
    5) BC4J framework goes off into the JUNavigationBar.actionPerformed() method.
    6) Next thing I see is the error below:
    oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the primary key oracle.jbo.Key[2210 ].
    I have confirmed that if I disable the trigger the problem goes away. I also tried clearing the cache on the child table just before the JUNavigationBar.actionPerformed() but it does not help.
    I suspect that the VO gets confused by the rows inserted by the trigger when it reloads the data during the last phases of the commit.
    How do I get around this problem??
    Any suggestions welcome. I'm desperate at this stage!
    Thanks,
    Stefan Mahs
    PS: the stack trace follows:
    oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the
    primary key oracle.jbo.Key[2210 ].
    at oracle.jbo.server.EntityCache.add(EntityCache.java:371)
    at
    oracle.jbo.server.ViewRowStorage.entityCacheAdd(ViewRowStorage.java:1493)
    at
    oracle.jbo.server.ViewRowImpl.entityCacheAdd(ViewRowImpl.java:1955)
    at
    oracle.jbo.server.ViewDefImpl.createInstanceFromResultSet(ViewDefImpl.java:1021)
    at
    oracle.jbo.server.ViewObjectImpl.createRowFromResultSet(ViewObjectImpl.java:2219)
    at
    oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:2149)
    at
    oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:1577)
    at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:1429)
    at oracle.jbo.server.QueryCollection.get(QueryCollection.java:966)
    at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:2731)
    at
    oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2457)
    at
    oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2321)
    at
    oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:2522)
    at
    oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:1604)
    at
    oracle.jbo.server.ViewRowSetImpl.refreshRowSet(ViewRowSetImpl.java:3468)
    at
    oracle.jbo.server.ViewRowSetIteratorImpl.notifyDetailRowSets(ViewRowSetIteratorImpl.java:2952)
    at
    oracle.jbo.server.ViewRowSetIteratorImpl.fireRowUpdated(ViewRowSetIteratorImpl.java:3098)
    at
    oracle.jbo.server.ViewRowSetIteratorImpl.notifyRowUpdated(ViewRowSetIteratorImpl.java:2767)
    at
    oracle.jbo.server.ViewRowSetImpl.notifyRowUpdated(ViewRowSetImpl.java:1113)
    at
    oracle.jbo.server.ViewObjectImpl.notifyRowUpdated(ViewObjectImpl.java:6109)
    at
    oracle.jbo.server.ViewObjectImpl.notifyRowUpdated(ViewObjectImpl.java:6087)
    at
    oracle.jbo.server.ViewObjectImpl.afterRowUpdate(ViewObjectImpl.java:7057)
    at
    oracle.jbo.server.ViewObjectImpl.sourceChanged(ViewObjectImpl.java:7222)
    at
    oracle.jbo.server.EntityCache.deliverEntityEvent(EntityCache.java:504)
    at
    oracle.jbo.server.EntityCache.notifyColumnChange(EntityCache.java:534)
    at
    oracle.jbo.server.EntityImpl.notifyAttributesChanged(EntityImpl.java:4034)
    at
    oracle.jbo.server.OracleSQLBuilderImpl.doEntityDML(OracleSQLBuilderImpl.java:442)
    at oracle.jbo.server.EntityImpl.doDML(EntityImpl.java:4592)
    at mdh.bc4j.SkusImpl.doDML(SkusImpl.java:1257)
    at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:3658)
    at
    oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:2336)
    at
    oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:2246)
    at
    oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:1541)
    at
    oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:1707)
    at
    oracle.jbo.uicli.binding.JUApplication.commitTransaction(JUApplication.java:820)
    at
    oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:350)
    at
    oracle.jbo.uicli.controls.JUNavigationBar.doAction(JUNavigationBar.java:257)
    at
    oracle.jbo.uicli.controls.JUNavigationBar.actionPerformed(JUNavigationBar.java:228)
    at
    mdh.client.sku.JUNavigationBarStateful.actionPerformed(JUNavigationBarStateful.java:72)
    at
    javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)
    at
    javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1817)
    at
    javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
    at
    javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
    at
    javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
    at
    java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:227)
    at java.awt.Component.processMouseEvent(Component.java:5134)
    at java.awt.Component.processEvent(Component.java:4931)
    at java.awt.Container.processEvent(Container.java:1566)
    at java.awt.Component.dispatchEventImpl(Component.java:3639)
    at java.awt.Container.dispatchEventImpl(Container.java:1623)
    at java.awt.Component.dispatchEvent(Component.java:3480)
    at
    java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)
    at
    java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
    at java.awt.Container.dispatchEventImpl(Container.java:1609)
    at java.awt.Window.dispatchEventImpl(Window.java:1590)
    at java.awt.Component.dispatchEvent(Component.java:3480)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
    at
    java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
    at
    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
    at
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)

    Let me know when you have a testcase you can email.- unfortunatelly, we cannot reproduce this behavior by using the FOD/Fussion schema with the BrowseEdit demo application (from the Cue cards), everything works as expected.
    After making an analogue trigger on our working schema, this error behaviour still repeats. But, here is our stack trace, maybe this can help. Note addForAltKey(...) bellow, we have one Alternate key. On the other hand, here is part from "Developer quide":
    Whenever any of the key attribute values change, this rule validates that the new key
    does not belong to any other entity object instance of this entity object class. (It is the
    business-logic tier equivalent of a unique constraint in the database.) If the key is
    found in one of the entity objects, a TooManyObjectsException is thrown. The
    validation check is done both in the entity cache and the database
    - we do not know if it is a problem, but looks like that. Note that problem occurs even if we are inserting the first master record.
    In nay case, here is our stack trace:
    oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the primary key oracle.jbo.Key[49 ].
         at oracle.jbo.server.EntityCache.throwTooManyObjectsException(EntityCache.java:369)
         at oracle.jbo.server.EntityCache.addForAltKey(EntityCache.java:726)
         at oracle.jbo.server.EntityCache.add(EntityCache.java:347)
         at oracle.jbo.server.ViewRowStorage.entityCacheAdd(ViewRowStorage.java:2266)
         at oracle.jbo.server.ViewRowImpl.entityCacheAdd(ViewRowImpl.java:2631)
         at oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:3995)
         at oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:2677)
         at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:2558)
         at oracle.jbo.server.QueryCollection.get(QueryCollection.java:1788)
         at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:4142)
         at oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2824)
         at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2680)
         at oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:2921)
         at oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:2339)
         at oracle.jbo.server.ViewRowSetImpl.refreshRowSet(ViewRowSetImpl.java:5525)
         at oracle.jbo.server.ViewRowSetIteratorImpl.notifyDetailRowSets(ViewRowSetIteratorImpl.java:3416)
         at oracle.jbo.server.ViewRowSetIteratorImpl.fireRowUpdated(ViewRowSetIteratorImpl.java:3602)
         at oracle.jbo.server.ViewRowSetIteratorImpl.notifyRowUpdated(ViewRowSetIteratorImpl.java:3222)
         at oracle.jbo.server.ViewRowSetImpl.notifyRowUpdated(ViewRowSetImpl.java:1670)
         at oracle.jbo.server.ViewObjectImpl.notifyRowUpdated(ViewObjectImpl.java:9138)
         at oracle.jbo.server.ViewObjectImpl.notifyRowUpdated(ViewObjectImpl.java:9115)
         at oracle.jbo.server.ViewObjectImpl.afterRowUpdate(ViewObjectImpl.java:10267)
         at oracle.jbo.server.ViewObjectImpl.sourceChanged(ViewObjectImpl.java:10484)
         at oracle.jbo.server.EntityCache.sendEvent(EntityCache.java:1044)
         at oracle.jbo.server.EntityCache.deliverEntityEvent(EntityCache.java:1058)
         at oracle.jbo.server.EntityCache.notifyColumnChange(EntityCache.java:1113)
         at oracle.jbo.server.EntityImpl.notifyAttributesChanged(EntityImpl.java:6035)
         at oracle.jbo.server.OracleSQLBuilderImpl.doEntityDML(OracleSQLBuilderImpl.java:525)
         at oracle.jbo.server.EntityImpl.doDML(EntityImpl.java:6971)
         at com.energosoft.tee.model.entities.TeeTradingTicketEOImpl.doDML(TeeTradingTicketEOImpl.java:87)
         at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:5428)
         at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:3129)
         at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:2937)
         at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:2061)
         at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2263)
    ----------

  • VAPI ISO trigger causes error on insert with autogen cols

    The ISO trigger that is generated will go like:
    when insert/update: copy :new.col's to cg$rec.col's
    next when inserting all cg$ind.col's will be set to TRUE, after which the TAPI CG$table.ins is called, passing cg$rec and cg$ind.
    In the ins procedure, autogen columns will be set in a procedure called
    up_autogen_columns
    BUT ONLY WHEN THE CG$IND for the column is FALSE.
    In other words only when the indicators tells that there is no value, the code will be executed.
    The code generated by the headstart utility seems to be wrong. I think it should set the cg$ind value for autogen columns to false!
    The workaround is to manually edit the generated VAPI trigger and set the indicators but this causes a lot of extra work that is accident prone!
    null

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Peter Terpoorten ([email protected]):
    The ISO trigger that is generated will go like:
    when insert/update: copy :new.col's to cg$rec.col's
    next when inserting all cg$ind.col's will be set to TRUE, after which the TAPI CG$table.ins is called, passing cg$rec and cg$ind.
    In the ins procedure, autogen columns will be set in a procedure called
    up_autogen_columns
    BUT ONLY WHEN THE CG$IND for the column is FALSE.
    In other words only when the indicators tells that there is no value, the code will be executed.
    The code generated by the headstart utility seems to be wrong. I think it should set the cg$ind value for autogen columns to false!
    The workaround is to manually edit the generated VAPI trigger and set the indicators but this causes a lot of extra work that is accident prone!<HR></BLOCKQUOTE>
    null

  • How to send error message to forms from Database Trigger

    Hi, Please help me to send error message to forms from Database Trigger?
    RgDs,
    Madesh.R.M

    You are correct, the On-Error trigger is a Forms trigger. However, if your Form is going to display the error generated by the database stored procedure or trigger - you might not see the database error in your Form unless you check the DBMS_ERROR_CODE in the On-Error trigger and manually display the Error Code and associated Text. I've see this happen with a co-worker. The Form she was working on was based on a table with an Before-Insert trigger. Because she was not explicitely handling the error from the Before-Insert trigger in the Forms On-Error trigger, her Form appeared to halt for no reason at all. Once she added code to the On-Error trigger in the Form to handle the DBMS_ERROR_CODE, she discovered the trigger was producing an error and was able to show the error to the user in the On-Error trigger.
    I understand the desire to keep as much as possbile in the database, but with that comes some extra coding in your Forms to handle this. This extra coding could easily be placed in a Forms Library, attached to a Form and called in the On-Error trigger. Your code could look like this:
    DECLARE
       /*This example assumes you have an Alert defined
          in your Form called: 'ERROR' */  
       al_id    ALERT;
       al_text  VARCHAR2(200);  /* Max text of a Forms Alert message*/
       al_btn   NUMBER;
    BEGIN
    IF DBMS_ERROR_CODE != 0 THEN
       /* Error code is ORA-00000 Normal Successful completion
           So only handle non-zero errors  */
       al_text := DBMS_ERROR_CODE||':'||DBMS_ERROR_TEXT;
       al_id := Find_Alert('ERROR');
       set_alert_property(al_id, alert_message_text, al_text);
       al_btn := show_alert(al_id);
    END IF;
    END;Your original question was "How to send error message to forms from Database Trigger?" The answer is you don't because Forms already gets the database error code and database message through the Forms DBMS_ERROR_CODE and DBMS_ERROR_TEXT functions. Look these up in the Forms help and it should clear things up for you.
    Craig...
    Edited by: CraigB on Jun 14, 2010 4:49 PM
    Edited by: CraigB on Jun 14, 2010 4:49 PM
    Edited by: CraigB on Jun 14, 2010 4:50 PM
    Edited by: CraigB on Jun 14, 2010 4:51 PM
    Edited by: CraigB on Jun 14, 2010 4:51 PM

  • Displaying a trigger error in forms

    In a before inserting table trigger, if inserted values are not correct, I raise an error :
    RAISE_APPLICATION_ERROR(-20001,'Error message !');
    What I want is to display this error message in forms instead of the error 40508 - ORACLE error: unable to INSERT record.
    How can I ?

    look at Dbms_Error_Code and Dbms_Error_Text.
    You'll have to parse them, but you can grab the error messages off them.
    Here's a similar question I asked on Metalink... I never received an error there, but the solution was to write an on-error trigger for the block and capture the form errors related to inserts, updates, and deletes. Here's the question though:
    Oracle Forms/Web Forms Technical Forum
    From: ERIC GIVLER 18-Nov-00 15:16
    Subject: "Clean" capture of DBMS Error messages on raise_application_error
    "Clean" capture of DBMS Error messages on raise_application_error
    This is with Forms 4.5 Developer 1.3.2 (32bit)
    Has anyone written forms level triggers, I guess ON-ERROR triggers to properly capture the error messages raised from a database trigger or procedure that uses a RAISE_APPLICATION_ERROR?
    I'd like to display the SAME message that I'm passing to RAISE application error, the message only, without all the other garbage.
    I was thinking of capturing the dbms_error_code and dbms_error_text, and then based on the form error code - kind of like in the example code in the Forms Help. Then, I'd parse these strings and strip off my error message, because the dbms_error_text contains the entire "error stack", ie:
    ORA-20100: SEASON DATES ERROR! Reservations exist in this date range
    ORA-06512: at "SUNTRACK.SEASON_DATES_BR_D", line 19
    ORA-04088: error during execution of trigger 'SUNTRACK.SEASON_DATES_BR_D'
    So... I'd like to just get "SEASON DATES ERROR! Reservations exist in this date range" message
    Questions:
    1. Is there an easy way to do this that I'm missing, or do I have to brute force, look for 'ORA'&#0124; &#0124;dbms_error_code&#0124; &#0124;': ' in my dbms_error_text, strip that off the front, and then grab the error text up to the first LINEFEED, chr(10), found in the dbms_error_text - that just seems a little "kludgy"
    2. Anyone have a nice solution? IT seems like there should be a "standard" on-error trigger that handles this type of situation.
    3. What would be all the form errors that I should look for that could have been the result of an error raised in a trigger???
    ie. frm-40509 (unable to update), frm-40510 (unable to delete
    null

  • Forms update vs. database trigger

    Hi,
    I learn oracle forms using sample schema HR.
    This schema has a trigger "update_job_history" that fires AFTER UPDATE OF "job_id", "department_id" ON "employees"....
    Now,( in forms) when I want to update just employee's salary trigger fires.
    Forms obviously take all items as being updated as I read from the beginning of error message:
    UPDATE EMPLOYEES SET EMPLOYEE_ID=:1,FIRST_NAME=:2,LAST_NAME=:3,EMAIL=:4,PHONE_NUMBER=:5,HIRE_DATE=:6,JOB_ID=:7,SALARY=:8,COMMISSION_PCT=:9,MANAGER_ID=:10,DEPARTMENT_ID=:11 WHERE ROWID=:12 etc.
    (This error appears only If I update the same employee the second time - that's when a unique key in job_history table gets violated...)
    My question is How can I update only certain items so the triggers fires only when I do update "job_id" or "department_id"
    Is it an issue I should take care of in -pre/on-update triggers?
    Thanks in advance for any suggestion on how to go about this.

    Hello,
    Yah, this will surely help. Sorry for my previous post. I was thinking in terms of PL/SQL, but just consults the forms and it a should work fine.
    Set Update Changed Columns Only to Yes in the following circumstances:
    To save on network traffic, if you know an operator will primarily update only one or two columns.
    To avoid re-sending large items that are not updated, such as images or LONGs.
    To fire database triggers on changed columns only. For example, if you implement a security scheme with a database trigger that fires when a column has been updated and writes the userid of the person performing the update to a table.

  • Form Navigation problem while firing Database trigger

    Hi,
    A Database trigger is made to fire when a field is updated via forms and the trigger will give an error if the user is not authorized to modify the data. Everything is working fine and the trigger gives an error as palnned. After the error is thrown, we are unable to navigate between the forms and in addition we are uanble to perform any sort of actions like querying, deleting and cancelling. On Occasion we get errors like I/O buffer error and the errors keep on changing for every update. Plz help me to resolve the issue.
    RgDs,
    M KVG

    In addition to the Error Message you are getting, it would be helpful to know which version of Oracle Forms you are using and how your application is deployed (Client/Server or Web). If you app is web deployed, then also include the Java Runtime Environment version and your web browser and version.
    Craig B-)
    If someone's response is helpful or correct, please mark it accordingly.

  • Calling form .fmx or report .rep from database trigger. (URGENT PL.)

    can we call an form (.fmx) or a report (.rep) from a database trigger. that is when there is some insertion in the table i want to call a report which will take the parameters from the table changed.
    regards
    vishal

    JDeveloper and ADF

  • Oracle form based on a view - need to return a value after database trigger

    We have a form based on a view calling database trigger to insert data.
    I need to display a message of the record ID inserted on the form.
    The values to be displayed are ID field.

    Hi,
    if you use process of Automatic Row Processing (DML), you have an option *"Return Key Into Item"*.
    This will return your primary key into item, and then you can display this item as a result.
    Regards,
    Aljaz

  • Could the Database Trigger get a forms variable value

    Hi All
    We have an ERP which connect all users of the system with a single schema (Database user name), We create a record for each user in the ERP itself to specify the privillages for each user
    I would like to make a database trigger to Audit a table , by storing the user name, action (Insert,delete,update) on an audit table.
    The problem is the user name i want to store is not the schema name, but it's stored in a database table and read in a global variable.
    Can i get the user name (which stored in the global variable) in the database trigger ???
    Thanks
    Mostafa Abolaynain

    If this global variable lives inside Forms (which the title of your post seems to indicate), then no.
    A database trigger can only reference "stuff" that lives inside the database session at the database server, not "stuff" that lives inside the proces at the client device.
    You should ask your ERP vendor: there might very well be something (eg. a variable inside a database package) that you can use.

  • Db link in trigger causes compilation error

    Using Forms 10.1.2.0.2
    Post-Query trigger
    BEGIN
    SELECT item_desc
    INTO :block1.item_desc
    FROM items@database100
    WHERE item_code = :block1.item_code;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    item_code := 'No description for this item';
    END;
    Compilation error
    Error 201: Identifier 'items@database100' must be declared.
    The select statement works in Toad and Sqlplus, but giving me compilation errors in Forms 10g.
    So is this a bug? If yes, is there a patch?
    Can somebody please post a link to a metalink where this problem is discussed/solved?
    Thanks in advance.

    Well, yeah, that had been considered as a work-around.
    However, at this point, the decision is still to use the db link, and we are still trying to figure out how to make it work.
    Edited by: vanilla.villain on May 21, 2009 11:20 AM

  • Error Generating Form against external application database

    I'm hoping the answer to this is simple, as others in the office can do this without any trouble, but can't remember how they made it work...
    My client has their repository and application schemas in separate databases. When I try and generate a form from the Design Editor, I get the following error:
    CDG-01281 ERROR: Module OASF95110: Oracle Forms binary file for MAINTAIN TARIFF AGREEMENT has NOT been created
    CDG-03418 WARNING: Module Component OASF95110.TARIFF_AGREEMENT: Missing action item to navigate to 'TARIFF_AGREEMENT_PARTNER'
    CDG-03400 WARNING: Module Component Table Usage OASF95110.TARIFF_AGREEMENT.TARIFF_AGREEMENT.TARIFF_AGREEMENT: 'Closed loop' of mandatory foreign keys found
    CDG-01263 ERROR: Module Component Table Usage OASF95110.TARIFF_AGREEMENT.TARIFF_AGREEMENT.TARIFF_AGREEMENT: User-defined condition (Table level Check Constraint TARIFF_AGREEMENT.TRFA_CK1) has an error: PL/SQL: ORA-00942: table or view does not exist
    What I seem to be missing, and have not been able to locate in any documentation, is how to tell Designer to look in a different database for the (already generated) schema objects.
    In a copy of the repository where I have generated the necessary objects into the same database as the repository, the form generates flawlessly...

    Tried that... Turns out the system uses the "Compiler" tab for validation, not for "Form Options" tab - It took a while, but one of the other developers finally remembered what they did and actually compared the screen prints I was providing with what they had in their environment...
    Thanks :)

  • Debug Stored procedure or database trigger by 10g Forms

    Hi,
    I want to debug my table level trigger (On update for each row), I am updating this table by forms. When I debug this form I am unable to watch the database debug.
    Please help me regarding database trigger/function/procedures by debugging forms.

    not possible via forms
    you can debug it on SQL Developer by using manual INSERT Updates commands

Maybe you are looking for