Tuesday, October 24, 2017

DOs and DONTs in Oracle OAF

  1. ALWAYS try to declaratively define your User Interface(UI). Resort to a programmatic layout only if the UI cannot be implemented declaratively. Programmatic layouts are difficult to customize (they don't leverage the Personalization Framework) and may diverge from the UI Guidelines over time.                                                                                                                          
  2. NEVER change your UI layout properties in processFormRequest(). ALWAYS make changes in processRequest(), even if that means handling an event inprocessFormRequest() and then redirecting back to the same page. This ensures that the web bean hierarchy is in a stable state when the page renders.                                                                                                                      
  3. NEVER use index numbers to find beans when you want to change their properties. ALWAYS search by name. Index numbers can change during processing.                                                       
  4. NEVER change the properties of a parent bean from a child bean. This is a poor design practice that hampers reuse while introducing fragile code (particularly if the child code executes too late in the page rendering cycle to properly affect the parent).                                    
  5. NEVER instantiate Beans using "new OA Bean()". ALWAYS use the createWebBean()factory methods available on the OAControllerImpl class. Not all Bean properties are initialized correctly when you use "new".                                                                  
  6. NEVER create Form Beans in code (this means NEVER add nested Form beans to a page,  your Page Layout region should be the only form region). Multiple form Beans on a page are not supported and can result in strange run time behaviors.                                                                      
  7. NEVER count on your Application Module using the same database connection in subsequent requests. For example, NEVER post and commit in separate requests.                                                
  8. NEVER use JDBC directly unless you're calling a PL/SQL routine (you should use a view object instead, and if possible, the view object should be defined declaratively and not programmatically).                                                                                                                                  
  9. NEVER add member variables unless they are Transient or Final to View Objects, Controllers, Entity Object, View Rows and Application  Modules.                                                                      
  10. ALWAYS adhere to the Self-Service Performance Guidelines Page.

No comments:

Post a Comment

Query to get the Concurrent Program along with Value Set details

SELECT fcpl1.user_concurrent_program_name       ,fdfcuv.end_user_column_name       ,ffvs.flex_value_set_name value_set_name       ,ffvt.appl...