Business components: detail entity creation

Hi,
Using JDeveloper 10.1.3.1.0.
I've got a master-detail relationship between two entities. To do CRUD operations, I always go through the view objects based on these entities. My problem is when I create a new instance of the detail, it seems the association at the entity level is not maintained before commit.
For example, let's say I have the entities EntityMaster and EntityDetail and the view objects ViewMaster and ViewDetail. There's an association at the entity level and a view link at the view level. This is a one-to-many relationship (one master - many details).
I do the following in an application module method:
ViewObject detailView = getViewDetail(); //returns the detail view object.
Row newRow = detailView.createRow(); //create a new view row backed by an entity row
// initialize the new row
detailView.insertRow(newRow); //insert the row in the view.
// a bit further
EntityMasterImpl master = ...; //obtain somehow a reference on the master.
RowIterator detailEntityIterator = master.getDetailEntity(); //get the detail entity iterator
int count = detailEntityIterator.getRowCount(); //count has not been incremented by one.
Since I have a validation on the master entity that checks if there's at least one detail entity when setting a particular attribute, I really need the association to be maintained at the entity level.
I've worked around the problem by inserting the new detail entity row in the detailEntityIterator like this:
newRow.getDetailEntity().getMasterEntity().getDetailEntity().insertRow(newRow);
It does not seem to me like an elegant solution and I really feel the association should be maintained at the entity level automatically.
Is this a bug or is there any other (more elegant) workaround?
Thank you,
Olivier

Hi Steve,
This is not a composition association. Actually, this is an association from a table to an intersection (many-to-many) table. The code in my service is based on the SRDemo, see SRServiceImpl#updateSkillsForCurrentStaff(List) and is called on a save button from a shuttle page.
The current master is the master I want it to belong to. The link to the master gets correctly saved in the database (just as in the SRDemo). We can also navigate from the master view row to the find the detail view row using the generated RowIterator. However, this does not work from the master entity row to the detail entity row. The problem is really at the entity level.
Thanx
Olivier

Similar Messages

  • Business components mapped to EJB 2.0 local entity beans

    Hi ,
    I read about the new feature in JDev 903 that is "Creating business components mapped to EJB 2.0 local entity beans". but I am not able to find any documentation on it.can anyone provide me any link or help on this topic.
    Thanx,
    Prasoon

    Prasoon -
    For JDeveloper 10g, version 9.0.5.1, there is information on this topic located in the help:
    Building J2EE Applications >
    Working with the Business Tier >
    Developing Enterprise JavaBean Applications >
    Using Business Component Entity Facades
    Hope this helps,
    Lynn
    Java Tools Team

  • Business Components for Java entity beans of J2EE

    What is the future of Business Components for Java with the new standard entity beans of the sun Java 2 Entreprise Edition?
    Thanks.
    null

    The Standard Entity Beans are a component (JavaBean) that can be a small piece of the ultimate application needs.
    Oracle Business Component for Java is a complete framework that has numerous features that make developing COMPLETE applications easy.
    Please download the white paper on Business Components, try your hand at creating an application with Business Components (using the wizards) and you will see that Business Components for Java is much more than a simple (/complex) reusable component, it is a complete framework which maked developing N-tier applications almost trivial by allowing you to focus on writing your business logic while the framework takes care of all the application infrastructure and the necessary plumbing.
    Sincerely,
    John@Oracle JDeveloper Team http://technet.oracle.com
    null

  • NO Links or Associations created with the "Business Components From Tables"

    Hello,
    I have a strange problem. I'm working on a Fusion Web Applicaiton. In the Model project, I try to create some Business Components from Tables with the help of the provided wizard.
    I select one of my IDE Connections, and I choose two of my tables as Entity Objects (*PATIENTS* and COUNTRIES - more details about them bellow), and also as Updatable View Objects. For Read-Only View Objects I select some other tables, afterwards I choose to create a default Application Module, and I press Finish without creating a Business Diagram. Everything works perfectly except of the fact that the wizzard has created everything but the Links and the Associations between my tables.
    To be more precise, COUNTRIES is a simple table, only two columns - ID and NAME, and PATIENTS has some columns like ID, NAME, ADDRESS, DATE_OF_ADMISSION, COUNTRY_ID, where COUNTRY_ID is a foreign key to the COUNTRIES table. Both columns, PATIENTS.COUNTRY_ID and COUNTRIES.ID are NUMBERs. I was expectig the wizard to create a Link and a Association for this foreign key constraint I have between this two tables.
    On the other hand, following one of the tutorials I've found, *"Developing RIA Web Applications with Oracle ADF"*, I've noticed that when I was creating Business Components from Tables based on the HR schema, all the Links and Associations were created as they were expected. I've also tried to create the same Business Components from Tables in my own project, and all the Links and Associations were in place. Somehow, it's not working for my particular schema (the one that contains PATIENTS and COUNTRIES).
    Is there something I do wrong? I've made sure that all the FK constraints are enabled, alive and kicking. From my point of view, the tables are working and behavig as they should, but I can't understand why that feature of automatically creating the Links and Associations works on the HR schema but not on mine.
    Please help!
    Bogdan.
    PS: I am using Oracle JDeveloper Studio Edition Version 11.1.1.1.0, Oracle SQL Developer Version 1.5.5, and Oracle 10g Express Edition installed on localhost.

    Hello John,
    Of course I can post the scripts.
    The schema name is "TEST". But you should know that there are some extra columns in the PATIENTS table, I've not mentioned before. As you can tell from the scripts bellow, the PATIENTS table has the following columns: ID (number), NAME (varchar2), COUNTRY (number), GENDER (number), ADMISSIONDATE (date), DIAGNOSTIC (number), FIRSTNAME (varchar2), SALARY (number). There are actually 3 FK constraints, I've only mentioned one for the simplifying the example. The first FK constraint is towards COUNTRIES, the second one is towards GENDERS, and the final one is towards DIAGNOSTICS. All this 3 tables have only two columns (ID as number, and GENDER as varchar2). I will post the scripts for all.
    Here is the output of the Export DDL to Clipboard from SQL Developer for the COUNTRIES table:
    CREATE TABLE "TEST"."COUNTRIES"
    (     "ID" NUMBER NOT NULL ENABLE,
         "NAME" VARCHAR2(1000 BYTE) NOT NULL ENABLE,
         CONSTRAINT "COUNTRIES_UK1" UNIQUE ("NAME")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE,
         CONSTRAINT "COUNTRIES_PK" PRIMARY KEY ("ID")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE
    ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."COUNTRIES_PK" ON "TEST"."COUNTRIES" ("ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."COUNTRIES_UK1" ON "TEST"."COUNTRIES" ("NAME")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE OR REPLACE TRIGGER "TEST"."COUNTRIES_TRG"
    BEFORE INSERT ON COUNTRIES
    FOR EACH ROW
    BEGIN
    SELECT COUNTRIES_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
    END;
    ALTER TRIGGER "TEST"."COUNTRIES_TRG" ENABLE;
    Here is the same output for the GENDERS table:
    CREATE TABLE "TEST"."GENDERS"
    (     "ID" NUMBER NOT NULL ENABLE,
         "NAME" VARCHAR2(50 BYTE) NOT NULL ENABLE,
         CONSTRAINT "GENDERS_PK" PRIMARY KEY ("ID")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE,
         CONSTRAINT "GENDERS_UK1" UNIQUE ("NAME")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE
    ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."GENDERS_PK" ON "TEST"."GENDERS" ("ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."GENDERS_UK1" ON "TEST"."GENDERS" ("NAME")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE OR REPLACE TRIGGER "TEST"."GENDERS_TRG"
    BEFORE INSERT ON GENDERS
    FOR EACH ROW
    BEGIN
    SELECT GENDERS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
    END;
    ALTER TRIGGER "TEST"."GENDERS_TRG" ENABLE;
    Here is the same output for the DIAGNOSTICS table:
    CREATE TABLE "TEST"."DIAGNOSTICS"
    (     "ID" NUMBER NOT NULL ENABLE,
         "NAME" VARCHAR2(1000 BYTE) NOT NULL ENABLE,
         CONSTRAINT "DIAGNOSTICS_PK" PRIMARY KEY ("ID")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE,
         CONSTRAINT "DIAGNOSTICS_UK1" UNIQUE ("NAME")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE
    ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."DIAGNOSTICS_PK" ON "TEST"."DIAGNOSTICS" ("ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."DIAGNOSTICS_UK1" ON "TEST"."DIAGNOSTICS" ("NAME")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE OR REPLACE TRIGGER "TEST"."DIAGNOSTICS_TRG"
    BEFORE INSERT ON DIAGNOSTICS
    FOR EACH ROW
    BEGIN
    SELECT DIAGNOSTICS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
    END;
    ALTER TRIGGER "TEST"."DIAGNOSTICS_TRG" ENABLE;
    And finally, here is the same output for the PATIENTS table:
    CREATE TABLE "TEST"."PATIENTS"
    (     "ID" NUMBER NOT NULL ENABLE,
         "NAME" VARCHAR2(1000 BYTE) NOT NULL ENABLE,
         "COUNTRY" NUMBER,
         "GENDER" NUMBER,
         "ADMISSIONDATE" DATE,
         "DIAGNOSTIC" NUMBER,
         "FIRSTNAME" VARCHAR2(1000 BYTE),
         "SALARY" NUMBER,
         CONSTRAINT "PATIENTS_PK" PRIMARY KEY ("ID")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE,
         CONSTRAINT "PATIENTS_UK1" UNIQUE ("NAME", "ID")
    USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ENABLE,
         CONSTRAINT "PATIENTS_GENDERS_FK1" FOREIGN KEY ("GENDER")
         REFERENCES "TEST"."GENDERS" ("ID") ENABLE,
         CONSTRAINT "PATIENTS_DIAGNOSTICS_FK1" FOREIGN KEY ("DIAGNOSTIC")
         REFERENCES "TEST"."DIAGNOSTICS" ("ID") ENABLE,
         CONSTRAINT "PATIENTS_COUNTRIES_FK1" FOREIGN KEY ("COUNTRY")
         REFERENCES "TEST"."COUNTRIES" ("ID") ENABLE
    ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE INDEX "TEST"."PATIENTS_INDEX1" ON "TEST"."PATIENTS" ("NAME")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."PATIENTS_PK" ON "TEST"."PATIENTS" ("ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE UNIQUE INDEX "TEST"."PATIENTS_UK1" ON "TEST"."PATIENTS" ("NAME", "ID")
    PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
    TABLESPACE "USERS" ;
    CREATE OR REPLACE TRIGGER "TEST"."PATIENTS_TRG"
    BEFORE INSERT ON PATIENTS
    FOR EACH ROW
    BEGIN
    SELECT PATIENTS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
    END;
    ALTER TRIGGER "TEST"."PATIENTS_TRG" ENABLE;
    If a complete DB dump would be more helpful, please let me know. I am willing to provide any details.
    Thanks for your support.

  • JBO-25001 Business Components Error

    Hi to all,
    I am experiencing some VERY STRANGE behaviour in JDeveloper ADFBC.
    I am using Jdeveloper 10.1.3.1.0.3984 to build an application using ADF and Business Components.
    I have four tables, JAAS_USERS, JAAS_ROLES, JAAS_REALMS and JAAS_MAPPINGS. The only associations are that JAAS_MAPPINGS have JAAS_USERS_ID, JAAS_ROLES_ID and JAAS_REALMS_ID.
    I created my entities (package: datamodel.entities) and i have specified that JAAS_USERS entity use a DBSequence for USER_ID. Please note that i included control hints for every entity.
    Then i created my first view (package: datamodel.views), called JaasUsers
    that simply selects all attributes of the entity.
    I then created an application module (package: datamodel) and i included the view. When i test the application module everything is fine!
    I created a jsf and i dragged the view as a table -> read only table and everything was fine.
    I then run the page and again everything is fine.
    I then realized that i needed to change the control hint for some columns. Instead of changing the control hint of the entity (JAAS_USERS) i changed the object view (JAAS_USERS).
    From this point and on NOTHING WORKS!!!!!!!!!!!!!!!!!!!
    Here is the error message:
    (oracle.jbo.common.ampool.ApplicationPoolException) JBO-30003: The application pool (.110255D7D2E) failed to checkout an application module due to the following exception:
    ----- LEVEL 1: DETAIL 0 -----
    (oracle.jbo.JboException) JBO-29000: Unexpected exception caught: oracle.jbo.JboException, msg=JBO-29000: Unexpected exception caught: oracle.jbo.NameClashException, msg=JBO-25001: Name JaasMappings of object type Attribute already exists
    ----- LEVEL 2: DETAIL 0 -----
    (oracle.jbo.JboException) JBO-29000: Unexpected exception caught: oracle.jbo.NameClashException, msg=JBO-25001: Name JaasMappings of object type Attribute already exists
    ----- LEVEL 3: DETAIL 0 -----
    (oracle.jbo.NameClashException) JBO-25001: Name JaasMappings of object type Attribute already exists
    Please help me becuase i don;t know hot to fix this BUG!

    Hey ppl , I got an exact similar error when trying to migrate from a 10g R2 to R3 version in Jdeveloper. Quite irritating this error,
    Well i guess most would have figured this out , but for benefit of all , theres a slightly easier way to tackle this ( JDEV Release 3)
    in the Application Navigator view Double click your Association , within association properties un-check your expose accessor checkboxes for both the source and destination .Apply changes and do a compile. If it is required , jdev will throw an error. Simply follow the process again and check the Expose accessor boxes again. This solves the problem most of the time.
    Main advantage being , you can avoid the tedious task of manually changing the xml information on Notepad or the kind.
    Hope this helps....

  • Oracle ADF Business Components Vs PL/SQL Application

    Hi,
    Has anybody used Oracle Application Development Framework's Business Components (ADF BC)? What are the disadvantages and issues that you faced? Can anyone compare PL/SQL with ADF BC?
    Would like to know the advantages and dis-advantages of both the technologies(PL/SQL and ADF BC).
    Can anybody help on this?

    Hi,
    Not sure what exactly you are looking for.
    But let me explain so that you can get some idea of their working and ofcourse difference.
    ADF BC which are nothing but the Entity Objects (EO) and View Objects (VO) which are the Java representation of the DB.
    EO is like database table and is a 1-o-1 representation of the underline database table as a Java class file.
    VO is like database view and is always based upon some custom SQL or combination of one or more EOs.
    For developing a Database based application you always layer where you can handle the database objects and can also write the business logic or validation for the
    data entered at the UI.
    PLSQL is straight forward is the language to write business logic at the database level.
    I hope this will give you some details.
    Thanks,
    KKCHOPRA

  • Business Components for Java & XML

    In the application I am currently developing, I am using XML metadata to communicate between a web browser and servlets (the xml is parsed by a servlet using an XSL stylesheet to output plain html). To build the XML, I am using the XML SQL utility and the following code:
    try{
    dset = new OracleXMLDataSetExtJdbc(conn, (Reader)sqlStr);
    dset.refreshDataSet();
    }catch (Exception ex){}
    OracleXMLDocGen doc = (OracleXMLDocGen) new OracleXMLDocGenString();
    OracleXMLQuery qry = new OracleXMLQuery(dset);
    qry.setRaiseException(true);
    qry.getXML(doc, qry.DTD);
    My question involves Oracle's Business components for Java. We have recently been doing more research into this technology and the features of it are quite appealing. However, as far as I can tell, there is no way to use the Oracle XML Utilities in conjunction with the BC4J. ie. XML is created based on a view object, not a SQL query to the Database.
    Does anyone know of any way of acheiving this XML generation based on a BC4J foundation?

    A BC4J View Object is effectively a Java component that represents a database query.
    The key difference is that the view object exposes a rowset API to work with which is
    fully updateable, fully scrollable, and automatically coordinated with underlying business logic which you have encapsulated into your companion entity objects (another BC4J Framework building-block component). View objects can also be used to create any interesting hierarchy of master/detail/detail queried database information using "View Links" to link the View Objects together. This allows you to effectively work with a "tree" of data that is perfectly shaped and filtered to the needs of the task at hand -- including self-referential "parts-explosion" kind of view links.
    In JDeveloper 3.1, BC4J ships with a utility class called oracle.jbo.xml.XmlRowSetRenderer which automatically supports rendering the results
    of any view object (and its "tree" of view-linked view objects) as XML, either in DOM format or into a Writer.
    In JDeveloper 3.2 (the next major release) the B2B XML features of the BC4J framework are further enhanced by supporting true, bidirectional XML-in and XML-out for any view object. This means that an XML message can be "fed" to any view object and it natively knows how to handle inserts, update, deletes and (most importantly) enforcement off all shared business logic from the underlying, related entity objects.

  • Business Components Tutorial

    In the help system for jdeveloper under tutorials. I'm doing the first Business Components Tutorial. When I get to Step 3: Creating the class diagram. I drag the customers table to the class digram. I get the following error...
    An error ocurred while opening
    jar:file /usr/java/jdk1.3.1_02/src.jar!
    /src/java/lang/String.jar
    In the details it reports a sun.io.MalformedInputException
    Any ideas on what's going on? It does create a domain object and an entity object.
    I'm running jdeveloper 9.0.3.10.76
    Thanks!

    Repost

  • Business components based on Oracle views

    I am trying to create business component objects in a master-detail relationship based on Oracle views rather than on the underlying tables. The wizard does not create associations or links since the views have no foreign keys. I created the associations and links myself, but I am unable to add them to the data model. I am using the beta v5.0, but I had the same problem in v3.23. Can anyone help?
    Thanx in advance
    null

    Here are the steps I just tried with JDevi 9i Beta:
    [list]
    [*]SQLPLUS SCOTT/TIGER
    [*]CREATE VIEW DEPT_VIEW AS SELECT * FROM DEPT;
    [*]CREATE VIEW EMP_VIEW AS SELECT * FROM EMP
    [*]On my workspace: Right-mouse / New / Empty Project
    [*]On my new project: Right-mouse / New Business Components...
    [*]Next, to the connection panel
    [*]Set the connection, and next
    [*]Pick a package name and next
    [*]Tick the [x] Views checkbox, and select EMP_VIEW and DEPT_VIEW
    [*]Uncheck the "View Objects and View Links" box, since we don't want these created automatically.
    [*]Click (Finish)
    [*]In navigator, select my "DeptView" entity and edit it (the view is called "DeptViewView").
    [*]Click on the "Attributes" tab
    [*]Select "Rowid" in the attribute list
    [*]Click the (Remove) button
    [*]Select the "Attribute Settings" tab, and select the "Deptno" attribute.
    [*]Check the [x] Primary Key checkbox for "Deptno"
    [*]Click (Ok).
    [*]Repeat steps above on "EmpView" entity to remove Rowid attribute and make "Empno" attribute the primary key. (NOTE: Since views don't have constraints, we couldn't detect the primary key constraint, so we default the ROWID to be the primary key in the wizard).
    [*]In navigator, select my "DeptView" entity, and right-mouse / New Association...
    [*]Using the wizard I create a association based on the "Deptno" attribute, and with a 1 to many cardinality.
    [*]I right-mouse on "DeptView" entity and select New Default View Object... to create the "DeptViewView" view object.
    [*]I right-mouse on "EmpView" entity and select New Default View Object... to create the "EmpViewView" view object.
    [*]I right-mouse on the DeptViewView view object and select New View Link...
    [*]I create a new view link between DeptViewView and EmpViewView
    [*]On the "Source Attributes" panel, I select the "Dept2Emp" association I created above, and click the ">" to shuttle it to the selected list.
    [*]Click next and notice that by selecting the association, it automatically picked the right attributes for both sides for the view link automatically.
    [*]click next, then (Finish)
    [*]I right-mouse on my package and select New Application Module...
    [*]On the datamodel panel, I see a tree view of "Available View Objects like this:
    + Project 3
    |
    +---[-] Package3
    |
    +---[SQL] DeptViewView
    | |
    | +--[SQL] EmpViewView via MyViewLink
    |
    +---[SQL] EmpViewView[*]I select DeptViewView in the available list and click ">" to shuttle it to the selected list in my data model
    [*]In the SELECTED list, I select the DeptViewView that I just added, to make it the current view in the selected list.
    [*]Back in the available list, I select the "EmpViewView via MyViewLink" and shuttled it to the selected list as a detail of the current view in the selected list.
    [*]I click finish
    [*]I right-mouse on my AppModule and select "Test..." to build and test my appmodule.
    [*]I click (Connect) on the tester start page
    [*]In the tester, I right mouse on "MyViewLink" and select "Show".
    [list]
    After these steps, I see data correctly.
    null

  • BUG: Business Components using Datasources on Websphere - statement closed

    Hi,
    This is an unusual combinatation, we are deploying business components projects on websphere with a SQL Server database. This was originally deployed all to Oracle. We have managed to convert the project sucessfully (JDeveloper 10.1.3) and on Websphere, however when we moved our application module configurations (bc4j.xcfg) to use JNDI data sources which works in Jdeveloper, we are encountering problems using websphere with business components and datasources.
    The statement closed error occurs when trying to calling executequery() method on the view object, not the first time the JSP page is accessed, but the second time. Refresh page all is good. Access page again error occurs. Very consistent.
    Our code will often do applicationmodule.findViewObject("name"), if not found then create it, otherwise use the vo and kapow bombs out on the executequery method if reusing the view object.
    ERROR
    DSRA9110E: Statement is closed.oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation.
    Statement: SELECT Groups.GROU_ID FROM GROUPS Groups WHERE (GROU_ID=1)
    at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java(Compiled Code))
    at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java(Compiled Code))
    at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java(Compiled Code))
    at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java(Compiled Code))
    at oracle.jbo.server.ViewRowSetImpl.executeQueryForMasters(ViewRowSetImpl.java(Inlined Compiled Code))
    at oracle.jbo.server.ViewRowSetImpl.executeQuery(ViewRowSetImpl.java(Inlined Compiled Code))
    at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java(Compiled Code))The datasource uses the connection pooling driver class com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource.
    Ampooling is on. It appears the jdbc prepared statement is being closed but bc4j is expecting to still be open?
    Any ideas on diagnosing the issue or app module config changes greatly appreciated.
    Mark

    Hi Steve,
    This is not a composition association. Actually, this is an association from a table to an intersection (many-to-many) table. The code in my service is based on the SRDemo, see SRServiceImpl#updateSkillsForCurrentStaff(List) and is called on a save button from a shuttle page.
    The current master is the master I want it to belong to. The link to the master gets correctly saved in the database (just as in the SRDemo). We can also navigate from the master view row to the find the detail view row using the generated RowIterator. However, this does not work from the master entity row to the detail entity row. The problem is really at the entity level.
    Thanx
    Olivier

  • Error While Create Business Components From Tables Wizard -- need help asap

    Hi , i have created a view and while create Business Components through wizard for that view i am getting following error.
    ENTITY CREATION FAILED FOR THE FOLLOWING DATABASE OBJECT
    NO PRIMARY KEY ATTRIBUTES AND DOES NOT SUPPORT ROWID . USE ENTITY WIZARD TO CREATE THE ENTITY OBJECT.
    very urgent.
    Regards
    bhanu prakash

    thanks shay .
    Jdeveloper version :: 10.1.3.1.0
    view Syntax is :
    SELECT
    oh.order_number||'- ('||ol.line_number||'-'||ol.shipment_number||')' so_line,
    oh.cust_po_number customer_po,
    ol.flow_status_code status,
    ol.shipping_method_code carrier,
    ol.ordered_item item_no,
    nvl(xxapplication_express_pkg.getcustomerpart(ol.inventory_item_id, hca.cust_account_id), ' ') customer_item_number,
    nvl(mtl.description , 'na') description,
    nvl(org.organization_name , 'oak park') ship_from,
    hcsu.location||' ('||hl.city||' '||hl.state||' '||hl.postal_code||')' ship_to,
    nvl(ol.promise_date, sysdate) promised_date,
    nvl(ol.ordered_quantity, 0) order_quality ,
    xxapps.xx_eg_calculated_onhand(ol.line_id) available_qty,
    nvl(ol.shipped_quantity, 0) shipped_quality ,
    ol.order_quantity_uom uom,
    hp.party_name customer_name,
    jrs.name sales_person_name,
    0 refer
    FROM
    oe_order_headers_all oh,
    oe_order_lines_all ol,
    hz_cust_accounts hca,
    hz_parties hp ,
    hz_cust_site_uses_all hcsu,
    hz_cust_acct_sites_all hcas,
    hz_party_sites hps,
    hz_locations hl,
    org_organization_definitions org ,
    mtl_system_items_b mtl ,
    jtf_rs_salesreps jrs
    WHERE
    oh.header_id = ol.header_id and
    oh.org_id = ol.org_id and
    oh.sold_to_org_id = hca.cust_account_id and
    hca.party_id = hp.party_id and
    hcas.cust_account_id = hca.cust_account_id and
    hcsu.cust_acct_site_id = hcas.cust_acct_site_id and
    hcas.party_site_id = hps.party_site_id and
    hps.location_id = hl.location_id and
    hcsu.site_use_id = oh.ship_to_org_id and
    hcsu.site_use_code = 'SHIP_TO' and
    org.organization_id = ol.ship_from_org_id and
    org.organization_id = mtl.organization_id and
    ol.inventory_item_id = mtl.inventory_item_id and
    ol.ship_from_org_id = mtl.organization_id and
    ol.salesrep_id = jrs.salesrep_id and
    ol.org_id = jrs.org_id
    Regards
    Bhanu Prakash

  • New Business Components doesn't load with their foreign keys

    Hi,
    When your database schema has already been defined and nothing moves, the creation of Business Components in JDeveloper works pretty well.
    When you are developing a real application and sometimes the customer changes his mind or something, you have to add some Business Components later in the process.
    My question, why associations and links doesn't follow the creation of new business object?
    Example 1
    I load every database object I need. All associations and links are created.
    Example 2
    I have let say three tables. I create my new Business Components by selecting only 2 tables out of 3. If there are foreign keys, they are loaded.
    Now, I want to create the last business components (table 3 of 3), and this table got foreign keys pointing to one of the two previous tables I just loaded.
    Surprise, it won't load any foreign key.
    I have tried multiples ways to synchronise object, I don't see it working. So I have to create every associations and links myself. Anybody knows a trick that they want to share for this kind of situation?
    Thanks
    Edited by: benster on Feb 7, 2013 3:01 PM

    Hi,
    actuallly Chris Muir brought up the idea to make the entity wizard more intelligent of this. However, this is currently a suggestion by him and we work with the developers to get this idea validated and eventually in the product. Since then you will have to create relations manually. Note however that in this ADF BC behaves like the EJB entities from table wizard that also can only look up dependencies if the table is part of the selection. In your case, you select a single table and the table has a FK to another table. However, the other table is not part of the selection so why would ADF BC want to create the key relation ship. Before you say, it could parse your project, let me add that related objects may be saved in ADF libraries, which means we would parse the class path, which may be a long time waiting for you for the IDE to get back to you. So this requzrement - though valid - needs a different approach in the wizards. Until then you will have to build it manually.
    Frank

  • How to use an existing data model using Business Components in OEPE

    I am a beginner in ADF. I am working on a project with an existing data model that uses Business Components (EO, VO and AM). I know that OEPE does not handle the creation of BC, so if I want to modify them, I will have to do that in JDev. That's fine.
    OEPE can create pages with drag and drop like in JDev. In my eclipse ADF projects, I would like to use the existing BC, to be able to use the bindings with ADF Faces. So far I have nothing in the Data Controls tab.
    How to import the BC into the Data Controls tab?
    JDev 11.1.1.6
    WLS 10.3.6
    Eclipse Kepler

    We currently don't support DataControls based on the ADF BC technology. We will consider such support if there is a strong interest in that use case.
    Independent of the IDE's you use, there are ways to expose services based on ADF BC that can then be consumed by the view layer. A Google search will point you to some of the approaches.
    HTH. Thanks for your interest in OEPE.

  • How to load data from XML DOM into tables using Business Components

    <p>
    Hi,
    </p>
    <p>
    I need to upload XML file (it&#39;s not a problem) an load data (DOM tree) from this file into relationan tables. This filelooks like this:
    </p>
    <p>
    <font face="courier new,courier" size="2">&lt;Departments&gt;
       &lt;Department&gt;
          &lt;DepartmentName&gt;OPERATIONS&lt;/DepartmentName&gt;
          &lt;Localization&gt;BOSTON&lt;/Localization&gt;
          &lt;Employees&gt;
             &lt;Employee&gt;
                &lt;LastName&gt;TURNER&lt;/LastName&gt;
                &lt;Job&gt;SALESMAN&lt;/Job&gt;
                &lt;Manager&gt;7698&lt;/Manager&gt;
                &lt;HireDate&gt;1981-09-08&lt;/HireDate&gt;
                &lt;Salary&gt;1500&lt;/Salary&gt;
                &lt;Commerce&gt;0&lt;/Commerce&gt;
             &lt;/Employee&gt;
          &lt;/Employees&gt;
       &lt;/Department&gt;
    &lt;/Departments&gt;</font>
    </p>
    <p>
    Is there any Business Components support to obtain this ? What about primary and foreign keys values (there is no in XML file). How to place this XML data in appropriate tables ?
    </p>
    <p>
    Kuba 
    </p>

    Pl post details of exact OS and database versions, along with a sample of the XML file and description of the tables. What have you tried so far ?
    http://docs.oracle.com/cd/E11882_01/server.112/e22490/ldr_control_file.htm#i1005614
    HTH
    Srini

  • ADF Faces & business components application crash

    My application crashes with the following stack. Any idea what's causing this?
    06/05/15 17:38:09 Exception in thread "Reference Handler" java.lang.NullPointerException
    06/05/15 17:38:09      at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:123)
    06/05/15 17:38:09 <3>[2785] (0) DCBindingContainer.internalRefreshControl(2311) **** refreshControl() for BindingContainer :effectenPageDef
    Fatal error: Cannot find class java/lang/NullPointerException
    Fatal error: Cannot find class java/lang/NullPointerException
    Fatal error: Cannot find class java/lang/NullPointerException
    Fatal error: Cannot find class java/lang/NullPointerException
    Process exited with exit code 128.
    Thanks,
    Andrej

    May be this additional info helps pinpointing:
    I work with JHeadstart (10.1.3.0.59) and JDeveloper 10.1.3 SU3 and generated default pages on top of two ADF Business Components. No customization done yet. One jspx page works nicely, wheras the other also gives me:
    Fatal error: Cannot find class java/lang/StackOverflowError
    Fatal error: Cannot find class java/lang/NullPointerException
    In the Embedded OC4J server log.
    The only difference between the two Entity Objects and View Objects is the size of them:
    - the working EO/VO page contains 38 attributes (yet, still have to tune and remove unnecessary attributes)
    - the other, error-giving EO/VO page contains nearly 60 attributes (same comment here on the tuning part).
    So, is it possible that the number of attributes and therefor the size of jspx pages can cause these Fatal errors? The JRE seems fine, since some pages work, others do not.
    Toine

Maybe you are looking for