Skip to main content

Differences between KFF and DFF

In my first blog, I would like to talk about the fundamentals of Oracle Apps HRMS as well as AOL. I would like to cover the following points:
1. What are KFFs and DFFs?
2. Why do we need them?
3. What are the differences between them?
4. Why do we need two different structures. In other words, if we have KFF then why do we need a DFF?

I would start with a similarity for the two which explains the first and second point. Both KFF and DFF are entities provided to developers by Oracle apps to extend a screen.You put n number of fields on a seeded* screen, still at end of the day, due to some business requirement, you will need to add new fields. KFF and DFF are mechanism to achieve this without customizing the form it self.

So whats the difference between the two?
Difference 1: The key difference between them is, a DFF extends a screen whereas a KFF extends a field in a screen. For eg on Assignment screen, you have a DFF as well as few KFFs. There are lots of fields which capture assignment related information. However, there might be some information specific to your company which is not captured like: is the assignment billable, does the assignment come under flexi-plan. You use DFF to capture these fields.
Each company has a different Job, Position, Grade structures. Having a flat LOV for all position doesnt sound efficient as your company might plan to give bonus to all band 5 consultants. An efficient way is to segmentize your positions. This is achieved using KFF. Your position may consists of 3 segments: Position code, Postion Title, Band. This explains point 4.

Difference 2: DFF is a 1 table structure where as KFF is 2 table structure. When you enter data in a DFF the information is stored in columns of a single table. For eg Assignment DFF has the information stored in PER_ALL_ASSIGNMENTS_F. Whereas in case of a KFF, the concatenated segments are stored in one table and the individual segments in another. For eg, Job KFF has the concatenated segments stored in PER_JOBS and the individual segments in PER_JOB_DEFINITION

Difference 3: For KFFs you might require an additional screen (master) using which you can enter a list of valid combinations for the segments. For example, you have a Job Description screen where you define all the list of valid combinations of job segments. These combinations are selected in the assignment screen (transactional). For DFF, you directly use the transactional screen

*Seeded or Vanilla entity: is an object provided by oracle apps and is being used as it is ie without any customization

Comments

Thank you so much for making it very clear with the examples. Perfect.