Tabular Form with user supplied PK

apex: 3.2.0.00.27
Hello,
I need create a tabular form. The pk will be provided by the user. SO I see that I will need to specify the PK as being a trigger populated PK.
The pk is USER_ID. The wizard created two columns for user_Id. The first(user_id) is hidden the 2nd user_id_display in read only.
What do I need to do so the user can provide the value for the PK? I assume I need to change one of these into an updateble field. WHich USER_ID?
I did that and when I enter a value for the PK(USER_ID) and select submit I get this error:
Error in mru internal routine: ORA-20001: Error in MRU: row= 1, ORA-20001: ORA-20001: Current version of data in database has changed since user initiated update process. current checksum = "A884FA378C851786DDFE3A33709CB23C", item checksum = "AB737A81A58CD50BDE3015EC8BE7350C"., update "BIDIDEV"."TB_BD_USER" set "USER_ID" = :b1, "BID_ADMIN" = :b2, "BID_MATERIAL" = :b3, "UPDATE_FILTER" = :b4, "PROJECT_FILTER" = :b5, "BID_SRADMIN" = :b6, "PROGRAM_COORDINATOR" = :b7IT looks like its trying to do an update instead of an insert.
As a follow up to this question. I then want to base the value for the PK on an LOV. So do I just change the column type to select list?

Hi,
Tabular Forms in APEX do currently not support PKs that can be entered or modified by the user. The PKs are what's used to identify to rows to update. And for new rows, the PK must be NULL in order for APEX to be able to identify the row as a new row. If you need this column to be modifiable by the user, I suggest adding another column to the table as the actual, internal primary key column, have that column be populated by a trigger, and then make your current PK column a regular, editable column. If that's not possible, you will have to remove the generated multi-row update and delete processes, and implement your own PL/SQL based page process to perform the updates, inserts and delete.
While I believe PK columns should never be editable by the user, and PK values should always be system generated, I realize that not all APEX developers gets to design the underlying database design, nor are they always able to make any modifications to that design. So in APEX 4.1, we'll add the ability to use the internal ROWID for DML processes, which then will allow developers to use PK columns however they wish. Of course APEX 4.1 is still in development, and we don't have a release date yet.
Regards,
Marc

Similar Messages

  • How to build a tabular form with a by the user insertable primary key

    I have build a build a tabular form with the wizzard. Wat should I do to make the primary key insertable by the user.
    When I change the PK from 'hidden' to 'text field', I get a checksum error when i am trying to insert.

    Fred: When you use the tabular form wizard, notice the help text on the right hand side of each page. The help page where you define the type of primary key (Existing trigger, PL/SQL function, existing sequence) clearly states
    Tabular forms do not support user entered primary key values
    Makes sense when you think about it. The MRU process needs to determine whether to update a record or insert a new record. It does that by comparing the checksums (and/or) pk values from when the page was first rendered and then when you make changes and submit it. Newly inserted rows will have a blank PK/checksum.
    If you allow user to change the PK, how will the system know which rows are new and which ones are old?
    For example, lets say you have
    create table t
    pk int primary key,
    data varchar2(10)
    )You have 2 rows
    1 red
    2 yellow
    If the PK were to be editable, user could go in and change the above to
    2 red
    1 yellow
    Now what? Would you like the system to create a new row with 1/yellow or change the existing pk=1 row to yellow? Same with the other row.
    Bottom line: The built-in processes dont support this. You can always write your own manual tabular form and implement whatever you logic you wish in your After Submit processes.
    Hope this helps.

  • Tabular form with select list not updating

    I have created a tabular form with a dynamic select list
    select primary_key, column1,
    htmldb_item.select_list_from_query(10,column2, 'select descr d, column_value r from lookup_table where column_value = '||column1) column2
    from main_table
    The select list appears to work correctly but the new value is not saved to the database. I assume this is because the tabular form element display as field for column2 is set to "standard report column" but when I select any of the "display as text" or "LOV" options either the current data is not displayed or errors are generated.
    Any suggestions?
    Thanks,
    Bob

    Hi Ian,
    As you have seen, sorting on the project_manager_id column will sort by the id value rather than the textual value. This is, of course, because this is the value in the field.
    I haven't tried this out, but one thing that may work is the fact that you don't have to include the ORDER BY fields within the SELECT statement. You could, for example, do:
    select p.project_number, p.project_manager_id
    from projects p, users u
    where p.project_manager_id = u.id (+)
    order by u.name
    Obviously, you won't be able to do this in the existing statement as you would then be blocked from using column sorting. However, it implies that if you could construct the SQL statement dynamically, appending appropriate ORDER BY strings to the end of the base select statement, you could sort by anything you like. This does, of course, mean that you would have to create a mechanism to allow the user to select the sort order, generate the appropriate string and reconstruct the entire sql statement.
    I had had a similar request quite a while ago. The underlying reason for that request turned out to be that the user just wanted to quickly locate records relating to one person. In the end, we agreed that a search filter was the best thing to do.
    Regards
    Andy

  • Error tabular form with validation

    Hi everyone,
    I have built a tabular form with the wizard and I every time a validation check is done and fails,
    getting an error in the place where the tabular form should be. I get to see the tabular form again when pressing the cancel button or refreshing the page.
    I'm not quite able to reproduce this error, but I was wondering if anyone knows of this error and a workaround for it.
    The error that's displayed is: report error: User-Defined exception
    using Apex version 4.1.1. I've already tried building a new tabular form, but that didn't seem to resolve the issue.
    I would appreciate the help.
    Kind regards,
    Cleopatra

    Possible solution?
    Validation returns : no data found + unhandled user-defined exception
    See post by user 794496 there.

  • Custom Tabular Form with working days by quarter

    Hi All, I'm trying to create an application to improve an old excel that some people use in my office. I came across a challenge: create a page when a user can submit for each business day the amount of hours worked, the real problem is that I have to show on the same page 40 business days that need to be dynamic, I mean that there is a "period" table that has a start date and end date, the range between those two MINUS the Saturdays and Sundays should be the amount of COLUMNS that the report show.
    create table CT_PERIOD(
    PERIOD_ID VARCHAR2(6),
    PERIOD_FY VARCHAR2(4),
    PERIOD_QUARTER VARCHAR2(1),
    PERIOD_START_DATE DATE,
    PERIOD_END_DATE DATE,
    PERIOD_DAY_COUNT NUMBER,
    insert into ct_period values ('1', 'FY14', 'Q1', to_date('01-JUN-2013', 'DD-MON-YYYY'), to_date('25-AUG-2013', 'DD-MON-YYYY'), 56);
    commit;
    I searched in the web for some example of this with no luck, if somebody did something like this or knows where I can see an example that would be great!
    Thanks!

    Hi guys,
    I'm having exactly the same problem, I need a tabular form with days as columns to add actual working hours for each day as for each row ( task)

  • Tabular form with non base table field

    I want to develop a tabular form with
    1. A non-base table edit field to accept a value
    2. Insert/update another table based on the input value
    3. Also, computed field on each row based on other fields on the records (like post-query trigger in oracle forms at block level - for each row)
    Thanks,
    Rachna

    Thanks for your reply.
    Varad, I like the link you sent me. It has a lot of good information.
    I created a process (under page processing) called "Update/Insert Process" that dosn't seem to be working.
    Question, I created a manual tabular form with SQL Query and created a process (under page processing) called "Update/Insert Process", then I check for each record in the tabular form. If the old value <> new value then I update/insert in the new table.
    Any step by step will be highly apprciated - to create process/validation etc.
    Thanks,
    Rachna

  • ADD ROW in tabular form with new max value for a certain field

    All,
    I have a tabular form with an 'ADD ROW'-button.
    When a row is added the field 'TemplateID' should get
    automatically a new value which is MAX from TEMPLATEID + 1.
    I would be very glad, if someone has a hint for me.
    Thanks in advance,
    lucio

    Hi
    the cause of not seeing the 'Default Item Field' is,
    that during creation of a 'Tabular Form' the column with the
    primary key doesn't get that feature, why so ever.
    I still hope that someone could give me a hint why that code isn't working:
    function SetNewID(vDBID)
    v_check = $v('P20_MAX_TEMPLATEID');
    pNd = $u_Carray(vDBID);
         for(var i=0;i<pNd.length;i++){
              var node = $x(pNd);
              node = $x_Check_For_Compound(pNd[i])
              var lTr = $x_UpTill(node,'TR');
    updateRow = lTr.rowIndex - 1;
    document.wwv_flow.f02[updateRow].value=$v(v_check)
    Many thanks in advance
    lucio                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Apexlib tabular form with lov gining ora-00900

    Hi,
    When I add a tabular form with 3 items and chagne two of them to a LOV display item I get the following error:
    ORA-00900: invalid SQL statement
    Debug:
    1: begin
    2: ---------------------------------------------
    3: -- Get metadata of page
    4: ---------------------------------------------
    5: ApexLib_Page.generateBrowserData;
    6: ---------------------------------------------
    7: -- Get metadata of items and tabular forms.
    8: ---------------------------------------------
    9: ApexLib_Item.generateBrowserData;
    10: ApexLib_TabForm.generateBrowserData;
    11:
    12: ---------------------------------------------
    13: -- Send data for cascading lovs
    14: ---------------------------------------------
    15: ApexLib_Lov.generateBrowserData;
    16:
    17: ---------------------------------------------
    18: -- Send NLS data for date formats and numeric
    19: -- format masks and translated error messages
    20: ---------------------------------------------
    21: ApexLib_Browser.setNlsData;
    22: ApexLib_Browser.setApexLibMessages;
    23:
    24: ---------------------------------------------
    25: -- Active different navigation improvements
    26: ---------------------------------------------
    27: ApexLib_Browser.setLovIconsNonNavigable;
    28: ApexLib_Browser.setLRButtonIconsNonNavigable
    29: ( pLeftClassName => 'L'
    30: , pRightClassName => 'R'
    31: );
    32: ApexLib_Browser.checkForLovKey;
    33: ApexLib_Browser.checkForUpDownKey;
    34:
    35: ---------------------------------------------
    36: -- Active different UI improvements
    37: ---------------------------------------------
    38: /* optional
    39: ApexLib_Browser.setTextareaProperty
    40: ( pProperty => ApexLib_Browser.VERTICAL_RESIZEABLE
    41: );
    42: */
    43: ---------------------------------------------
    44: -- Init browser validation
    45: ---------------------------------------------
    46: ApexLib_Browser.initValidation
    47: ( pShowRequiredWarning => TRUE
    48: );
    49: ---------------------------------------------
    50: -- Has to be the last statement!
    51: ---------------------------------------------
    52: ApexLib_Browser.flushJsBuffer;
    53: end;
    Any idea?
    Erwin

    I solved it.
    I modified a bit my code "On load Page". In case of LOV i have changed this condition
    if (l == undefined) {
              document.wwv_flow.f03.disabled = true;
          }with this
    if (l == 105) {
              document.wwv_flow.f03.disabled = true;
          }I don't know why 105 instead of undefined, but this works. I give 105, with alert on length.

  • Bug: 4.1.1 Tabular form with all columns conditional

    I need to make all the columns in a tabular form conditional because in some situations the editable elements should not be shown. For some reason just changing the columns to conditional stops the form working, the ApplyMRU/ApplyMRD process runs but does not action the changed rows. I can't figure out why at all or any workaround.
    You can easily reproduce this in 4.1.1 by creating a tabular form with the wizard selecting one column in the form. Then make the row selector colunn and your editable column conditional using the plsql expression 1=1. The form is displayed the just the same with these true conditions but it doesn't work. How weird is that?
    Rod West

    Rod,
    In your scenario the tabular form rendering engine is unable to place the hidden, internal tabular form status columns in your form, i.e. the columns that contain checksums, etc. The logic that places these columns looks for the last unconditional, visible column in your tabular form, and includes the hidden fields there. So you need at least one column that's always shown for this to work. This can be an otherwise empty column. I filed a bug (#13881803) for this, so we can look into improving this logic.
    Regards,
    Marc

  • Tabular form with onhover comment column

    Hi guys!
    I was wondering if anyone of you saw an example of onhover item help with query...I mean..lets imagine a tabular form with a text field Comment column. Comment column has width 50 but we all know that comment ale like to be long ;) I'd like to see full lenght comment every time I put my mouse pointer on a specific row. Is it possible ? If yes can you show me an example or point me in a good direciton...(I dont know javascript well..)
    With regards,
    PsmakR

    PsmakR,
    Yes it is possible. Currently the ShowPopup script displays the value of current cell (hv_item.value). You can just simply replace with whatever you like.
    If you're talking about the value of other columns, you may have to use document.wwv_flow.fXX to refer to it. Again, see my other sample of [Tabular Form Column Read-only|http://apex.oracle.com/pls/otn/f?p=57043:4] . Patrick Wolf wrote about this as well in his [ Which Tabular Form Column is mapped to which Apex_Application.g_fxx array|http://www.inside-oracle-apex.com/which-tabular-form-column-is-mapped-to-which-apex_applicationg_fxx-array/] .
    Ittichai

  • Tabular form with Popuv LOV doesn't work with onchange event

    Hi all.
    I have a problem with tabular forms, Popuv LOVs and javascript.
    I have created one tabular form, I want to put a value in "my_field" field when a user selects a new value from other field called "my_list", I have this code:
    <script type="text/javascript">
    function putValue(pThis)
        var vRow = pThis.id.substr(pThis.id.indexOf('_')+1);
        html_GetElement('f06_'+vRow).value = '0000';
    </script>and this for Element Attributes:
    onchange="putValue(this);"Everything works well when I choose "Display as Text Field", but if I change this option to "Display as Popup KEY LOV" or "Popup LOV" it doesn't work, I mean "my_field" stays without any value.
    I'm using Oracle Application Express Release 4.0 and Oracle 11g
    Please help.
    Regards.

    Hi Peter.
    Thanks, yes, in fact the position of my column changes, but it doesn't work even with the correct element, I have made a lot of proves and it seems that APEX constructs POPUPS LOVS in a different way and that's why "onchange" does not work.
    With this thread: Re: onchange not work on popup lov for a field on collection I have a half solution, It works for existing rows, but it doesn't for added rows.
    I have solved this problem calling a function that set the onchange event to every row when "ADD ROW" button is pressed, now it works without problems.
    Regards.
    Oscar.

  • Tabular form with a metric/imperial selector

    Hi,
    Oracle 10g database and APEX 3.2.
    I have a tabular form based on a simple query (SELECT rock_type, depth FROM rock_samples) with an editable "depth" field. The user cannot add or remove records, but can make updates to that one field. MRU process is handling that.
    The underlying table "rock_samples" stores "depth" in meters.
    I need to somehow allow the user to select either metric system (meters) or imperial (feet). Based on that selection the displayed deths should change. However, regardless of the selection the updated values should be saved as meters.
    Any suggestions on how to implement this would be most welcome, as I cannot think of anything.
    Thanks,
    Constantine

    Hi Constantine,
    Sorry my code was slightly confusing. :P1_SELECTOR would be the name of your selector with "Metric" and "Imperial" in it, and this would have to submit the page on select. You can still use the decode in your select statement to display the initial value.
    SELECT col1, col2, DECODE(:P1_SELECTOR, 'M', depth, 'I', (depth*3.2808399)) depth_result
    from table_nameSaves/Inserts will be trickier. This could probably done with Javascript, but seems like it would be best handled by a trigger just before insert/update on your table. But then you need a way of knowing if the :NEW values are in Metric or Imperial, so you would need a "dummy" value or flag in your table that the incoming values are in Imperial and need converting to Metric.
    Hope this helps,
    Aaron

  • Basic tabular form with manual pk

    Hi,
    using oracle 11.2.0.1 and apex 3.21.
    I'am trying to add a new row in a table with a pk other than trigger generated or sequence generated. the pk column is a varchar2(3 char) and the user can enter any 3 letter values that does'nt already exist. But when I do try to submit the new row I receive an error... any one have an idea ?
    in the report attribute, in the tabular form element section, there is a combo box presenting the primary key source, and three option are offered 1-existing trigger, 2-custom pl/sql and 3-existing sequence.. Is there a way to tell apex that the primary key is manually entered ? any one have an idea ?
    here is the sequence to reproduce my problem :
    1. Click on add row button.
    2. Input any data in the new row.
    3. Click on Submit button.
    4. Receive error:
    Error in mru internal routine: ORA-20001: Error in MRU: row= 1, ORA-20001: ORA-20001: Current version of data in database has changed since user initiated update process. current checksum = "A884FA378C851786DDFE3A33709CB23C", item checksum = "2CFB135E54ECF3C8ADE5981010D64FAF"., update "BDD"."DI_SYSTEME" set "SY_NOM_PROJET" = :b1, "SY_DESCRIPTION" = :b2, "SY_DATE_CREE" = :b3
    thanks

    Your primary keys should be generated by the database. What you define as a primary key in the front end should not be used for the update / insert processes.
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://apex.oracle.com/pls/otn/f?p=31517:1
    http://www.amazon.de/Oracle-APEX-XE-Praxis/dp/3826655494
    -------------------------------------------------------------------

  • ORA-01446 Tabular Form with CONNECT BY LEVEL =2

    I created a tabular form where I would like the last 2 lines to be blank so the user can enter new rows immediately (e.g., the first time when no data is found).
    The following is the sql for the tabular form:
    select
    "ID",
    "REQ_ID",
    "QUANTITY",
    "FRAME_SIZE",
    "FRAME_TYPE",
    "PROTECTIVE_COVERING",
    "MATT",
    "MATT_COLOR"
    from "#OWNER#"."CREATIVE_SVC_DESIGN_FRAMING"
    union all
    select
    null id,
    null req_id,
    null quantity,
    null frame_size,
    null frame_type,
    null protective_covering,
    null matt,
    null matt_color
    from dual
    connect by level <= 2 I get the following error:
    failed to parse SQL query:
    ORA-01446: cannot select ROWID from, or sample, a view with DISTINCT, GROUP BY, etc.
    The query is not accessing ROWID from a view at all. And, as you can see, it is not using a DISTINCT, GROUP BY, etc..
    My APEX is Application Express 4.0.2.00.07
    My Database is 10g (10.2.0.5.0)
    Please help!!
    Robert
    http://apexjscss.blogspot.com

    Robert,
    I wish I had a better explanation for you, but I know something new with 4.1 broke this union trick for tabular forms. I had to make a dynamic action that runs on page load and calls the addRow() javascript function instead. I think it has something to do with tabular form validation but I am not sure.
    Cheers,
    Tyson Jouglet

  • Best way to link user form with user table

    Hi all.
    What is the best way to link an user form with a user table (with all of the functions, add, update...)? I have created a simple form, and the question is next:
    depending the type object of the user table (document, master...) i have facilities to imlement the basic operations in the form?  if i create an UDO i have the functions but i want to use the form that i created with a screen painter.
    Thanks.

    Hi again i want add a new comment please.
    If i want do all functions (add,update...) of my form in my user table, and i want my user table is a <b>type document</b>? how can add new lines in my user table with objet <b>type document</b>? because when i make the instance i nedd to say what type of document is (item,order...) and when i do an add(), not add() in my user table. In what moment or how can assign that the add,update functions... affect in my table?
    Thanks again.

Maybe you are looking for

  • Error when trying to configure Lync to be a partner application for Exchange Server 2013

    When I attempt to run the Configure-EnterprisePartnerApplication.ps1 script I get the following error: The address 'LyncEnterprise-ApplicationAccount@*.domain.com' is invalid: "LyncEnterprise-ApplicationAccount@*.domain.com" isn't a valid SMTP addres

  • Is there a way to keep Text2Speech locked in front on my screen at all times?

    I want to be able to access Text2Speech at all times.  It would be great to have it locked in the front of my screen at all times, even when I switch spaces.  Does anyone know of a way to do this?

  • Java Console Doesn't Work/Show Up

    I have been having an issue with the Java Plug-in Control Panel (in WinXP Control Panel) and some applications not appearing when started (ie. the java console, self-written applications, etc.). They come up in a window, but are greyed out. Sometimes

  • Change datatype for field of report

    I have a report that uses a Stored procedure for a datasource - it originally had to fields that were "number" as the field datatype and took an integer from the Sp. I've since changed the datatype for that field from int to smallmoney.  How can i re

  • Static LOV

    Hi Experts, I'm new to apex. I created a report and it contains a LOV. Under the region, i have created a LOV item as select list with name P22_TRUE_FALSE_BOTH I have created a static lov defining the LOV definition as STATIC2:True;Y,False;N,Both; IN