Tuesday, January 31, 2012

Thing I learned today...
There are known upload size restriction for various browser. You can see details here http://www.motobit.com/help/scptutl/pa98.htm
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.

Wednesday, January 18, 2012

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-

Thursday, January 12, 2012

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 :)

Monday, January 9, 2012

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 -

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 classes from the dependent model project. To consume business components follow Step 3.

Once you define the dependencies for the consumer project, in the Project Properties window, select Imports option displayed below the ADF Business Component node. Click Import button, select the desired jpx file (jpx for the project whose business components needs to be imported to the consumer project) using file browser and then select the components that needs to be imported to the consumer project as shown in the following diagram.

You are done with the import task. Now IDE will start exposing business components in the consumer project.

Please note that, ADF development team is working on the 'dependency management' feature to make it more user friendly so that specifying dependency may be enough to consume business components from dependent project. Stay tuned, will keep you posted !