Sunday, January 12, 2020

Oracle Framework Work Architecture

OAF Architecture -

Architecture of Oracle Application Frame Work is similar to the Struts Frame Work but some differences are there.
Fig. OAF Work Architecture
This Framework helps to create Self Service pages in Oracle EBS.


These pages are designed to be familiar to web-based users, and easy to deploy within a web browser (requiring no plugin or download, unlike Oracle Forms). As such, they are often expected to require no support or training for users, are more user friendly, and result in better performance over the internet and a faster transaction rate.
The OA Framework helps in building the presentation layer, adding the business logic and controlling the flow of the application.

Oracle Application Framework (OAF) is an architecture for creating web based front end pages and J2EE type of applications within the Oracle EBS ERP platform. In order to develop and maintain OAF functionality, Oracle's JDeveloper tool is used. OAF is based on J2EE technology called BC4J (Business Components for Java). As per the MVC architecture, in OAF, the XML Page forms the View, the JAVA based controller class forms the controller and the Application Module along with View Objects (VO) and Schema Objects (EO) forms the Model.

Every application has a package some location on the Application Server where all the code is held, there are basically three types of location within a given package path:
  1. Server (The BC4J Components, R12 uses ADF)
  2. Webui (Web user interface components)
  3. Schema (Entity objects)
  4. Server files

Model(BC4J) 
  • EO (Entity Objects)
  • VO (View Objects)
  • AM (Application Module)
View (User Interface) 
  •      Page Design (User interface XML- UIX)
Controller 
  •      Java Code Classes(CO) - User Actions
1. VO (View Objects)  
a. VO is used for displaying the records.
b. Two types of VO :
   i.  SQL based
   ii. EO based
   
2. EO (Entity Objects)
       a. EO is used while updating, inserting or deleting the records. (Depending on VO)
       b. Contains database attributes nothing but the table columns
3. AM (Application Module)
       a. AM will be track all the transactions between VO and pages(user activities).
       b. Contains only VO, can not attach EO directly to AM.
       c. Every page must have root AM.
4. CO (Controller)
      a. Responds to user actions
      b. Model objects like EO and VO can't be accessed directly from the Controller class, except AM.
      c. Contains methods such as :
   i.   ProcessRequest : Executes when page load at first time(Initially).
   ii.  ProcessFormRequest : Executes when user doing action on page(Clicking on Button, changing LOV etc).
   iii. ProcessFormData : Transfer information from page fields to the cache memory(Executes in backend - not used by developer).

5.    Page and Region (PG and RN)

It represents the View layer of the MVC architecture, it is the creation of the page that is rendered on front end, every component on that page like input text box, Lov’s, submit buttons and all other components are part of a bean that is defined in the system, each of these page is stored in the file system tables in the database, whenever any page is called the components are called from the database and rendered.

Onion Architecture of OA Framework :
Fig. Onion Architecture of OAF
Onion Architecture of OA Framework :
OA Framework can be extracted into a series of concentric layers, like an onion.
Each layer communicates with it top and bottom layers.

Key Features of MVC Architecture :

  1. Integrated development environment
  2. Durable personalization and extensions
  3. Consistent and compelling user interface
  4. User interface interactivity
  5. Object oriented reuse
  6. Oracle portal interoperability
  7. Built-in security
  8. Deployment environment
Comparison of D2K, OAF and ADF :

D2k OAF ADF
Desk Top Application It is Frame with MVC Architecture It is a Frame work with MVC Architecture
It is a Client and Server Architecture It is a 3-Tier Architecture It is a N-Tier Architecture
From Builder used to develop the applications JDeveloper is used to develop the applications JDeveloper is used to develop the applications
PL/SQL JAVA JAVA
Drag and Drop features No Drag and Drop features Drag and Drop features
Client and  Server Application Web Application Enterprise Application

Personalization :
There are certain changes, which are in fact small changes on a page that can be done without any code changes is a feature that oracle provides to its users, this is called personalization. Personalization can be done at user level, responsibility level, org level and site level.

To enable the personalization link on every page use the Profile option, "Personalize Self-Service Defn".

After setting this profile, on every page the Personalize link will appear. One can personalize certain attributes like rendering items, making fields read only creating items at required level (User/Responsibility/Site) etc.

After personalization the personalized page needs to be imported to the file system as mentioned earlier each of the pages resides in the file system and stored in tables within the database, for doing this there is a standard xml importer script.

Customization :
In case some new customized codes needs to be created and added to the custom level which will extend to existing codes.(We will discuss this later)

Debugging :
Debugging and code analysis is a very major aspect of tracking and finding the required changes in an OAF code. Set the profile “FND: Diagnostics” this will create a Diagnostics link on the top as well as a “About this page” link at every page bottom. These are very important utility for tracking the components on a page, like AM’s /VO’s and CO’s on a page and helps in finding the various view objects that are attached on a page and their respective queries. This is also helpful in tracking the components that needs to be modified or extended during development.


Monday, January 6, 2020

Basic Installation and setup of JDeveloper

Basic Installation Steps 
  1. Download Java Jdk 1.8. Download jdk from below link https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  2.  Download JDeveloper according to your EBS instance version. With me available Oracle patch is p8431482_R12_GENERIC.zip which supports oracle 10g. Download Jdeveloper using link  https://www.oracle.com/technologies/developer-tools/jdeveloper/jdeveloper.html
  3. Unzip the patch p8431482_R12_GENERIC.zip i.e. in D:\
  4. Add the JDev path in your system where your JDeveloper is available, as shown in below screen capture.
Fig. Environment Variable

      5. Create new variable in User Variables(In User Variable section > Click on New and add below details).
      6. Enter the details as shown in below screen capture:
    • Variable Name : JDEV_USER_HOME
    • Variable Value : <Insert your JdevHome/JDev path>
Fig. User Environment variable Value

    7. Download <instance_name>.dbc file from $INST_TOP/Secure OR $INSTANCE_TOP/Secure
                    .dbc file consisting of Connection details which is same as tnsnames.ora. 
    8. Place <instance_name>.dbc file into  D:\p8431482_R12_GENERIC\jdevhome\jdev\dbc_files\secure.

May error occurs while opening the JDeveloper at first time:
Error : Ø  SQL Developer can’t start because MSVCR71.dll is missing
Steps for Solution :
1. Go to Environment Variable(right click on My Computer or This PC > Properties > Advanced system Settings > Environment Variable):

Fig. Environment Variable
2. Go to System variables and click on "path" > Edit > 
Fig. System Variable Edit

3. It will open the window as shown in below screen shot. Click on New > enter the path which is same as JDEV_USER_HOME(entered at the time of installation/setup of JDeveloper).
Fig. Add new in path - System Variable
4. Copy the MSVCR71.dll file from D:\p8431482_R12_GENERIC\jdevhome\jdk1.8\bin path to D:\p8431482_R12_GENERIC\jdevhome\jdev\bin and restart your jDeveloper.

Using above setup we can start our JDeveloper. Thanks.!

Thursday, January 2, 2020

Background of Oracle Application Framework

Basic Information and little bit background of OAF-

Oracle Application Framework (OA Framework) is the Oracle Applications development and deployment platform for HTML-based business applications.
Fig. Simple Web Application Architecture

Application Tier Contains a Web Server, which maintains the components such as Servlet, JSP:

Component is nothing but piece of code, which implements well defined interface.
A Single Component is not an Application. An Application consists more than one number of components working together.
Component handles complete task, such as Business Logic, Database Transactions Logic and Presentation Logic.

Few are the disadvantages were observed in this architecture :
  1. Only One Application developer has to develop the complete component
  2. Application developer has to concentrate on Business Logic, Database Transactions Logic as well  as Presentation Logic.
  3. Application Developer Must have the Multiple Skills
  4. Development Time is more
  5. Lot of confusion with Business Logic, Database Transactions Logic and Presentation Logic since they are being developed as single component.
To overcome the above disadvantages MVC1 Architecture was introduced :
Fig. MVC1 Architecture
  • Model (M): Model Represents data object. Model is what is being manipulated and presented to the user.
  • View (V):    Serves as Screen representation of Model. It is the object that presents the current state of the data objects to user.
  • Controller (C):  Defines the way user interface reacts to the user’s input. The Controller component is the object that manipulates the model or data object.

In MVC1 Architecture
  • Servlet/JSP acts as View as well as Controller.
  • Java Bean acts as Model Component.

Below are the disadvantages of MVC1 architecture:

  1. Only One Application developer has to develop the component with Business Logic, as well as Presentation Logic.
  2. Application developer has to concentrate on Business Logic as well as Presentation Logic.
  3. Application Developer Must have the Multiple Skills.
  4. Resources such as Java developers and Web developers can not be used effectively.
  5. Development Time is more.
To overcome the above disadvantages MVC2 Architecture has been introduced:
Fig. MVC2 Architecture
MVC is divided as below :
  • Model :  Java Bean acts as Model. It is Java Bean called as Form Bean. It will receive the client data through the Controller and performs the data validations or data base transactions such DML operations. After performing database transactions it provides the data for the view.
  • View : JSP acts as View. It populates the data from the Form Bean ( Model ) and Present to the user.
  • Controller : Here Servlet acts as Controller. It is java Servlet called as Action Servlet. It receives request from the web client and stores data into the Java Bean called as Form Bean (Model) and receives response (success / fail) from the Form Bean. Based on the response from Form Bean, Action Servlet decides, which page (view) to be presented to the client.