Framework for Package API-Based ADF BC

NOTE: This content is here for archive purposes only. It refers to an obsolete framework, which has been replaced by the Framework for Database API-Based ADF BC.

This was a project that I put together for a presentation at ODTUG Kaleidoscope 2009. It’s a library of custom ADF Business Components framework classes that you can use to declaratively create entity objects and view objects that, rather than using DML and SQL to interact with the database, use PL/SQL package APIs for DML, data retrieval, and locking. The framework supports view links and associations, and was intended to support optimistic and pessimistic locking modes, although that functionality doesn’t work properly. It doesn’t do some things like respect fetch size (although its replacement does), so it’s not appropriate for, e.g., view objects that need to query massive amounts of data per user.

Because this is somewhat more substantial than the code snippets in my posts, the Creative Commons Attribution License I’ve released most of this blog under is not really appropriate here, so please note that the content and code linked to from this page is not released under that license. Instead, I and my employer, Quovera, on whose time I did much of this, are jointly releasing the framework itself under the Gnu GPL, and the framework’s user guide under the Gnu FDL.

What You Absolutely Need to Use the Framework

What You May Also Find Useful (Recommended, but not Required)

7 thoughts on “Framework for Package API-Based ADF BC”

  1. Hi there Avrom – just trying to work with your Demo App. have I missed something ? becuase I dont see the create statements for the Employee or Department tables. Are you assuming we create these ourselves ?

    thanks Darragh

  2. Hi Darragh,

    Not 100% sure what you mean. Do you mean you don’t see the stored procedures in the DB? You need to run the empsPkg.sql script from the demo’s Database project to create them.

    Or do you mean you don’t see them in the EO defs themselves? Go to the General page of the Employees entity object editor and expand the Custom Properties node. You should see (among other properties) a property called “InsertProc” with the value “employees_pkg.create_emp”. That, combined with the property “InsertIndex” on all of the attributes, allows the framework to determine the correct stored procedure call.

    As an important note: Locking does *not* work properly with this version of the framework. I hope to have an almost completely rewritten framework which, among other things, fixes the locking problem up this week.


  3. Hi Avrom, I am pretty new to Jdeveloper but have been an Oracle PLSQL / Mod PSQL and Forms Developer for about 10 years, you might have to excuse some stupid questions.

    what I actually mean is when I run point 5 in your instructions:

    5. Right-click the empsPkg.sql file and select “Run in SQL*Plus > HR” to run the sql file in your database.

    the file empsPkg.sql runs but I have no underlining tables for Employee / Departments etc. Are you assuming I am running this Demo app on a certain Schema ?

    I can see under the EO “Employee” – Custom properties for DeleteProc InsertProc etc as you desfribed. but I am a little confues to what schema this shold be running in.

    I am very interrested in getting this to work as we are planing a big investment with JDeveloper 11G ADF Faces and have a lot of code already in PLSQL.
    Thanks again

  4. Sorry, I should have made this explicit: The application assumes you have the Oracle common schemas (at least HR) installed and unlocked in your database. If you have an HR schema, running in the HR connection should automatically install the procedures to that schema. That’s where the EMPLOYEES and DEPARTMENTS tables are.

  5. Any chance you can give me the tables used in the Demo by exporting them via SQL Creates / Inserts ? We actually have our own CoreHr product which competes with Oracles, so I dont have Oracle Hr installed, instead we develop products on top of Oracle Technology.

    thanks Again Darragh

Leave a Reply

Your email address will not be published. Required fields are marked *