Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Usenet -> c.d.o.server -> Multi Master Detail form in Oracle Applications

Multi Master Detail form in Oracle Applications

From: Sunny <>
Date: 29 Nov 2006 13:30:50 -0800
Message-ID: <>

Hi All,

I have a unique problem I will be greatful if any one can help me out.

I have 3 blocks, A, B and C. I have created the blocks and their relationships using wizard. All htese blocks are based on tables.

1. Block A is the master of block B (detail) 2. Block B is the master of block C (detail)

Block A is a form layout (single record), block B is tabluar layout(multi records) with scroll bar and block B is tabluar layout(multi records). with a scroll bar

All my block are on single canvas and window. No matter whether we put them in different canvas and windows or stacked canvas or tab canvas, but till the problem persistes.

Lets assume:

Block A --> showing single record

Block B --> having 4 multi records

Block C --> a single record for 3rd record in the Block B


Assume that I have queried (F11 and Ctr + F11) on Block A and it is now showing as my our assumpation (as stated above)

  1. When I click on scroll bar or 2nd, 3rd, 4th ... record in block B then it clears all the records in block B and block C. This clearing does not happen when I click on the first record of block B.
  2. Lets assume after querying I clicked on first record of block B and moved down to 3rd record in block B. Now we can see the corresponding record in block C for the 3rd record in the block B.I click on the record in the block C then I clicked on the 4th record in block B, then it clears block B and block C. This clearing does not happen if I click back on the same cooresponding record in block B.

This is happeing in "ON-CLEAR-DETAILS" trigger which is created at module/form level when we create master detail relationships. The tirgger calls "Clear_All_Master_Details" program unit. This is the code from "Clear_All_Master_Details" program unit which is cleaing

currel := Get_Block_Property(trigblk, FIRST_MASTER_RELATION);   WHILE currel IS NOT NULL LOOP
    curdtl := Get_Relation_Property(currel, DETAIL_NAME);     IF Get_Block_Property(curdtl, STATUS) <> 'NEW' THEN

      IF :System.Block_Status <> 'NEW' THEN
        RAISE Form_Trigger_Failure;
      END IF;

    END IF;
    currel := Get_Relation_Property(currel, NEXT_MASTER_RELATION);   END LOOP; I have not wrote any custom code or triggers as of now. All I have created is 3 block with master detail relationship using wizard.

I do not want to modifiy any seed code of oracle applications. I really appricate any kind of help regarding this issue..

Thank You

sunny Received on Wed Nov 29 2006 - 15:30:50 CST

Original text of this message