Sunteți pe pagina 1din 4

Apps

Differences between EIT and SIT in HRMS


Contributed by Anil Passi
Thursday, 22 February 2007

The main difference between Special Information Types and Extra Information Types is that SIT is KeyFlexfield whereas
EIT is Descriptive Flexfield.

What does this mean for your implementation?


In the context of SIT being KFF, you attach a combination of attribute values to a Person Record.
Let's take an example.
Say we have a requirement to capture two fields against a Person
Field 1 :- Smoker Yes/No
Field 2:- Colour Blind Yes/No

In case of SIT, assuming there are two non-smokers and neither of those are colour blind, then there will be just one
record in table PER_ANALYSIS_CRITERIA
Segment1 = N
Segment2 = N
ANALYSIS_CRITERIA_ID=1000

For both these people, their respective SIT records in PER_PERSON_ANALYSES will reference
"ANALYSIS_CRITERIA_ID=1000"
Think of this like CODE_COMBINATION_ID in GL_CODE_COMBINATIONS, and compare that to
PER_ANALYSIS_CRITERIA

However in case of EIT, assuming same example as above, two physical records will be created in table
PER_PEOPLE_EXTRA_INFO
PERSON_ID PERSON_EXTRA_INFO_ID PEI_INFORMATION1 PEI_INFORMATION2
----------- ------------------------ ------------------- --------------------
104332 100000 N N
104332 100001 N N

Should my decision be based upon saving space in the database, so that records can be reused in case of SIT?
Not really, space is hardly an issue these days in ERP systems, few bytes here or there make no difference at all to
database sizing.
However there are other differences that can be considered in making this decision.

Updates made to SIT's are less efficient


In this example, if a person were to become a Smoker from non-Smoker, then, when you update persons SIT record,
Oracle will query PER_ANALYSIS_CRITERIA to check if a combination of Y[smoker] and N[Colour Blind] already exists
in that table. If such record combination is not found, then Oracle will create such combination in
PER_ANALYSIS_CRITERIA. Following that record creation, PER_PERSON_ANALYSES will be updated to reflect the
new ANALYSIS_CRITERIA_ID for Y & N combination.
However in case of EIT, Oracle would have to merely update the PER_PEOPLE_EXTRA_INFO table.

During implementation, when deciding between EIT and SIT, should I ask myself a question that- how often will Extra
Information be modified?
Indeed, given that columns segment1, segment2.....segment30 in PER_ANALYSIS_CRITERIA are not usually indexed
[unlike in gl_code_combinations]

At what Levels do EIT work?


TABLE_NAME DESCRIPTION
PER_ASSIGNMENT_EXTRA_INFO Extra information for an assignment.
HR_LOCATION_EXTRA_INFO Extra information for a location.
PER_JOB_EXTRA_INFO Extra information for a job.
PER_PEOPLE_EXTRA_INFO Extra information for a person.
PER_POSITION_EXTRA_INFO Extra information for a position.
PER_PREV_JOB_EXTRA_INFO Previous Jobs extra info
PAY_ELEMENT_TYPE_EXTRA_INFO Stores extra information for an element
PER_CONTACT_EXTRA_INFO_F Extra information for a contact relationship.
http://oracle.anilpassi.com Powered by Joomla! Generated: 7 January, 2011, 14:27
Apps

HR_DOCUMENT_EXTRA_INFO Documents of Record Information However in case


of SIT's, those are usually defined at Person Level [although these SIT can be enabled at Job/Position level too].

PER_PERSON_ANALYSES table has date_from and date_to. Does this mean a SIT Combination for a person can be
end-dated?
Correct, you can implement a date-track kind-of model with SIT [not true date-tracking though, as inactive record are
displayed in screen too]
However in case of EIT, in order to implement a similar logic for date ranges, you will have to use PEI_INFORMATION1
to capture DATE_FROM, and use PEI_INFORMATION2 to capture DATE_TO

However Security model of SIT differ from that of EIT?


The security model of EIT is more advanced than SIT.
If an SIT is made available to responsibility via Taskflow, then all the Special Information Type Contexts[ SIT KFF
Contexts] will be available to the user.
See link Basics of Special Information Types to see the steps for defining and enabling SITs in Oracle HRMS.

Security of EIT is a two step process


Step 1 for EIT Security :- Register EIT for its usage in a specific Legislation Code
To make an EIT visible for a given Legislation, a record must be entered in EIT registration table for LegislationCode &
EIT combination[see the pl/sql procedure at the bottom of this article to see list of those table]. Instead of executing the
procedure below, you may decide to run concurrent program "Register Extra Information Types (EITs)"

Step 2 for EIT Security :- Make the registered EIT available to specific Responsibility using screen "Information Type
Security"

PL/SQL Code in case you wish to register EIT using SQL


CREATE OR REPLACE PROCEDURE register_type(v_table_name IN VARCHAR2
,v_info_type_name IN VARCHAR2
,v_active_flag IN VARCHAR2
,v_multi_row IN VARCHAR2
,v_desc IN VARCHAR2
,v_leg_code IN VARCHAR2) IS
BEGIN
--
IF v_table_name = 'PER_PEOPLE_INFO_TYPES'
THEN
--
INSERT INTO per_people_info_types
(information_type
,active_inactive_flag
,multiple_occurences_flag
,description
,legislation_code
,object_version_number)
VALUES
(v_info_type_name
,v_active_flag
,v_multi_row
,v_desc
,v_leg_code
,1);
--
ELSIF v_table_name = 'PER_ASSIGNMENT_INFO_TYPES'
THEN
--
INSERT INTO per_assignment_info_types
(information_type
,active_inactive_flag
,multiple_occurences_flag
http://oracle.anilpassi.com Powered by Joomla! Generated: 7 January, 2011, 14:27
Apps

,description
,legislation_code
,object_version_number)
VALUES
(v_info_type_name
,v_active_flag
,v_multi_row
,v_desc
,v_leg_code
,1);
--
INSERT INTO per_assignment_info_types_tl
(information_type
,LANGUAGE
,source_lang
,description
,last_update_date
,last_updated_by
,last_update_login
,created_by
,creation_date)
SELECT m.information_type
,l.language_code
,b.language_code
,m.description
  ,m.last_update_date
,m.last_updated_by
,m.last_update_login
,m.created_by
,m.creation_date
FROM per_assignment_info_types m, fnd_languages l, fnd_languages b
WHERE m.information_type = v_info_type_name
AND l.installed_flag IN ('I', 'B')
AND b.installed_flag = 'B'
AND NOT EXISTS (SELECT '1'
FROM per_assignment_info_types_tl pait
WHERE pait.information_type = m.information_type
AND pait.LANGUAGE = l.language_code);
--
ELSIF v_table_name = 'PER_POSITION_INFO_TYPES'
THEN
--
INSERT INTO per_position_info_types
(information_type
,active_inactive_flag
,multiple_occurences_flag
,description
,legislation_code
,object_version_number)
VALUES
(v_info_type_name
,v_active_flag
,v_multi_row
,v_desc
,v_leg_code
,1);
--
ELSIF v_table_name = 'HR_LOCATION_INFO_TYPES'
THEN
--
INSERT INTO hr_location_info_types
(information_type
,active_inactive_flag
,multiple_occurences_flag
,description
http://oracle.anilpassi.com Powered by Joomla! Generated: 7 January, 2011, 14:27
Apps

,legislation_code
,object_version_number)
VALUES
(v_info_type_name
,v_active_flag
,v_multi_row
,v_desc
,v_leg_code
,1);
--
ELSIF v_table_name = 'PER_JOB_INFO_TYPES'
THEN
--
INSERT INTO per_job_info_types
(information_type
,active_inactive_flag
,multiple_occurences_flag
,description
,legislation_code
,object_version_number)
VALUES
(v_info_type_name
,v_active_flag
,v_multi_row
,v_desc
,v_leg_code
,1);
--
ELSE
dbms_output.put_line('Error - user entered invalid or unsupported table name');
RAISE value_error;
END IF;
--
END register_type;
/

exec register_type ('PER_ASSIGNMENT_INFO_TYPES', 'XX Smoker Etc Details[as defined in DFF Context]', 'Y', 'Y',
'Description of your EIT', 'GB [your legislation code]');
commit;

http://oracle.anilpassi.com Powered by Joomla! Generated: 7 January, 2011, 14:27

S-ar putea să vă placă și