How To Customize Standard Oracle Application Using Custom Library – custom.pll


There are numerous scenarios for each customer to customize the standard Application. The following sample code demonstrate how to pop up an error message when customer business validation fails.
This note provides a detail steps for customizing the standard application using custom library.

The code attached here will validate number of digits entered in Customer PO Number field from the sales order form. If the number of digits exceeds 3 digits an error message needs to be populated.

  1. Take a back up of custom.pll and custom.plx from $AU_TOP/resource
  2. Have custom.pll, appcore.pll and appcore2.pll copied over to your local folder. The best method is to just copy the entire contents of $AU_TOP/resource
  3. Open CUSTOM.pll in Oracle Forms Developer
  4. Attach appcore2.pll to the custom library
  5. Modify the text of the CUSTOM package body in the appropriate section as below
  6. Save your changes and use the Oracle Forms Compiler program to generate a custom.plx file for the CUSTOM library
  7. Exit from Oracle Forms Developer.
  8. Verify that your file generated successfully. If path name is left blank the file will be generated in c:\orawin\bin (or platform equivalent). Move it to AU_TOP/resource.
  9. Retry it out from the Oracle Applications Navigator.

Sample

Modify the code CUSTOM package body as follows in the appropriate sections

procedure event(event_name varchar2) is
form_name varchar2(30) := name_in(‘system.current_form’);
block_name varchar2(30) := name_in(‘system.cursor_block’);
item_name varchar2(30) := name_in(‘system.cursor_item’); 
Begin
if (form_name = ‘OEXOEORD’and block_name = ‘ORDER’) then
   if LENGTH(name_in(‘ORDER.CUST_PO_NUMBER’)) > 3 then
     fnd_message.set_name(‘FND’,’Cust PO Number should be less than 4 digits’);
     fnd_message.Error;
     RAISE FORM_TRIGGER_FAILURE;
   End if;
End if;
End Event;

Output

If the customer PO Number in sales order form has less than 4 digits the form will not populate any error message. If the customer po number field has more than for 3 digits the error message will be populated.

Retry it from following steps:

1. Open the Application Navigator 
2. Navigate to Order Management Responsibility 
3. Open the Sales Order Form 
4. Enter the values in Custom PO Number field with 4 digits
5. While navigating to next field the following error message pops up   

Cust PO Number should be less than 4 digits

Advertisements

How To Make All The Responsibilities Read Only For A User


Here is a sample code could be used to make all the responsibilities read only for a specific user. I am sure we can use it in different variations.

1. Open the Custom.pll in the Form Builder.
2.Add the following sample code in the Procedure Event for the event WHEN-NEW-FORM-INSTANCE
3.Compile the Custom.pll and place under the directory $AU_TOP/resource

BEGIN
IF event_name = ‘WHEN-NEW-FORM-INSTANCE’ THEN
IF FND_PROFILE.VALUE(‘USER_NAME’)=’<USER_NAME>‘ THEN
BEGIN
COPY(‘Entering app_form.query_only_mode.’,’global.frd_debug’);
COPY(‘YES’, ‘PARAMETER.QUERY_ONLY’);
APP_MENU2.SET_PROP(‘FILE.SAVE’, ENABLED,PROPERTY_OFF);
APP_MENU2.SET_PROP(‘FILE.ACCEPT’, ENABLED,PROPERTY_OFF);
formname := NAME_IN(‘system.current_form’);
blockname := GET_FORM_PROPERY(formname, FIRST_BLOCK);
WHILE (blockname is not null) LOOP
IF (GET_BLOCK_PROPERTY(blockname, BASE_TABLE) is not NULL) THEN
SET_BLOCK_PROPERTY(blockname, INSERT_ALLOWED, PROPERTY_FALSE);
SET_BLOCK_PROPERTY(blockname, UPDATE_ALLOWED, PROPERTY_FALSE);
SET_BLOCK_PROPERTY(blockname, DELETE_ALLOWED, PROPERTY_FALSE);
END IF;
blockname := GET_BLOCK_PROPERTY(blockname, NEXTBLOCK);
END LOOP;
END query_only_mode;
END;

The above code will make all the Responsibilities read only for a specific user.

It will fundamentally make all the form functions to behave as passing the parameter QUERY_ONLY.

How To Setup A Custom Concurrent Host Program


1. Create UNIX Shell script using naming convention filename.prog
2. Place in the custom PRODUCT_TOP/bin directory-
3. Set protection on the Host Program
4. Link with program fndcpesr: Ex: link -s $FND_TOP/bin/fndcpesr $XXX_TOP/bin/hostprog Note: Exclude the .prog extension
5. Register Concurrent Program Executable
6. Register Concurrent Program Define
7. Add program to request group for Responsibility

Template Form in Oracle Applications


Template Form in Oracle Apps

This document provides an overview of the template form. This form derives its importance from the fact that this form is the starting point of all development involving forms. The document highlights the importance of Template.fmb in forms development and also provides a detailed explanation of the various components of the Template form.

Overview of the Template Form

The TEMPLATE form is the starting point for all development of new forms. The first step in creating a form for use in Oracle Applications is to copy the template form from $AU_TOP/forms/US, to a local directory and renaming it.

The Template form is unique because it contains some special libraries and triggers that render the application using the template form some standard characteristics. The components of the template form are:

· References to object groups: The template form contains platform–independent references to predefined standard object groups in the APPSTAND form. STANDARD_PC_AND_VA, STANDARD_TOOLBAR, and STANDARD_CALENDAR).

· Libraries: The template form contains platform–independent attachments of several libraries (including FNDSQF, APPCORE, and APPDAYPK).

· Special triggers: The template form contains several form–level triggers with required code. These are responsible for standard the behavior of the form.

· Predefined Program Units: The template form contains predefined program units that include a spec and a body for the package APP_CUSTOM, which contains default behavior for window opening and closing events.

· Applications Color Palette: The template form contains the application color palette. This gives the forms developed using the template form the look and feel of Oracle Applications

· Many referenced objects (from the object groups) that support the Calendar, the toolbar, alternative regions, and the menu. These objects include LOVs, blocks, parameters, and property classes, and so on.

· The TEMPLATE form contains sample objects that can be seen as examples for the expected layout cosmetics. These samples can be completely removed from the form later as they are only examples and are not required. The following objects are the samples and can be removed:

§ Blocks: BLOCKNAME, DETAILBLOCK

§ Window: BLOCKNAME

§ Canvas–view: BLOCKNAME

Hence, the template form comes along with many attachments, predefined program units, and defined visual attributes as well as examples that not only give the forms that are developed using the template.fmb a standard look and feel, but also make t easier to develop forms with consistent and standard functionality.

Libraries in the Template form

As stated above, the template form contains platform–independent attachments of several libraries. These libraries are used while running the form as a part of Oracle Applications. Hence, these libraries should not be changed or modified. There are three main libraries that are attached to the template form:

http://www.exforsys.com/images/OracleApps/t8_files/image002.gif

APPCORE: APPCORE contains the packages and procedures that are responsible for the standard ‘Oracle Applications’ behavior of the forms. The forms have to support the menu, toolbar, and other required standard behaviors in compliance with oracle applications. The Oracle Applications forms also have to display specific runtime behaviors in accordance with the Oracle Applications Interface Standards, such as the way in which fields are enabled, behaviors of specific types of windows etc. APPCORE contains the procedures to support this standard runtime behavior. APPCORE also contains various other utilities for exceptional handling, message levels, and so on.

APPDAYPK: The APPDAYPK library contains the packages that control the Oracle Applications Calendar feature. The calendar (or the date picker) is a utility that oracle apps provide to pick the dates for a date type field.

FNDSQF: FNDSQF contains packages and procedures for Message Dictionary, flexfields, profiles, and concurrent processing. It also has various other utilities for navigation, multicurrency, WHO, etc.

Other Libraries à The template form also contains a few other libraries that are not linked directly to the template form, but are linked to the three libraries listed above. Although, while using the form it makes no difference whether the library is linked directly to template or to another library that is linked to template. These are discussed below.

CUSTOM library: The CUSTOM library (CUSTOM.pll) is probably the most widely used and customized in the libraries attached to the template form. This library allows extension of Oracle Applications forms without modification of Oracle Applications code. Any form goes to the CUSTOM.pll whenever any event fires on the form. Code can be written in the CUSTOM.pll with the logic branching based on the form, block and trigger on which you want it to run.

You can use the CUSTOM library for customizations such as Zoom (such as moving to another form and querying up specific records), enforcing business rules (for example, vendor name must be in uppercase letters), and disabling fields that do not apply for your site.

GLOBE: The GLOBE library allows Oracle Applications developers to incorporate global or regional features into Oracle Applications forms
without modification of the base Oracle Applications form. Oracle Applications sends events to the GLOBE library. Regional code can
take effect based on these events. The GLOBE library calls routines in
the JA, JE, and JL libraries.

VERT: The VERT library allows Oracle Applications developers to incorporate vertical industry features (for automotive, consumer packaged goods, energy, and other industries) into Oracle Applications forms without modification of the base Oracle Applications form. Oracle Applications sends events to the VERT library. Vertical industry code can take effect based on these events. The VERT library calls routines in various other libraries.

JA: The JA library contains code specific to the Asia/Pacific region and is called by the GLOBE library.

JE: The JE library contains code specific to the EMEA (Europe/ MiddleEast/ Africa) region and is called by the GLOBE library.

JL: The JL library contains code specific to the Latin America region and is called by the GLOBE library.

Thanks Shivmohan Purohit

Oracle Reports (Report 6i) – Technical – Interview – Question Answers


Oracle Reports (Report 6i) – Technical – Interview – Question Answers

Question: How many types of columns are there and what are they

Formula columns: For doing mathematical calculations and returning one value
Summary Columns: For doing summary calculations such as summations etc.
Place holder Columns: These columns are useful for storing the value in a variable

Question: Can u have more than one layout in report

Answer: It is possible to have more than one layout in a report by using the additional layout option in the layout editor.
Answer: Yes it is possible to run the report without parameter form by setting the PARAM value to Null

Question:  What is the lock option in reports layout

Answer:  By using the lock option we cannot move the fields in the layout editor outside the frame. This is useful for maintaining the fields.
Question: What is Flex

Answer: Flex is the property of moving the related fields together by setting the flex property on

Question: What is the minimum number of groups required for a matrix report

Question: How many different triggers are available in Report?

Answer: There are five types of triggers in report 6i

1) Before report trigger

2) After report trigger

3) Before Parameter trigger

4) After parameter trigger

5) Between pages trigger

Question: What is the Firing sequence of report trigger?

Answer: First the before parameter trigger will raise, after firing this trigger parameter form will displayed, after passing parameter after parameter trigger will fire query will parsed & then before report trigger will fired then if there are number of pages in your report then the between pages trigger will fired but it will fire between first & second & so on pages but it will not fired in reverse condition the after report trigger will fire after closing the runtime parameter form is closed.

Question: What is bind variables?

Answer: Bind variables are used in report 6i for replacing the single parameter in the select statement

Question: What is lexical parameter?

Answer: Lexical Parameter is used to replace the where, order by ………conditions at run time.

Question: What are different types of column in reports?

Answer: There are three types of columns in the report 6i these are:

1) Placeholder Column – Placeholder column is used to store a value for a variable.

2) Formula Column

3) Summary Column

Answer: The minimum of groups required for a matrix report are 4

Question: Can u run the report with out a parameter form

Oracle Applications – Basics – Part 1


Hello Friends, here i am posting some of basic oracle applications questions , will try to collect more and put in future posts, here i am putting quite easy and basic questions. If you like to know Questions of any specific area or modules, plz communicate so i will post those as well.

What are Oracle Apps API?

Where APIs are physically store? n What is the latest version of API?

They are Application Program Interfaces, which are standard stored procedure, package or functions created for performing specific activities in the Oracle Apps E-Business Suite.

Ex: The Order Import API when called would create orders corresponding to the record in the Order Interface tables.

How to attach reports in Oracle Applications?

The steps are as follows:

1.          Design your report.

2.          Generate the executable file of the report.

3.          Move the executable as well as source file to the appropriate product’s folder.

4.          Register the report as concurrent executable.

5.          Define the concurrent program for the executable registered.

6.          Add the concurrent program to the request group of the responsibility.

How to attach Forms in Oracle Applications

1. Develop the form in Developer 2000.

2. Save the FORM and move it to UNIX. [Form to be moved to $CUSTOM_TOP/forms/US]

3. Define the FORM in Application Developer

4. Define FORM as FUNCTION.

5. Identify MENU, where the FORM to be attached. [SysadminResponsibilityDefine]

6.Copy the above MENU and go to Application Developer and query on MENU tab

What is the difference between Customization and Personalization?

Customization is done by making the changes in the cutom.pll whereas the Form Personalization is done through the Front End in Oracle Apps.

Difference between Key and Descriptive Flexfield?

key flex fields are used to identify particular entity like(accounts,objects) supoose take debit cards each debit card contain unique number to identify them. eg; 100-023-323 key flex fields are used to store this number along with description.

Unique Identifier

Key Flexfield are stored in segment

For key flexfield there are flexfield Qualifier and segment Qualifier

DFF’s are used to capture additional informtion required for our organization without any programming.

To capture extra information
Stored in attributes
Context-sensitive flexfield is a feature of DFF. (descriptive flexfield)

What is the difference between data conversion and data migration?

Data Migration is upgrading from one version to another version fro e.g. from 11.5.9 to 11.5.10.. Data Conversion is receiving data from a legacy system or receiving data from another module ( e.g. PA), validating it and converting it to ur our the target module using the standard import program.

What is the difference between Organization_id and Org_id ?

OrgId: Org Id is an unique ID for the Operating Unit.Organisation Id: The Organisation Id is an ID for the Inventory Organisation which is under an Operating Unit.

What are _ALL tables in Oracle Apps?

_all tables will store information about multiple oraganizations. these table contain ORG_ID column that  picks particular organizations from multiple organizations. _all tables will be created when we install multiorg.

What is one full life cycle implementation?

Full Life Cycle means implementing a project from the begining to the production and maintenance stage.

(1) System Planning:

(Scope & Budget of the Project)

(2) Business Analysis:

(Business Requirements, Mapping & GAP Analysis)

(3) System Analysis & Design

(Design Conceptual & Functional Data Models)

(4) System Development

(Programming & System/Integration/Validation Testing)

(5) System Implementation

(Data Conversions, Interfaces, Extensions,User Manuals & User Training)

(6) System Maintenance & Support

Thanks – Shivmohan Purohit

Distinction between configuration, personalization, and extensibility.


Distinction between configuration, personalization, and extensibility.

Configuration provides setup and administrative choices using the native features of the product. Some configuration examples include:

  • Profile Options
  • User-defined fields (Flexfield)
  • Function Security Setup
  • Data Security Setup
  • and a lot more….

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. Some personalization examples include:

  • Tailor the order in which table columns are displayed.
  • Tailor a query result.
  • Tailor the color scheme of the UI.
  • Folder Forms
  • Forms Personalization
  • Oracle Application Framework (OAF)

Extensibility is about extending the functionality of an application beyond what can be done through personalization. Some extensibility examples include:

  • Add new functional flows
  • Extend or override existing business logic
  • Using Oracle Forms Developer, Oracle JDeveloper and Oracle Workflow