Create detail rows programmatically

I'm using jsf/adf bc. I have a situation in which when my jsp is rendered, it displays inputs for each row of a master/detail/detail arrangement. Each level is connected via a view link. So, before the page is rendered, in my app module class, i'm trying to do the create/insert of each row, in the order they need to be created. This is basically how i'm doing it.
ViewObject masterVO = getMasterVO();
Row masterRow = masterVO .createRow();
masterVO .insertRow(masterRow);
ViewObject detail1VO = getDetail1VO();
Row detail1Row = detail1VO.createRow();
detail1VO.insertRow(detail1Row);
ViewObject detail2VO = getDetail2VO();
Row detail2Row = detail2VO.createRow();
detail2VO.insertRow(detail2Row);
when the page is rendered, i see inputs for fields of all vo 3 rows. however, when i enter valid values for these fields, i get an error which basically is telling me that i haven't entered in values for the detail2 vo row. It's almost as if the 3rd vo row that's displaying on the page is not the row that was created programmatically, if that makes any sense. If i comment out the code to create the 3rd vo row, and just create new master and detail records, things work fine. What do i need to do to create/insert new vo rows for all 3 levels?

thx for the suggestion john. i tried that approach, but now get a slightly different error: JBO-25030: Failed to find or invalidate owning entity:
Apparently, for the last level detail record created, it's parent cannot be found. Again, when the page renders, i see empty input fields for each row that i've programmatically created, but committing the transaction after entering valid values causes problems...It's as if the new rows that are being displayed aren't really associated with each other, when they should be.

Similar Messages

  • Master-Detail: create detail-row(s) with id already filled in

    I have two tables with an one-to-many relationship (connected by 'id'). If you select a row from the master-table, you'll see the detail-table (with the various row's belonging to the master-record). Now I made a button which users can use to add additional rows to the detail-table. They get a form which they can fill in and submit, the only problem is... I don't want them to manualy fill in the id, this should be the only field that should already be filled in (or better should be invisible, but filled in). So they should select a master-row first and then click 'add' to add a detail-row(s) to it. But I have absolutely no clue how I can do this... I tried creating custom create methods in the view-object or entity-object... but the problem I keep running into is where to get the row-iterator... I have know idea if this is the right direction to look for, maybe somebody can give me some advice.
    Thanks in advance...!

    Steven, hope you can help me out once more...
    I have the same problem with a different view object, I'll explain...
    First of all I set jbo.locking.mode to 'optimistic', now the problem...
    I have two entity objects (Mbrships and Mbrshiphistory) which are connected by a foreign key (created in the database) on MbrshipID. Mbrshipshistory is also connected to the Aff entity object by a foreign key on AffID. The idea is simple... there are affiliates and a couple of memberships. An affiliate has/had a membership, that's where the membershiphistory-table comes in, which stores AffID, MbrshipID, DateFrom, DateTo and some other values.
    Now, what I created... JDeveloper created entity-objects of all the tables and made associations of the foreign keys. I created the following view objects: http://213.93.142.238/oracle/datamodel.jpg and application module: http://213.93.142.238/oracle/applicationmodule.jpg The (MemberToMembershipHistory) view link between Members and MembershipHostory is based upon the association between the two tables.
    The following is a screenshot of my struts-config.xml: http://213.93.142.238/oracle/struts-config.jpg
    Editing mbrshiphistories works fine, but I get the following error when I try to add one: oracle.jbo.InvalidOwnerException: JBO-25030: Failed to find or invalidate owning entity. I also don't see the AffID already filled in in the add/edit-screen (same problem as in the opening-post) when I try to add one. I double-checked everything, but I can't find the problem. Do you know what I do wrong...?

  • Creating master detail rows

    using adf/bc with jsf. I have defined a master detail relationship between two entities. This relationship is a composition relationship. The entities are related by a view link which link the master and detail view objects. i have a need to create/insert a master row and a detail row programmatically "on the fly" so that when the jsp renders, the user will see blank inputs for both the master and detail view objects. The problem is that the primary key of the master record is not known at creation time ( it will be entered by the user) and therefore the detail record cannot be created by the framework because of the unknown value of the parent's primary key. I was hoping the following section in the adf guide would eliminate my problem, but it doesn't appear to:
    This is from section 26.7.3.2 of the adf developer's guide
    Note: An alternative to the programmatic technique discussed
    above, which solves the problem at the J2EE application layer, is the
    use of deferrable constraints at the database layer. If you have control
    over your database schema, consider defining (or altering) your
    foreign key constraints to be DEFERRABLE INITIALLY DEFERRED.
    This causes the database to defer checking the constraint until
    transaction commit time. This allows the application to perform DML
    operations in any order provided that by COMMIT time all appropriate
    related rows have been saved and would alleviate the parent/child
    ordering described above. However, you would still need to write the
    code described in the following sections to cascade-update the foreign
    key values if the parent’s primary key is assigned from a sequence.
    This approach did not help in allowing me to create the detail record without first knowing the value of the parent's primary key record in a composition relationship. The only thing i've found to work is define the relationship as just an association, and not a composition. However, this is a true one to many (composition) relationship and i would like to take advantage of some of the features of the framework that are there when a relationship is defined as a composition relationship. Is there any way to do what i need to do with a composition relationship defined between these two entities? Thanks.

    Hi,
    I guess you need a "Cascading LOVs".
    1) Create viewObject for country values list. Named VO1.
    2) Create viewObject for state values list. Named VO2.
    3) Create view criteria for (bind variable) VO2 which can restrict the result by country.
    4) Create view accessor to get VO1.
    5) Create view accessor to get VO2. Define the bind variable value which can provide country info dynamically. I guess it should be a Groovy expression.
    6) Create country LOV on step 4) view accessor.
    7) Create state LOV on step 5) view accessor.
    Done
    On the view layer, you may enable PPR between country and state attributes.
    Todd

  • Master Detail Form - unable to add detail row

    Dear,
    I have a test application that runs for years on apex.oracle.com.
    Since 3rd of june 2010 I am unable to add rows on a detail form.
    Any ideas?
    Help is welcome!
    Kind regards
    Lorenz

    4.0 Conversion Issue
    Lorenz stated I can create the orderheader, but unable to create orderlines.Simply nothing happens, when I click the add row button.>
    I share the same issue as Lorenz, on a Master/Detail form, I am able to create my Master row and but nothing happens when attempting to create detail rows. I was able to switch my application to theme 13 (Traditional Blue) from 2 (Blue and Tan) and was then able to create and add details rows.
    My dilemma. When switching to theme 13 and others, none appear to support Two Level Tabs in the same manner as Theme 2. Essentially the applications look and feel is not going to go over well with my user base of 3+ years.
    Is there another standard theme that will support Two Level Tabs like Theme 2 and allow the addition of detail rows on a Master/Detail form?
    Is this a reported 4.0 conversion issue?
    Jeff

  • Master-Detail prevent inserting detail row if master doesn't exist

    Hello,
    I have a complex page that has several master-detail table pairs on it. I have what should be a simple problem to work around that I can't seem to figure out. On each table (either master or detail) I have a create button in the header and a delete button in each row. I have a couple issues I just can't seem to get past.
    1. How to disable the detail create button if no master row exists or one hasn't been selected by the user? (Right now you can create detail rows without a valid master row)
    2. How to disable the master row delete button if there are any (commited or not) detail rows present?
    I think I have figured out 2 by having a transient attribute on the master row that uses groovy and the view link accessor to count the detail rows. This appears to be working but if there's a better, cleaner solution I'm all ears. I just can't seem to get 1 working no matter what I try.
    Thanks for any help you can provide.

    hi,
    you can use estimatedRowCount of iterator to disable the button like
    disabled="#{!(bindings.mastervoIterator.estimatedRowCount ge 0)}"and use currentRow property to determint whether current row is selected like
    disabled="#{!(bindings.mastervoIterator.currentRow ne null)}"so the combination will be as follows
    disabled="#{!(bindings.mastervoIterator.estimatedRowCount ge 0 and bindings.mastervoIterator.currentRow ne null)}"hope this helps...
    Regards.

  • Duplicate a detail row to any position of a detail block

    Hi,
    The default performance of duplicate_record built-in is to copy the current detail row to the next created detail row.
    I use this code to do this:
    create_record;
    duplicate_record;
    How can i duplicate a row to any detail position of the detail block ?

    As usual, you can accomplish this task in one or more ways.
    Generally, I advise against using globals.
    Basically, you need to store the content of a record temporarily into a dummy record or other type of collection based upon the current record structure.
    The easiest, albeit the least reusable method, would be to create a dummy block with the same structure as the block containing the record you wish to duplicate.
    Using buttons, pop-up menus, etc, copy the desired record from the source table to the dummy table and back. This target record need not be a new record depending upon your requirements. In any case, be aware of unique value and other constraints.
    A more flexible solution would be to create a procedure, based upon a pl/sql table or other collection type that would duplicate the record structure on-the-fly. This could be included in a library and be usable by other forms.

  • How can i use row set iterator to create multiple dummy detail rows upfront

    Hello i am new to ADF and jdeveloper and have a Forms 9i/PLSQL background.
    I have a 1 to many master to detail view link and 2 vo's one for each of the master and detail table.
    I am trying unsuccsessfully to create 7 unique detail rows up front to populate at a later stage.
    I have created a master record with primary key being staff number and week ending date.
    i then use code below to try and create 7 detail records - P.S i have trimmed it to the first 2 for demonstration.
    I am using
    RowSetIterator rsi = this.mydetailVO.getRowSetIterator();
    Row newRow1=rsi.createRow();
    newRow1.setAttribute("Staff Num","123456A");
    newRow1.setAttribute("Week_Ending_Date", "2010-01-01");
    newRow1.setAttribute("Claim_Date", "2010-01-01");
    newRow1.setAttribute("Day", "Sun");
    rsi.insertRow(newRow1);
    Row newRow2=rsi.createRow();
    newRow2.setAttribute("Staff Num","123456A");
    newRow2.setAttribute("Week_Ending_Date", "2010-01-01");
    newRow2.setAttribute("Claim_Date", "2010-01-02");
    newRow2.setAttribute("Day", "Sat");
    rsi.insertRow(newRow2);
    However it does create two rows but it always writes over the first row with the details of the second row so they are not unique.
    How can i get a new unique row inserted with different details to the firat and how then do i access it uniquely.
    Thanks

    John thanks for reply.
    I have tried the following and still i get 2 rows created but the first one gets overwritten with the last one. I'm confused as to why the inbuilt insert row doesnt move it on to the next available row. Any idea what i'm not doing in between inserting rows?
    ViewObject vo1 = this.getmyVO1();
    vo1.executeQuery();
    Row newRow1 = vo1.createRow();
    newRow1.setAttribute("Staff Number","123456A");
    newRow1.setAttribute("Week_end_date", "2010-04-04");
    newRow1.setAttribute("Date", "2010-04-01");
    newRow1.setAttribute("Day", "Sun");
    vo1.insertRow(newRow1);
    Row newRow2 = vo1.createRow();
    newRow2.setAttribute("Staff Number","123456A");
    newRow2.setAttribute("Week_end_date", "2010-04-04");
    newRow2.setAttribute("Date", "2010-04-03");
    newRow2.setAttribute("Day", "Sat");
    vo1.insertRow(newRow2);
    P.S Yes they are dates but i made them strings for the time being until i get this working thanks for noticing.
    Edited by: user13012264 on 20-Apr-2010 04:19
    Edited by: user13012264 on 20-Apr-2010 04:20

  • Unable to create new rows in master detail

    Hi, I am new to ADF
    I am using Jdeveloper 11.1.1.6, I have two tables customer and contacts, customerId is a foriegnKey in contacts. when customer is deleted all the contacts need to be deleted.
    I have created an association (1 to * customer to contacts) between customerEO & contactsEO (checked Composite association, implement cascade delete option), and a view link (1 to * customerVO to contactsVO).
    I am testing the viewlink through AM, not using JSF
    when i am trying to create new row in details(contacts) table, the customer id is populating in details table.
    when i am trying to commit to database (Details table) i am getting the following error
    java.sql.SQLIntegrityConstraintViolationException: ORA-02291: integrity constraint (CONTACT_CUSTOMERID_FK) violated - parent key not found
    ORA-06512: at line 1
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
         at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:931)
         at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:481)
         at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:205)
         at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:548)
         at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:213)
         at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1111)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1488)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3769)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3904)
         at oracle.jdbc.driver.OracleCallableStatement.executeUpdate(OracleCallableStatement.java:9417)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1512)
         at oracle.jbo.server.OracleSQLBuilderImpl.doEntityDML(OracleSQLBuilderImpl.java:429)
         at oracle.jbo.server.EntityImpl.doDML(EntityImpl.java:8575)
         at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:6816)
         at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:3290)
         at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:6893)
         at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:3290)
         at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:3093)
         at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:2097)
         at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2378)
         at oracle.adf.model.bc4j.DCJboDataControl.commitTransaction(DCJboDataControl.java:1615)
         at oracle.adf.model.binding.DCDataControl.callCommitTransaction(DCDataControl.java:1417)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1437)
         at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2150)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:740)
         at oracle.jbo.uicli.jui.JUActionBinding.actionPerformed(JUActionBinding.java:193)
    Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-02291: integrity constraint (CONTACT_CUSTOMERID_FK) violated - parent key not found
    ORA-06512: at line 1
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
         at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:931)
         at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:481)
         at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:205)
         at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:548)
         at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:213)
         at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1111)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1488)
    Can you please help me how to solve this issue
    Thanks & Regards
    Ani
    Edited by: 987691 on Feb 12, 2013 2:50 PM
    Edited by: 987691 on Feb 12, 2013 2:54 PM

    Here is My CustomerEO.xml file_
    <?xml version="1.0" encoding="windows-1252" ?>
    <!DOCTYPE Entity SYSTEM "jbo_03_01.dtd">
    <!---->
    <Entity
    xmlns="http://xmlns.oracle.com/bc4j"
    Name="CustomerEO"
    Version="11.1.1.61.92"
    InheritPersonalization="true"
    DBObjectType="table"
    DBObjectName="XX_CUSTOMER"
    AliasName="CustomerEO"
    BindingStyle="OracleName"
    UseGlueCode="false"
    xmlns:validation="http://xmlns.oracle.com/adfm/validation"
    RowClass="customer.model.CustomerEOImpl">
    <DesignTime>
    <AttrArray Name="_publishEvents"/>
    <Attr Name="_codeGenFlag2" Value="Init|Access"/>
    <Attr Name="_isCodegen" Value="true"/>
    </DesignTime>
    <Attribute
    Name="Customerid"
    ColumnName="CUSTOMERID"
    SQLType="NUMERIC"
    Type="oracle.jbo.domain.DBSequence"
    ColumnType="NUMBER"
    TableName="XX_CUSTOMER"
    PrimaryKey="true"
    IsUpdateable="while_insert"
    DefaultValue="@0"
    Domain="oracle.jbo.domain.DBSequence"
    RetrievedOnInsert="true">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22"/>
    </DesignTime>
    </Attribute>
    <Attribute
    Name="Firstname"
    IsNotNull="true"
    Precision="50"
    ColumnName="FIRSTNAME"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="XX_CUSTOMER">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="50"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="Firstname_Rule_0"
    ResId="customer.model.CustomerEO.Firstname_Rule_0"
    ValName="Mandatory"
    Subtype="MANDATORY"/>
    <validation:PreDefinedValidationBean
    Name="Firstname_Rule_1"
    ResId="customer.model.CustomerEO.Firstname_Rule_1"
    ValName="Precision : (50)"
    Subtype="PRECISION_SCALE"/>
    <validation:RegExpValidationBean
    Name="Firstname_Rule_2"
    OnAttribute="Firstname"
    Pattern="^[a-zA-Z(\s)]*$"
    Inverse="false"
    ResId="customer.model.CustomerEO.Firstname_Rule_2"/>
    </Attribute>
    <Attribute
    Name="Middlename"
    Precision="10"
    ColumnName="MIDDLENAME"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="XX_CUSTOMER">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="10"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="Middlename_Rule_0"
    ResId="customer.model.CustomerEO.Middlename_Rule_0"
    ValName="Precision : (10)"
    Subtype="PRECISION_SCALE"/>
    <validation:RegExpValidationBean
    Name="Middlename_Rule_1"
    ResId="customer.model.CustomerEO.Middlename_Rule_1"
    OnAttribute="Middlename"
    Pattern="^[a-zA-Z(\s)]*$"
    Inverse="false"/>
    </Attribute>
    <Attribute
    Name="Lastname"
    IsNotNull="true"
    Precision="50"
    ColumnName="LASTNAME"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="XX_CUSTOMER">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="50"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="Lastname_Rule_0"
    ResId="customer.model.CustomerEO.Lastname_Rule_0"
    ValName="Mandatory"
    Subtype="MANDATORY"/>
    <validation:PreDefinedValidationBean
    Name="Lastname_Rule_1"
    ResId="customer.model.CustomerEO.Lastname_Rule_1"
    ValName="Precision : (50)"
    Subtype="PRECISION_SCALE"/>
    <validation:RegExpValidationBean
    Name="Lastname_Rule_2"
    ResId="customer.model.CustomerEO.Lastname_Rule_2"
    OnAttribute="Lastname"
    Pattern="^[a-zA-Z(\s)]*$"
    Inverse="false"/>
    </Attribute>
    <Attribute
    Name="Dob"
    IsNotNull="true"
    ColumnName="DOB"
    SQLType="TIMESTAMP"
    Type="oracle.jbo.domain.Date"
    ColumnType="DATE"
    TableName="XX_CUSTOMER">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="7"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="Dob_Rule_1"
    ResId="customer.model.CustomerEO.Dob_Rule_1"
    ValName="Mandatory"
    Subtype="MANDATORY"/>
    <validation:MethodValidationBean
    Name="Dob_Rule_0"
    ResId="customer.model.CustomerEO.Dob_Rule_2"
    MethodName="validateDob"/>
    </Attribute>
    <Attribute
    Name="Address1"
    IsNotNull="true"
    Precision="100"
    ColumnName="ADDRESS1"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="XX_CUSTOMER">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="100"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="Address1_Rule_0"
    ResId="customer.model.CustomerEO.Address1_Rule_0"
    ValName="Mandatory"
    Subtype="MANDATORY"/>
    <validation:PreDefinedValidationBean
    Name="Address1_Rule_1"
    ResId="customer.model.CustomerEO.Address1_Rule_1"
    ValName="Precision : (100)"
    Subtype="PRECISION_SCALE"/>
    <validation:RegExpValidationBean
    Name="Address1_Rule_2"
    ResId="customer.model.CustomerEO.Address1_Rule_2"
    OnAttribute="Address1"
    Pattern="^[a-z0-9A-Z(\s)]*$"
    Inverse="false"/>
    </Attribute>
    <Attribute
    Name="Address2"
    Precision="100"
    ColumnName="ADDRESS2"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="XX_CUSTOMER">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="100"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="Address2_Rule_0"
    ResId="customer.model.CustomerEO.Address2_Rule_0"
    ValName="Precision : (100)"
    Subtype="PRECISION_SCALE"/>
    <validation:RegExpValidationBean
    Name="Address2_Rule_1"
    ResId="customer.model.CustomerEO.Address2_Rule_1"
    OnAttribute="Address2"
    Pattern="^[a-z0-9A-Z(\s)]*$"
    Inverse="false"/>
    </Attribute>
    <Attribute
    Name="City"
    IsNotNull="true"
    Precision="30"
    ColumnName="CITY"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="XX_CUSTOMER">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="City_Rule_0"
    ResId="customer.model.CustomerEO.City_Rule_0"
    ValName="Mandatory"
    Subtype="MANDATORY"/>
    <validation:PreDefinedValidationBean
    Name="City_Rule_1"
    ResId="customer.model.CustomerEO.City_Rule_1"
    ValName="Precision : (30)"
    Subtype="PRECISION_SCALE"/>
    <validation:RegExpValidationBean
    Name="City_Rule_2"
    ResId="customer.model.CustomerEO.City_Rule_2"
    OnAttribute="City"
    Pattern="^[a-zA-Z(\s)]*$"
    Inverse="false"/>
    </Attribute>
    <Attribute
    Name="Country"
    IsNotNull="true"
    Precision="30"
    ColumnName="COUNTRY"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="XX_CUSTOMER">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="Country_Rule_0"
    ResId="customer.model.CustomerEO.Country_Rule_0"
    ValName="Mandatory"
    Subtype="MANDATORY"/>
    <validation:PreDefinedValidationBean
    Name="Country_Rule_1"
    ResId="customer.model.CustomerEO.Country_Rule_1"
    ValName="Precision : (30)"
    Subtype="PRECISION_SCALE"/>
    </Attribute>
    <Attribute
    Name="State"
    IsNotNull="true"
    Precision="30"
    ColumnName="STATE"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="XX_CUSTOMER">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="State_Rule_0"
    ResId="customer.model.CustomerEO.State_Rule_0"
    ValName="Mandatory"
    Subtype="MANDATORY"/>
    <validation:PreDefinedValidationBean
    Name="State_Rule_1"
    ResId="customer.model.CustomerEO.State_Rule_1"
    ValName="Precision : (30)"
    Subtype="PRECISION_SCALE"/>
    </Attribute>
    <Attribute
    Name="Gender"
    IsNotNull="true"
    Precision="5"
    ColumnName="GENDER"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="XX_CUSTOMER">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="5"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="Gender_Rule_0"
    ResId="customer.model.CustomerEO.Gender_Rule_0"
    ValName="Mandatory"
    Subtype="MANDATORY"/>
    <validation:PreDefinedValidationBean
    Name="Gender_Rule_1"
    ResId="customer.model.CustomerEO.Gender_Rule_1"
    ValName="Precision : (5)"
    Subtype="PRECISION_SCALE"/>
    </Attribute>
    <Attribute
    Name="Primaryphone"
    IsNotNull="true"
    Precision="12"
    ColumnName="PRIMARYPHONE"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="XX_CUSTOMER"
    DefaultValue="###-###-####">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="12"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="Primaryphone_Rule_0"
    ResId="customer.model.CustomerEO.Primaryphone_Rule_0"
    ValName="Mandatory"
    Subtype="MANDATORY"/>
    <validation:PreDefinedValidationBean
    Name="Primaryphone_Rule_1"
    ResId="customer.model.CustomerEO.Primaryphone_Rule_1"
    ValName="Precision : (12)"
    Subtype="PRECISION_SCALE"/>
    <validation:RegExpValidationBean
    Name="Primaryphone_Rule_2"
    ResId="customer.model.CustomerEO.Primaryphone_Rule_2"
    OnAttribute="Primaryphone"
    Pattern="[0-9]{3}-?[0-9]{3}-?[0-9]{4}"
    Inverse="false"/>
    </Attribute>
    <Attribute
    Name="Secondaryphone"
    Precision="12"
    ColumnName="SECONDARYPHONE"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="XX_CUSTOMER"
    DefaultValue="###-###-####">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="12"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="Secondaryphone_Rule_0"
    ResId="customer.model.CustomerEO.Secondaryphone_Rule_0"
    ValName="Precision : (12)"
    Subtype="PRECISION_SCALE"/>
    <validation:RegExpValidationBean
    Name="Secondaryphone_Rule_1"
    ResId="customer.model.CustomerEO.Secondaryphone_Rule_1"
    OnAttribute="Secondaryphone"
    Pattern="[0-9]{3}-?[0-9]{3}-?[0-9]{4}"
    Inverse="false"/>
    </Attribute>
    <Attribute
    Name="Email"
    IsNotNull="true"
    Precision="100"
    ColumnName="EMAIL"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="XX_CUSTOMER">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="100"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="Email_Rule_0"
    ResId="customer.model.CustomerEO.Email_Rule_0"
    ValName="Mandatory"
    Subtype="MANDATORY"/>
    <validation:PreDefinedValidationBean
    Name="Email_Rule_1"
    ResId="customer.model.CustomerEO.Email_Rule_1"
    ValName="Precision : (100)"
    Subtype="PRECISION_SCALE"/>
    <validation:RegExpValidationBean
    Name="Email_Rule_2"
    ResId="customer.model.CustomerEO.Email_Rule_2"
    OnAttribute="Email"
    Pattern="[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}"
    Inverse="false"/>
    </Attribute>
    <Attribute
    Name="Fax"
    Precision="12"
    ColumnName="FAX"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="XX_CUSTOMER"
    DefaultValue="###-###-####">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="12"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="Fax_Rule_0"
    ResId="customer.model.CustomerEO.Fax_Rule_0"
    ValName="Precision : (12)"
    Subtype="PRECISION_SCALE"/>
    <validation:RegExpValidationBean
    Name="Fax_Rule_1"
    ResId="customer.model.CustomerEO.Fax_Rule_1"
    OnAttribute="Fax"
    Pattern="[0-9]{3}-?[0-9]{3}-?[0-9]{4}"
    Inverse="false"/>
    </Attribute>
    <Attribute
    Name="Languages"
    IsNotNull="true"
    Precision="50"
    ColumnName="LANGUAGES"
    SQLType="VARCHAR"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    TableName="XX_CUSTOMER">
    <DesignTime>
    <Attr Name="_DisplaySize" Value="50"/>
    </DesignTime>
    <validation:PreDefinedValidationBean
    Name="Languages_Rule_0"
    ResId="customer.model.CustomerEO.Languages_Rule_0"
    ValName="Mandatory"
    Subtype="MANDATORY"/>
    <validation:PreDefinedValidationBean
    Name="Languages_Rule_1"
    ResId="customer.model.CustomerEO.Languages_Rule_1"
    ValName="Precision : (50)"
    Subtype="PRECISION_SCALE"/>
    </Attribute>
    <AccessorAttribute
    Name="ContactsEO"
    Association="customer.model.CustomerEOtoContactsEO"
    AssociationEnd="customer.model.CustomerEOtoContactsEO.ContactsEO"
    AssociationOtherEnd="customer.model.CustomerEOtoContactsEO.CustomerEO"
    Type="oracle.jbo.RowIterator"
    IsUpdateable="false"/>
    <Key
    Name="SysC007004">
    <DesignTime>
    <Attr Name="_DBObjectName" Value="SYS_C007004"/>
    <Attr Name="_checkCondition" Value='"CUSTOMERID" IS NOT NULL'/>
    <Attr Name="_isCheck" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes"/>
    </Key>
    <Key
    Name="SysC007005">
    <DesignTime>
    <Attr Name="_DBObjectName" Value="SYS_C007005"/>
    <Attr Name="_checkCondition" Value='"FIRSTNAME" IS NOT NULL'/>
    <Attr Name="_isCheck" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item Value="customer.model.CustomerEO.Firstname"/>
    </AttrArray>
    </Key>
    <Key
    Name="SysC007006">
    <DesignTime>
    <Attr Name="_DBObjectName" Value="SYS_C007006"/>
    <Attr Name="_checkCondition" Value='"LASTNAME" IS NOT NULL'/>
    <Attr Name="_isCheck" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item Value="customer.model.CustomerEO.Lastname"/>
    </AttrArray>
    </Key>
    <Key
    Name="SysC007007">
    <DesignTime>
    <Attr Name="_DBObjectName" Value="SYS_C007007"/>
    <Attr Name="_checkCondition" Value='"DOB" IS NOT NULL'/>
    <Attr Name="_isCheck" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item Value="customer.model.CustomerEO.Dob"/>
    </AttrArray>
    </Key>
    <Key
    Name="SysC007008">
    <DesignTime>
    <Attr Name="_DBObjectName" Value="SYS_C007008"/>
    <Attr Name="_checkCondition" Value='"ADDRESS1" IS NOT NULL'/>
    <Attr Name="_isCheck" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item Value="customer.model.CustomerEO.Address1"/>
    </AttrArray>
    </Key>
    <Key
    Name="SysC007009">
    <DesignTime>
    <Attr Name="_DBObjectName" Value="SYS_C007009"/>
    <Attr Name="_checkCondition" Value='"CITY" IS NOT NULL'/>
    <Attr Name="_isCheck" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item Value="customer.model.CustomerEO.City"/>
    </AttrArray>
    </Key>
    <Key
    Name="SysC007010">
    <DesignTime>
    <Attr Name="_DBObjectName" Value="SYS_C007010"/>
    <Attr Name="_checkCondition" Value='"STATE" IS NOT NULL'/>
    <Attr Name="_isCheck" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item Value="customer.model.CustomerEO.State"/>
    </AttrArray>
    </Key>
    <Key
    Name="SysC007011">
    <DesignTime>
    <Attr Name="_DBObjectName" Value="SYS_C007011"/>
    <Attr Name="_checkCondition" Value='"COUNTRY" IS NOT NULL'/>
    <Attr Name="_isCheck" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item Value="customer.model.CustomerEO.Country"/>
    </AttrArray>
    </Key>
    <Key
    Name="SysC007012">
    <DesignTime>
    <Attr Name="_DBObjectName" Value="SYS_C007012"/>
    <Attr Name="_checkCondition" Value='"GENDER" IS NOT NULL'/>
    <Attr Name="_isCheck" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item Value="customer.model.CustomerEO.Gender"/>
    </AttrArray>
    </Key>
    <Key
    Name="SysC007013">
    <DesignTime>
    <Attr Name="_DBObjectName" Value="SYS_C007013"/>
    <Attr Name="_checkCondition" Value='"PRIMARYPHONE" IS NOT NULL'/>
    <Attr Name="_isCheck" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item Value="customer.model.CustomerEO.Primaryphone"/>
    </AttrArray>
    </Key>
    <Key
    Name="SysC007014">
    <DesignTime>
    <Attr Name="_DBObjectName" Value="SYS_C007014"/>
    <Attr Name="_checkCondition" Value='"EMAIL" IS NOT NULL'/>
    <Attr Name="_isCheck" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item Value="customer.model.CustomerEO.Email"/>
    </AttrArray>
    </Key>
    <Key
    Name="SysC007015">
    <DesignTime>
    <Attr Name="_DBObjectName" Value="SYS_C007015"/>
    <Attr Name="_checkCondition" Value='"LANGUAGES" IS NOT NULL'/>
    <Attr Name="_isCheck" Value="true"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item Value="customer.model.CustomerEO.Languages"/>
    </AttrArray>
    </Key>
    <Key
    Name="XxCustomerdetailsPk"
    PrimaryKey="true">
    <DesignTime>
    <Attr Name="_DBObjectName" Value="XX_CUSTOMERDETAILS_PK"/>
    </DesignTime>
    <AttrArray Name="Attributes">
    <Item Value="customer.model.CustomerEO.Customerid"/>
    </AttrArray>
    </Key>
    <ResourceBundle>
    <PropertiesBundle
    PropertiesFile="customer.model.CustomerModelBundle"/>
    </ResourceBundle>
    </Entity>

  • Creating a master automatically when creating a detail row

    Hi,
    I'm using Jdev. 11.1.2.3.0
    I have three tables (with their corresponding view objects) with a master/detail/detail relationship.
    The first-level detail table contain a maximum of one row for each master row.
    The ids of the first-level and second-level details are automatically generated with a groovy expression and a sequence.
    The views are added on the page as table(master/)form(detail)/table(detail).
    I have a case where a master record has no details and i need to create a row in the second-level detail table.
    So is there a way to tell ADF to automatically create the first-level detail row (since the master is known) ? or i should manually check that such a row doesn't exists in the first-level detail table and thus create it before creating the row in the second-level detail table?
    Thank you.

    So is there a way to tell ADF to automatically create the first-level detail row (since the master is known) ? or i should manually check that such a row doesn't exists in the first-level detail table and thus create it before creating the row in the second-level detail table?
    Thank you.
    No, there is no such option so you will need to manually create this row.
    Dario

  • Create New Detail Rows

    I have a jsp page with Master-detail tables. My current create new row button has to set current on one detail row to be able to create a new row. I have some master rows have no detail items. So my create new row button won't show up.How can I create a new detail row without setting a current. Thanks!

    I current have a create button goes with each detail row as href="browseMD.do?event=setCurrentRowWithKey&Arg0=<c:out value='${Row.rowKeyStr}' />&event=Create"
    I tried to drag 'Create' from the datail table DataControl->Operation->Create, but it won't work if I don't setCurrentRowWithKey.
    When I have only one table, I can 'Create' without setting current row on a view object. But the master and details seems to act differently, I couldn't make it work. Have you done any create new row with a master-datail view object?
    I'll try to work around with your 'dummy' row suggestion. Thanks!

  • Master Detail with programmatic ViewObjects and writeXML

    Hi,
    Using jdev 11.1.1.3.
    I created two programmatic ViewObjects related by a ViewLink (1to*).
    From an application module method, I create a row in the master ViewObject. Then using the accessor obtain the RowIterator for the detail, and create a row on that detail.
    If then I use the writeXML method on the master ViewObject, the output is only representing the master, not the detail.
    Here is the code:
            VO_MasterImpl voMaster = getVO_Master2();
            //create the master row
            VO_MasterRowImpl rowMaster = (VO_MasterRowImpl)voMaster.createRow();
            String id = "unique";
            rowMaster.setAtt1(id);
            rowMaster.setAtt2("something");
            //obtain the rowIterator for the detail
            RowIterator detail = rowMaster.getVO_Detail();
            //create the detail row
            VO_DetailRowImpl rowDetail = (VO_DetailRowImpl)detail.createRow();
            rowDetail.setAtt1(id);
            rowDetail.setAtt2("sth2");
            //insert the detail row
            detail.insertRow(rowDetail);
            //insert the master row
            voMaster.insertRow(rowMaster);
            //obtain the xml
            Node node = voMaster.writeXML(-1,XMLInterface.XML_OPT_ALL_ROWS);master.att1 is key for Master.
    detail.att1 is foreign key to Master.
    This is the contents of node:
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <VO_Master><VO_MasterRow><Att1>unique</Att1><Att2>something</Att2></VO_MasterRow></VO_Master>What I would expect is that the detail row (<VO_DetailRow>) appears within the <VO_MasterRow>.
    Anyone knows what I'm missing here?
    Thanks
    Roger B
    Edited by: RogerB on 30-Dec-2010 02:16

    Hi,
    After some more tests...
    As said before, I tried with SQL VOs (Dept and Employees). No differences between the VL Dept and Emp, and the VL VO_Master and VO_Detail. They have same relationship (1 to *) and also same (changing names) SQL where (source and destination).
    I debuged the code, using ADF source code, and noticed the following:
    When iterating the rows to write the XML, at ViewRowImpl, it takes the AttributeDef and perform different actions depending on mKind (ATTR_ASSOCIATED_ROW or ATTR_ASSOCIATED_ROWITERATOR). Second one is for ViewLink.
    Once inside ATTR_ASSOCIATED_ROWITERATOR, I can see that the default RowSetIterator, has no rows (getRowCount = 0). So no child rows (for the VO_Detail), are added to the XML Node.
    On the other hand, the Dept and Employees, I can see that the default RowSetIterator has rows.
    Could this be related to the fact that Programatic ViewObjects are not persisted anywhere?
    any other clues appreciated? Does anyone tried this before (programatic master detail relationship writing to XML) ?
    Regards,
    Roger

  • New inserted detail row is not showing through accessor

    I have to insert master and detail row. I insert row in master view  and then I get detail row using getAttribute on master view. Then I insert row into detail row. Result is one inserted master row and no data display in detail view.
    How ever in managed bean when I get master view using finditerator and then get detail row also using finditerator on the specific page then rows inserted on master and detail view appear.
    DCIteratorBinding dcIter =             ADFUtils.findIterator("PlotMst1Iterator");
    ViewObject mvo = dcIter.getViewObject();
    mvo.insertRowAtRangeIndex(0, row);
    mvo.setCurrentRow(row);
    Row row = mvo.createRow();
    // DETAIL ACCESSOR  not working
      //  RowSet Pd = (RowSet) row.getAttribute("PlotDtl");
    DCIteratorBinding dcIter2 =       ADFUtils.findIterator("PlotDtl2Iterator");      
    ViewObject dvo = dcIter2.getViewObject();
    nvp.setAttribute("FabricCode",r.getAttribute("FabricCode"));
    Row drow = dvo.createAndInitRow(nvp);      
    dvo.insertRow(drow);   

    Hi,
    its a classical programming mistake you do. You create a new row on the model layer and not the binding layer. The proper way of doing this would be to
    1) either create a method binding for the "CreateInsert" operation in the PageDef file and call it from there
    or
    2) DCIteratorBinding dcIter = ADFUtils.findIterator("PlotMst1Iterator");
        Row rw = dcIter.getRowSetIterator().createRow();
    Same for your attempt to create the detail row. Again you can expose the createInsert operation in the PageDef file or use the RowSetIterator. As you create a master and detail row at the same time, be aware of a constraint problem that may arise from this as you have no guarantee that the master is inserted first. Read this http://docs.oracle.com/cd/E35521_01/web.111230/e16182/bcentities.htm#CEGJAFCF to learn about the problem.
    Note that use case often matters. While I can see where your coding goes wrong, I can't tell if your approach in general could be chosen better
    Frank

  • Detail rows not fetched in af:iterator for the first time

    Hi,
    I have a table with 3 columns. Column 3 is a detail record with column 1 being the parent.
    Column 3 is displayed in the table using af:iterator #{row.detailRows}.
    The detail records are created in a different page.
    When I add the detail records to the master in this page and navigate to the page where the table is rendered, sometimes I do not see the column 3(detail rows) displayed immediately. The iterator #{row.detailRows} returns no rows.
    When I go back to the previous page wait for sometime and navigate to the page with table, I see the detail rows.
    This is happening intermittently and not always.
    Why is the iterator returning no rows sometimes(even though it returns values after a while)?
    When this happens, I checked the back end data and all the data is inserted into the db tables immediately.
    Jdev version: 11.1.1.4.0
    Any help is appreciated.
    Thanks!

    Srini,
    Should I set the 'Target Data Source' to the detail iterator?
    I want detail rows displayed in column 3 for all rows in the table on page load, not on row selection.
    The page on load should display the table in below manner, irrespective of row selection all rows' detail values should be rendered.
    S No.
    Master key
    Detail values
    1
    master1
    detail1-1
    detail1-2
    detail1-3
    2
    master2
    detail2-1
    detail2-2
    detail2-3
    detail2-4
    3
    master3
    detail3-1
    detail3-2
    detail3-3
    Thanks!

  • How to create an IDoc programmatically at Inbound side?

    Hi,
    How to create an IDoc programmatically at Inbound side?
    Assume that you have a file(material master details) which is enough to create master data.
    Regards,
    Thiyagu

    Read the documentation of this FM first:
    FU IDOC_INBOUND_ASYNCHRONOUS                                                                               
    K. tekst
                                                                                    IDoc inbound processing via tRFC                                                                               
    Functionality
                                                                                    This function module starts inbound processing in the case of port type    
        "tRFC". The function module is a successor to INBOUND_IDOC_PROCESS,        
        which processes IDocs in the Release 4.0 record types. If you are          
        processing IDocs in Release 3.X record types, the function module          
        INBOUND_IDOC_PROCESS must still be called.                                                                               
    The function module checks the ID 'EDI_MES' in authorization object        
        B_ALE_RECV against the received message type.                                                                               
    The IDocs are saved by the function module IDOC_INBOUND_WRITE_TO_DB (a     
        COMMIT for all IDocs) and then transferred directly to the application     
        by the dispatcher module IDOC_START_INBOUND.                                                                               
    Parameter
                                                                                    IDOC_CONTROL_REC_40                                                        
        IDOC_DATA_REC_40                                                                               
    Exceptions
                                                                                    Functiegroep                                                                               
    Edited by: Micky Oestreich on Jun 11, 2009 12:52 PM

  • Insert master and detail rows with Composition assoc generating JBO-26048

    I have the Master and Detail Entity Objects and made an Association linking them as Composition related.
    I have 2 ViewObjects. the MasterViewObject is composed of the Master entity object and 1 other udpateable object. the DetailViewObejct only contains the Detail entity Object.
    I tried to create a row on the masterviewobject and then immeidately create a detail row, and then commit, ADF issues a JBO-26048 error. Constraint "MY_FK" violated during post operation.... ".
    I don't know wahts wrong, but this should not be error should nit be appearing, as ViewObjects and the Links with Composition Association take care of populating the Foreign Keys of the detail. Or am I missing something here?

    The ADF Guide covers this problem, and I have a method that works as well on jdevguru.com. Take a look at the manual first, they have an indepth view on it and how to get it all to work together.
    Kelly

Maybe you are looking for

  • Adobe Creative Cloud installation funktioniert nicht

    Hallo, Ich habe folgendes Problem: Immer wenn ich CC installieren will kommt mir eine Windows Meldung mit Programm funktioniert nicht mehr Als ich es vor 1 Woche deinstalliert habe kam mir eine fehler meldung "fehler beim deinstallieren" danach habe

  • This is the noob question of the week regarding gdm

    I am no linux noob per se. but i did something really really stupid just now. started with a fresh install of arch, added e17 and gdm. wait...did i forget something? but of course! create a non-root user. so anywho. now gdm is installed and comes up

  • RZ21 Auto Alert Method

    Hi, I have followed the SAP help portal and OSS note 176492 to setup alert monitoring in client 000. I wanted to create a single alert to send emails when the sapreorg on the CEN filesystem reaches the precentage used threshold levels. The pre-reqs d

  • Selected line in VA02/VA42

    Dear Colleagues ! I  develop user exit functions for VA02 and VA42 in MV45AFZB and MV45AFZZ. I need for it the selected line from dynpro. I wanted to get it in the internal table IVBAP but the field SELKZ is empty ! Do You know an another solution fo

  • How should implement multi-thread in single-threaded Operating system using

    How should implement multi-thread in single-threaded Operating system using java? Java supports "Multi-threading".Is there is any way run the multiple threads (Implementing multi threading) using java in a Single-threaded Operating system (That is th