What is Oracle Applications This article is intended for beginner's who have been initiated to Oracle applications and are finding their way through. I remember I was extremely curious on my first job when I was given the domain of Oracle Applications and was disheartened looking at all the forms as to whether my job would involve just data entry in forms! It couldn't be more farther than the truth. Before I delve deeper into Oracle Applications, Lets develop some background knowledge. Oracle Corporation, co-founded by its CEO Larry Ellison, is among the top three software corporations in the world along with Microsoft and IBM. Oracle is most popularly known for its RDBMS, current release being 11g, and most of us would have had some experience writing SQL, PL/SQL code in oracle database. However, oracle has a gamut of products at Database, middleware and applications levels. Oracle applications therefore, figures at the application level, aiming to provide an industry wide software solution. Before getting into the details, let us develop an analogy. Let us forget whatever concepts and ideas we might have about oracle applications and consider a simple case where you want to purchase a new bike! The first thing you have to do is express your interest (RFQ) to bike sellers whom you visit and get quotations from them. Once you have an idea of market prices and products, you tell your requirement to your dad (Purchase Requisition). Your dad either approves it, or disapproves it. If he approves it you go to your chosen vendor and place an order (Purchase Order). Next the vendor delivers the bike which you receive after inspection that everything is fine, you accept it (Receipt) and tell your dad to pay him (Invoice). Your dad on getting your signal goes ahead and pays (payment) the bike vendor. At the end of the month (or whenever, he does it), your dad goes over the expenses of this month (GL processing) which includes the payment for your bike. Now, let’s come back to “what is oracle applications”. Did you notice how the above process represented a flow from one process to another (workflow)? You couldn’t possibly perform one action before having completed the previous. Like for instance, you wouldn’t pay the vendor before he delivers. Or it wouldn’t be wise to go to your dad before knowing the price of bike you want to buy. So a simple scenario of you having to purchase a bike requires you to perform actions in a particular sequence. Now consider the situation for large industries and their various processes. That is, Purchasing, Manufacturing, Order Management, Sales, Payments, Account Maintenance etc. Obviously control has to be forced on all industry-wide processes, so that an individual operation is performed at the right time and in the best possible way. This is exactly what Oracle Applications does. It forces a work-flow on every industry process. In a nut shell, Oracle Applications is an Enterprise Resource Planning Software, which is run by large industries to control their industry-wide operations. This software involves separate segments known as modules for separate business processes. Each module is basically a collection of forms (with some data displaying reports) where at each stage of the business process, data needs to be entered. The forms enforce industry best-practices controls on data input and process flow. The above bike example is typically how a Purchase to Pay business process would flow in Oracle applications involving the modules of Oracle Purchasing, Oracle Inventory, Oracle Payables and Oracle General Ledger. So that is a very simplistic introduction to Oracle Applications, In Part –II I will discuss the technical architecture for better understanding of how Oracle Applications works. [PAGE]What is Oracle Applications - Part 2[/PAGE] What is Oracle Applications - Part 2 How do users interact with Oracle Applications? Oracle Applications is installed on the servers of a company and every user from the CEO down to a factory staff is given a user name and password. They use their browsers to connect to the servers in their LAN and typically get a menu called responsibilities to choose from. Once they choose their responsibility, accordingly they get another menu of functions they can perform. For example if it is a Purchasing user, he may be able to create RFQs (Request for quotations), Purchase Requisitions, Purchase Orders, Receive material etc. Hence whatever that is happening at the factory ground needs to be entered in a particular form in APPS. If something is not right, APPS will not allow the process to flow further. Hence mistakes will be arrested at each step. Besides there are dozens of reports in a variety of formats for Business Intelligence and better understanding of what is actually happening for the decision makers. So now, you understand how Oracle apps is used, but how is it structured? The following image represents the directory structure of APPS. The APPL_TOP directory contains all the oracle applications products (modules) folders including the au folder where all all your form binaries or *.fmb files are located. Now let us look at the logical architecture of Oracle Applications. Essentially, it is a three-tier architecture, with the end-user located at the Desktop Tier, and the application software(s) and Database installed on the server(s). For ease of maintenance you may find the same physical server hosting the Application and Database tiers. Each user logs in to Oracle Applications through the E-Business Suite Home Page on a desktop client web browser. The user interface is provided in two ways, either through HTML for the newer HTML-based JSP applications, or through a Java applet in a Web browser for the traditional Forms-based interface. The Home Page provides a single point of access to HTML-based applications, Forms-based applications, and Business Intelligence applications (like Oracle Discoverer). The Forms client applet is packaged as a collection of Java Archive (JAR) files. The JAR files contain all Java classes required to run the presentation layer of Oracle Applications forms. The Forms client applet must run within a Java Virtual Machine (JVM) on the desktop client. The Oracle JInitiator component (which needs to be installed on the user machine) allows use of the Oracle JVM on web clients, instead of the browser’s own JVM. In part 3, I will discuss a little bit about the application and database tiers. [PAGE]What is Oracle Applications (Part 3)[/PAGE] What is Oracle Applications (Part 3) The figure below demonstrates Java Servlet Access with JSP Pages An HTML-based Applications module uses the following access path: 1. The user clicks the hyperlink of a function from a browser. 2. The browser makes a URL request to the Web listener. 3. The Web listener contacts the Servlet engine (JServ) where it runs a JSP. 4. The JSP obtains the content from the Applications tables and uses information from the metadata dictionary to construct the HTML page. 5. The resulting HTML page is passed back to the browser, via the Web server. The figure below explains very well how the forms interface works. When a user initiates an action in the Forms client applet, such as entering data into a field or clicking a button, data is passed to the Forms server on the application tier. The user interface logic runs in the Forms server, and determines the appropriate user interface effect based on the user’s action. For example, a window may open, or another field value may be populated. If necessary, the database tier is contacted for any data not already cached on the application tier, or for data-intensive processing. The Databse tier is the core Oracle RDBMS where all the tables, views, packages etc are stored. Different modules are organized into different schemas like PO, INV, GL schemas etc. However the APPS schema is granted all permissions on all oracle applications schemas. The APPS database user is the user user who performs all the database activities for the APPS database. This was a very beginner-oriented article for Oracle Applications, and I have omitted many many details which could have come in context for the sake of simplicity. Hope this helped.