Friday, February 1, 2008



Hi All,

The Spreadtable Administration details are following:-

Oracle forms use Spreadtable to display and format dynamically retrieved data at runtime using bean area container. This is accomplished by predefined metadata which drives what data has to be retrieved and presented at runtime.




Use the SpreadTable Meta Data Administration window to design SpreadTables that plug into an Oracle Forms bean area container.




Perform the following steps to create a new spreadtable.

1. Navigate to SpreadTable Administration screen.
The Spreadtable Meta Data Administration window opens.
2. Define a new datasource (a set of metadata) by entering the following:
o Datasource Name: The unique name that identifies a set a metadata. It must always be _.
o Application: The name of your product.
o Title: A descriptive name for this set of metadata.
o Relational View Name: Select from the LOVs the name of the view from which information is to be retrieved to populate the spreadtable.
o Lines/Rows: Enter how many lines of text are to display per row.
o WHERE Clause: (Optional) Enter a SQL statement here if desired. Use this field to enter filtering criteria. NEVER start with the keyword WHERE, as this is automatically prepended to the statement. Always use bindvariables if the value changes at runtime.
3. Select the Database tab, if it is not already selected, and enter the following for each column that you wish to display in the spreadtable:
o Column Alias: The column alias becomes part of the primary key, therefore it must be a unique name. For example, the names, "currency" and "currency_code" will generate an error stating there is an ambiguous column in SELECT list. Column alias names cannot contain SQL reserved words or an error generates stating the keyword was not found where expected.
o View Column/ Function: Select from the LOVs the desired name of the View Column.
o Datatype: Select from the LOVs either character, number, or date.
o Query Sequence: The sequence value determines the order in which columns are extracted from the database. You could start with 1, but in actual practice, it is a good idea to leave gaps in the sequence for ease of row insertion later. To improve performance, begin with the columns that you will refer to in your code, typically the primary key columns to execute a query in a detail block.
o Sortable: Selecting this box allows the user to sort on this column.
o Default Sort Order: Sort in ascending or descending default order.
4. Select the Display tab, and enter the following for each column that you defined previously:
o Visible: Select to make this column visible in the spreadtable.
o Freeze Visible Property: Select if you want the end user to be able to change the visible properties (show/hide) at run time for this column.
o Display Sequence: The value determines the order in which the columns display in the spreadtable.
o Display Width: Sets the width (in pixels) of the displayed column. This value depends on the data that is displayed in the column.
o The Column Alias and Label fields are supplied automatically. However, you may change these values, if desired.
5. Select the Alignment and Formatting tab, and enter the following:
o Header Alignment: Select from the LOVs either Center, End, Right, or Start.
o Cell Alignment: Select from the LOVs either Center, End, Right, or Start.
o Display Type: Select from the LOVs either check box, Hyperlink, or Text.
o Display Format: (Optional) Select from the LOVs either Currency, Date, or Date Time.
6. Select the Custom Format Masks and Mappings tab.
o Column Alias: The column alias field is filled automatically.
o Check box Mappings: These options apply only if the display type field in the Alignments and Formatting tab is set to check box.
§ Checked: Sets whether or not a column value is represented as a checked check box or as its corresponding image.
§ Unchecked: Sets whether or not a column value is represented as an unchecked check box or as its corresponding image.
§ Other: Sets how values other than those specified as either checked or unchecked are represented.
o Format Mask: Use to set how columns with datatype Number display data. For example, it would display the values as a percent. Use this only in rare cases.
o Currency Column: Points to the database view column where the currency code for the current column is stored. This applies only if the display format is set to Currency.
7. Select the Sort Order tab, and perform the following:
o Choose the Primary Sort key from the LOVs.
o You can optionally select a second or third Sort key from the LOV.
8. Click the Save icon on the toolbar. (The icon looks like a floppy disk.)
9. Select the Test tab, and click Test.

Sanjay


Wednesday, January 30, 2008

User Profiles

User Profiles
A user profile is a set of changeable options that affects the way your applications run. Oracle Application Object Library establishes a value
for each option in a user’s profile when the user logs on or changes responsibility. Your user can change the value of profile options at any
time. Oracle Application Object Library provides many options that your users can set to alter the user interface of your applications to
satisfy their individual preferences.

User Profile Levels
User profile options exist at Site, Application, Responsibility and User levels. Oracle Application Object Library treats user profile levels as a
hierarchy, where User is the highest level of the hierarchy, followed by Responsibility, Application and at the lowest level, Site. Higher–level
option values override lower–level option values. Each user profile option ordinarily exists at each level. For example, Oracle Application
Object Library provides a site–level Printer option, an application–level Printer option, and so on. As a result, if your Site–level Printer value
is ”New York”, but your User–level Printer value is ”Boston”, your reports print on the Boston printer.

Site Level
Site is the lowest user profile level. Site–level option values affect the way all applications run at a given installation.

Application Level
Application is the user profile level immediately above Site. Application–level option values affect the way a particular application runs.

Responsibility Level
Responsibility is the user profile level immediately above Application. Responsibility–level option values affect the way applications run for
all users of a responsibility.

User Level
User is the highest user profile level and is immediately above Responsibility. User–level option values affect the way applications run for an
application user.

JSP Application Components

JSP Application Components
A typical JSP application involves the following components: a browser for client access, a database for enterprise data and a web application server ("middle tier") where the application objects live.
Ø The browser communicates with the middle tier using HTTP (Hyper Text Transfer Protocol) which involves sending a request message to which the middle tier replies with a response message.
Ø A JSP is a file with some HTML and Java code that executes top to bottom. At runtime, it is compiled into a Java class which is actually a servlet.
Ø A servlet is a Java-based web application server extension program that implements a standard API.
Ø A servlet session is a mechanism for maintaining state between HTTP requests during a period of continuous interaction between a browser and a web application. A session may be initiated at any time by the application and terminated by the application, by the user closing the browser, or by a period of user inactivity. A session usually corresponds to an application login/logout cycle
Ø A JavaBean (or "bean" for short) is simply a reusable component that implements specific design patterns to make it easy for programmers and development tools to discover the object's properties and behavior.
Ø Any objects in the middle tier that communicate with the database use a JDBC (Java Database Connectivity) driver.

Sambavi.

Monday, January 28, 2008

Apache

Apache:

It is the most common web server (or HTTP server) software on the Internet. Apache is an open-source application originally created from a series of changes (“patches”) made to a web server written at the National Center for Supercomputing Applications, the same place the Mosaic web browser was created. Apache is designed as a set of modules, enabling administrators to choose which features they wish to use and making it easy to add features to meet specific needs including handling protocols other than the web-standard HTTP.
The Apache HTTP Server, commonly referred to simply as Apache, is a web server notable for playing a key role in the initial growth of the World Wide Web. Apache was the first viable alternative to the Netscape Communications Corporation web server (currently known as Sun Java System Web Server), and has since evolved to rival other Unix-based web servers in terms of functionality and performance.
Apache is developed and maintained by an open community of developers under the auspices of the Apache Software Foundation. The application is available for a wide variety of operating systems, including Unix, FreeBSD, Linux etc. Released under the Apache License, Apache is free software / open source software. Since April 1996 Apache has been the most popular HTTP server on the World wide Web.

Basic Understanding about Canonicals

Basic Understanding about Canonicals

Pre-requisite : Basic knowledge on XML and XML related terms.

XML Schema Definition (XSD) is used to define the legal building blocks of an XML document. It describes the structure of an XML document.

Open Applications Group’s Integration Specification (OAGIS) provides a standard canonical business language that enables streamlined communication between businesses and/or business applications. OAGIS contains a collection of message sets for common business transactions, formatted in XML. These message sets are known as Business Object Document (BOD). But, it is also not possible to completely identify the unique characteristics that may provide value for a given customers implementation. In other words, there are always going to be extension needed such that a company can communicate its unique needs. Building up of these extensions in order to decrease the bridge between the OAGi standards and that need by the customer is known as Canonicals. OAGIS provides the user a unique form of extensibility to stretch the standard without breaking it.

Terms used :

A BOD consists of :-

An Application Area.
A DataArea that contains the Verb and the indicated Noun.

Verbs describe the action (for example : Process, Acknowledge, Change, etc.) and Nouns contain the business content (for instance: Invoice, Quotes, PurchaseOrder, etc.). The name of the BOD is always the VerbNoun combination. Eg: ProcessPurchaseOrder.

The following figure shows the structure of a BOD.


The ApplicationArea includes the following elements: the sender of the message; the CreationDateTime; the signature; the BODId, the unique identifier for the BOD instance; and a UserArea. The DataArea contains the instance(s) of the data values for the business transactions.

Canonicals can be extended using two techniques.

UserArea extensions which allow simple extensions of a few fields to an existing OAGIS component. In addition to this, we may use UserArea in order to shuffle the sequence of the fields/components based on the requirement.
Overlay extensions which allow users to extend an OAGIS Business object document, noun, and component to meet their own needs, even adding new BODs, verbs, nouns, and components where necessary. It is used when extensive additions or the creation of new BOD is needed.

Both of these extension mechanisms use XML namespaces to separate the extended content from the standard content and definitions. By using XML namespaces, extensions can be made without editing any of the OAGIS XML Schema files.
For Arrow, we are following the second approach, overlay extensions. Generally we can and should reuse the already extended field and component types for the new extensions.

Tool used : Altova XML Spy

Useful Links : www.w3schools.com - For detail understanding on XML and XSDs.
www.openapplications.org - Knowing more about OAGIS.

Types of Oracle Apps Patch

Before taking about various types of patches available, first take a look on definition of Patch:

What is patch?
Patch is program (set of instructions) to fix a particular problem or enhance/ add a particular feature in existing program/product/software.

Assuming all of us now understand basic definition of patch, let’s discuss types of patches:

What are various types of Oracle Apps Patch?

These are major classification of oracle apps patch
Standalone/Oneoff patches This is used to define patch created to fix single/particular problem.

Mini Pack This is group of oneoff patches for a particular product like INV, GL, AP and named like 11i.GL.E ( means this group of patches contain fix for 11i GL product (General Ledger till time E is released ) This is commutative which means it will include 11i.GL.A, 11i.GL.B ....11iGL.D till 11i.GL.E earlier in 10.7 it used to called as patchset.

Family Pack Group of mini packs in one family bundled together is called as family pack. They are usually named as 11i_PF. Few example of families are SCM (11i.SCM_PF.G), ATG (11i.ATG_PF.H) _PF indicate Product Family Pack

Maintenance Pack Group of family pack together is called as maintenance pack. So if you say your Version is 11.5.10 then its maintenance pack 10 (3rd digit is maintenance pack)

JDBC (Java Database Connectivity)

The JDBC (Java Database Connectivity) API defines interfaces and classes for writing database applications in Java by making database connections. Using JDBC you can send SQL, PL/SQL statements to almost any relational database. JDBC is a Java API for executing SQL statements and supports basic SQL functionality. It provides RDBMS access by allowing you to embed SQL inside Java code. The Java application calls JDBC classes and interfaces to submit SQL statements and retrieve results.
The main objects of the JDBC API include:
Ø A DataSource object is used to establish connections. Although the Driver Manager can also be used to establish a connection, connecting through a DataSource object is the preferred method.
Ø A Connection object controls the connection to the database. An application can alter the behavior of a connection by invoking the methods associated with this object. An application uses the connection object to create statements.
Ø Statement, PreparedStatement, and CallableStatement objects are used for executing SQL statements. A PreparedStatement object is used when an application plans to reuse a statement multiple times. The application prepares the SQL it plans to use. Once prepared, the application can specify values for parameters in the prepared SQL statement. The statement can be executed multiple times with different parameter values specified for each execution. A CallableStatement is used to call stored procedures that return values. The CallableStatement has methods for retrieving the return values of the stored procedure.
Ø A ResultSet object contains the results of a query. A ResultSet is returned to an application when a SQL query is executed by a statement object. The ResultSet object provides methods for iterating through the results of the query.

Form Personalization

Form Personalization:

Personalization enables you to declaratively tailor the UI look-and-feel, layout or visibility of page content to suit a business need or a user preference.
Form personalization allows to alter the behavior of the product that oracle has provided.

It allows making declarative changes to a form.
Changes get applied at runtime when the proper trigger event occurs.
There are only limited trigger events they are
When new form instance,
When new block instance
When new item instance
When new record instance
Changes can get applied based on the condition specified in the conditions tab in the personalization form.
We can set the trigger event and the trigger object and the condition on which it has to be implemented.
We can also set the Context level whether it can be at Site level or responsibility level, User level or Industry level.
We can enable or disable a particular action.
In actions we can specify the property of a particular item and what value it should display.
Apply the changes immediately to test their effect

WF Engine Basics

Basics of Oracle Workflows Engine

The Oracle Workflow Engine:--> Is implemented in server-side PL/SQL. Combination of Tables/Views/Packages and procedures--> Manages the state of activities for each process instance.--> Determines the next activity once a prerequisite activity completes.--> Executes function activities automatically.--> Calls the Notification System to send notification messages--> Supports results-based branches, parallel branches, loops, and sub-processes.--> Can execute activities from non-savepoint environments such as database triggers and distributed transactions.--> Can defer activities too costly to execute in real time to background engines for processing.--> Maintains a history of completed activities.--> Detects error conditions and executes error processes. Initiating a Workflow ProcessWe Call the Workflow Engine APIs to initiate a workflow process,Use the CreateProcess and StartProcess APIs if you want to perform additional tasks, such as setting item attributes, after creating and before starting the process.If you do not need to perform any additional tasks, you can use the LaunchProcess API, which is a wrapper combining the CreateProcess and StartProcess APIs.The procedure that executes the Workflow Engine APIs to initiate a process must identify the item type and item key of the process for these APIs. The item type and item key passed to these APIs uniquely identify an item and must be passed to subsequent API calls for each specific process.Workflow Engine ProcessingUpon starting a process, the Workflow Engine:--> Identifies and executes the Start activity node Executes the Start node if it is a function, notification, or process activity--> Determines the next activity to transition to after completing the prerequisite activity or activities--> Drives through the process Automatically executes function activities and Send or Raise event activities Pauses when it encounters a notification activity or blocking activity--> Calls the Notification System to notify a performer Transitions to the next activity after the performer completes the notification, the blocking activity is completed, or the event message is received--> Stops when it encounters an End activity Exception HandlingUse WF_CORE APIs to raise and catch errors in your PL/SQL procedures.The Workflow Engine sets the status of the function activity to “ERROR” if: The PL/SQL procedure raises an unhandled exception The PL/SQL procedure returns a result beginning with “ERROR:”If an activity encounters an error, information about the error is stored in the following columns in the WF_ITEM_ACTIVITY_STATUSES table, which are viewable from the Workflow Monitor.-->ERROR_NAME-->ERROR_MESSAGE WORKFLOW ENGINE API’sTo start or run a workflow process-->WF_ENGINE.CreateProcess creates a new runtime process for a work item.-->WF_ENGINE.StartProcess begins execution of the specified process.-->WF_ENGINE.LaunchProcess launches a specified process by creating the new runtime process and beginning its execution.-->WF_ENGINE.SetItemOwner sets the owner of an existing item.-->WF_ENGINE.SetItemUserKey sets a user-friendly identifier for an item.-->WF_ENGINE.GetItemUserKey returns the user-friendly identifier assigned to an item.-->WF_ENGINE.SetItemParent defines the parent/child relationship for master/detail processes.-->WF_ENGINE.Event receives an event from the Business Event System into a workflow process.-->WF_ENGINE.Background runs a background engine to process deferred and timed out activities and stuck processes.-->WF_ENGINE.CreateForkProcess forks a runtime process by creating a new process that is a copy of the original.-->WF_ENGINE.StartForkProcess begins execution of the specified new forked process. To communicate attribute information to the Workflow Engine-->WF_ENGINE.SetItemAttrText, WF_ENGINE.SetItemAttrNumber, WF_ENGINE.SetItemAttrDate, and WF_ENGINE.SetItemAttrEvent set the value of an item type attribute in a process.-->WF_ENGINE.SetItemAttrTextArray, WF_ENGINE.SetItemAttrNumberArray, and WF_ENGINE.SetItemAttrDateArray set the values of an array of item type attributes in a process.-->WF_ENGINE.GetItemAttrText, WF_ENGINE.GetItemAttrNumber, WF_ENGINE.GetItemAttrDate, and WF_ENGINE.GetItemAttrEvent return the value of an item type attribute in a process.-->WF_ENGINE.GetItemAttrInfo returns information about an item attribute, such as its type and format.-->WF_ENGINE.AddItemAttr adds a new item attribute to the runtime process.-->WF_ENGINE.AddItemAttrTextArray, WF_ENGINE.AddItemAttrNumberArray, and WF_ENGINE.AddItemAttrDateArray add an array of new item type attributes to the runtime process.-->WF_ENGINE.GetActivityAttrText, WF_ENGINE.GetActivityAttrNumber, WF_ENGINE.GetActivityAttrDate, and WF_ENGINE.GetActivityAttrEvent return the value of an activity attribute in a process.-->WF_ENGINE.GetActivityAttrInfo returns information about an activity attribute, such as its type and format. To communicate state changes to the Workflow Engine-->WF_ENGINE.CompleteActivity notifies the engine that the specified activity has been completed for the item, identifying the activity by the activity node label name.-->WF_ENGINE.CompleteActivityInternalName notifies the engine that the specified activity has been completed for the item, identifying the activity by its internal name.-->WF_ENGINE.BeginActivity determines if the specified activity can currently be performed and raises an exception if it cannot.-->WF_ENGINE.AssignActivity assigns an activity to another performer.-->WF_ENGINE.GetActivityLabel returns the instance label of an activity, given the internal activity instance identification.-->WF_ENGINE.AbortProcess aborts process execution and cancels outstanding notifications.-->WF_ENGINE.SuspendProcess suspends process execution so that users cannot transition items to new activities.-->WF_ENGINE.ResumeProcess returns a suspended process to normal execution status.-->WF_ENGINE.HandleError handles any activity that has encountered an error. This API can also be called for any arbitrary activity in a process to roll back part of the process to that activity.-->WF_ENGINE.ItemStatus returns the status and results for the root process of the specified item instance.


SOURCE : -http://oracle.anilpassi.com/basics-of-oracle-workflows-engine.html

OAF Page Basics

OAF Page Basics:
At the browser level, an OA Framework page, like any other web page, renders as standard HTML. In the middle tier, however, this page is implemented in memory as a hierarchy of Java beans -- very much like a classical Java client UI. Each UI widget, such as buttons, a table, the tabs, the application branding image and so on that renders in the page corresponds to one or more web beans in the hierarchy.
When the browser issues a request for a new page, OA Framework reads the page's declarative metadata definition to create the web bean hierarchy. For each bean with an associated UI controller, OA Framework calls code that you write to initialize the page. When page processing completes, OA Framework hands the web bean hierarchy to the UIX framework so it can generate and send HTML to the browser.
When the browser issues a form submit (if, for example, the user selects a search region's Go button), OA Framework recreates the web bean hierarchy if necessary (the hierarchy is cached between requests, and typically needs to be recreated only in exceptional cases that we'll discuss in detail later), and then calls any event handling code that you've written for the page beans. When page processing completes, the page HTML is generated again and sent to the browser.