Create Form setup for Master Detail Form

Hello All,
I have to create a Master Detail OAF Form where user will enter data in the header section and then fill the detail section on the same page. Now, I have created Header section but when I go to detail section and fill the information I got an error because HeaderId for header section is not passing to the detail section. I have created even VL also.
Kindly let me know that what all steps are required to set the View Link for this Master Detail form.
Many Thanks in advance.
Thanks,
Sandy

Hello Gyan,
Thanks for the prompt reply. I would also like to know that once AO will create what all steps I need to take. Like I have to create a VL and then I need to create two regions and now what all properties I need to update to work M-D relationship.
Thanks,
Sandy

Similar Messages

  • Problem occured when create a tree table for master-detail view objects using SQL queries?

    I am programming a tree table for master-detail view objects using SQL queries and these 2 view objects are not simple singel tables queries, and 2 complex SQL are prepared for master and view objects. see below:
    1. Master View object (key attribute is SourceBlock and some varaible bindings are used for this view object.)
    SELECT  cntr_list.SOURCE_BLOCK,                   
            sum(                   
             case when cntr_list.cntr_size_q = '20'                   
                  then cntr_list.cntr_qty                   
                  else 0 end ) as cntr20 ,                   
            sum(                   
             case when cntr_list.cntr_size_q = '40'                   
                  then cntr_list.cntr_qty                   
                  else 0 end ) as cntr40 ,                   
             sum(                   
             case when cntr_list.cntr_size_q = '45'                   
                  then cntr_list.cntr_qty                   
                  else 0 end ) as cntr45                    
    FROM (       
        SELECT yb1.BLOCK_M as SOURCE_BLOCK,       
               scn.CNTR_SIZE_Q,        
               count(scn.CNTR_SIZE_Q) AS cntr_qty        
        FROM  SHIFT_CMR scm, SHIFT_CNTR scn, YARD_BLOCK yb1, YARD_BLOCK yb2       
        WHERE       
        scm.cmr_n = scn.cmr_n             
        AND (scm.plan_start_dt BETWEEN to_date(:DateFrom,'YYYY/MM/DD HH24:MI:SS') AND to_date(:DateTo,'YYYY/MM/DD HH24:MI:SS')                 
        OR scm.plan_end_dt BETWEEN to_date(:DateFrom,'YYYY/MM/DD HH24:MI:SS') AND to_date(:DateTo,'YYYY/MM/DD HH24:MI:SS'))                 
        AND scm.shift_mode_c = :ShiftModeCode                           
        AND scm.end_terminal_c = :TerminalCode      
        AND scm.start_terminal_c = yb1.terminal_c                  
        AND scm.start_block_n = yb1.block_n                  
        AND substr(scn.start_location_c,(instr(scn.start_location_c,',',1,5)+1),instr(scn.start_location_c,',',1,6)-(instr(scn.start_location_c,',',1,5)+1)) BETWEEN yb1.slot_from_n AND yb1.slot_to_n                  
        AND scm.end_terminal_c = yb2.terminal_c                  
        AND scm.end_block_n = yb2.block_n                  
        AND substr(scn.end_location_c,(instr(scn.end_location_c,',',1,5)+1),instr(scn.end_location_c,',',1,6)-(instr(scn.end_location_c,',',1,5)+1)) BETWEEN yb2.slot_from_n AND yb2.slot_to_n           
        AND scn.status_c not in (1, 11)             
        AND scn.shift_type_c = 'V'             
        AND scn.source_c = 'S'       
        GROUP BY yb1.BLOCK_M, scn.CNTR_SIZE_Q       
    ) cntr_list       
    GROUP BY cntr_list.SOURCE_BLOCK
    2. Detail View object (key attributes are SourceBlock and EndBlock and same varaible bindings are used for this view object.)
    SELECT  cntr_list.SOURCE_BLOCK, cntr_list.END_BLOCK,                
            sum(                     
             case when cntr_list.cntr_size_q = '20'                     
                  then cntr_list.cntr_qty                     
                  else 0 end ) as cntr20 ,                     
            sum(                     
             case when cntr_list.cntr_size_q = '40'                     
                  then cntr_list.cntr_qty                     
                  else 0 end ) as cntr40 ,                     
             sum(                     
             case when cntr_list.cntr_size_q = '45'                     
                  then cntr_list.cntr_qty                     
                  else 0 end ) as cntr45                      
    FROM (         
        SELECT yb1.BLOCK_M as SOURCE_BLOCK,     
               yb2.BLOCK_M as END_BLOCK,  
               scn.CNTR_SIZE_Q,          
               count(scn.CNTR_SIZE_Q) AS cntr_qty          
        FROM  SHIFT_CMR scm, SHIFT_CNTR scn, YARD_BLOCK yb1, YARD_BLOCK yb2         
        WHERE         
        scm.cmr_n = scn.cmr_n               
        AND (scm.plan_start_dt BETWEEN to_date(:DateFrom,'YYYY/MM/DD HH24:MI:SS') AND to_date(:DateTo,'YYYY/MM/DD HH24:MI:SS')                   
        OR scm.plan_end_dt BETWEEN to_date(:DateFrom,'YYYY/MM/DD HH24:MI:SS') AND to_date(:DateTo,'YYYY/MM/DD HH24:MI:SS'))                   
        AND scm.shift_mode_c = :ShiftModeCode                             
        AND scm.end_terminal_c = :TerminalCode        
        AND scm.start_terminal_c = yb1.terminal_c                    
        AND scm.start_block_n = yb1.block_n                    
        AND substr(scn.start_location_c,(instr(scn.start_location_c,',',1,5)+1),instr(scn.start_location_c,',',1,6)-(instr(scn.start_location_c,',',1,5)+1)) BETWEEN yb1.slot_from_n AND yb1.slot_to_n                    
        AND scm.end_terminal_c = yb2.terminal_c                    
        AND scm.end_block_n = yb2.block_n                    
        AND substr(scn.end_location_c,(instr(scn.end_location_c,',',1,5)+1),instr(scn.end_location_c,',',1,6)-(instr(scn.end_location_c,',',1,5)+1)) BETWEEN yb2.slot_from_n AND yb2.slot_to_n             
        AND scn.status_c not in (1, 11)               
        AND scn.shift_type_c = 'V'               
        AND scn.source_c = 'S'         
        GROUP BY yb1.BLOCK_M, yb2.BLOCK_M, scn.CNTR_SIZE_Q         
    ) cntr_list         
    GROUP BY cntr_list.SOURCE_BLOCK, cntr_list.END_BLOCK
    3. I create a view link to create master-detail relationship for these 2 view objects.
    masterview.SourceBlock (1)->detailview.SourceBlock (*).
    4. I create a tree table using these 2 view objects with master-detail relationship.
    When I set default value for variable bindings of these 2 view objects and the matching records exist, tree table can work well. I can expand the master row to display detail row in UI.
    But I need to pass in dymamic parameter value for variable bindings of these 2 view objects, tree table cannnot work again. when I expand the master row and no detail row are displayed in UI.
    I am sure that I pass in correct parameter value for master/detail view objects and matching records exist.
    Managed Bean:
            DCIteratorBinding dc = (DCIteratorBinding)evaluteEL("#{bindings.MasterView1Iterator}");
            ViewObject vo = dc.getViewObject();
            System.out.println("Before MasterView1Iterator vo.getEstimatedRowCount()="+ vo.getEstimatedRowCount());
            System.out.println("Before MasterView1Iterator ShiftModeCode="+ vo.ensureVariableManager().getVariableValue("ShiftModeCode"));
            vo.ensureVariableManager().setVariableValue("DateFrom", dateFrom);
            vo.ensureVariableManager().setVariableValue("DateTo", dateTo);
            vo.ensureVariableManager().setVariableValue("ShiftModeCode", shiftModeC);
            vo.ensureVariableManager().setVariableValue("TerminalCode", terminalCode);
            vo.executeQuery();
            System.out.println("MasterView1Iterator vo.getEstimatedRowCount()="+ vo.getEstimatedRowCount());
            DCIteratorBinding dc1 = (DCIteratorBinding)evaluteEL("#{bindings.DetailView1Iterator}");
            ViewObject vo1 = dc1.getViewObject();
            System.out.println("Before DetailView1Iterator vo1.getEstimatedRowCount()="+ vo1.getEstimatedRowCount());
            System.out.println("Before DetailView1Iterator ShiftModeCode="+ vo1.ensureVariableManager().getVariableValue("ShiftModeCode"));
            vo1.ensureVariableManager().setVariableValue("DateFrom", dateFrom);
            vo1.ensureVariableManager().setVariableValue("DateTo", dateTo);
            vo1.ensureVariableManager().setVariableValue("ShiftModeCode", shiftModeC);
            vo1.ensureVariableManager().setVariableValue("TerminalCode", terminalCode);
            vo1.executeQuery();
            System.out.println("after DetailView1Iterator vo1.getEstimatedRowCount()="+ vo1.getEstimatedRowCount());
    5.  What's wrong in my implementation?  I don't have no problem to implement such a tree table if using simple master-detail tables view object, but now I have to use such 2 view objects using complex SQL for my requirement and variable bindings are necessary for detail view object although I also think a bit strange by myself.

    Hi Frank,
    Thank you and it can work.
    public void setLowHighSalaryRangeForDetailEmployeesAccessorViewObject(Number lowSalary,
                                                                              Number highSalary) {
            Row r = getCurrentRow();
            if (r != null) {
                RowSet rs = (RowSet)r.getAttribute("EmpView");
                if (rs != null) {
                    ViewObject accessorVO = rs.getViewObject();
                    accessorVO.setNamedWhereClauseParam("LowSalary", lowSalary);
                    accessorVO.setNamedWhereClauseParam("HighSalary", highSalary);
                executeQuery();
    but I have a quesiton in this way. in code snippet, it is first getting current row of current master VO to determine if update variables value of detail VO. in my case, current row is possibly null after executeQuery() of master VO and  I have to change current row manually like below.
    any idea?
                DCIteratorBinding dc = (DCIteratorBinding)ADFUtil.evaluateEL("#{bindings.SSForecastSourceBlockView1Iterator}");
                ViewObject vo = dc.getViewObject();           
                vo.ensureVariableManager().setVariableValue("DateFrom", dateFrom);
                vo.ensureVariableManager().setVariableValue("DateTo", dateTo);
                vo.ensureVariableManager().setVariableValue("ShiftModeCode", shiftModeC);
                vo.ensureVariableManager().setVariableValue("TerminalCode", terminalCode);
                vo.executeQuery();
                vo.setCurrentRowAtRangeIndex(0);
                ((SSForecastSourceBlockViewImpl)vo).synchornizeAccessorVOVariableValues();

  • Two Pages for Master Detail

    Hi,
    i would like to have 2 pages for master detail query on my aplication. One show a table with dept master rows, where i would choose a row , and then, when i press viewdetails button show a second page with details emps for this department. But i have a litle probs... How can i pass the row from emp to CurrentDepEmpView ?
    My code :
    "Master Page"
    <?xml version="1.0" encoding="windows-1252" ?>
    <page xmlns="http://xmlns.oracle.com/uix/controller"
    xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
    xmlns:ui="http://xmlns.oracle.com/uix/ui"
    xmlns:bc4j="http://xmlns.oracle.com/uix/bc4j">
    <bc4j:registryDef>
    <bc4j:rootAppModuleDef name="MasterDeptEmpViewModule"
    definition="uix_test.Bc4j_testeModule"
    releaseMode="stateful">
    <bc4j:viewObjectDef name="deptVO" rangeSize="3"/>
    </bc4j:rootAppModuleDef>
    </bc4j:registryDef>
    <!-- <bc4j:registryDef>
    <bc4j:rootAppModuleDef name="EmpForeignKeyLink1AppModule"
    definition="uix_test.Bc4j_testeModule"
    releaseMode="stateful">
    <bc4j:viewObjectDef name="deptVO" rangeSize="5"/>
    <bc4j:viewObjectDef name="CurrentDeptEmpsVO" rangeSize="10"/>
    </bc4j:rootAppModuleDef>
    </bc4j:registryDef>
    -->
    <content>
    <try xmlns="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui">
    <catch>
    <header messageType="error">
    <boundAttribute name="text">
    <contextProperty select="ui:currentThrowable"/>
    </boundAttribute>
    </header>
    </catch>
    <contents>
    <pageLayout xmlns="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui"
    title="Master Dept View">
    <contents>
    <!-- this will contain any validation errors after form
    submission -->
    <messageBox automatic="true"/>
    <bc4j:rootAppModuleScope name="MasterDeptEmpViewModule">
    <contents>
    <header text="Search">
    <contents>
    <form name="search">
    <contents>
    <inlineMessage prompt="Search" vAlign="middle">
    <contents>
    <bc4j:viewObjectScope name="deptVO">
    <contents>
    <flowLayout>
    <contents>
    <choice name="attrName"
    data:selectedValue="attrName@ctrl:page"
    shortDesc="Search Column">
    <contents>
    <bc4j:region automatic="true">
    <bc4j:attrStamp>
    <option>
    <boundAttribute name="text">
    <bc4j:attrDefProperty name="name"/>
    </boundAttribute>
    <boundAttribute name="value">
    <bc4j:attrDefProperty name="name"/>
    </boundAttribute>
    </option>
    </bc4j:attrStamp>
    </bc4j:region>
    </contents>
    </choice>
    <textInput name="attrValue" columns="20"
    data:text="attrValue@ctrl:page"
    shortDesc="Search"/>
    </contents>
    </flowLayout>
    </contents>
    </bc4j:viewObjectScope>
    </contents>
    <end>
    <submitButton text="Go" ctrl:event="search"/>
    </end>
    </inlineMessage>
    </contents>
    </form>
    </contents>
    </header>
    <header text="Results">
    <contents>
    <form name="viewForm">
    <contents>
    <tableLayout>
    <contents>
    <bc4j:viewObjectScope name="deptVO">
    <contents>
    <!-- placing the table in automatic mode will cause the table
    to contain the keyStamp named child followed by the
    columnStamp named child for each attribute in the
    ViewObject. -->
    <bc4j:table name="viewTable" automatic="true"
    width="80%"
    alternateText="No rows found">
    <tableSelection>
    <!-- single selection for each row in the table -->
    <singleSelection selectedIndex="0"
    shortDesc="Select Row">
    <contents>
    <!-- the update button causes the currently selected
    row to be sent to the update page -->
    </contents>
    </singleSelection>
    </tableSelection>
    <!-- the key identifying the current row in the table -->
    <bc4j:keyStamp>
    <bc4j:rowKey name="key"/>
    </bc4j:keyStamp>
    <!-- the column rendered for each attribute -->
    <bc4j:columnStamp>
    <!-- the attrScope is automatic -->
    <bc4j:column>
    <columnHeader>
    <!-- the sortableHeader defaults its attrName
    from the current attrScope -->
    <bc4j:sortableHeader/>
    </columnHeader>
    <contents>
    <!-- renders the current attribute as read only -->
    <bc4j:input readOnly="true"/>
    </contents>
    </bc4j:column>
    </bc4j:columnStamp>
    </bc4j:table>
    </contents>
    </bc4j:viewObjectScope>
    </contents>
    </tableLayout>
    <submitButton text="Detalhes" ctrl:event="details"/>
    </contents>
    </form>
    </contents>
    </header>
    </contents>
    </bc4j:rootAppModuleScope>
    </contents>
    <contentFooter>
    </contentFooter>
    </pageLayout>
    </contents>
    </try>
    </content>
    <handlers>
    <event name="details">
    <bc4j:findRootAppModule name="MasterDeptEmpViewModule">
    <bc4j:findViewObject name="CurrentDeptEmpsVO">
    <bc4j:findRowByKey>
    <bc4j:keyBinding>
    <bc4j:propertyKey name="key"/>
    </bc4j:keyBinding>
    </bc4j:findRowByKey>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    <go name="detailView" redirect="true"/>
    </event>
    <event name="sort" source="viewTable">
    <!-- using the ApplicationModule causes it to be checked out from the
    ApplicationPool. It is released using stateful mode. -->
    <bc4j:findRootAppModule name="MasterDeptEmpViewModule">
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="deptVO">
    <!-- sort by the submitted attribute name -->
    <bc4j:sort/>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    <event name="goto" source="viewTable">
    <!-- using the ApplicationModule causes it to be checked out from the
    ApplicationPool. It is released using stateful mode. -->
    <bc4j:findRootAppModule name="MasterDeptEmpViewModule">
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="deptVO">
    <!-- navigate to the submitted range -->
    <bc4j:goto/>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    <event name="search">
    <!-- using the ApplicationModule causes it to be checked out from the
    ApplicationPool. It is released using stateful mode. -->
    <bc4j:findRootAppModule name="MasterDeptEmpViewModule">
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="deptVO">
    <!-- search for the view criteria -->
    <bc4j:findByExample>
    <bc4j:exampleRow ignoreCase="true">
    <bc4j:exampleAttribute>
    <bc4j:nameBinding>
    <bc4j:parameter name="attrName"/>
    </bc4j:nameBinding>
    <bc4j:valueBinding>
    <bc4j:parameter name="attrValue"/>
    </bc4j:valueBinding>
    </bc4j:exampleAttribute>
    </bc4j:exampleRow>
    </bc4j:findByExample>
    <bc4j:executeQuery/>
    <!-- store the current search criteria as page properties -->
    <bc4j:setPageProperty name="attrName">
    <bc4j:parameter name="attrName"/>
    </bc4j:setPageProperty>
    <bc4j:setPageProperty name="attrValue">
    <bc4j:parameter name="attrValue"/>
    </bc4j:setPageProperty>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    </handlers>
    </page>
    "Detail Page"
    <?xml version="1.0" encoding="windows-1252" ?>
    <page xmlns="http://xmlns.oracle.com/uix/controller"
    xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
    xmlns:ui="http://xmlns.oracle.com/uix/ui"
    xmlns:bc4j="http://xmlns.oracle.com/uix/bc4j">
    <bc4j:registryDef>
    <bc4j:rootAppModuleDef name="DetailDeptEmpViewModule"
    definition="uix_test.Bc4j_testeModule"
    releaseMode="stateful">
    <bc4j:viewObjectDef name="deptVO" rangeSize="3"/>
    <bc4j:viewObjectDef name="CurrentDeptEmpsVO" rangeSize="10">
    <bc4j:rowDef name="deptVO" autoCreate="false" usesCurrency="true">
    <bc4j:propertyKey name="key"/>
    </bc4j:rowDef>
    </bc4j:viewObjectDef>
    </bc4j:rootAppModuleDef>
    </bc4j:registryDef>
    <content>
    <try xmlns="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui">
    <catch>
    <displayException/>
    </catch>
    <contents>
    <pageLayout xmlns="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui"
    title="Detail Emp per Depto View">
    <contents>
    <!-- this will contain any validation errors after form
    submission -->
    <messageBox automatic="true"/>
    <bc4j:rootAppModuleScope name="DetailDeptEmpViewModule">
    <contents>
    <header text="Search">
    <contents>
    <form name="search">
    <contents>
    <inlineMessage prompt="Search" vAlign="middle">
    <contents>
    <bc4j:viewObjectScope name="CurrentDeptEmpsVO">
    <bc4j:findRowByKey>
    <bc4j:keyBinding>
    <bc4j:propertyKey name="key" />
    </bc4j:keyBinding>
    </bc4j:findRowByKey>
    <contents>
    <flowLayout>
    <contents>
    <choice name="attrName"
    data:selectedValue="attrName@ctrl:page"
    shortDesc="Search Column">
    <contents>
    <bc4j:region automatic="true">
    <bc4j:attrStamp>
    <option>
    <boundAttribute name="text">
    <bc4j:attrDefProperty name="name"/>
    </boundAttribute>
    <boundAttribute name="value">
    <bc4j:attrDefProperty name="name"/>
    </boundAttribute>
    </option>
    </bc4j:attrStamp>
    </bc4j:region>
    </contents>
    </choice>
    <textInput name="attrValue" columns="20"
    data:text="attrValue@ctrl:page"
    shortDesc="Search"/>
    </contents>
    </flowLayout>
    </contents>
    </bc4j:viewObjectScope>
    </contents>
    <end>
    <submitButton text="Go" ctrl:event="search"/>
    </end>
    </inlineMessage>
    </contents>
    </form>
    </contents>
    </header>
    <header text="Results">
    <contents>
    <form name="viewForm">
    <contents>
    <tableLayout>
    <contents>
    <bc4j:viewObjectScope name="CurrentDeptEmpsVO">
    <contents>
    <bc4j:rowScope name="deptVO">
    <contents>
    <!-- placing the table in automatic mode will cause the table
    to contain the keyStamp named child followed by the
    columnStamp named child for each attribute in the
    ViewObject. -->
    <bc4j:table name="viewTable"
    automatic="true" width="80%"
    alternateText="No rows found">
    <tableSelection>
    <!-- single selection for each row in the table -->
    <singleSelection selectedIndex="0"
    shortDesc="Select Row">
    <contents>
    <!-- the update button causes the currently selected
    row to be sent to the update page -->
    <submitButton text="Update"
    ctrl:event="update"/>
    <!-- the delete button causes the currently selected
    row to be removed -->
    <submitButton text="Delete"
    ctrl:event="delete"/>
    </contents>
    </singleSelection>
    </tableSelection>
    <!-- the key identifying the current row in the table -->
    <bc4j:keyStamp>
    <bc4j:rowKey name="key"/>
    </bc4j:keyStamp>
    <!-- the column rendered for each attribute -->
    <bc4j:columnStamp>
    <!-- the attrScope is automatic -->
    <bc4j:column>
    <columnHeader>
    <!-- the sortableHeader defaults its attrName
    from the current attrScope -->
    <bc4j:sortableHeader/>
    </columnHeader>
    <contents>
    <!-- renders the current attribute as read only -->
    <bc4j:input readOnly="true"/>
    </contents>
    </bc4j:column>
    </bc4j:columnStamp>
    </bc4j:table>
    </contents>
    </bc4j:rowScope>
    </contents>
    </bc4j:viewObjectScope>
    </contents>
    </tableLayout>
    </contents>
    </form>
    </contents>
    </header>
    </contents>
    </bc4j:rootAppModuleScope>
    </contents>
    <contentFooter>
    <!-- the create button redirects to the create page -->
    <button text="Create" ctrl:event="create"/>
    </contentFooter>
    </pageLayout>
    </contents>
    </try>
    </content>
    <handlers>
    <event name="search">
    <!-- using the ApplicationModule causes it to be checked out from the
    ApplicationPool. It is released using stateful mode. -->
    <bc4j:findRootAppModule name="DetailDeptEmpViewModule">
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="CurrentDeptEmpsVO">
    <!-- search for the view criteria -->
    <bc4j:findByExample>
    <bc4j:exampleRow ignoreCase="true">
    <bc4j:exampleAttribute>
    <bc4j:nameBinding>
    <bc4j:parameter name="attrName"/>
    </bc4j:nameBinding>
    <bc4j:valueBinding>
    <bc4j:parameter name="attrValue"/>
    </bc4j:valueBinding>
    </bc4j:exampleAttribute>
    </bc4j:exampleRow>
    </bc4j:findByExample>
    <bc4j:executeQuery/>
    <!-- store the current search criteria as page properties -->
    <bc4j:setPageProperty name="attrName">
    <bc4j:parameter name="attrName"/>
    </bc4j:setPageProperty>
    <bc4j:setPageProperty name="attrValue">
    <bc4j:parameter name="attrValue"/>
    </bc4j:setPageProperty>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    <event name="sort" source="viewTable">
    <!-- using the ApplicationModule causes it to be checked out from the
    ApplicationPool. It is released using stateful mode. -->
    <bc4j:findRootAppModule name="DetailDeptEmpViewModule">
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="CurrentDeptEmpsVO">
    <!-- sort by the submitted attribute name -->
    <bc4j:sort/>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    <event name="goto" source="viewTable">
    <!-- using the ApplicationModule causes it to be checked out from the
    ApplicationPool. It is released using stateful mode. -->
    <bc4j:findRootAppModule name="DetailDeptEmpViewModule">
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="CurrentDeptEmpsVO">
    <!-- navigate to the submitted range -->
    <bc4j:goto/>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    <event name="create">
    <!-- forward to the create page -->
    <ctrl:go name="EmpForeignKeyLink1_Create" redirect="true"/>
    </event>
    <event name="update">
    <!-- forward to the update page, passing the selected key
    as a page property -->
    <ctrl:go name="EmpForeignKeyLink1_Update" redirect="true">
    <ctrl:property name="key">
    <ctrl:selection name="viewTable" key="key"/>
    </ctrl:property>
    </ctrl:go>
    </event>
    <event name="delete">
    <!-- using the ApplicationModule causes it to be checked out from the
    ApplicationPool. It is released using stateful mode. -->
    <bc4j:findRootAppModule name="DetailDeptEmpViewModule">
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="CurrentDeptEmpsVO">
    <!-- find the selected Row -->
    <bc4j:findRowByKey>
    <bc4j:keyBinding>
    <bc4j:selectionKey name="viewTable" key="key"/>
    </bc4j:keyBinding>
    <bc4j:handlers>
    <!-- remove the selected ViewObject row -->
    <bc4j:removeRow/>
    <!-- execute the query to eliminate dead row access -->
    <bc4j:executeQuery/>
    </bc4j:handlers>
    </bc4j:findRowByKey>
    </bc4j:findViewObject>
    <!-- commit the transaction, forwards to self automatically -->
    <bc4j:commit/>
    </bc4j:findRootAppModule>
    </event>
    </handlers>
    </page>

    Basic strategy is to make the selected row from the master table the current row, then forward to the detail page, which displays the current row.
    Use the <findRowByKey usesCurrency="true" > event handler.

  • Error while creating Data Source for master data attributes

    Hi BI Experts,
    Well its been some time for me that I have been part of Extraction in BI.I primarily handled reporting in my last assignments.
    I was trying extraction with flat files in SAP BI 7(new to sap bi 7 but very much familiar with BW3.5) but failed in the activity during master data attributes and text upload in infoobject (say IOSP_Mat).
    Here is the procedure that I did after creation of characteristic IOSP_Mat.I created a source system for flat file followed by data source for Master data attributes, i selected all the parameters correctly.i.e. csv file format, data seperator as   ,
    and other settings, now when i am trying to look at the proposed data in the next tab using Load example data.its not showing the desired result.The columns that I have maintained in Flat File is  MAT_NUMBER and MAT_NAME (with say 100 data in the file)
    same is the result when I am trying to load the text data too columns maintained are
    (LANGUAGE MAT_NUMBER Short Description)(same 100 data).
    now i used to rsa1old transaction  to upload the file using 3.5 version.i created info source for master data/text/hierarchies for  IOSP_Mat
    now when trying to upload it using info package for master and text data,I observe its(the data) not maintained in the characteristic IOSP_Mat.
    When I monitored ,I figured the data has not been even uploaded to the PSA level.
    Can you BI experts tell me the answer for this.
    Thanks,
    Srijith

    apologies to all of you for late response,
    was busy with some other activities.
    I don't remember the exact message,but I remember it was not loaded to even the PSA level.I will try it again and post the exact message.
    Thanks again for your quick response.
    Once again sorry to all of you for my late response
    Thanks,
    Sri

  • How to create process chains for Master Data?

    I need information on " how we can create process Chains for Master Data"

    Hi Sachin,
      http://help.sap.com/saphelp_bw33/helpdata/en/ad/6b023b6069d22ee10000000a11402f/frameset.htm
    and also Modelling aspects in process chains (ppt)
    https://websmp109.sap-ag.de/~sapidb/011000358700002337702003
    Hope this helps.
    Srini

  • How to do Stastical Setup for Master data Loading

    Hi All
    Thanks a lot for all guys,who are helping me a lot.
    I want to do stastical setup for Master data of sales order.I know how to do for transaction data.
    But what is the procedure for MAster data in SBIW-Tcode.
    Regards
    Balaji

    Hi,
    <i>Actually first we should load data to Master data table and then to Transaction load data.By this reporting performance will be good.Right?</i>
    Actually this will decrease the time of transaction data loading .So it improves the loading performance ,  not reporting performance.
    <i>Now I got a doubt from where this Master Data is been loading? and how to load this data.</i>
    2LIS_11_VAITM and 2LIS_11_VASCL are the DS for Transaction data , not for master data.To load the master data, first of all find out the master bearing characterstics in the data target.And then search for teh DS of master data in R/3 with tcode RSA6 .You will use characterstic(info object) as the search option here.
    For example 0materail is the Master characterstic.
    And you can see the DS for this Characterstic in RSA6(if it is not there, you have activate it from RSA5)
    0MATERIAL_ATTR
    0MATERIAL_LGEN_HIER
    0MATERIAL_LKLS_HIER
    0MATERIAL_TEXT
    With rgds,
    Anil Kumar Sharma .P

  • How to create Insert & Update on master-detail form JPA/EJB 3.0

    Is there any demonstration or tips how to Insert record on master-details form for JPA/EJB 3.0 with ADF binding?

    I have master-detail forms (dept-emp). I drag the dept->operations->create method to JSF page. But when I click create button, only dept form is clear and ready for insert. But emp form is not clear. How can I add create method for this?
    Can you give some example how to pass the right object to the persist or merge method so that it can save both the two objects (master-detail tables)
    Thanks
    Edited by: user560557 on Oct 9, 2009 8:58 AM

  • How to create a setup for window form application including the related sql database?

    i have created a simple window form application project that have only 2 form..
    1st one for login in which it'll check the userid n password from database.if both are correct then it will go to 2nd form.
    now i want this project to run in another computer.
    i created a setup file but its showing some error regarding the database instances connection..
    so if anyone can tell me in details how to create the setup file then it'll b a great help..
    thanx in advance..

    Hi,
    Consider the above scenario,I suggest you to use the SQL Server Compact+ ClickOnce Deployment, A Compact SQL database is a file that can be bundled with your application installation. Below is a link guiding you through the creation process of a SQL Compact
    database.
    http://technet.microsoft.com/en-us/library/ms173009.aspx
    The following link discusses setting up the necessary dependencies and prerequisites for SQL Server Compact. (Note, you will need to scroll to the section entitled Private File–Based Deployment.)
    http://msdn.microsoft.com/en-us/library/aa983326(v=VS.100).aspx
    A ClickOnce Deployment can help you publish your application attach compact SQL database into client machine.
    Regards,
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Row level validation for Master-Detail form

    OA JDeveloper 9i (RUP5) 9.0.3.5 (Build 1453)
    I have a form which is based on a master detail relationship.
    - For each employees details (Advancetable) based on a EO (AbsenceInputsEO)
    - For each employee you can add one or more allowances records (AdvanceTable) VO (AbsenceInputsVO)
    Both the above VO and EO is based on the same table (XHR_BWCD_KRONOS_INTERFACE)
    How do stop a user from selecting (radio button) the next employee in an advance table (master level), it the the records they entered at the detail level for the previous employee is not valid?
    I used the the same validation method I used for the "APPLY" event to validate the records entered at detail level
    to the "EmployeeSelect" event, but the error message showed only after the new employee has been selected. Thus the error message that is displayed does not relate to the employee record selected at that stage.
    How do I prevent the user from selecting the next employee in the Master(Advancetable) if the records in the Detail(AdvanceTable) is not valid?

    Thanks for you help,
    Where able to reset the "SelectFlag" for the employee the error related to, but now I endup with two radio buttons being selected. One for the employee which the error relates to and one for the employee which triggered the validation when user navigated away from the current employee record.
    I need to be able to set the attribute "SelectFlag" for any other employee selected in the master record to "N", before the error is thrown. I do not seem to be able to access the newly selected employee record to set the "SelectFlag" to "N" as I only have access to the currentrow SelectFlag in the processFormData.
    It looks to be if I can only access the new selected employee in the processFormRequest(OAPageContext pageContext, OAWebBean webBean), but I never get to this method as the error message stop processing in the processFormData().
    I have the following code in the processFormData(OAPageContext pageContext, OAWebBean webBean)
    if ("EmployeeSelect".equals(event))
    if (!IsValid(pageContext,am,true,AsgJobName,EmpStartDate.toString()))
    // oracle.jbo.Row ValidationRow = vo.getFirstFilteredRow("SelectFlag", "Y");
    // Set flag for employee record with error
    Row [] rows = vo.getFilteredRows("SelectFlag", "Y");
    // getFilteredRows returns a zero-length array if it finds no matches.
    if ((rows != null) && (rows.length > 0))
    // Set the master row and get the unique identifier.
    Row masterRow = rows[0];
    am.findViewObject("EmployeeAbsenceDetailsVO1").getCurrentRow().setAttribute("SelectFlag","Y");
    vo.setCurrentRow(masterRow);
    // Unselect new Employee
    throw new OAException(ErrorMessage, OARowValException.ERROR);
    } // EmployeeSelect-Event
    Question:
    =======
    Can I access the newly selected employee rows from the processFormData to reset the "SelectFlag" to "N" before I through the error message? I would like to be able to do this in the section I have marked "// ?????", before I throw the error. How would I do this?

  • Create Operation for Master-Detail Relationship Using Composite Association

    My requirement is to insert record for both the master and the detail at the same time using a single create insert action.I was successful in doing so using the composite association but when I am trying to commit the new record, I am getting the error that for the primary key Null value cannot be inserted.Then, I made the PK for both the master and detail EO's as DBSequence type which resolved the issue.
    My query is , Is there any alternative way to fulfill my requirement by "NOT" using the type for primary key to be DBSequence type?
    Thank you for your help.

    I also want to insert into master detail table in single form but when I insert in master form and then go to detail form for inserting value the master data automatically loss when I press detail create insert button. I am Using Two create insert button one for master and one for detail.
    I have also tried this function for solving my problem in other way but the problem is same
    public String cb8_action() {
    // Add event code here...
    BindingContainer bindings =BindingContext.getCurrent().getCurrentBindingsEntry();
    //OperationBinding operationBinding = bindings.getOperationBinding("CreateInsert");
    //Object result = operationBinding.execute();
    OperationBinding operationBinding1 = bindings.getOperationBinding("CreateInsert1");
    Object result1 = operationBinding1.execute();
    if (!operationBinding1.getErrors().isEmpty()) {
    return null;
    return null;
    Please Help me.

  • How to create Table in a Table without a ViewLink for Master/Detail

    Hi,
    Can we create a Table within Table in OA Page without using a view link. Need a Master Detail records to be displayed but I can't use a ViewLink. Is it possible to
    have a Table within Table without using a ViewLink. As I have DetailVO with multiple bind variables. I tried ViewLink but it didn't work so wondering if can achieve this
    using table in table without ViewLink
    Thanks

    Hi,
    I created a Table then in the table I created a detail in which I created another table I created a transient view attribute i.e. DetailFlag that I set to my outer table. When I run the page it does show me the Master records and showhide link but when I click on the show it throws an error saying:
    oracle.apps.fnd.framework.OAException: oracle.jbo.NoDefException: JBO-25002: Definition  of type Attribute not found
    Even though all the items in Detail table are attached to VO attributes of DetailVO
    As I have a different MasterVO query with some bind variables and the DetailsVO query is different with some bind variables. Now how do I capture when a user clicks on Show and at that time wants to get some values from a selected master row and pass them to my DetailVO Query so the detail data for that selected master row shows. How do I get handle to the selected Row Data so to get the some values that need to be passed to the DetailVO.
    I tried following the guide but am not able to have it functioning.
    Here is what I have in my controller's processRequest method
         OAApplicationModule am = pageContext.getApplicationModule(webBean);
         System.out.println("******* 1");
         am.invokeMethod("initializeTables");
         OATableBean table =
          (OATableBean)webBean.findChildRecursive("OuterTable");
        if (table == null)
          MessageToken[] tokens = { new MessageToken("OBJECT_NAME", "OuterTable") };
          throw new OAException("AK", "FWK_TBX_OBJECT_NOT_FOUND", tokens);
        table.queryData(pageContext, true);
        System.out.println("******* 2");Any help is appreciated.
    Thanks

  • Missleading error message for master-detail page

    Hi,
    I have created a master-detail form/page with the wizard. In my example DEPT is master and EMP is detail.
    1) run the page and change the value of ACCOUNTING to ACCOUNTINGX and also the salary of KING to 8000
    2) Press the "save" button in the Emp detail region
    KING gets updated, the department not, but that's ok because the processes are defined that way that they are bond to the save buttons in the region. I don't know if an end-user will also understand that the values in the upper block are not updated, but that's not the question I want to ask here.
    Go back into the Builder and add a condition onto the JOB report column of type "Value of Item in Exp 1 = Exp2" with the values P5_DNAME and ACCOUNTING => only display the JOB column for department ACCOUNTING
    1) run the page and change again the value of ACCOUNTING to ACCOUNTINGX and salary of KING to 9000
    2) press the "Save" button in the Emp Detail region
    Now the user gets a
    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 = "BF9210E6FFE37B63780258451587AB5D", item checksum = "C2FF65B2A2A6F0216971C6EA4EBFEA41"., update "FORUM_EXAMPLE"."EMP" set "EMPNO" = :b1, "DEPTNO" = :b2, "ENAME" = :b3, "JOB" = :b4, "MGR" = :b5, "SAL" = :b6
    Error Processing not possible.
    That error message is really miss leading. I assume APEX does this check to "protect" that the condition doesn't change, because that would also result in a renumber of the Apex_Application.g_f0x columns.
    BTW, wouldn't it have made more sense to always map the Apex_Application.g_f0x array to the position it has in the Report Attributes and not changing the array field number when the column isn't displayed because of a condition? That makes validation/processing code unnecessary complicated, because the condition logic has to be duplicated :-(
    But back to my original problem, based on this error message how should an end user know that he is not allowed to change anything in the upper block?
    If you want to try it by yourself.
    http://apex.oracle.com/pls/otn/f?p=12820:4::::::
    Want to check the code:
    Workspace: FORUM_EXAMPLE
    User: guest
    Password: guest
    Did I understand something wrong? Any comments welcome!
    Patrick
    Check out my APEX-blog: http://inside-apex.blogspot.com
    Message was edited by:
    patrick_wolf

    <noscript> JavaScript not supported. </noscript> <script type="text/javascript"> <!-- function genList_f31_0() {            w = open("wwv_flow_utilities.gen_popup_list" +                        "?p_filter="  +                        "&p_name=" + escape('f31') +                        "&p_element_index=" +  escape ('0') +                        "&p_form_index=" + escape('0') +                        "&p_max_elements=" + escape('') +                        "&p_escape_html=" + escape('') +                        "&p_ok_to_query=" + escape('YES') +                        "&p_flow_id=" + escape('103') +                        "&p_page_id=" + escape('3') +                        "&p_session_id=" + escape('2618395222296971') +                        "&p_eval_value=" + escape('') +                        "&p_translation=" + escape('NO') +                        "&p_lov=" +                        "&p_lov_checksum=" +                        "&p_item_id=" + escape('1438926468993754'),                        "winLov",                        "Scrollbars=1,resizable=1,width=400,height=450");            if (w.opener == null)              w.opener = self;            w.focus();          } //--> </script><span class="lov"><input type="text" name="f31" size="250" maxlength="2000" value="3" onchange="f_set_multi_items_tabular(this.value,'1')" id="f31_1" /><a href="javascript:genList_f31_0()"><img src="/i/list_gray.gif" width="13" height="13" alt="Popup Lov" alt="List" style="vertical-align:middle;" align="middle" /></a></span>

  • Using bind variables in the model view for master detail

    Hi all,
    I have a master-detail views setup on the following two queries.
    In the first query below - I use two bind variables to collect the start and end date.
    you have to add (and :startDate = :startDate and :endDate = :endDate) or you will get errors - bind not defined in sql
    I then use the viewQueryCriteria to collect the data on a search panel - so far so good. (Make the bind variables required) along with the other criteria.
    The bind variables are displayed in the search panel and the data is entered correctly.
    The query executes and all is happy.
    VIEWOBJECT1
    SELECT DepositAccounts.COA_ID,
    ... ChartOfAccounts.ACCOUNT_CODE || ' ' || ChartOfAccounts.ACCOUNT_TITLE as description
    FROM DEPOSIT_ACCOUNTS DepositAccounts, DEPOSIT_ACCOUNT_DETAILS DepositAccountDetails, CHART_OF_ACCOUNTS ChartOfAccounts
    WHERE DepositAccounts.ID = DepositAccountDetails.DEP_ACC_ID
    and ChartOfAccounts.id = DepositAccountDetails.COA_ID
    and :startDate = :startDate and :endDate = :endDate
    Now I add the summation of a value (AMOUNT) to the view object (java - create view impl) to the VOViewRowImpl
    and everything works - the value is shown in the transient attribute formatted and looking nice.
    VIEWOBJECT2
    SELECT PostingBatchAccounts.AMOUNT,
    FROM POSTING_BATCH_ACCOUNTS PostingBatchAccounts, POSTING_BATCHES PostingBatches
    where PostingBatchAccounts.PB_ID = PostingBatches.ID
    and PostingBatches.SOURCE_DATE between :startDate and :endDate
    Now I need to add the start date and end date to the child query - before the view executes (or the summation is calculated).
    The attributes are in the where clause (PostingBatches.SOURCE_DATE between :startDate and :endDate) in VIEWOBJECT2 which is the child.
    I need the child records and the summation to work with the date restrictions.
    I would assume you could get access to the child view in the VOViewImpl file and set the bind variables there.
    Everything I find is based on the JSF - not the model layer - this should be fairly easy (and common). can anyone give me a hand on this?

    Hi all,
    I have a master-detail views setup on the following two queries.
    In the first query below - I use two bind variables to collect the start and end date.
    you have to add (and :startDate = :startDate and :endDate = :endDate) or you will get errors - bind not defined in sql
    I then use the viewQueryCriteria to collect the data on a search panel - so far so good. (Make the bind variables required) along with the other criteria.
    The bind variables are displayed in the search panel and the data is entered correctly.
    The query executes and all is happy.
    VIEWOBJECT1
    SELECT DepositAccounts.COA_ID,
    ... ChartOfAccounts.ACCOUNT_CODE || ' ' || ChartOfAccounts.ACCOUNT_TITLE as description
    FROM DEPOSIT_ACCOUNTS DepositAccounts, DEPOSIT_ACCOUNT_DETAILS DepositAccountDetails, CHART_OF_ACCOUNTS ChartOfAccounts
    WHERE DepositAccounts.ID = DepositAccountDetails.DEP_ACC_ID
    and ChartOfAccounts.id = DepositAccountDetails.COA_ID
    and :startDate = :startDate and :endDate = :endDate
    Now I add the summation of a value (AMOUNT) to the view object (java - create view impl) to the VOViewRowImpl
    and everything works - the value is shown in the transient attribute formatted and looking nice.
    VIEWOBJECT2
    SELECT PostingBatchAccounts.AMOUNT,
    FROM POSTING_BATCH_ACCOUNTS PostingBatchAccounts, POSTING_BATCHES PostingBatches
    where PostingBatchAccounts.PB_ID = PostingBatches.ID
    and PostingBatches.SOURCE_DATE between :startDate and :endDate
    Now I need to add the start date and end date to the child query - before the view executes (or the summation is calculated).
    The attributes are in the where clause (PostingBatches.SOURCE_DATE between :startDate and :endDate) in VIEWOBJECT2 which is the child.
    I need the child records and the summation to work with the date restrictions.
    I would assume you could get access to the child view in the VOViewImpl file and set the bind variables there.
    Everything I find is based on the JSF - not the model layer - this should be fairly easy (and common). can anyone give me a hand on this?

  • Using Tabs for Master-Detail

    Hi.
    I've been searching some possibilities to navigate between pages having a master-detail relationship. One possible way is to use Breadcrumbs. Very easy to implement, but not very stylish. I thought about using tabs, but, is there a way to implement tabs for a specific set of pages? I mean, I use a tree menu to call my pages, but one specific page would have a tab set, each tab calling a detail page from the previous one, like the beradcrumbs work.
    I couldn't figure out how to do this, IF it is possible to do.
    Any ideas?
    Thanks in advance.

    Hi,
    Have you thought about creating a list and using the Tabbed Navigation list template? Not quite full-blown tabs but one up from breadcrumbs, perhaps?
    Andy

  • How to create two linked lists (Master/Detail or Parent/Child)

    I need to create a couple of related lists in a Master/Detail approach. Users are supposed to choose one "Master" Option, and "Detail" column should be refreshed to display only the items that are strictly related to the chosen option
    in "Master". Any posible solution?
    Thanks in advance.

    One option is to connect two web parts. This will give you option button for your master list web part and based on the value selected your results will be filtered in the detailed list web part. Here is the example. Though it is for SP 2010 it should work
    the same in SP 2013.
    http://sarahlhaase.wordpress.com/2012/05/21/connecting-web-parts-with-a-selector-and-a-detail-pane-sharepoint-2010-version/
    Second option is with some customization using Jquery.
    http://summit7systems.com/creating-a-parentchild-list-relationship-in-sharepoint-2013/
    Amit

Maybe you are looking for

  • Checking NULL in multi column Update

    I have a Update query that updates 2 columns based on the value from other table. Now there may not be a corresponding record in 2nd table and so my first table can be updated with NULL. Now how do i perform a NVL check for this Query Update Table1 S

  • IPod not detected as iPod by computer or iTunes, please help

    Hello everyone! When connecting my iPod Nano 2nd Gen via USB to my computer (win XP) it recognizes it as a "mass storage device", and iTunes won't detect it as an iPod. I went through many of the tutorials on this website, and formatted my iPod, re-i

  • Mm scenarios

    hi mm gurus for presentation point of view, can u send me the general cycles related to MM in which i can show the interfaces with the other modules( PP , SD n FI).... if u hav screen shots then u can mail me at [email protected] points will be rewar

  • Implicit Fact Column being ignored

    Hi, I have a Business model containing two fact tables with a shared sets of conformed dimensions. Dim1 and Dim2 are both mapped to Fact1 and Fact2. When I select attributes from Dim1 and Dim2 (without facts), OBIEE picks Fact2 to pull up the records

  • Is there a way to improve the performance of a report group?

    Hi gurus, Is there a way to improve the performance of a report group?  Points will be given later.... Thanks!