Oracle Cloud offers a broad portfolio of software as a service applications, platform as a service, and social capabilities, all on a subscription basis. Oracle Cloud delivers instant value and productivity for end users, administrators, and developers alike through functionally rich, integrated, secure, enterprise cloud services.
 Get a Free Magzine ...Profit:The Executive's Guide to Oracle Applications

Subscribe to the OracleAppsHub to receive notifications when there are new posts:

 get RSS feed
 Oracle Fusion Applications (OFA) is a portfolio of next generation suite of software applications from Oracle Corporation. It is distributed across various product families; including financial management, human capital management, customer relationship management, supply chain management, procurement, governance, and project portfolio management
 Get a Free Magzine ...Profit:The Executive's Guide to Oracle Applications

How to use Key Flex Fields (KFF) in forms

Posted on August 23rd, 2007 by Sanjit Anand |Print This Post Print This Post |Email This Post Email This Post

These are the steps required to implement KFF in customization.

  • Define KFF fields in your database tables.

The custom table should contain a field named as XXX_ID (where XXX means the entity. For ex. PART_ID, CODE_COMBINATION_ID etc) to capture the selected code combination ID.

  • Register the table with Oracle AOL.
  • Register the KFF with Oracle AOL

Logon as

Application Developer -> Flex fields -> Key -> Register
Existing KFF can also be used. Ex. Accounting FF

  • Create KFF in the custom form

1. Create a form based on the custom table.

2. In the block, create two non-base table text items of data type CHAR (2000). One text item is to store the code combinations (Say BTL_KFF ) and other one is to store description of the code (Say BTL_KFF_DESC. Make this item as non-updateable).

  • Add KFF standard built-ins in the form to invoke KFF

    The custom table should contain a field named as XXX_ID (where XXX means the entity. For ex. PART_ID, CODE_COMBINATION_ID etc) to capture the selected code combination ID.

this is typical registration of KFF. For Customization in custom development here are the steps:

1. Write a form level trigger WHEN-NEW-FORM-INSTANCE to invoke the KFF as

Fnd_Key_Flex.Define(
Block => ‘block_name’,
Field => ‘concatenated_segments_field_name’,
[Description => ‘description_field_name’,]
[ID => ‘Unique_ID_field’
Appl_Short_Name => ‘application_short_name’,
Code => ‘key_flexfield_code’,
Num => ‘structure_number’,

In above defination take a note,

  • These arguments specify location
  • All fields must reside in same block
  • ID is for Key Flexfields only
  • These arguments indicate which flexfield is being used
  • Short name is application where flexfield is registered
  • SQLGL is Oracle General Ledger
  • SQLAP is Oracle Payables
  • Code identifies Key Flexfield
  • GL# is Accounting Flexfield
  • Num is Key Flexfield structure number. Default is 101

Usage

FND_KEY_FLEX.DEFINE(
block => 'Custom block',
Field => 'BTL_KFF',
Description => 'BTL_KFF_DESC',
ID => 'XXX_ID',
Appl_short_name => 'SQLGL',
Code => 'GL#',
Num => '101',
Vrule => 'GL_GLOBAL\nDETAIL_POSTING_ALLOWED \nE\nAPPL=''SQLGL'';
name=Parent Values are not allowed\nN'
);

2. XXX_ID will store the code combination ID for each selection.

3.Invoke Flexfield functionality by calling FND_Flex.Event(event) from:

  • PRE-QUERY
  • POST-QUERY
  • PRE-INSERT
  • PRE-UPDATE
  • WHEN-VALIDATE-RECORD
  • WHEN-NEW-ITEM-INSTANCE
  • WHEN-VALIDATE-ITEM


3. Write an item level trigger WHEN-NEW-ITEM-INSTANCE on BTL_KFF as

FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE')

4. Write an item level trigger KEY-EDIT on BTL_KFF as

FND_FLEX.EVENT('KEY-EDIT');

5. Write an item level trigger WHEN-VALIDATE-ITEM on BTL_KFF as

FND_FLEX.EVENT('WHEN-VALIDATE-ITEM');

IF :CUSTOM_BLOCK.XXX_ID = -1 THEN
FND_MESSAGE.SET_STRING('You Have Selected An Undefined Code Combination !');
FND_MESSAGE.SHOW;
RAISE FORM_TRIGGER_FAILURE;
END IF;

These steps makes you flexfield enable in your form.

A NOTE FOR FLEX FIELD DEFINATION

Lets take a close scan to understand some of the paramater used in Flex Field defination.

1. [Validate=> ‘{FOR_INSERT|FULL|PARTIAL|NONE|PARTIAL_IF_POSSIBLE}’,]

  • This is used only for Key FlexFields only
  • “For_Insert” used in a block where the code_combinations table is the base table
  • “Full” used where the code_combination_id is a foreign key in the base table
  • “None” when any value is allowed, such a range flexfield for query purposes
  • “Partial” validates segment values but not the full combination
  • “Partial_If_Possible” only used when the flexfield has dependent segments

2.[Vdate => ‘date’,]

  • Validation date compared to segment value start/end dates

3.[Required=>’[Y|N’,]

  • This is applicable only in the case for key flexfields only
  • ‘Y’ requires user to enter a valid value for every required segment, even if the flexfield is never navigated to
  • ‘N’ only requires required segments to be entered when the flexfield has been updated

4.[Displayable => ‘{ALL | flexfield_qualifier | segment_number} [\0{ALL|flexfield_qualifier|segment_number}]’,]

  • Key Flexfields only. Default is “ALL”
  • Naming flexfield qualifier or segment number causes only those segments to appear.
  • Toggle this parameter by specifying more than one value separated with \0
  • Display all but the first segment by specifying:
  • DISPLAYABLE=>’ALL\01’
  • Same parameters for Updateable and Insertable

5.[COPY=>’block.field\n{ALL|flexfield qualifier|segment number} [\0block.field\n{ALL|flexfield qualifier|segment number}]’,]

  • Again, key flexfields only.
  • Copy a form field value into the segment indicated by flexfield qualifier or segment number
  • Value must be valid for segment or it will be erased
  • Copy works in reverse when flexfield pop-up window closes
  • Example copies a form global variable into the natural account segment of the Accounting Flexfield:
  • COPY=>’GLOBAL.default_expense_obj\nGL_ACCOUNT’

6.[VRULE => ‘flexfield qualifier\n
segment qualifier\n
{I[nclude] | E[xclude]}\n
APPL=application_short_name;
NAME=Message Dictionary message name\n
Validation value1\n
Validation value2…
[\0flexfield qualifier\n
…

  • Key or range flexfields
  • Impose additional validation
  • ‘\n’ is delimiter between parameters
  • ‘\0’ is delimiter between groups of parameters

Posted in AOL, Beginner | 2 Comments »

AOL – Descriptive Flex Field ( Deep Drive)

Posted on August 22nd, 2007 by Sanjit Anand |Print This Post Print This Post |Email This Post Email This Post

As we have seen DFF provide customizable expansion space in the form to capture additional information, which are not provided at present. A DFF describes an application entity, providing form and database expansion space that can be customized.

Why Descriptive Flex fields

  • Customers require more data to be stored than what Oracle provides
  • Oracle gave us additional “space” in most tables to store this data
  • Descriptive Flexfields will survive an upgrade

Global vs Context Sensitive

  • Global Data Elements mean the question will be asked for every occurrence of the Descriptive Flexfield.
  • Context Sensitive Elements are questions asked “depending” on the answer to some other question. This “other” question can use a Reference field from above for its answer.

How Segments Use Underlying Columns

  • A DFF uses columns that are added onto a database table. The table contains any columns that its entity requires.
    The DFF columns provide ‘blank’ columns that you can use to store information which is not already stored in another column of that table.
  • A DFF requires one column for each possible segment and one additional column in which to store structure information(i.e. The context value).
  • You can define as many segments in a single structures as you have DFF columns in your table.
    The DFF columns are usually named as ATTRIBUTEn, where n is a number.
    dff

Implementing Descriptive Flexfileds
For implementing DFF it requires five steps:

  • Define DFF columns in your Database table
  • Register your table with AOL/ Pl/SQL scripts
  • Register Your DFF with Oracle AOL
  • Create Your DFF in Your Form
  • Add DFF routines to Your Form

Drawbacks of DFF

  1. Disk space is wasted.
  2. DFF has limited segment for global as well as context-sensitive attribute.
  3. No query possible on DFF segment values.

Posted in AOL, Beginner | No Comments »

AOL – Key Flex Field ( Deep Drive) – Part -II

Posted on August 22nd, 2007 by Sanjit Anand |Print This Post Print This Post |Email This Post Email This Post

In last post he have seen most businesses use codes made up of meaningful segments (intelligent keys) to identify accounts, part numbers and other business entities. For example a company might have a part number 'PAD-NR-GRN' indicating a Notepad, Narrow Ruled and Green. Another might have a different code structure for the same Notepad, Narrow Ruled and Green as 'GRN-NR-PAD'. Hence KFF provides the flexibility to define the code structure of any business entity in the customer-desired format without reprogram the application.

We all know , oracle GL uses a KFF called Accounting flex field to uniquely identity a GL account. Oracle have customized this KFF to include 6 segments like Company Code, Cost Center, Product, Product Line and sub account. Valid values are available to each segment and cross validation rules are provided for segment combinations. This KFF can be customized depends upon the business needs.

When to use a KFF

  • Used to uniquely identify an application entity with an intelligent key, where the key can be multipart and each part can have some meaning.
  • Use KFF that Oracle Applications provides to integrate your applications seamlessly with Oracle Applications.

What End User’s want there business Perspective

These are the things normally any business user want if implementation team and management avoiding any customization.

  • Customize the Flex fields Appearance
    • Flexfield title
    • Number and order of segments
    • Prompts
    • Value sets, values, and value description.
  • Use Flexfield Functionality for Validation
    • Individual segment validation
    • Cross-segment validation
  • Customize to the Situation
    • Flexfields allow the application to adjust to fit specific business needs.
    • Use multiple structures to match different needs in different situations.

The good things is that the above can be easily control and managed from screen, without any extra(Ordinary) skill ;)

Types of Key Flexfield Forms

In oracle application key Flexfield appears on three different types of application form :

  1. Combinations Form
  2. Foreign Key Form
  3. Range Form

These form types correspond to the types of tables that contains key flexfield data.

Create Key Flexfield Combinations

A combination is a particular complete code or combination of segment values that makes up the code that uniquely identifies an object. For example, each part number would be a single combination, and if you had ten parts you would define ten combinations. A valid combination is simply a combination that may currently be used.

Combinations Table
KFF1Each key Flexfield has one corresponding combinations table, known as the Combinations table, where the flexfield stores a list of the complete codes, with one column for each segment of the code, together with the corresponding unique ID number(a code combination id number or CCID) for the code. Then the other tables in the application have a column that stores just the unique ID for the code

 

KFF2

Foreign Key Form

  • Use the flex field code combinations from a form with a foreign key reference to the combinations table.
  • Internally the underlying Table Uses a Foreign Key
  • The unique ID primary key column of the combinations table serves as a foreign key column here.
  • Often the foreign key table contains a structure ID column as well. It can be best represented as figure below,

KFF3

Range From

  • Here table Contains Two Columns For Each Possible Segment
  • Often the table contains a structure ID column as well.
  • This form does not require actual combinations, and so does not need a foreign key link to the combinations table.
  • Perform operation on ranges of combinations using this form.
    KFF4

Create New Combinations Dynamically

Allow the defination of new flexfield combinations from forms with a foreign key references, as mention in the following diagram.

KFF5

Describe The Values In A Segment

  • A segment qualifier is like the segment asking each value a question “What type of value are you?”
    • For example, assign an account type of “Expense” to the Account segment value 3003.
  • Uses Segment Qualifiers with the Accounting Flexfield
    • Detail Budgeting Allowed.
    • Detail Posting Allowed.
    • Account Type: Asset, Expense, Liability, Ownership/Stockholde’s Equity, or Revenue.

Dynamically Insert Allowed

  • Set and change this property while defining the flexfield structure on the Define
  • Key Flexfield Segments form.
    • Sometimes this property is not technically feasible
    • If the combinations table includes mandatory columns that can not be filled by the flexfield.
    • Who columns, CCID columns, and enabled/activation date information can be filled by the flexfield.

This is all about the key flex field. Hopefully it would be good to start with , If you want to learn more about the concept, please do refer Flexfield user guide. Next will take another deep drive for DFF.

Posted in AOL, Beginner | No Comments »

Epicenter Forum

Posted on August 22nd, 2007 by Sanjit Anand |Print This Post Print This Post |Email This Post Email This Post

....comming soon

Posted in Oracle Application | Comments Off on Epicenter Forum

Testimonials

Posted on August 22nd, 2007 by Sanjit Anand |Print This Post Print This Post |Email This Post Email This Post

Date: Tue, 29 May 2007 10:39:17 -0700 (PDT)
Steven Chan wrote:
Just stumbled across your website via Technorati. Thanks for adding me to your blogroll. 

You've amassed quite a number of interesting articles in a short time.
Thanks for your contributions to the Oracle Apps community so far -- keep up the great work!

Regards,
Steven
....................................
Steven Chan
Director, Applications Technology Integration
Oracle E-Business Suite Development

Website: http://blogs.oracle.com/schan
IP: 148.87.1.172

 

Subject: Great Effort
From: "Ahmad Bilal" <abmian1981@gmail.com> 
Date: Mon, 9 Jul 2007 23:26:56 -0700 (PDT) 
 Ahmad Bilal wrote: 

Dear,

you are doing a great job my best wishes and prayers are with you.

Thanks.

Website: http://oracleebusinesssuite.blogspot.com/
IP: 124.29.206.77

Kaushik" <knsheth@hotmail.com> 
Date: Mon, 16 Jul 2007 18:01:53 -0700 (PDT)
   
Kaushik wrote:
Thanks for publishing such a wonderful information on Oracle apps &  some technical information. modules. I read the closing process for various modules.It is fantastic.If you could publish madatory set up steps for  chart of accounts and other modules along with the screen shots, it will be   very useful to me to enhance my knowledge. Or you can send it to my email address.
 I am learning functional part to be the SME. My background is acoounting and finance.Thanks for the info.

Website:
IP: 138.88.232.114

Ajay Kunde" <ajay78_hi@yahoo.com> 
Date: Thu, 19 Jul 2007 05:38:38 -0700 (PDT)
   
Ajay Kunde wrote:
Hi Anand,

The site which you have created with your experience is very good and  gives excellent idea on Oracle Applications.

Regards,
Ajay Kunde

Website:
IP: 205.173.93.39 

Dan Lamson <dan.lamson@smiths-medical.com> wrote:

Dan Lamson wrote:
Very nice! I bookmarked it. I have been trying to get a request set to be incompatible by checking allow  incompatibility. However I cannot run it or add it to a request group. Do you have any dealing with that? I have a TAR (SR) with oracle on it.

Thanks Dan
Website:
IP: 65.216.75.240
 

"Madhukar Chavan" <chavanmp@gmail.com>
Date: Sat, 18 Aug 2007 05:16:17 -0700 (PDT)
Madhukar Chavan wrote:
I would like to become a regular User of this website becasue the inforamtion is so usefull for new Oracle Apps candidates also for all peoples related  to Oracle Apps.
Website:
IP: 220.225.77.2 

 "Balaji Vaidyanathan" jilaba_tech@yahoo.co.uk

Tue, 21 Aug 2007 14:35:27 -0700 (PDT) 
Balaji Vaidyanathan wrote:
Hi Anand,

I just stumbled upon your site when searching for something. I initially thought the contributions are from a group of people. Then browsing through some posts, I realised that all the entries have been written by you.

It's a great service you are doing here. Your patience, intention to share knowledge and dedication is commendable. Please keep up the good work.

Warm Regards,
Balaji Vaidyanathan

Website:
IP: 64.74.66.230

"sunil" <sunil.msunil@gmail.com> 
Date: Tue, 21 Aug 2007 08:45:29 -0700 (PDT)
   
sunil wrote:
Hi
Ur site is Xllent. CasH managment is small module why dont U put topic on this and also TCA and More ON oracle apps dba related issues..Hoping Ur reply soon.
bye
Sunil
Website:
IP: 121.246.14.232

Wed, 22 Aug 2007 08:33:53 -0700 (PDT) 

prerana gupta <prerana_gupta@yahoo.com> wrote:

Thanks again. Your website is full of usefull information. You have really done a great job.

Prerana

Website:
IP: 192.168.176.125

Sun, 26 Aug 2007
E-mail : murali.2k4@gmail.com

Hi,

You are doing a great work.I felt I have hit upon a wealth of resource  when I started reading the articles in your blog.

Keep continuin the good work dude.

IP: 59.92.160.100

Posted in Oracle Application | No Comments »

AOL – Flex Field (Part -1)

Posted on August 21st, 2007 by Sanjit Anand |Print This Post Print This Post |Email This Post Email This Post

Some one requested last week to provide some information about flex fleld concept. Thought its good to take all into one.Next couple of post will focus on Flex field concept, need and design for custom requirement.

Oracle applications use key flex field to represent intelligent keys with unique ID numbers. ID numbers require only one column while intelligent keys will require multiple columns (one for each section or segment of the code).

Flexfield - A field made up of one or more segments. A segment corresponds to a column in an Oracle table.
Each segment has an assigned name and may have assigned data validation rules (Validation Sets).

Key Flexfield - A Key Flexfield represents an intelligent key that uniquely identifies an application entity. These keys identify accounts, part numbers etc. Each key flexfield has an assigned name and a specified set of valid values.
Examples: in G/L we have the Accounting Flexfield (Chart of Accounts); in Inventory it is the Item Flexfield, in Projects the Job Flexfield.

Descriptive Flexfield - Allows for the capture of additional information not stored in the default application, or strictly for reference when viewed on a screen.
You may create a Flexfield using any of “Attribute(n)” columns. Oracle reserved “Attribute(n)” columns on most of the tables to be setup during installation. These columns are not used by Oracle standard functionality.
You may expand the number of Flexfield values by using “context sensitive” feature.

Flexfield Types /What is the difference between a key flexfield and a descriptive flexfield?

Key Flexfield:

FLEX1

An intelligent key that uniquely identifies an application entity. Each key flexfield segment has a name you assign, and a set of valid values you specify.

FLEX2

Descriptive Flexfield

FLEX3

A field that your organization can extend to capture extra information not otherwise tracked by Oracle Applications. A descriptive flexfield appears in your window as a single character, unnamed field. Your organization can customize this field to capture additional information unique to your business. (Example: capturing state codes on selected journal lines)

FLEX4

Flexfield Key Terms

  • Accounting Flexfield : The code you use to identify a general ledger (GL) account in Oracle.
  • Segment: A subcomponent of a flexfield. Company and natural account are examples of possible segments in the accounting flexfield.
  • Flexfield Qualifiers : Balancing segment, cost center segment, natural account, inter-company segment.
  • Segment Values : Numbers or codes attributed to each segment.
    Value Set: A list of values for one segment, such as the list of companies, list of accounts, or the list of departments.
  • Code Combination : One full accounting flexfield with all segment values.
  • Dynamic Insertion / Cross-Validation : Automatic creation of account code combination based on rules defined with code combinations.

What is Accounting Flexfield

  • Accounting (Key) Flexfield segment one of up to 30 different sections of the accounting flexfield, which together make up a GL account code.
  • Accounting Flexfield structure - the combination of key flexfield segments defined to make up the account code combinations. If a segment(s) is added or removed or re-arranged, the result is a different structure.

When to use a KFF

  • Used to uniquely identify an application entity with an intelligent key, where the key can be multipart and each part can have meaning.
  • Use KFF that Oracle Applications provides to integrate your applications seamlessly with Oracle Applications.

Will take a deep drive for KFF and DFF in next post.

Posted in AOL | 1 Comment »

Enabling Folder – 9 Steps

Posted on August 21st, 2007 by Sanjit Anand |Print This Post Print This Post |Email This Post Email This Post

In oracle Applications' GUI includes unique features to enhance the productivity of Oracle's application users. Folder is one the features, that enhance the feature for high productivity.

What is Folder..

As per documentation is say .."A folder is a special kind of window that allows users to customize the set of fields and records displayed for a particular business entity without programming. Using the folder customization menu or tool palette, users can specify the records and the fields they wish to see, as well as field sequence, field prompts, and field display widths. Users can customize folders at any time, saving them for personal use or sharing them with others."

The most common use of folder technology is in the gateway to a key applications entity. Users can customize the folder window to display the set of fields and records that are most relevant to the business at hand. From the folder window, users can perform an action involving one or more of the returned records. Or, they can select a single record, open a detail window that shows all the fields for that record, and perform an action involving that record.

Here are the 9 steps to enable folders in custom forms.

These Changes will make sure that folder can be saved and its query criteria are also saved.

1. Pick up Template.fmb from your $AU_TOP/resource directory on server where forms are residing.

2. Check out all the libraries get loaded successfully along with the Template.

3. Check for APPDAYPK.pll loaded fine, else copy it from APPSTAND.fmb

4. Attach APPFLDR library/pll

APPFLDR can be found in $AU_TOP/Resource directory on server where forms are residing.

5. Copy the STANDARD_FOLDER Object Group

STANDARD_FOLDER Object group can be referenced from APPSTAND form which resides in $AU_TOP/Resource. This will also copies the dependent objects required for object group.

This will copy Folder Related Blocks,Canvases and other necessary objects.

6. Let us say we have One Main block, Not concerned with Control Blocks
Main Block:

XXPH_RCPT_HIS then

Create <BLOCKNAME>_RECORD_COUNT parameter
as XXPH_RCPT_HIS_ RECORD_COUNT parameter
where BLOCKNAME is the name of the block containing columns to be displayed. Data Type should be Number and Put default Value of 2.

Canvas
You need two canvas- one content and one stacked. Let us name content canvas as XXPH_RCPT_HIS_CONTENT and stacked canvas as XXPH_RCPT_HIS_STACKED. Both the canvas have same window.

Windows
Create One Window. Name it XXPH_RCPT_HIS_WIN with view name as XXPH_RCPT_HIS_WIN

Blocks
Main Block:
XXPH_RCPT_HIS contains database columns. Items should be on Stacked canvas (XXPH_RCPT_HIS_STACKED).

7. Create following eight triggers:

WHEN-NEW-BLOCK-INSTANCE
app_folder.event('WHEN-NEW-BLOCK-INSTANCE');

KEY-PREV-ITEM
if (:parameter.XXPH_rcpt_his_record_count = 1) then
previous_item;
else
app_folder.event('KEY-PREV-ITEM');
end if;

KEY-NEXT-ITEM
if (:parameter.xxph_rcpt_his_record_count = 1) then
next_item;
else
app_folder.event('KEY-NEXT-ITEM');
end if;

PRE-BLOCK
app_folder.event('PRE-BLOCK');

POST-BLOCK
app_folder.event('POST-BLOCK');

PRE-QUERY
app_folder.event('PRE-QUERY');

KEY-EXEQRY
app_folder.event('KEY-EXEQRY');

POST-QUERY
app_folder.event('POST-QUERY');

8. PROMPT Block:

Create new block XXPH_RCPT_HIS_PROMPT: which will contain prompts for the column displayed in upper block.

Make subclass information as DYNAMIC_PROMPT.

This block should contain:

Items which will be Prompts for above block columns (Item name should be same as Column name in above block). Prompt Items should be on Stacked canvas (XXPH_RCPT_HIS_STACKED).

Create new Items specified below:
Item Name: FOLDER_OPEN, Item Type: Button, Canvas: XXPH_RCPT_HIS_CONTENT,Subclass:Dynamic_Title
Item Name: FOLDER_DUMMY, Item Type: Text Item , Canvas: TOOLBAR ,Subclass:Folder_Dummy
Item Name: FOLDER_TITLE, Item Type: Display Item, Canvas: XXPH_RCPT_HIS_CONTENT,Subclass:Dynamic_Title

Item Name: ORDER_BY1, Item Type: Button, Canvas: XXPH_RCPT_HIS_STACKED
Item Name: ORDER_BY2, Item Type: Button, Canvas: XXPH_RCPT_HIS_STACKED
Item Name: ORDER_BY3, Item Type: Button, Canvas: XXPH_RCPT_HIS_STACKED
Item Name:Folder_Switcher, Item Type:Text,Canvas: XXPH_RCPT_HIS_CONTENT,Subclass:SWITCHER

Check out your Both Canvases for setting these new buttons,prompts.

9. Form Level Triggers

FOLDER_ACTION
--
-- Remove the message and uncomment the line after it to activate the folder actions
--
-- message('You must modify the FOLDER_ACTION trigger in your form!');
app_folder.event(:global.folder_action);

WHEN-NEW-FORM-INSTANCE
app_folder.define_folder_block(' XXPORCHUK ', -- 'Object Name'
' XXPH_RCPT_HIS ', -- 'folder_block',
' XXPH_RCPT_HIS_PROMPT ', -- 'prompt_block',
'XXPH_RCPT_HIS_STACKED', --'stacked_canvas',
'XXPH_RCPT_HIS_WIN', --'window',
NULL); --'disabled functions');

Posted in AOL | 14 Comments »

Beginner’s Guide : Concurrent program/Manager output and log file- Part – IV

Posted on August 19th, 2007 by Sanjit Anand |Print This Post Print This Post |Email This Post Email This Post

Once Concurrent program get complete, there are two file generated as follow:

  • The Log File

Log files are stored under $APPLCSF/$APPLLOG if $APPLCSF is set and under $APPLLOG for each application if $APPLCSF is not set. The log file naming convention is the letter L, followed by the concurrent request ID, followed by the extension .req .

  • The output File

Output files are stored under $APPLCSF/$APPLOUT if $APPLCSF is set and under $APPLOUT for each application if $APPLCSF is not set. The output file naming convention is Application User name.Request ID.
output

For the Information purpose, here are few for your interest.

  • APPL_TOP - this is the top level directory for the Applications
  • APPLCSF - the top level directory where the concurrent manager stores the log and out files of concurrent requests
  • APPLLOG - concurrent request log files( As describe above)
  • APPLOUT - concurrent request out files( As describe above)
  • APPLTMP - Applications temporary files
  • APPLPTMP - PL/SQL temporary files

Is there any naming conventions for the log file and output file?

Request log files: l<request id>.req
Output files:

  • If $APPCPNAM is not set: <username>.<request id>
  • If $APPCPNAM = REQID: o<request id>.out
  • If $APPCPNAM = USER: <username>.out

Where: <request id> = The request id of the concurrent request And: <username> = The id of the user that submitted the request

Where are the managers logfiles goes:

Similar to concurrent requset output and log, the concurrent manager does also generate some files and typical naming convention are as below:

ICM logfile: Default is std.mgr, can be changed with the mgrname

  • Concurrent manager log: w<XXXXXX>.mgr
  • Transaction manager log: t<XXXXXX>.mgr
  • Conflict Resolution manager log: c<XXXXXX>.mgr

Where: <XXXXXX> is the concurrent process id of the manager.

Posted in AOL | 9 Comments »

Beginner’s Guide : Understanding Concurrent Managers – Part – III

Posted on August 19th, 2007 by Sanjit Anand |Print This Post Print This Post |Email This Post Email This Post

Here is the explanation how you can define concurrent managers and specify when a manager is enabled.

A concurrent manager is itself a concurrent program that starts other concurrent programs running. When an application user submits a request to run a program, the request is entered into a database table that lists all of the requests. Concurrent managers read requests from the table and start programs running. See: Concurrent Managers.

Next , we explain how to specify when a manager is enabled, how to use managers to balance your applications processing workload across different time periods, and how to associate a library of immediate concurrent programs to be called by your manager.

Defining new managers

You can define as many concurrent managers as you want. When you define a manager, you:

  • Assign a predefined library of immediate concurrent programs to your manager.
    • Immediate concurrent programs are subroutines associated with concurrent managers. All other concurrent programs are spawned as independent processes at run time.
  • Assign work shifts to your manager, which determines what days and times the manager works.
  • For each work shift, you define the maximum number of operating system processes the manager can run concurrently to read requests (start programs) during the work shift.
  • Specialize your manager to read only certain kinds of requests.

Program Libraries

For a program that is spawned, a concurrent manager initiates or spawns another operating system process. A program that is immediate runs as part of the concurrent manager's operating system process.

A program library contains immediate concurrent programs that can be called by your manager.

An immediate concurrent program must be registered with a program library. Application developers using Oracle Application Object Library can register concurrent programs with a program library.

The Oracle Application Object Library FNDLIBR program library contains Oracle Applications immediate concurrent programs, and is assigned to the Standard concurrent manager. In most cases, you will include the FNDLIBR library with your manager's definition.

The Concurrent Manager Managing request

A typical Concurrent manager is managing request in typical the flow which is described below.

ConcurrentManager

And if Concurrent manager is having work shift set up , one the top of above process, the best can be described as:

ConcurrentManager2

How many Concurrent Managers available in oracle Apps

Similar to other products in there are seeded, Transaction and Other Concurrent Managers available. The Creation of custom manager is also possible , I am unable to throw some light, as i hadn't exposed to setting up of these area . In a typical implementation , it would be taken care by DBA's , and you can find some documents in system admin user guide for further details.Here , I am going to list of the concurrent manager which are used for some of processing within the product.Lets start to explore options for managers in EBS Suite:

The Seeded Concurrent Managers
Oracle seeds the Internal Manager and Conflict Manager with every implementation. Here are the list of some of them:

  • Internal Manager

The internal manager is the highest level manager that controls all the other managers

  • Conflict Resolution Manager

Resolves request conflicts. When programs are defined with incompatibilities with other programs, both programs will show up in the Conflict Resolution Manager if they are both trying to run at the same time. Programs that are submitted but have no place to run because of incorrect setup choices for the concurrent managers will also show up under the Conflict Resolution Manager.

The Transaction Managers

  • Inventory Manager
    • Runs Inventory Programs. As seeded, the Inventory Manager has a number of individual programs assigned to it
  • MRP Manager
    • Runs the Planning Manager. The MRP Manager is seeded by Oracle to only run the Planning Manager program. You may consider assigning a small number of other concurrent requests, including the MRP processes, to this manager if you are a heavy manufacturing user, to pull these critical processes out from under the Standard Manager.
  • PA Streamline Manager
  • Standard Manager
    • The general queue for handling requests. The Standard Manager was set up to run all concurrent requests.

You can find the details in earlier post.

Posted in AOL | 1 Comment »

Beginner’s Guide : Administering Concurrent Program – Part – II

Posted on August 19th, 2007 by Sanjit Anand |Print This Post Print This Post |Email This Post Email This Post

In last post I have already discussed about Concurrent program and bit on Concurrent manager. Concurrent program are one of core functionality that oracle offered to handle some internal process without affecting other processing. So let take a deep drive for Concurrent Program. Lets start the definition once again.

  • A “Concurrent program” is an executable file that gets executed by Oracle Applications with the ability to run simultaneously and in the background with other programs.
  • Typically, a concurrent program is a long-running, data-intensive task, such as posting a journal or generating a report.
  • The execution of these programs is controlled by the Concurrent Manager.

The Flow

Typical flow of concurrent processing can be best describe in above diagram as discussed in Developer guide

Concurrentprg

3 W and 1 P for concurrent program

When A concurrent program actually starts ?

... Best answer is Concurrent Program normally running based on:

  • When it is scheduled to start
  • Whether it is placed on hold,
  • Whether it is incompatible (cannot run) with other programs
  • Its request priority

The priority of a concurrent request is determined by application user name, and is set by the System Administrator using the Concurrent:Priority user profile option.

The first available concurrent manager compares the request's priority to other requests it is eligible to process, and runs the request with the highest priority.

When choosing between requests of equal priority, the concurrent manager runs the oldest request first.

Often, several programs may be grouped together, as in a request set. Submitting the request set as a whole generates a request ID, and as each member of the set is submitted it receives its own request ID. The set's request ID identifies the Parent request, and each of the individual programs' request ID identifies a Child request.

Life Cycle of a Concurrent Request

A concurrent request has a life cycle consisting of the following phases:

  • Pending Request is waiting to be run
  • Running Request is running
  • Completed Request has finished
  • Inactive Request cannot be run

Within each phase, a request's condition or status may change. Below appears a listing of each phase and the various states that a concurrent request can go through.

Concurrent Request Phase and Status

This is chart which shows the conditions by stage.

conreq

Posted in AOL | Comments Off on Beginner’s Guide : Administering Concurrent Program – Part – II

Page 2 of 41234

« Previous Entries Next Entries »