EBS Customization Case IV: Key Flexfields (KFFs)

By Jag - September 10, 2012
Q52: What’s Key Flexfields (KFFs)? What’s the difference between KFFs and DFFs?
Q53: What if there is no such thing as key flexfields?
Q54: What if consider a new approach using a key flexfield?
Q55: Does Every Key Flexfield Always Have a Dedicated Table?
Q56: Do All the Tables That Are Used for Storing Key Flexfields Have Columns Named SEGMENT1, SEGMENT2…SEGMENTX?
Q57: Does Oracle Deliver Key Flexfields out of the Box?
Q58: What Are the Steps for Configuring a Key Flexfield?
Q59: Is there anything that can prevent the creation of invalid segment combinations?
——————————————————————————–
Q52: What’s Key Flexfields (KFFs)? What’s the difference between KFFs and DFFs?
Key flexfields in E-Business Suite allow businesses and other organizations to create user-definable, unique composite keys such as accounting codes, item codes, and many others.
The key difference between descriptive and key flexfields is that DFFs usually collect user-defined additional information related to entities, while KFFs provide user-defined, unique keys or identifiers for entities.
Q53: What if there is no such thing as key flexfields?
Assume for a minute that there is no such thing as key flexfields and all you have on a screen or inside a table is a descriptive flex.
Assume that the basic requirement is to be able to capture values in the following additional fields for a purchase order and invoices transaction:
Company name: GM
Cost Centre: IT
Project: OFP (Oracle Fusion Project)
Expense Type: OCC (Oracle Consultant Cost)
If you had only DFFs available as a configuration option, when the business raises a purchase order to IT Consulting Company, the PO_DISTRIBUTIONS_ALL table would store values for following columns in a record:
ATTRIBUTE1 : GM
ATTRIBUTE2 : IT
ATTRIBUTE3 : OFP
ATTRIBUTE4 : OCC
When an invoice is received from the consulting company, the payables clerk would capture the Invoice Line accounting as follows in AP_INVOICE_DISTRIBUTIONS_ALL:
ATTRIBUTE1 : GM
ATTRIBUTE2 : IT
ATTRIBUTE3 : OFP
ATTRIBUTE4 : OCC
In other words, if DFFs were used for capturing the accounting details as in the example, then the four text values for fields (ATTRIBUTE1…4) would be physically duplicated in each module for the related transactions.
Imagine further when this transaction flows to the Oracle General Ledger. Given the nature of DFF, the Oracle Database would again have to store the four columns physically into table GL_JE_LINES. If so, the table GL_JE_LINES would have the following values in its DFF (Descriptive Flex) columns:
ATTRIBUTE1 : GM
ATTRIBUTE2 : IT
ATTRIBUTE3 : OFP
ATTRIBUTE4 : OCC
As you can see, such a design using a descriptive flexfield is flawed, as it causes duplication of data at various places. It is also possible that the same combination of GM-IT-OFP-OCC would be required against thousands of other purchase order records, and the text GM-IT-OFP-OCC would be duplicated across many tables and many records in each such table.
Q54: What if consider a new approach using a key flexfield?
Clearly, the descriptive flexfield does not fit into above scenario. Let’s now consider a new approach using a key flexfield. In this example, you have a table named GL_CODE_COMBINATIONS with the following columns:
CODE_COMBINATION_ID
SEGMENT1
SEGMENT2
SEGMENT3
SEGMENT4
You capture a single record in the table GL_CODE_COMBINATIONS as shown:
Column Name    Column Value
CODE_COMBINATION_ID         50493    ** a unique number value
SEGMENT1    GM
SEGMENT2   IT
SEGMENT3    OFP
SEGMENT4    OCC
Now, in the PO_DISTRIBUTIONS_ALL table, you will have a column with the value CODE_COMBINATION_ID = 50493 that refers to the unique key combination of the record in the KFF table.
In the Account Payables module, even though a clerk enters the values for four columns (one for each segment), the database stores only the reference value 50493 in the column CODE_COMBINATION_ID of the Payables Distributions table.
Ditto
for the entry in the GL_JE_LINES table in the Oracle General Ledger module: only the ID that references those four columns will be stored. Therefore, all the tables (Purchase Order Distributions, Payables Distributions, and General Ledger Journal Lines) will reference just the CODE_COMBINATION_ID. This concept of having a unique ID that maps to a combination of othervalues is called key flexfields.
Q55: Does Every Key Flexfield Always Have a Dedicated Table?
Yes. Every key flexfield has a table dedicated to store the unique combination for a group of fields. For the GL accounting key flexfield, there is a table named GL_CODE_COMBINATIONS. Another example is grades in Oracle Human Resources. An HR grade can be defined as a combination of, say, Clerk + Senior or Clerk + Junior. These combinations will be stored in the PER_GRADES table.
Q56: Do All the Tables That Are Used for Storing Key Flexfields Have Columns Named SEGMENT1, SEGMENT2…SEGMENTX?
Yes. It is a standard practice used by Oracle to give generic names like SEGMENT1, SEGMENT2…SEGMENTX to these columns. These segment columns are generic columns so that each E-Business Suite customer can reference them by whatever name he or she likes and by giving the desired prompt name to the key flexfield segment.
Q57: Does Oracle Deliver Key Flexfields out of the Box?
Oracle delivers many KFFs out of the box, but you will have to configure their segments as per business needs. You can also create new KFFs in Oracle Apps;however, this is a very rare requirement and is not covered in this book.
Q58: What Are the Steps for Configuring a Key Flexfield?
Navigate to the Application Developer responsibility and click the menu Flexfield| Key |Register. In this screen, you can get the title of the flexfield against a table name. Next, navigate to the KeyFlexfield segments screen (Flexfield | Key |Segments) and query using the flexfield title. In the KFF Segments screen, the desired segments can be configured in a manner similar to that for descriptive flexfields.
Unlike the descriptive flexfields setup, the configuration of key flexfields is usually a one-off exercise, normally performed by functional analysts during the initial implementation.
 
 Q59: Is there anything that can prevent the creation of invalid segment combinations?
Yes, it’s called Cross Validation Rules (CVRs). For example, a Location key flexfield can have two structures, say one for each country, the U.K. and the U.S. For the U.S. flexfield structure, you can define a cross validation rule that excludes COUNTY=NY and CITY=ABERDEEN. At the time of defining cross validation rules, you also specify the accompanying error message that the end user will receive if he or she uses the wrong combination of values in segments.
Whenever any component of the Oracle Applications attempts to create a new segment combination, the flexfield engine checks all the cross validation rules against that KFF structure to ensure that the combination is valid. If the combination fails to pass a rule, the error message associated with that rule is displayed to the end user. CVRs are applied to all users in Oracle Apps, but they are not applied to existing combinations.
  • Share:

You Might Also Like

0 comments