Skip to main content


Showing posts from January, 2012

Upload Limits for Web Browsers

Thing I learned today... There are known upload size restriction for various browser. You can see details here So, if you are using af:inputfile to upload huge files and configured all file upload parameters as described here, still not able to make upload to work with huge files, check out the browser support for the same.

In-Memory Filtering Without Affecting Default Row Set

Noticed the following requirement (multiple times) while working with ADF developers - Find out rows in the default row set that meets specific conditions - In other words, perform in-memory filtering without affecting the primary row set.
By default, when you apply in-memory filtering  using ViewCriteria or RowMatch, they are applied on default row set.The following code snippet may help you to perform in memory filtering without affecting your default row set-
CountriesViewImpl countriesViewImpl = (CountriesViewImpl)getCountriesView1(); countriesViewImpl.executeQuery(); //Define VC for in-memroy filtering ViewCriteria vc = countriesViewImpl.createViewCriteria(); vc.setCriteriaMode(ViewCriteria.CRITERIA_MODE_CACHE); ViewCriteriaRow vcr1 = vc.createViewCriteriaRow(); vcr1.setAttribute("CountryName", "LIKE A%"); vc.add(vcr1); //Override 'protected' findByViewCriteriaForViewRowSet in CountriesViewImpl //and mark it as 'public&…

Displaying Transaction Log When User Commits a Transaction

I'm attaching a simple example that illustrates a possible solution to display number of rows(new, modified,  deleted) posted to database when user commits transaction.

This example overrides EntityImpl::doDML(int operation, TransactionEvent e) method to track the status of entities and save the log in UserData hash table object from the DBTransaction. The custom AppModuleImpl::commitTransactionWithStatusLog() does the commit and returns the transaction log as Map to the client which is displayed on the UI in the 'statusbar' facet for the table(wrapped by af:panelCollection). If you are interested, take a look at the custom variable binding in the page definition file in the attached sample. This basically does the wiring job  for the returned Map by commitTransactionWithStatusLog() method. May be useful for you later :)


You can download the sample workspace from here. [Runs with Oracle JDeveloper (11g R2PS1) + HR Schema]

How to run this sample?

1. Run t…

Consuming ADF BC model project components from another project !

This year, let me start my posts with a simple topic. There are multiple ways to expose a project for use by other projects. One obvious approach is generate an ADF library artefact and consume it from other projects. This is documented in Fusion Middleware Fusion Developer's Guide -

Packaging a Reusable ADF Component into an ADF LibraryAdding ADF Library Components into Projects
 The above things are well and good. However if you you want to consume a ADF BC model project within same workspace, there is an easy way.

To consume business components defined in a model project from another model project within the same work space,

Right click the model project which consumes business components from other model projects in the same workspace and select Project Properties.In the Project Properties dialogue window, select the Dependencies tab and add the 'supplier' Project by either selecting Build Output option or Jar archive option .The above steps is enough to consume Java …