Primary key in master detail form

i have a situation where i need to access the value of primary key (primary key is hidden) in a master-detail form.
i need to access the primary key in the javascript onClick event of the button. i'm using the following code in the ...before displaying the form event :-
htp.p('<script language="JavaScript1.3">
<!--
function getField(form,fieldName)
var objName = "";
var tmp = "";
var dAction = "";
var sel_idx = 0;
var cnt = 0;
var instance = 0;
var slicedName;
var fillData = new Array();
for (var i = 0; i < form.length; i++)
slicedName = form.elements.name.split(".");
tmp = slicedName[2];
instance = parseInt(slicedName[3],10);
if (!tmp)
continue;
objName = tmp;
if (objName == fieldName)
return form.elements[i].value;
//-->
</script>');
and then i'm calling this javascript in onClick event of the button as follows :
var_get_val = getField(this.FORM,'PROD_ID');
this script works for a form with single block but, does not work with the master detail form.
what is wrong here ... ??
any ideas or suggestions ...??
thanx a lot.
null

Thank you, Denes,
but isn_t there a simplier way to use a third column ?
I will keep your idea in mind and try out as soon as possible.
With kind regards,
Hergen.

Similar Messages

  • Too many object match the primary key on master-detail tables

    Hi all,
    I am using Jdeveloper 11.1.1.2 and ADFBC.
    I have three table: tableA (with fields IdA,AttributeA), tableB (with fields IdB,AttributeB), tableC (with fields IdC,IdTableA,IdTableB,AttributeC).
    Table C has a composition relation with tableA and tableB.
    I have a panelTabbed with two tabs. In the first tab I can create a row in TableA and automatically (setting some parameters) I create a row in tableC. In the second tab I see the tableC
    I have this strange behavior when I try to create the row in tableA for the first time:
    I click on create button, I insert the values for tableA and commit, I have this error:
    too many object match the primary key Oracle.jbo.key [132]
    Instead if I click on create button, I insert the values for tableA, I move on the second tab, I return to the first tab and commit, I have no errors and the rows are correctly create on tableA and tableC.
    How can I solve it?
    Thank you
    Andrea

    It indicates that an Entity is being added to the Entity cache with the same primary key as an existing entity: http://download.oracle.com/docs/cd/E14571_01/apirefs.1111/e10653/oracle/jbo/CSMessageBundle.html#EXC_TOO_MANY_OBJECTS
    If the primary key based on sequence is assigned declaratively and your view link is based on an association, ensure that the association is marked as composition the Association settings.
    As this has been asked a few times in the forum, double-check for solutions here: http://forums.oracle.com/forums/search.jspa?threadID=&q=JBO-25013&objID=f83&dateRange=lastyear&userID=&numResults=15&rankBy=10001

  • Master-Detail Form (How to pass an item value in Master to Detail field

    I have a Master-Detail form. When adding a new record in the Detail section, I expect the primary key in the master record will copy down to the detail record. But, it is not doing that. Does anyone know how to pass the master primary key down to the detail record field.
    By the way, query works fine. It knows the master-detail relationship. It is just when creating a new detail record, the key not pass down from the master record.
    thanks - Patty

    hi,you can do it by:in detail form's foreign key field,set it's default value as master primary key ,example master page p1,primary key as p1_master,detail form p2,foreign key p2_foreign, set p2_foreign key 's default value &p1_master.
    Message was edited by:
    lixinzhu

  • Master Detail Forms with 2 composite primary keys - Is there a workaround?

    Hello All,
    I have been searching for a workaround to the maximum 2 part primary key restriction on the multi-row updates, and master-detail forms, and am hoping that someone can help me. I am using HTMLDB v2.0.0.00.49 with IE 6 against a 9.2 DB.
    I successfully implemented the workaround of Fred Stoopendaal's (see Updata PK on HTML DB ) and it works fine for single page multi-record updateable forms, but alas I haven't been able to extend it to master detail forms (I think it is something to do with Oracle not allowing the "returning" clause on views).
    Here is what I tried:
    two tables, one with a 2 part composite primary key, which is the master table, and a detail table with 3 part composite primary key -
    --------- BEGIN SQL ---------
    create table master_table
    ( master_col1 number
    , master_col2 number
    , master_col3 varchar2(30)
    , constraint master_pk primary key (master_col1,master_col2));
    create table detail_table
    (detail_col1 number
    ,detail_col2 number
    ,detail_col3 number
    ,detail_col4 varchar2(30)
    , constraint detail_pk primary key(detail_col1,detail_col2,detail_col3)
    , constraint master_detail_fk foreign key (detail_col1,detail_col2) references master_table(master_col1,master_col2));
    create or replace view v_master_table as
    select rowid mata_rowid,mata.*
    from master_table mata;
    create or replace view v_detail_table as
    select rowid deta_rowid,
    (select rowid from master_table mata where mata.master_col1 = deta.detail_col1 and mata.master_col2 = deta.detail_col2) deta_mata_rowid
    , deta.*
    from detail_table deta;
    create or replace trigger mata_ins_upd_trg
    instead of insert or update on v_master_table
    referencing new as new old as old
    for each row
    begin
    if inserting then
    insert into master_table (master_col1, master_col2, master_col3)
    values (:new.master_col1, :new.master_col2, :new.master_col3);
    end if;
    if updating then
    update master_table
    set master_col1 = :new.master_col1,
    master_col2 = :new.master_col2,
    master_col3 = :new.master_col3
    where rowid = :old.mata_rowid;
    end if;
    end;
    create or replace trigger deta_ins_upd_trg
    instead of insert or update on v_detail_table
    referencing new as new old as old
    for each row
    begin
    if inserting then
    insert into detail_table ( detail_col1, detail_col2, detail_col3, detail_col4)
    values (:new.detail_col1, :new.detail_col2, :new.detail_col3, :new.detail_col4);
    end if;
    if updating then
    update detail_table
    set detail_col1 = :new.detail_col1,
    detail_col2 = :new.detail_col2,
    detail_col3 = :new.detail_col3,
    detail_col4 = :new.detail_col4
    where rowid = :old.deta_rowid;
    end if;
    end;
    --------- END SQL ---------
    Then I created a master-detail form in Apex on the two views, using the mata_rowid and deta_rowid as primary keys, and mata_rowid=deta_mata_rowid as the link. I realise that using a function to fetch the master rowid within the detail view query is costly, but it was my intention to modify the record fetch queries to use the real FK columns once things were up and running.
    It seems to generate the pages ok, and I can insert/update master table records, but as soon as I modify records in the detail table things go a bit haywire. I can't find any documentation on how the inbuilt MRU/MRD logic works, so can't figure out the issue.
    Can anyone out there tell me what the problem is with the logic above, or if they have come up with a neat solution to this annoying limitation. I know that many will say that I should modify the data model to use surrogate primary keys, but many of the uses for HTMLDB are new interfaces for old schemas, so a workaround that doesn't involve wholesale data model changes would be preferable.
    Thanks in advance,
    Mike Cretan

    Hi, this is likely not the most elegant way...but perhaps the simplest -- and I didn't have much time to play.
    I used Wizard to create two separate Master Detail forms, each with a separate detail table. Thus I ended up with four pages:
    Page "A" - "Selector" page for Master (Report), with Edit link driving to Detail-1
    Page "B" - Editable Master/Detail-1 page (HTML / Report)
    Page "C" - "Selector" page for Master (Report), with Edit link driving to Detail-2
    Page "D" - Editable Master/Detail-2 page (HTML / Report)
    Then I selected the primary key column TWICE on the Report on Page A. Modified the second instance of this column to navigate to Page D (passing primary key) exactly the way the original instance of this column navigates to Page B. Then I deleted Page C.
    Since you can have only one Tabular Entry form per page, this seemed the best way to drive two separate detail tables from a common interface.

  • Hi  cant see the primary key column in master detail  form

    I have a master detail form .In the first master form i am unable to see the primary key
    Now the form is built completley and i also will like to see the primary key column visible in master report
    If i had set the primary key as rowid then i could have seen the primary key ..
    Now i can see the pencil icon (The eidt row pencil icon) instead of the actual primary key column . .which is a number data..
    I will like that too be visible ..Can any one guide what should i do for this..
    Thanks

    Hi Mat,,
    I am using apex 4.2 db version 11g and in the first master page i had set the value of combo which is primary key column as text
    But still iam not able to see the number ..Note if i recreate the form ..with rowid as primary key i am able to see the column since the pencil icon(edit icon) is on row id..
    Currently All i see is the edit icon ..I need both the edit icon and also the number ..
    Thanks

  • Primary key updation in the Master details form.

    Hi All,
    I am struggling with Master Detail form in apex 3.12.
    I have two tables.
    SaleMaster ( TRN_ID as PK ) Created from Sequence.
    SaleDetail ( TRN_ID , TRN_TYPE as PK) TRN_ID FK from SaleMaster , TRN Type is user Input in SaleDetail.
    What is best simple way to create the master details form for the above master details tables.
    Thanks.

    I found a way. I dont like it - but it works.
    I made a column link in the detail with the following:
    javascript: doSubmit('NAVIGATE@#ROWNUM#);
    This way I obtain information in the :REQUEST object about which row was clicked.
    In a After submit process on the page I then parse this :REQUEST object like this:
    DECLARE
    v_row NUMBER;
    v_pos NUMBER;
    BEGIN
    v_pos := instr(:REQUEST,'@',-1);
    v_row := substr(:REQUEST, v_pos+1);
    IF APEX_Application.g_f02(v_row) IS NOT NULL THEN
    :P_PRIMARY_KEY_ID:= APEX_Application.g_f02(v_row);
    ELSE
    :P_PRIMARY_KEY_ID:= -1;
    END IF;
    END;
    I know that my "Id" column is named f02 in the form, so this way I can find the id. I then assign this id to a kind of global variable - on the page I redirected to I can now find the Id.
    Talk about ugly code :P

  • Master-Detail Forms (Populating a Foreign Key Automatically)

    Master-Detail Form
    When inserting a MD Form, the Master ID (e.g. Deptno,the Primary Key) is generated.
    How is it possible for this also to be generated in the Detail Form (as the Foreign Key)? The requirement is for the foreign key to be populated automatically.
    Any help would be much appreciated.
    Thanks.

    This item is discussed earlier in this group.
    It's solved in version 3.0.8
    Regards,
    Anna

  • Many to many master detail form

    Hi All,
    APEX 3.1.2 on SuSE 10 Oracle 10.2.0.3 64 bit
    I am new to APEX, but used OAS several years ago. Back then I hardcoded all htp.print commands. We are building an intra-team application to track system relationships. For example,
    web interface 3 --> application server 2 --> database 6
    Our tables are similar to the following
    SYSTEMS
    system_id (unique sequence)
    system_type_id (database, app server, apache, etc.)
    SYSTEM_TO_SYSTEM
    publishing_system_id - number
    consuming_system_id - number
    We would like to have a master detail form where we would query database 6 for example, and then see all related systems one level below it (application server 2 in the example above). I have been able to query the related systems and show them in a drop down pick list on the detail form, but I cannot edit them.
    The wizard asked for the primary key of the detail table, which in this case is not a sequence generated value, but a pick from a systems table lookup on system_id/system_name.
    If the master form would automagically lass the system_id to the publishing_system_id on the detail form, and allow me to update that with a picked system_id tied to consuming_system_id, that would be perfect.
    I can write the htp calls I mentioned earlier, but I am sure I am missing something.
    Does anyone have any best practices for this?
    Thanks!
    Steve

    Hi Steve,
    Here is an example which might help you:
    http://apex.oracle.com/pls/otn/f?p=43368:35
    Here, I have used two tables e.g. test1 and test2. Test1 has an id column which is just a sequence column and the name column in this table has a unique key.
    Table test2 has id column as primary key and name1 column is linked with Test1 table on the Form. Name2 column is not required to be linked with Test1 table.
    If this is what you are after, then I can give your more detail for it.
    Hope it helps.
    Zahid

  • Is this a bug? master rowid value lost when saving on a master/detail form

    master/detail forms seem to lose the rowid after saving, if the unique identifier is set to ROWID
    to reproduce the problem:
    1) create a master detail form on DEPT/EMP
    -- choose 'Managed by Database (ROWID)' on the 'Define Primary Key' page.
    -- do not include master row navigation (but i don't think this matters)
    -- choose 'Edit detail as tabular form on same page' on the 'Choose Layout' page
    -- include the master report
    2) on the master/detail page, change the conditional branch that returns to the master report page
    -- the normal condition for this branch is request in SAVE,DELETE,CREATE
    -- change it to request in DELETE,CREATE
    3) run the form and save a change
    -- saves fine, session shows the ROWID value is still set
    4) save a second change
    -- change does not save, form reverts to Create mode
    this problem does not occur when using the primary key columns instead of rowid
    see http://apex.oracle.com/pls/apex/f?p=60813:7 for the ROWID version
    see http://apex.oracle.com/pls/apex/f?p=60813:11 for the PK column version

    Hi Saverio,
    Bug *13563808* has been logged to track the reported issue, and a fix will be made available in a future release. Just to clarify, this issue is only arising when the APEX-generated Master-Detail is modified post-generation, so for users who have not modified their Master-Details using ROWID to manage their DML processes, they should not experience this issue.
    In relation to my workaround, my suggestion works in my test environment, which I verified before posting the initial suggestion. Please note that the 'Reset Page' process is, by default, conditional on the "Delete" button being pressed. If you have made further modifications to your Master-Detail page, then this might explain why you're seeing different behaviour to me. You might using the "Debug" option on the Developer Toolbar useful. Viewing the debug information should help you to decipher what's going on/wrong on your page. If you still can't resolve the issue, then the safest option might be to revert the page back to it's original state, meaning the user navigates back to the Report page upon submitting changes to the Master-Detail Form page.
    Regards,
    Hilary

  • Insert error in master-detail form

    Probably a stupid question. When I populate the master block of
    a master detail form from an LOV, I am asked to save the form.
    Since the information is loaded from the LOV, there are no
    changes to save. If I answer yes, it gives an Insert error due
    to the primary key violation in the master block table. If I
    answer no, it opens the detail block and gives the correct
    information. The problem is that when I enter information into
    the detail block and try to save it, I get the same error
    message regarding the primary key violation in the master block.
    The form works fine if I do not populate the master block from
    the LOV (or from select statements in triggers). Any suggestions
    will be appreciated.
    LS

    Hi,
    Check for the form or block status.Looks like the status has
    changed.Thats why u r getting the message.If any of the base
    table item has changed then u will get such a message.Try
    working on this an check it out.
    Thanks
    Vinod

  • Error in Master Detail Form

    Hi All,
    i m getting the following error when i m creating a master entry ...
    ORA-06550: line 5, column 23: PL/SQL: ORA-02289: sequence does not exist ORA-06550: line 5, column 16: PL/SQL: SQL Statement ignored ORA-06550: line 8, column 16: PLS-00364: loop index variable 'C1' use is invalid ORA-06550: line 8, column 9: PL/SQL: Statement ignored
    but while creating the master detail form i had specified the corresponding sequences and they even exist in the DB.
    Please ! do help me .
    Thanks & Regards,
    Nandini Thakur.

    Hi ,
    Though u choose the schema name ...the sequence is not appended with the schema name .
    Example you are craeting the application in schema 1 and ur database objects are in schema 2.
    so while creating the Master detail form you will get the option of choosing the schema, but then also the sequence name is not appended (as this may be the problem or bug in apex) .
    so one needs to manually go and append the schema name.
    In master detail form one needs to append it
    1) Form of the Master ...the process called as get primary key there the sequence name should be appended
    ex:- myschema.seq
    2) another is the detail tabular form . here you need to good to the id hidden field and edit it , then in the source column append it with the myschema.seq.
    Regards,
    Nandini Thakur

  • Old items are not populated after adding items into a master/detail form

    Hi,
    I am relatively new to APEX. I am creating a master/detail form. It works well. When I add new items the older items are no more populated. Why ?
    For example I have an itme which is a select list as a Named LOV. At creation of the row I want the user to choose from this select list. It works well.
    But when modifying the record, I don't want the user to change this name. For that purpose, I create an item which is a display only item. This item is conditional and appear only when the record has been created.
    And this is where the problem comes. It seems to work but, if I logout of the application and login, then values are no more populated to the items and I get an error when trying to update the form.
    I hope I make it clear. I have been trying a lot of times and found that if I add items, then everything goes wrong.
    Thank you for your kind help.
    Christian

    Hi Christian,
    You don't say what the error is that you are getting - this may help us with your problem!
    On the form, do you now have TWO fields - one being the original select list and the other being a read-only version of it? Is it likely that BOTH fields could appear on the page at the same time AND that both are connected to the field on the table?
    You can set the select list to be read-only conditionally - in this case you could make it read-only on the condition of the primary key field not being null.
    Andy

  • Master Detail Form - Problem using built in wizard

    Hi There
    We are working on Application express 2.2.
    We are facing problems for a master detail form using Wizard. The
    details are as follows : >>
    1) Master table : TS_ENTRY_TXN
    trans_id P.K.
    2) Detail table : TS_ENTRY_TXN_DETAIL
    a)trans_id
    b)sub_trans_id Composite P.K.(trans_id,sub_trans_id) & these are
    based on sequences.
    If i try to build a master detail form using the Wizard, the options
    for providing P.K. for master & detail are listed which we used.
    As it is a master detail form, we want to carry trans_id to the detail
    for updations/insertions which doesn't happen.
    The MRU fails with oracle error :
    Error in mru internal routine: ORA-20001: Error in MRU: row= 1,
    ORA-01400: cannot insert NULL into
    ("TS_APEX"."TS_ENTRY_TXN_DETAIL"."ENTRY_ID"), insert into
    "TS_APEX"."TS_ENTRY_TXN_DETAIL" ( "ENTRY_ID", "SUB_ENTRY_ID",
    "SMR_ID", "TASK_ID", "SUB_TASK_ID", "TIME_SPENT", "REMARKS") values (
    :b1, :b2, :b3, :b4, :b5, :b6, :b7)
    Is there any other way to build master detail wihout wizard.
    Could you please suggest us better way to complete this task.

    If I'm reading this correctly, then one of the columns in your detail tables' primary key is also the foreign key pointing to your master table? If that's the case, then that's not supported by the wizard. For the wizard generated master-detail form to work properly, you'll have to have a foreign key column in your detail table which is not part of your detail table's primary key.
    Hope this helps,
    Marc

  • Master-Detail Form in Form6i Developer

    First of All Hi to all Respected Gurus.
    I am stuck in a very basic element and that is Primary-Key/Foreign-Key relation. I am trying to create a Master-Detail Form based on following structure. Records in Master Table and Child Table are saving (inserting) but Primary Key of Master Table is not saving (inserting) as "Foreign Key" in Detail Table.
    Here is Table Structure(s)
    Master Table Name : MGTC_EDM
    CREATE TABLE MGTC_EDM
    EDM_ID NUMBER, -- PRIMARY KEY
    BILLING_DATE DATE,
    CONSTRAINT PK_MGTCEDM_EDMID PRIMARY KEY (EDM_ID)
    CHILD TABLE : MGTC_EDD
    CREATE TABLE MGTC_EDD
    EDD_ID NUMBER; -- PRIMARY KEY
    EDM_ID NUMBER; -- FOREIGN KEY RELATION WITH MGTC_EDM
    MEM_ID NUMBER;
    AMOUNT NUMBER;
    CONSTRAINT PK_MGTCEDD_EDDID PRIMARY KEY (EDD_ID),
    CONSTRAINT FK_MGTCEDD_EDMID FOREIGN KEY (EDM_ID)
    REFERENCES MGTC_EDM (EDM_ID)
    TRIGGER OF "BEFORE_INSERT" IS APPLIED ON BOTH TABLES TO AUTO-POPULATE INCREMENTAL ID
    IN FORM6I, I'VE APPLIED A 'KEY_NEXT_ITEM' TRIGGER ON BILLING_DATE FIELD OF MASTER TABLE TO COMMIT THE RECORD AND TO MOVE THE CURSOR TOWARDS DETAIL BLOCK
    AND THERE ARE NO MORE TRIGGERS IN THE FORM.
    AS CURSOR MOVES TOWARDS DETAIL BLOCK, RECORD IN MASTER TABLE SAVES (COMMITTED) ON AUTO AND WHEN I PRESS "SAVE" BUTTON TO SAVE THE RECORD IN CHILD FORM DETAIL TABLE ALSO COMMITTED
    BUT WHEN I PRESS F8 TO EXECUTE THE QUERY ONLY MASTER RECORD SHOWS AND NO RECORD SHOWS IN THE DETAIL TABLE. WHEN I CHECKED IN DETAIL TABLE IN TOAD, IT FOUND THAT PRIMARY KEY OF MASTER TABLE (EDM_ID) NOT SAVED IN DETAIL TABLE.
    PLEASE HELP.

    Dear Mr. O.Developer, Many thanks for your reply.
    Yes, I've created relationship. Relationship exist in Master_Block and below is the detail
    Relationship Name = MGTC_EDM_MGT_EDD
    Relation Type = Join
    Detail Data Block = MGTC_EDD
    Join Condition = MGTC_EDD.EDM_ID = MGTC_EDM.EDM_ID
    Delete Record Behavior = Non Isolated
    Prevent Masterless Operations = No
    Deferred = No
    Automatic Query = No

  • HELP: Error while insert in master-detail form!!!

    Hello
    I have created a master-detail form and when I tried to insert a new record I got an error that the field on the detail table that references the primary key on the master table can not be null. I don't understand this error because I thought that when you create a master-detail form and you insert a new record the field that make the references in the detail table to the primary key on the master table will be automatically filled, am I wrong??. Can anybody tell me what is going on??. The primary key of my master table is filled with a trigger before insert, is that the problem??.
    Please Help me is really urgent
    Ana Maria

    I am still new to this, but maybe this will help.
    1. Double check that your foreign key link definition in the detail table is referencing the correct column in the master table. If this is not present or referencing the column, this may be causing the problem. Self evident, but sometimes it is the simple things that get us.
    2. I have not used a trigger yet, but could there be validation being done in the form before the trigger is firing. Therefore, there would not be a value in the detail part of the form.
    Hope this was of some help.

Maybe you are looking for