Sunday, December 26, 2010

Oracle Applications - Intro & Concepts

Note: Below notes written, keeping in view for system administration and APPs DBA activities. 
1- Oracle Application Architecture:
It is a framework for mutli-tiered, distributed computing that supports Oracle Application products. In this model various servers or services are distributed among three levels or tiers.
A server (or services) is a process or group of processes that runs on a single machine
and provides a particular functionality. For example, Web services, Forms services etc. The Concurrent Processing server supports data-intensive programs that run in the background.
A machine may be referred to as a node, particularly in the context of a group of computers that work closely together in a cluster. a node is also a software concept, referring to a logical grouping of servers.


Use of Two Oracle Application Server ORACLE_HOMEs in Release 12
Two different Oracle Application Server (OracleAS) 10g releases, in separate ORACLE_HOMEs, are used in Oracle Applications Release 12. This enables Applications to take advantage of the latest Oracle technologies.

Forms Listener Servlet
Forms listener servlet  hosts the Oracle Applications forms and associated runtime engine, mediating the communication between the desktop client and the Oracle database server. It manages the creation of a Forms runtime process for each client, as well as network communications between the client and its associated Forms runtime process.
Concurrent Processing Server
Programs, which run in the background while users continue to work on other tasks, may require a large
number of data-intensive computations, and are run using the Concurrent Processing architecture.
It uses operating system facilities to facilitate background scheduling of data- or resource-intensive jobs, via a set of programs and forms.
When you submit such a request,  a row is inserted into a database table specifying the program to be run. A
concurrent manager then reads the applicable requests in the table, and starts the associated concurrent program.
Concurrent Manager runs operating system processes called target processes (often referred to as workers), each of which can start one concurrent program at a time
Types of Concurrent Manager
The Internal Concurrent Manager (ICM) controls all other concurrent managers, administers the startup and shutdown of managers, monitors for process failure, and cleans up if a failure occurs. The ICM does not process concurrent requests itself (except for queue control requests, such as ACTIVATE, DEACTIVATE, or ABORT).
The Conflict Resolution Manager (CRM) enforces rules designed to ensure that incompatible concurrent requests do not run in the same conflict domain.
The Standard Manager as shipped with Oracle Applications will accept and run any concurrent requests, as it has no specialization rules that would restrict its activities.
Transaction Managers support synchronous request processing. All transaction programs for a given manager process run in the same database session.
Concurrent Processing Architecture
A concurrent program that runs in the concurrent manager's own operating system process is known as an immediate program.Immediate programs run
as a function within the concurrent manager's program library. Examples include PL/SQL programs. In contrast, a concurrent program that runs in a child process of the concurrent manager process is known as a spawned program.
Important: The Reports server is obsolete in Release 12. All reports are now run through the Concurrent Processing server manager via the rwrun executable, which spawns an in-process server.

A concurrent program library contains concurrent programs that can be called by a concurrent manager. An important example is the Oracle Application Object Library program library (FNDLIBR), which contains Oracle Applications immediate concurrent programs, and is assigned to the standard concurrent manager.

Parallel Concurrent Processing (PCP) allows concurrent processing activities to be distributed across multiple nodes in an Oracle Real Application Clusters (Oracle RAC) environment or similar cluster system.

Managing Concurrent Processing
Two commands can be entered to control the Internal Concurrent Manager: startmgr, which starts the ICM; and concsub, which is used to stop or abort the ICM. The script for concurrent processing startup and shutdown is INST_TOP/admin/scripts/adcmctl.sh.

Administration Server
This term is a historical one: there is no Administration server as such in Oracle Applications Release 12.
Applications patches consist of files and scripts that update the file system and database objects.
You use the AutoPatch utility (adpatch) to perform these updates.
Some features require updates to the tables and schemas they use. The AD Administration utility (adadmin) enables you to carry out this and various other file system and database maintenance tasks.

Daily Business Intelligence (DBI) is a reporting framework that is integrated with Oracle E-Business Suite. It replaces the Business Intelligence System (BIS), and includes a new set of materialized views that pre-summarize transaction data. It resides in the same instance as the transactional system.

The Database Tier
The database tier contains the Oracle data server files and Oracle Applications database executables that physically store the tables, indexes, and other database objects for your system.

The Oracle Applications Technology Layer
The Oracle Applications technology layer lies between the Oracle Applications technology stack and the Oracle Applications product-specific modules. It provides features common to all Oracle Applications products.Products in the Oracle Applications technology layer include:
• Oracle Applications DBA (AD)
• Oracle Applications Object Library (FND)
• Oracle Applications Utilities (AU)
• Oracle Common Modules (AK)
• Oracle Workflow (WF)
• Oracle Alert (ALR)
• Oracle Applications Framework (FWK)
• Oracle XML Publisher (XDO)

Oracle Applications DBA (AD) provides a set of tools for administration of the Oracle Applications file system and database.
The AD utilities include:
• AD Administration - Performs general maintenance tasks for Oracle Applications.
• AD Merge Patch - Merges multiple patches into a single, integrated patch.
• AutoConfig - Manages configuration changes in an Oracle Applications system.
• AutoPatch - Applies patches and adds new languages and products to an Oracle Applications system.
• Rapid Clone - Used to copy (clone) an Oracle Applications system.
• Rapid Install - Sets up a fully configured Oracle Applications system, including the latest certified technology stack and all patches, mini-packs, and other updates.

AK is an active data dictionary that enables you to define Oracle Applications components for the HTML-based Applications, and generate many of the characteristics of Oracle Applications at runtime.
The Applications Utilities (AU) component is used to maintain the Oracle Applications system. AU hosts a collection of files copied from other products. This allows generating on-site classes of files such as Forms and reports. Generating forms or reports may require access to shared PL/SQL libraries, so these files are copied to AU_TOP as well.
Oracle Application Object Library (FND) A key component , collection of reusable code, programs, and database objects that provides common functionality across all products. It provides standard user interface, shared flexfield value sets. Flexfields allow the entry of certain important information to be standardized across all products. FND provides developer related features also like same coding , GUI standards, custom report integration, custom menues and responsibility integration seamlessly. It also provides the features for system administrator like Registering new users, giving access, monitoring users, setting user/system profile etc.

Oracle Application Object Library Security
Oracle Application Object Library controls access to the data in Oracle Applications via user sign-ons and responsibilities. A responsibility is a level of authority in Oracle Applications that lets Applications users
access only those functions and data appropriate to their roles in the organization.

When you install Oracle Applications, a standard Applications user called SYSADMIN, use SYSADMIN to create new user signons and assign them to responsibilities.

Oracle Workflow (OWF)
It is workflow management system that supports business process based integration. Acting as a system integration hub, Oracle Workflow can apply business rules to control objects and route them between applications and systems.
Workflow Components
Oracle Workflow Builder provides a graphical drag and drop process designer. Workflow Engine, embedded in the Oracle database, implements process definitions at runtime, monitors workflow states and coordinates the routing of activities for a process. Business Event System provides a workflow-enabled solution for your enterprise application integration requirements, uses Oracle Advanced Queuing technology to communicate business events between systems. Oracle Workflow Event Manager enables registration of significant business events for selected applications, including functions that generate the XML event messages.
WF Features
You can review and respond to your business process notifications from one central window, known as the worklist, using a standard Web browser.

Oracle Alert (ALR)
Oracle Alert (ALR) allows you to email system notifications to users when an exception or event has occurred.

Oracle XML Publisher (XDO)
Used to transform XML data into a formatting object (FO). A formatting object contains both data and formatting information, and can be further transformed to an output format such as Portable Document Format (PDF). XML Publisher uses data definitions and templates to produce output reports in the
desired format.

2- Applications File System               
R12 system utilizes components from many Oracle products. These product files are stored below a number of key top-level directories on the database and application server machines. Operating system environment settings indicate the location of the various files in the file systems of the database and application tier
machines.
Top-Level Applications Directory Structure

Top-Level Applications Directory Structure
Oracle Applications Environment
Oracle Applications makes extensive use of environment settings to locate executable programs and other files essential to Applications operation. These environment settings are defined when you install Oracle Applications. The environment settings and their associated values are stored in environment files,which have a .env suffix on UNIX (.cmd on Windows).
Instance Home ($INST_TOP) - top-level directory for an Applications instance.

Provides the ability to share Applications and technology stack code among multiple instances, for example a development instance and a test instance.
The basic structure of the instance home is: /inst/apps/, where APPS_BASE (which does not have or need a corresponding environment variable) is the top level of the Applications installation, and is the highest level at which the Applications context exists. For example, the setting of $INST_TOP might be /applmgr/inst/apps/testsys2, where testsys2 is the context name. All configuration files created by AutoConfig are stored under the Instance Home.  
 

AutoConfig no longer writes to the APPL_TOP or ORACLE_HOME directories, both of these can be
made into read-only file systems if required.
In a shared file system environment, Oracle recommends that the
INST_TOP should be located on a local disk and not on a shared resource such as NFS, because of possible issues storing log files on shared resources.




The data Directory
The db/apps_st/data file system contains the data (.dbf) files of the Oracle database. 
The comn Directory
The apps/apps_st/comn (COMMON_TOP) directory contains files used by many different Oracle Applications products, and which may also be used with third-party products.

- The admin directory, default location for the concurrent manager log and output directories.
- Concurrent managers write the log files and temporary files to the log subdirectory of the admin directory and the output files to the out subdirectory of the admin directory.
- The install subdirectory of the admin directory contains scripts and log files used by Rapid Install. 
- The scripts subdirectory of admin contains scripts used to start and stop services such as listeners and concurrent managers.
- html directory , The OA_HTML environment setting (JSP,HTML,XML files here)
- Oracle Applications class files in the COMMON_TOP/classes directory
- .Zip and jar files are installed in the $COMMON_TOP/java/lib directory
- The util directory contains the third-party utilities licensed to ship with Oracle Applications. These include, for example, the Java Runtime Environment (JRE)

The appl (APPL_TOP) Directory - Where Oracle Applications files are stored





APPL_TOP directory contains:
• The core technology files and directories.
• The product files and directories (for all products).
• The main applications environment file, called .env on UNIX, and .cmdon Windows.
• The consolidated environment file, called APPS.env on UNIX, and APPS.cmd on Windows.
Note: CONTEXT_NAME is the Applications context,  Its default value is _.
- Rapid Install creates a directory tree for every Oracle Applications product in APPL_TOP directory
Product Directories Each product has its own subdirectory under APPL_TOP.
_TOP Directory 
The // path is known as the product top directory
(_TOP), and its value is stored in the _TOP environment variable.
Product Files Each _TOP directory, such as /gl/12.0.0, contains subdirectories
for product files.




 Language Files When you install Oracle Applications in a language other than American English, each
product tree includes directories that use the relevant NLS language code. These directories hold translated data, forms, and message files. For example, the language directory named D designates German.
Core Technology Directories
The admin, ad, au, and fnd directories are the core technology directories.
The admin directory , This directory and its subdirectories contain files and scripts used by the AD utilities
during upgrade and maintenance processes.
These files and scripts include:
The adovars.env environment file, which defines certain file and directory locations
• Scripts run during the upgrade
• /log and /out directories for upgrade, log, and output files respectively
• A /restart directory where AD programs create restart files
The ad (Applications DBA) directory   contain installation and maintenance utilities like adadmin, adconfig.sh
The au (Applications Utilities) directory contain product files that are consolidated in a single location for optimal processing. PL/SQL libraries used by Oracle Forms, in the resource subdirectory, Oracle Forms source files, in the forms subdirectory, A copy of all Java files used when regenerating the desktop client JAR files, in the java subdirectory.
The fnd (Application Object Library) directory contain the scripts and programs that are used as
the foundation for all Applications products
to build data dictionaries, forms and C object libraries.


Locations of Applications Environment Files 

On UNIX, Oracle Applications includes a consolidated environment file called APPS.env, which sets up both the Oracle Applications and Oracle
technology stack environments.  On Windows, the equivalent consolidated environment file is called
%APPL_TOP%\envshell.cmd.

3- Applications Database Organization
Schemas product code objects are stored in the APPS schema, whereas product data objects are stored in the relevant base product schemas.
The APPS Schema 
- has access to the complete Oracle E-Business Suite data model, analogous to the SYSTEM schema
- Applications responsibilities connect to an APPS schema, environment variable FNDNAM is set to the name of the APPS schema.
Relationship Between APPS Schema and Base Product Schemas
The base product schemas also contain grants from various tables and sequences to the APPS schema, as well as synonyms from the APPS schema to the same objects.


Note:Oracle user ID/password combination for Oracle General Ledger is GL/GL. Aata objects are created in their own schema, but the user accesses all data objects through the APPS schema.
Oracle Applications Release 12 requires an Oracle database block size of 8K. No other block size may be used.
Oracle Applications Tablespace Model (OATM)
Applications products in an OATM environment share a much smaller number of tablespaces, rather than having their own dedicated tablespaces.
Applications schema objects are allocated to the shared tablespaces based on two main factors: the type of data they contain, and I/O characteristics such as size, life span, access methods, and locking granularity. For example, tables that contain seed data are allocated to a different tablespace from the tables that contain transactional data.


4- AutoConfig
AutoConfig is a tool that simplifies and standardizes configuration management tasks in an Oracle Applications environment.
The Applications Context, Where the System Identifier (SID) has traditionally been used to identify a file as
belonging to a particular Oracle Applications environment, an Applications context is used in an AutoConfig-managed Applications environment.
The default context name, also referred here  as , is _.
AutoConfig simplifies procedures for activities that range from upgrading a technology stack component to starting and stopping Applications services.
The Applications context file, /appl/admin/.xml, is a repository for
environment-specific details used by AutoConfig to configure the application tier.


The database context file, /appsutil/.xml, performs an equivalent role on the database tier.

AutoConfig Scripts and Directories
A number of key configuration and control scripts (in window cmd) are employed in an AutoConfig environment. AutoConfig creates several directories for these scripts and their associated files.
• adautocfg.sh - Wrapper script that passes the name of the specific environment context file to adconfig.sh. Located in <INST_TOP>/admin/scripts on the application tier, and
<RDBMS_ORACLE_HOME>/appsutil/scripts/<CONTEXT_NAME> on the database tier.
• adconfig.sh - Invoked by adautocfg.sh, this script is a wrapper for adconfig.pl. Located in <AD_TOP>/bin on the application tier, and <RDBMS_ORACLE_HOME>/appsutil/bin on the database tier.
• adconfig.pl - Invoked by adconfig.sh, this Perl script calls the Java API to carry out the actual configuration tasks. Located in <AD_TOP>/bin on the application tier, and <RDBMS_ORACLE_HOME>/appsutil/bin on the databccase tier.

5-  Cloning
Cloning is the act of creating an identical copy of an existing Oracle E-Business Suite system. The system to be cloned is referred to as the source system, and the newly created system is referred to as the target system. Cloning an Oracle E-Business Suite Release 12 system can be accomplished by running the Rapid Clone tool.
Rapid Clone does not modify the source system. The adpreclone.pl script prepares the source system to be cloned by collecting information about the database, and creating generic templates from existing files that contain source-specific hard-coded values.
After running adpreclone.pl, you copy the relevant files and directories from the source system files to the target system, and then run the adcfgclone.pl configuration script.
6- Oracle Applications Manager
Oracle Applications Manager (OAM) is a powerful, easy to use tool that enables you to manage and monitor an Oracle Applications system from an HTML-based central control console.
Oracle Applications Manager Features
- The Applications Dashboard provides an overview of the key features of an E-Business Suite installation, including summaries of current status, performance, critical activities, diagnostics, business flows, and security.
- Oracle Applications Manager provides a comprehensive system configuration editor, for use in conjunction with the AutoConfig configuration management tool
- Helps track configuration changes and helps to detect potential configuration problems.
- Is used to control Oracle WF system services, such as background engines, notification mailers
- Enables you to mange all aspects of licensing your products and related features.
- Monitoring , provides extensive monitoring features for Oracle E-Business Suite.
- Maintenance, You can easily determine which patches have been applied to a system, including the
individual patches included in mini-packs, maintenance packs, and merged patches.
- Diagnostics and Repair, provides troubleshooting wizards that automate complex recovery steps.
- Support Cart, automates the collection of detailed node-specific information that can be sent to Oracle Support to assist with problem diagnosis.









7- High Availability

The subject of High Availability covers a range of features and options that can help to minimize planned and unplanned downtime, or facilitate recovery after a period of downtime.There are some key features that can help make an Oracle E-Business Suite highly available.
- Keep AD up-to-date - Running at the latest AD mini-pack level allows you to take full advantage of new features designed to reduce downtime and simplify maintenance.
- Use the Distributed AD feature - This helps make full use of available hardware resources.
- Use a shared application tier file system
- Keep your test system current with your production system - When you test the application of a patch, the test must be realistic in terms of current patch level and transaction data
- Perform maintenance during normal operation where possible - For example, you can gather schema statistics or patch online help while the system is in use.
Maintenance Mode
Maintenance Mode is a mode of operation in which the Oracle Applications system is made accessible only for patching activities. Maintenance Mode is only needed for AutoPatch sessions. You can toggle Maintenance Mode between Enabled and Disabled using the new Change Maintenance Mode menu in AD Administration, or the equivalent function in Oracle Applications Manager.
Nologging Operations
The nologging Oracle database feature is used to enhance performance in certain areas of Oracle E-Business Suite. For example, it is used during patch installation, and when building summary data for Business Intelligence.
8- Load Balancing

Load balancing is the means by which network traffic directed to a particular Web site is divided between one or more machines in a cluster of servers. Typically, the servers will all be running the same application, and use of load balancing presents the outside world with the appearance of a single server rather than a cluster. The relevant hardware device, often called a server load balancer, receives the relevant network traffic
for the site, and distributes it to the various servers in the cluster based on the load balancing methodology that it supports.
Categories of Load Balancer
Load balancers are not installed as part of Oracle E-Business Suite. However, Oracle E-Business Suite can be configured for use with them as required.
Session Persistent Load Balancers - After a client's HTTP connection is established with a particular server, subsequent HTTP requests from that client are directed to the same server, for the duration of the session. This persistency is also referred to as stickiness.
Non-Session Persistent Load Balancers - These load balancers use a round-robin strategy for balancing incoming HTTP requests, and do not maintain session persistent client connections. After a client's initial HTTP connection is directed to a given server, subsequent HTTP requests from that client will be not necessarily be directed to the same server.
Secure Sockets Layer (SSL) Accelerators - Secure Sockets Layer (SSL) accelerators can be used to reduce the SSL traffic and workload of the Web servers.

Load Balancing Options
Domain Name Server (DNS) Layer Load Balancing - This type of load balancer distributes end-user requests across multiple server nodes, based on dynamic assignments of IP addresses to a fully qualified domain name.
HTTP Layer Hardware Load Balancing - This type of load balancing can be used if you have a hardware load balancer that accepts HTTP communication and forwards it to a group of server nodes, sometimes
referred to as a farm.

9-Security
The foundation of security is access control, which refers to how the system is being accessed and by whom.
Authentication -  Identifying and verifying who is allowed to access the system. The most common approach is password-based authentication.
Authorization - On entering the system, the user should only be granted access to the features and
specific data needed to perform his job. The Function Security feature allows the System Administrator to manage the access privileges of individual users.
Audit Trail - An audit trail can be used to keep track of a user's transactions to verify that the user is not misusing his access privileges.
Network Security - An organization may or may not have physical control over the network infrastructure
in use for example internet. In such cases, HTTPS (secure HTTP) connection to the E-Business Suite is recommended.
Oracle User Management (UMX) is a secure and scalable system that enables organizations to define administrative functions and manage users based on specific requirements such as job role or geographic location.  With UMX instead of exclusively relying on a centralized administrator to manage all its users, an organization can, if desired, create functional administrators and grant them sufficient privileges to manage a specific subset of the organization's users.

Security Strategies
- restricting the availability of the passwords for accounts with DBA privileges
- setting up procedures for auditing DBA actions
- encrypting sensitive information

10- Network Topologies
Latency is the time for a packet to travel from its source to its destination, and is a key determinant of network efficiency. In general, Oracle E-Business Suite works very well with average latencies up to 300ms, and is usually found to give acceptable performance with latencies up to 500ms.
Satellite Links - If satellite links are to be used, the network stack should be examined and tuned by a
network specialist, to ensure device timeout settings
Wireless LANs - For the Oracle E-Business Suite, the most important issue is the stability of the connection.
Consider this factor when using EBS with such LANs.

11- Globalization Support
Globalization is the process of designing and deploying software that supports a global enterprise.  The majority of Release 12 Applications products provided multilingual support at the product data level, utilizing the Unicode character set. As Unicode supports all characters in common use in all of the world's modern languages, this means there is no inherent limitation on the number of supported languages that can be run in a single database.
National Language Support (NLS) refers to the ability to run an Applications instance in a supported language, including specific regional number and date formats.
Multiple Language Support (MLS) refers to the ability to support multiple languages in the same Oracle Applications instance.
Languages and Character Sets on the Database Tier
Before installing Oracle Applications, you should carefully consider the future language requirements of your installation. By default, Rapid Install creates a production database with the US7ASCII character set,
and a Vision demo database with a Unicode character set such as UTF8 .
The extended multilingual support present in the Applications Release 12 data model may increase database storage requirements. For a new installation, consider the database space required for a single language, and multiply this by the number of languages you will license.
Languages and Character Sets on the Application Tier
By default, Rapid Install creates the application tier file system for a production instance with the US7ASCII character set, and the file system for a Vision demo instance with the UTF8 character set. However, you can if desired choose any other supported character set during the installation.
Character Sets on the Desktop Tier
Language support, which includes support for data input methods, character sets, and fonts, must be available on the desktop client. The character set of the browser is set by Oracle Applications for each session.

12- Multiple Organization Architecture
The Oracle Applications Multiple Organizations Architecture (or referred to as Multiple Organizations), provides support for multiple organizations in a single installation of Oracle E-Business Suite, with relationships you define.
Tables that contain Multiple Organizations data can be identified by the suffix "_ALL" in the table name. These tables include a column called ORG_ID, which partitions Multiple Organizations data by organization.
Converting to Multiple Organizations
When you install a production E-Business Suite system, the data model is identical whether you implement Multiple Organizations or not. AD Administration utility is used for the initial conversion of seed
data and transaction data to Multiple Organizations format.

13- Reporting Currencies
The Reporting Currencies feature allows you to report and maintain accounting records
in more than one functional currency. You do this by assigning one or more reporting
currencies to your primary ledger or secondary ledger using General Ledger's
Accounting Setup Manager. A secondary ledger is an optional, additional ledger that is
associated with the primary ledger for an accounting setup. Secondary ledgers can be
used to represent the primary ledger's accounting data in another accounting
representation that differs in one or more of the following from the primary ledger:
• Chart of accounts
• Accounting calendar/period type combination
• Currency
• Subledger accounting method
• Ledger processing options, such as Suspense Posting

Building Screen from Scratch for Apps and some related questions

Question : what are the steps for building a screen from scratch?
Answer: Below steps in brief
A) Open up TEMPLATE.fmb, and save this as XXHELLOAPPS.fmb
B) Create a new window, by right clicking on Window/new
Name this window as XXHELLOAPPS,and assign it SubClass Type “WINDOW” from picklist.
C) Create a new canvas and name it XXHELLOAPPS , ensuring its Sublcass Type is “Content”
D) Make the windows property reference canvas XXHELLOAPPS and vice versa make the canvas reference windows XXHELLOAPPS.
E) Now create a block named XXHELLOAPPS . Lets keep this a control block for simplicity.
F) go to form level property, and set first navigation block to XXHELLOAPPS.
G) Add a label and a field named “Hello_World” to this block.
H) Generate the form on PC using Control-T keystrokes. This will ensure that nothing critical has been missed out.
I)  FTP the form file to $XXPO_TOP/forms/US
Surely, this XX will be replaced by the naming convention at your client/company.
J)  cd to  $XXPO_TOP/forms/US
And f60gen on XXHELLOAPPS.fmb
This will create a file executable as XXHELLOAPPS.fmx
K) Go to Application Developer responsibility
Menu /applicaton/form
Register the form
L) Register the Forms Function
This forms function must be registered against application "XX Purchasing".
M) Now add a menu item so that this forms function becomes available to specific responsibility.

Thats it, you will be able to open up this form from the responsibility.

Now some important notes:-
1. If you have a table based block, and if that block has some description type fields, then try not to fetch them from post query trigger. Instead, develop a view in apps schema and assign that view as base tale to this block. This has a benefit that users will be able to query on the description field if need be. Indeed you will need to do dml on the actual table yourself by overriding on-insert, on-update, on-delete and on-lock triggers.
2. For each block in the screen, create a form level package spec and package body. Your triggers in the block/block fields will make calls to that package.
3. Try not to do to much pl/sql within the form. Always do such database intensive operations in a database level package.
4. Try not using global variables, unless really needed. Give preference to the creation of form package variables.
5. In a multi record block, always add a field for Current Record Indicator.

Question: Is it a common practice to modify forms in Oracle Apps?
Answer: Yes and No.
Yes because you often will be called upon to modify the forms, but no because most often you should modify the screen without actually modifying the underlying forms executable .
Question: How can I modify screen without modifying the underlying executable ?
Answer: There are two ways, listed in the order of preferences:-
1. Forms Personalizations
2. CUSTOM.pll
Question: How does forms personalization work?
Answer: Oracle forms has triggers that we trap to write our business logic. Oracle has a standard practice of calling a generic piece of code from each trigger(at form level).  In this generic piece of code Oracle checks in personalizations tables to see if anything extra needs to be done for the events being executed.

Question: Fine then, but why is CUSTOM.pLL needed when we already have forms personalization?
Answer: Well just like any technology, forms personalization has its limitations.

Limitation example 1 of forms personalizations
---------------------------------------------------
For example you wish to prompt a message to user DO YOU WISH TO CREATE THIS PERSON AS SUPPLIER OR CUSTOMER OR EMPLOYEE. Lets say this message will prompt three options, create customer , create supplier or create vendor. Depending upon what user selects, you wish to navigate to one of relevant screens from the current TCA screen. For this, you have no choice but to use CUSTOM.pll

Limitation example 2 of forms personalizations
---------------------------------------------------
For example you wish to change the record group of a LOV, via changing its query, in a screen.  This can be done by CUSTOM.pll, but not by forms personalization.
Question: What about CUSTOM.pll, what can't be done via custom.pll ??  Hence calling for forms customization.
Answer: For example, you need to add a complete new section to the screen at a very specific location, this must be done via forms customization.

Question: how to identify the form executable?
Answer: There are two ways.
Method1
Open the form to be customized in Oracle Apps from respective Responsibility/Menu
Next select menu /Help/About Oracle Application.
Here, scroll down within the subwindow and search for fmx. This is the executable that oracle application runs when specific form is invoked.

Method2
Query the responsibility definition which has the form attached to this. Note down the Menu which is attached to Responsibility. Go to the menu definition screen and find the form function attached to this menu. From this form function find the form attached to this function.

Question:  what is the command for f60gen (change if window env)
Answer:
FORMS60_PATH=$FORMS60_PATH:$AU_TOP/forms/US
export FORMS60_PATH
cd $XXPO_TOP/forms/US
f60gen module=XXPOENTRY.fmb userid=apps/apps module_type=form batch=no compile_all=special

EBS Terms

eTRM is a pl/sql utility that reads design information in an Oracle database and displays its output in html format. It shows database design and dependency information for the Oracle eBusiness Suite. Enter the name of a database object (example: per_people_f) or a search condition (example: contract compliance) then press 'Search' to search for information. Alternatively you can browse the FND Model or Oracle Data Dictionary from the FND or DBA tabs

flexfield, as the name suggests, is a flexible data field that your organization can customize to your business needs without programming. A flexfield is a field made up of sub–fields, or segments. While flexfields do not require programming, they do allow you to perform significant customizations to the Oracle Applications, so they do require enough explanation for you to get the most out of the features they provide.
Oracle Applications uses two types of flexfields, key flexfields and descriptive flexfields. A key flexfield is a field you can customize to enter multi–segment values such as part numbers, account numbers, and so on. A descriptive flexfield is a field you customize to enter additional information for which your Oracle Applications product has not already provided a field.

Integration Repository, Think of it as a knowledge base of all integration points for the e-business suite. This provides you a complete catalog of Oracle E-Business Suite’s business service interfaces. You consider this as powerful tool that helps users to discover and deploy the appropriate business interface for integration with any system application .
You can access the IR as below
From E-business Suite, you need to add a Responsibility : Integration Repository
You can directly use Oracle's hosted url: http://irep.oracle.com/



Oracle Applications Framework, also referred to as OA Framework. This is a framework that excels at creating 3-tier web-based applications that link to an Oracle Applications instance while maintaining all the security features of that  instance. OAF is a model-view-controller technology stack that is fully oriented towards E-BS application development.

Oracle iSetup, to migrate data between instances of EBS and generate reports.

EBS Links

Access the Oracle E-Business Suite Electronic Technical Reference Manuals (eTRM).
http://etrm.oracle.com/pls/etrm/etrm_search.search


http://onlineappsdba.com/index.php/2008/07/02/install-oracle-apps-r1212i-on-windows/


blog
http://oracle.anilpassi.com/forms-customization-steps-in-oracle-applications.html


http://www.exforsys.com/tutorials/oracle-apps/oracle-apps-flex-fields.html


http://www.oracleappshub.com/ebs-suite/20-minute-guide-to-oracle-integration-repository/


for weblgoic
http://weblogic-wonders.com/weblogic/2009/10/11/creating-users-in-weblogic-server-embedded-ldap-programatically/

2day dba OBE
http://st-curriculum.oracle.com/obe/db/10g/r1/2day_dba/index.html
http://www.oracle.com/technetwork/tutorials/index.html

Configuring JDBC Data Sources
http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/wls/10g/r3/appdeploy/configure/datasource/conf_ds_wls.htm

Deploy and Undeploy Applications
http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/wls/10g/r3/appdeploy/deploy/deploy_apps/deploy_apps.htm

Create a Basic Cluster
http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/wls/10g/r3/cluster/create_basic_cluster/create_basic_cluster.htm

Configuring Managed Servers for Oracle WebLogic Server
http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/wls/10g/r3/installconfig/config_mngd_srvr/manage_wls_server.htm

Oracle Inventory Basic Setup Labs E-Business Suite R12 [ID 753741.1]

 How to Install Oracle Middleware 11g Rel 1 Forms / Reports Services Only? [Video] [ID 1088873.1]

How to Install Fusion Middleware 11.1.1.1 / 11.1.1.2 Forms and Reports Only [ID 854117.1]

http://forums.oracle.com/forums/thread.jspa?threadID=923709

 AIM

 http://www.oracleappshub.com/methodology/what-is-oracles-application-implementation-methodology-aim/
http://www.oraclechamps.com/solution-forum/9-Oracle-Applications-How-To/32-Oracle-AIM.html

Supply Chain Management (SCM) :Techno-functional Guide
http://www.oracleappshub.com/category/ebs-suite/technical/functional/


inventory
http://www.oracleug.com/user-guide/oracle-inventory/implemenation-inventory

accounting basics
http://www.accountingcoach.com/
http://www.bookkeeping-financial-accounting-resources.com/accounting-course-online.html