Exception Handling for a Form Based on a Table

I created a form based on a table. If a user tries to enter a
record with key data that matches an existing record, Oracle
Portal creates a page and displays:
Error:
An unexpected error occurred: ORA-00001: unique constraint
(TIMETRACK.SYS_C007185) violated (WWV-16016)
How can I capture this exception so that I can display a
friendlier error message (via a JavaScript alert or other
means) instead of this page?
Fran

James, I tried your suggestion as follows:
doInsert;--- This is the default handler
Exception
when DUP_VAL_ON_INDEX then
p_session.set_value(
p_block_name => "_block",
p_attribute_name => '_STATUS',
p_value => ' Time has already been entered for this project on
this date. Click the Back button to return to the MIM Time
Entry page. ');
Raise;
end;
It did nothing. All I got was the default message.
I then changed '_STATUS' to 'A_STATUS'. The resulting error
message was: "Error: (WWV-00000)"
ON A RELATED NOTE...
I discovered while testing this form on IE 5 on a Mac, that
additional error messages are generated. With IE 5 on WindowsNT
only a message regarding the unique constraint is produced. On
the Mac there is an additional message "No conversion performed
for type INTEGER, value is NsNu (WWC-49102)"
Anyone have any thoughts as to why the output of system
generated errors should differ between a PC and a Mac?
Fran

Similar Messages

  • Dynamically change the value of a select list in form based on a table

    Hi Friends,
    I am using a form based on a table. I want to display two fields as select lists instead of text boxes and when a value
    in a select list is selected, the corresponding values will be listed in the next select list. For example if department
    value is selected in a select list the employees in that department will be listed in the employee select list. I saw a
    metthod using ajax for achieving this in tabular form in Denes's sample application[Click Here| http://apex.oracle.com/pls/otn/f?p=31517:176:462842537250908::NO] .
    Is there any way to achieve the same for a form based on a table,
    Thanks,
    Tj

    Hi Andy,
    Could you tell me how I could use your example with multiple Application Items?
    My page has 3 cascading select lists. The second is dependent on the first and the third is dependent on both the first and second. I thought I would just need to add the second application item as a get, but not sure what the syntax would be. I have troubleshooted to the point where my select list refreshes when I have one in the javascript...just not sure how to add the additional one?
    Here's what I have (I have been referencing your 'Get Employees' page)
    My Page Items:
    P0_VENDOR_ID
    P0_VENDOR_SITE_ID
    P0_INVENTORY_ITEM_ID
    My Application Items:
    F_VDR_ID
    F_VDR_SITE_ID
    My query in the application process has both F_VDR_SITE_ID and F_VDR_ID in it.
    My javascript function...this worked OK until I added the additional get.add('F_VDR_SITE_ID')
    function getItems(filter, listName)
    var xml = null;
    var list = document.getElementById(listName);
    var listvalue = list.value;
    var get = new htmldb_Get(null,$v('pFlowId'), 'APPLICATION_PROCESS=Set_Items',4);
    get.add('F_VDR_ID', filter.value);
    get.add('F_VDR_SITE_ID', filter.value);
    ret = get.get('XML');
    if(ret)
    var s = ret.getElementsByTagName("select");
    if(s){
    var o = ret.getElementsByTagName("option");
    var oCount = o.length;
    list.options.length = 0;
    for(var i = 0; i < oCount; i++){
    var l_Opt_Xml = o;
    appendToSelect(list, l_Opt_Xml.getAttribute('value'), l_Opt_Xml.firstChild.nodeValue);
    list.value = listvalue;
    if (list.selectedIndex == -1)
    list.selectedIndex = 0;
    get = null;
    Thanks,
    Janel

  • Exception handling for all the insert statements in the proc

    CREATE PROCEDURE TEST (
    @IncrStartDate DATE
    ,@IncrEndDate DATE
    ,@SourceRowCount INT OUTPUT
    ,@TargetRowCount INT OUTPUT
    ,@ErrorNumber INT OUTPUT
    ,@ErrorMessage VARCHAR(4000) OUTPUT
    ,@InsertCase INT --INSERT CASE INPUT
    WITH
    EXEC AS CALLER AS
    BEGIN --Main Begin
    SET NOCOUNT ON
    BEGIN TRY
    DECLARE @SuccessNumber INT = 0
    ,@SuccessMessage VARCHAR(100) = 'SUCCESS'
    ,@BenchMarkLoadFlag CHAR(1)
    ,@BenchmarkFlow INT
    ,@MonthYearStart DATE
    ,@MonthYearEnd DATE
    ,@StartDate DATE
    ,@EndDate DATE
    /* Setting the default values of output parameters to 0.*/
    SET @SourceRowCount = 0
    SET @TargetRowCount = 0
    /*Setting the Start and end date for looping */
    SET @MonthYearStart = @IncrStartDate;
    SET @MonthYearEnd = @IncrEndDate;
    /* Setting the @InsertCase will ensure case wise insertion as this sp will load data in different tables
    @InsertCase =0 means data will be inserted in the target TAB1
    @InsertCase =1 means data will be inserted in the target TAB2
    @InsertCase =2 means data will be inserted in the target TAB3
    @InsertCase =3 means data will be inserted in the target TAB4
    @InsertCase =4 means data will be inserted in the target TAB5
    @InsertCase =5 means data will be inserted in the target TAB6
    if @InsertCase =0
    WHILE (@MonthYearStart <= @MonthYearEnd)
    BEGIN
    SET @StartDate = @MonthYearStart;
    SET @EndDate = @MonthYearEnd;
    /* Delete from target where date range given from input parameter*/
    DELETE FROM TAB1
    WHERE [MONTH] BETWEEN MONTH(@StartDate) AND MONTH(@EndDate)
    AND [YEAR] BETWEEN year(@StartDate) and year(@EndDate)
    /*Insert data in target-TAB1 */
    BEGIN TRANSACTION
    INSERT INTO TAB1
    A,B,C
    SELECT
    A,BC
    FROM XYZ
    COMMIT TRANSACTION
    SET @MonthYearStart = DATEADD(MONTH, 1, @MonthYearStart)
    SELECT @TargetRowCount = @TargetRowCount + @@ROWCOUNT;
    END -- End of whileloop
    END TRY
    BEGIN CATCH
    IF @@TRANCOUNT>0
    ROLLBACK TRANSACTION
    SELECT @ErrorNumber = ERROR_NUMBER() ,@ErrorMessage = ERROR_MESSAGE();
    END CATCH
    END--End of Main Begin
    I have the above proc inserting data based on parameters  where in @InsertCase  is used for case wise execution.
     I have written the whole proc with exception handling using try catch block.
    I have just added one insert statement here for 1 case  now I need to add further insert  cases
    INSERT INTO TAB4
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    INSERT INTO TAB3
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    INSERT INTO TAB2
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    I will be using following to insert further insert statements 
    if @InsertCase =1 
    I just needed to know where will be my next insert statement should be fitting int his code so that i cover exception handling for all the code
    Mudassar

    Hi Erland & Mudassar, I have attempted to recreate Mudassar's original problem..here is my TABLE script;
    USE [MSDNTSQL]
    GO
    /****** Object: Table [dbo].[TAB1] Script Date: 2/5/2014 7:47:48 AM ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[TAB1](
    [COL1] [nvarchar](1) NULL,
    [COL2] [nvarchar](1) NULL,
    [COL3] [nvarchar](1) NULL,
    [START_MONTH] [int] NULL,
    [END_MONTH] [int] NULL,
    [START_YEAR] [int] NULL,
    [END_YEAR] [int] NULL
    ) ON [PRIMARY]
    GO
    Then here is a CREATE script for the SPROC..;
    USE [MSDNTSQL]
    GO
    /****** Object: StoredProcedure [dbo].[TryCatchTransactions1] Script Date: 2/5/2014 7:51:33 AM ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE PROCEDURE [dbo].[TryCatchTransactions1] (
    @IncrStartDate DATE
    ,@IncrEndDate DATE
    ,@SourceRowCount INT OUTPUT
    ,@TargetRowCount INT OUTPUT
    ,@ErrorNumber INT OUTPUT
    ,@ErrorMessage VARCHAR(4000) OUTPUT
    ,@InsertCase INT --INSERT CASE INPUT
    WITH
    EXEC AS CALLER AS
    BEGIN --Main Begin
    SET NOCOUNT ON
    BEGIN TRY
    DECLARE @SuccessNumber INT = 0
    ,@SuccessMessage VARCHAR(100) = 'SUCCESS'
    ,@BenchMarkLoadFlag CHAR(1)
    ,@BenchmarkFlow INT
    ,@MonthYearStart DATE
    ,@MonthYearEnd DATE
    ,@StartDate DATE
    ,@EndDate DATE
    /* Setting the default values of output parameters to 0.*/
    SET @SourceRowCount = 0
    SET @TargetRowCount = 0
    /*Setting the Start and end date for looping */
    SET @MonthYearStart = @IncrStartDate;
    SET @MonthYearEnd = @IncrEndDate;
    /* Setting the @InsertCase will ensure case wise insertion as this sp will load data in different tables
    @InsertCase =0 means data will be inserted in the target TAB1
    @InsertCase =1 means data will be inserted in the target TAB2
    @InsertCase =2 means data will be inserted in the target TAB3
    @InsertCase =3 means data will be inserted in the target TAB4
    @InsertCase =4 means data will be inserted in the target TAB5
    @InsertCase =5 means data will be inserted in the target TAB6
    IF @InsertCase =0
    WHILE (@MonthYearStart <= @MonthYearEnd)
    BEGIN
    SET @StartDate = @MonthYearStart;
    SET @EndDate = @MonthYearEnd;
    /* Delete from target where date range given from input parameter*/
    DELETE FROM TAB1
    WHERE START_MONTH BETWEEN MONTH(@StartDate) AND MONTH(@EndDate)
    AND START_YEAR BETWEEN year(@StartDate) and YEAR(@EndDate)
    /*Insert data in target-TAB1 */
    BEGIN TRANSACTION
    INSERT INTO TAB1 (COL1,COL2,COL3)
    VALUES ('Z','X','Y')
    SELECT COL1, COL2, COL3
    FROM TAB1
    COMMIT TRANSACTION
    SET @MonthYearStart = DATEADD(MONTH, 1, @MonthYearStart)
    SELECT @TargetRowCount = @TargetRowCount + @@ROWCOUNT;
    END -- End of whileloop
    END TRY
    BEGIN CATCH
    IF @@TRANCOUNT > 0
    ROLLBACK TRANSACTION
    SELECT @ErrorNumber = ERROR_NUMBER() ,@ErrorMessage = ERROR_MESSAGE();
    END CATCH
    PRINT @SUCCESSMESSAGE
    END--End of Main Begin
    GO
    I am just trying to help --danny rosales
    UML, then code

  • Exception handling for ProjectService methods in a new 2006 DI API

    Normally for other objects the Add() method returns error code and calling the GetLastError you get the description.
    AddProject(Project) method of ProjectService returns ProjectParams object.
    So the question is where to get the error code or what is the correct exception handling for that new methods in 2006 SDK.
    Thanks for any help.
    Tomas

    Hi all,
    I have a sceranio :
    I created the text field, text box, com bobox .etc, on new form or exist form.
    When I want to bind data into UDO, i use "DataBind.setBound"
    ex:"oEdit.DataBind.SetBound(True, "@SM_OMOR", "U_Room")"
    Can i bind the data to exist table on B1?
    ex: oEdit.DataBind.setBound(True, "OHEM", "firstName")
    Plz guid !
    Rgds !

  • Exception Handling for many bean objects of a container class in a JSP page

    Hello,
    I have on container bean class. In this container class, there are several others class objects and the getter methods to get these objects out to the JSP pages.
    I have one JSP page which will use different objects in the container class object through the getter methods of the container class.
    My question is how to implement the exception handler for all the objects in the container so that the JSP page can handle all exceptions if occurrs in any object in the container?
    Please give me some suggestions. Thanks
    Tu

    Thanks for your reply.
    Since the container is the accessor class, I have no other super class for this container class, I think I will try the try catch block in the getter methods.

  • May I use Exception Handling for validation ?

    Hello All,
    Can any one know about that may i use exception handling for validation in my report program.
    Please if its possible then give me some Example...
    Thanks.

    Hi Niraj,
    Exception is not at all raised or handled in the given example.
    There are so many document available in the SCN regarding OO ABAP you can read that.
    As far as validation of a field ( Selection screen ) of course we can do that but I don't see any advantage more over it will make your code unnecessarily complex.
    Regards
    Bikas

  • 2007A: Exception handling for new ProjectService methods

    Normally for other objects the Add() method returns error code and calling the GetLastError you get the description.
    AddProject(Project) method of ProjectService returns ProjectParams object.
    So the question is where to get the error code or what is the correct exception handling for that new methods in 2006 SDK.
    Thanks for any help.
    Tomas

    Hi Thomas,
    For DI API services there is no return code as for the basic objects methods like Add, Update,...
    The only way is then to put try/catch blocks in your code and identify the error message with the Exception.Message property (same mechanism as we have for the UI API). No way to filter them by return code.
    Regards
    Trinidad.

  • Delete button on Form based on a table

    I created a form based on a table. For the delete button, how can I make it ask before deleting the record? ie, when the user hits Delete, a question comes up that asks: Do you really want to delete this record? The user then hits Yes or No.
    Please be specific, I'm new to Portal. Thanks for any help.

    1. Edit your Form and go to "Step 4 of 7, Formatting and Validation Options" section of the builder.
    2. In the left frame, click on DELETE_TOP and/or DELETE_BOTTOM link.
    3. In the right frame, you should see a section (i.e. "Javascript Event Handlers") where you can add your own javascript code. Click on the onClick event.
    4. In the adjacent free-text field, add the following code:
    javascript:if(confirm('Do you really want to delete this record?')){
    null;
    else
    window.stop();
    5. Click on OK to compile. That's it.
    The window.stop() is needed to prevent the PL/SQL event handler (i.e. Update) from running. Without window.stop(), if the user presses Cancel, the form will perform an update anyway. You'll need to remember that the Form will by default perform the Javascript handlers first, then the PL/SQL handler.

  • Open Form Based On A Table in same window

    Hi All,
    First to make things clearer I'll explain what I CAN do:
    Create a page which queries a session variable at the start and then
    depending on its value outputs different HTML, but always in the same
    format and more importantly the same window, to keep the look and feel etc...
    I have a link in a page which when clicked opens a form using wwa_app_module.link
    so it auto queries the form. This works fine.
    What I CAN NOT do is:
    The form was created using the "form based on a table wizard" and always opens
    in a new window.
    Can I make the form open in the same window that contains my wwa_app_module.link?
    Is this possible in a newer version that I have (I got Release 1)
    Any Suggestions?
    Cheers,
    Barry

    Firstly thanks Rahul Dubey for responding.
    What I mean by " contains my wwa_app_module.link? " :
    I have a form which contains a link similar to the one below:
    http://xxx.co.uk:8015/pls/pod130/PORTAL30.wwa_app_module.link?p_arg_names=_moduleid&p_arg_values=1389245486&p_arg_names=EMPNO&
    p_arg_values=7654&p_arg_names=_empno_cond&p_arg_values=%3D%3E
    When I click on this link it opens the form and runs a query automatically.
    The problem is I want to click on the link and have the form appear in the
    same window, not a new one.
    Cheers,
    Barry

  • Detail tabular form based on two tables

    db11gxe , apex 4.0 , firefox 24 ,
    hi all ,
    i have a master detail form based on two tables , the detail form ofcourse based on one table , the problem is i want to include a column of another
    table into the tabular form , so i have changed the query of the tabular form and included the column in it correctly ,
    but the problem is about saving data , i can not save the data , i think
    because the "mru" process is based on one table , that is because i face an error talking about "mru" process when i try to save the data ,
    Error in mru internal routine: ORA-20001: no data found in tabular form Unable to process update.
    so
    what should i do to save the data ? should i create another "mru" process based on the other table or what ?
    thanks

    Anything beyond "simple" requires that you do it yourself.  I believe that what you want is "beyond simple"
    As far as I know, you can only use the 'mru' on one table.
    (I could be wrong)
    If the conditions are right, you might be able to simplify things such that you can use the 'mru'.
    ie CREATE VIEW on the two tables.
    However, you need to understand how Oracle treats DML operations on views, what type of views can be updated, etc., etc.
    If just creating the view doesn't work, creating an INSTEAD OF trigger on the view come to mind...
    (lol) - at that point, you have already started down the 'dark path' of creating your own 'MRU'
    personal note:  triggers have a really baaaddd habit of hiding code from other developers.  you are better off, in the long run, creating your own 'mru'..
    ie a package with procedures to handle INSERT, UPDATE, and DELETES
    MK

  • Need to build a form based on a table in a different schema

    Hello all,
    I am still new to APEX. I have been playing with it for a few days.
    I have an APEX user 'demo' whose default schema is demo1.
    But I need to create a form that can insert,update and delete based on table 'employee' in schema demo2.
    Demo has all the rights on employee table in demo2. I also assigned the demo2 schema to demo user's workspace.
    But when I am building the form, demo1 is th eparsing schema, but in table/view owner only demo1 is available. I don't see demo2 even though I assigned it to demo user's workspace.
    Is it possible to build a form based on a table in a different schema? I tried creating a synonym, but it doesn't show up in the list of tables to select from.
    I don't want to create views or anything because there are many tables in different schemas and it's not possible to go on creating views or such for each one.
    I was able to access th etable in a report though by prefixing the table name with the schema name.
    I would appreciate if someone could point me in the right direction.
    Thanks!

    Varad,
    Thank you for the explanation. So from what I understand, every time I create a form or report based on a table in a different schema, just change the parsing schema in application definition to the new one and create the form or report. So this way my forms and reports or whatever can be based on different tables in different schemas and they would run fine when deployed in a runtime environment (provided the appropriate privileges are there on the objects in context)?
    I tried this and I was able to see the different schema and select the table and create the form. I haven't tested in runtime though.
    Seems like a feasible option, need to test all scenarios though. If this is a feasible solution then there is no need to create synonyms or views (I am not talking about others' scenarios such as security etc) etc. Just appropriate privileges will do it.
    Thanks Varad. Have you used this way of creating a form in your apps? I need to explore more to see if it breaks anything.
    So, every time I need to select an object, say a table, in a different schema I need to temporarily change the parsing schema to that schema in the application definition? Is that a correct statement?
    I will leave the thread open to see if anybody has any comments.

  • How to add a new row in Tabular Form based on a table

    Hi
    I have tabular form based on a table.
    I want the table to have an empty row when there is no data
    in the table so that I can enter data directly.
    But right now whenever the page is launched, its showing a no data found message and I have to press the 'Add Row' button to enter data.
    Can anyone help me out on this?
    Thanks

    Hi Leo
    Your suggestion works fine in the APEX 2.1
    But in 3.0.1 it gives this error :
    Error in add row internal routine: ORA-01476: divisor is equal to zero
    Error Unable to add rows.
    I am not sure why this happens.

  • Error creating form based on a table

    This is wierd. I am running WebDB2.2
    and up until now it has been no problem
    creating forms from tables. But now in
    this schema called SUMI I am unable to
    create a form based on a table. I get
    the error below. I have assigned SUMI
    almost every possible permission
    (DBA, WebDeveloper) so I
    don't think it is a permissions issue.
    Any ideas? Thanks in advance. Marvin.
    ---Error Message--
    14/Aug/2001:13:12:28
    ORA-06550: line 5, column 7:
    PLS-00302: component 'FORM_NOTWORK' must be declared
    ORA-06550: line 5, column 2:
    PL/SQL: Statement ignored
    ORA-06550: line 5, column 7:
    PLS-00302: component 'FORM_NOTWORK' must be declared
    ORA-06550: line 5, column 2:
    PL/SQL: Statement ignored
    VARIABLES IN FORM NOT IN PROCEDURE:
    NON-DEFAULT VARIABLES IN PROCEDURE NOT IN FORM:
    null

    I am bumping this up. Can anybody help or
    at least point me in the right direction?
    Thanks!

  • Trapping exceptions/error messages on form based on procedure

    I am trying to display meaningful error messages when various exceptions arise. I have created a form based on a procedure and the procedure works and returns an exception where I want it.
    I have been trying to use the PL/SQL Button event handler to return an error message to the user, but have not succeeded. I have tried:
    doSubmit;
    exception
    when others then
    p_session.set_value(
    p_block_name => 'DEFAULT',
    p_attribute_name => '_STATUS',
    p_value => 'my error message';
    (I have run this code both with a return at the end and not.)
    This runs, but this return a page that says:
    Error: WWV-0000.
    (It does not display 'my error message'.)
    I have also tried, from the Portal FAQs:
    doSubmit;
    exception
    when others then
    wwa_app_module.set_target('myschema.MY_ERRORS.SHOW?p_arg_names=p_errcode&p_arg_values=-1',
    'GO');
    where my_errors is a dynamic page that displays an error message when you pass it a value, in this case, -1.
    I get the following error message from this code:
    PLS-00201: identifier 'WWA_APP_MODULE.SET_TARGET' must be declared
    I did find some discussions on problems with exceptions when you have a form based on a procedure, but these were from 2001. Any help with this or directions to documentation would be greatly appreciated.

    I worked out one answer: the code provided by Oracle for the second example omitted the portal schema qualifier on the wwa_app_module. It should be (for 10g release 2, at least)
    PORTAL.wwa_app_module.set_target('myschema.MY_ERRORS.SHOW?p_arg_names=p_errcode&p_arg_values=-1',
    ^^^^^^^^^^
    'GO');
    This worked, and returned the custom error message.
    I still can't figure out why the p_session.set_value returns an error message that's just WWV-0000, but I would like to. Any help, even just what page in what document to look at would be appreciated.

  • Exception handling for mis-addressed messages

    We are using ebXML messaging in WLI. In many of our workflows we start new conversations with trading partners based on the contents of address fields in the messages. Now and again during development a message comes in which is addressed to a TP who doesn't exist. The message fails to be sent and rolls back repeatedly. Is there a simple way to remove these messages from the WLI hub? Can exception handling be used to move messages which are failing to enter the workflows to a special queue automatically?
    thanks
    Ben

    Hi Holger,
    I will not translate the coding into VB. So if you want to do this it is OK with me.
    An idea would be after some testing by the community to provide the functionality as a DLL. This way it could also easily be added to a VB project.
    However I assume that some developers prefer to integrate the coding themselves so that they might add additional customer specific functionlity.
    For example not to raise an exception if a specific error is in the return parameter because they want to ignore it.
    Best regards,
    Andre

Maybe you are looking for

  • External monitor not recognized!

    I have a Philips 180P2 external monitor hooked up to my iMac 2.8 GHz, 24", which was running fine until my upgradte to SL this afternoon. Now (among other little "quirks") the external monitor can't recognize the signal from the iMac ... or rather, t

  • Why i get server connection error 901 in my new hp and no apps connection?

    IM getting very mad,  my first time buying an HP brand and IM already tired . Printer just won't  connect by itself to the apps and keeps showing messages of unable to connect to server or server connection error 1 or error 901.... Any help  on the p

  • How does one "join" a community?

    I'm trying to personalize my home page, and to add to my "Places," it says to "Join a community." How do I accomplish that?

  • Choppy ichat audio & video

    Hi, I cannot get my ichat to work properly. Whenever I try to connect with someone (we are both using Mac OS X (10.5.2), we get a choppy connection, that is the video feed looks like a bunch of pixels lagging every few seconds. Its almost like the fe

  • T400s, 4th depot return, what's next?

    So, I have this T400s.... 2808-C5U WinXP Pro SP3 The Ericsson F3507g factory installed WWAN card has now "disappeared" from the system configuration yet again. After exhaustive work with the Lenovo Depot support folks, I'm returning the machine to th