You are on page 1of 31

HRMS APIs

1. Oracle HRMS API Create Employee


API - hr_employee_api.create_employee

Example
-- Create Employee
-- -------------------------

DECLARE
lc_employee_number
:= 'PRAJ_01';
ln_person_id
ln_assignment_id
%TYPE;

PER_ALL_PEOPLE_F.EMPLOYEE_NUMBER%TYPE
PER_ALL_PEOPLE_F.PERSON_ID%TYPE;
PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_ID

ln_object_ver_number
PER_ALL_ASSIGNMENTS_F.OBJECT_VERSION_NUMBER%TYPE;
ln_asg_ovn

ld_per_effective_start_date
%TYPE;
ld_per_effective_end_date
lc_full_name
ln_per_comment_id

NUMBER;

PER_ALL_PEOPLE_F.EFFECTIVE_START_DATE
PER_ALL_PEOPLE_F.EFFECTIVE_END_DATE%TYPE;
PER_ALL_PEOPLE_F.FULL_NAME%TYPE;
PER_ALL_PEOPLE_F.COMMENT_ID%TYPE;

ln_assignment_sequence
PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_SEQUENCE%TYPE;
lc_assignment_number
PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_NUMBER%TYPE;

lb_name_combination_warning BOOLEAN;
lb_assign_payroll_warning

BOOLEAN;

lb_orig_hire_warning

BOOLEAN;

BEGIN
hr_employee_api.create_employee
( -- Input data elements
-- -----------------------------p_hire_date

=> TO_DATE('08-JUN-2011'),

p_business_group_id
=>
fnd_profile.value_specific('PER_BUSINESS_GROUP_ID'),
p_last_name

=> 'TEST',

p_first_name

=> 'PRAJKUMAR',

p_middle_names
p_sex
p_national_identifier

=> NULL,
=> 'M',
=> '183-09-6723',

p_date_of_birth

=> TO_DATE('03-DEC-1988'),

p_known_as

=> 'PRAJ',

-- Output data elements


-- -------------------------------p_employee_number
p_person_id
p_assignment_id

=> lc_employee_number,
=> ln_person_id,
=> ln_assignment_id,

p_per_object_version_number

=> ln_object_ver_number,

p_asg_object_version_number

=> ln_asg_ovn,

p_per_effective_start_date

=> ld_per_effective_start_date,

p_per_effective_end_date

=> ld_per_effective_end_date,

p_full_name

=> lc_full_name,

p_per_comment_id

=> ln_per_comment_id,

p_assignment_sequence

=> ln_assignment_sequence,

p_assignment_number

=> lc_assignment_number,

p_name_combination_warning

=> lb_name_combination_warning,

p_assign_payroll_warning

=> lb_assign_payroll_warning,

p_orig_hire_warning

=> lb_orig_hire_warning

);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;

2. Oracle HRMS API Update Employee

API - hr_person_api.update_person
Example is for updating middle name and marital status
DECLARE
-- Local Variables
-- ----------------------ln_object_version_number
%TYPE := 7;
lc_dt_ud_mode
:= NULL;

PER_ALL_PEOPLE_F.OBJECT_VERSION_NUMBER

VARCHAR2(100)

ln_assignment_id
:= 33564;

PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_ID%TYPE

lc_employee_number
:= 'PRAJ_01';

PER_ALL_PEOPLE_F.EMPLOYEE_NUMBER%TYPE

-- Out Variables for Find Date Track Mode API


-- ---------------------------------------------------------------lb_correction
lb_update
lb_update_override
lb_update_change_insert

BOOLEAN;
BOOLEAN;
BOOLEAN;
BOOLEAN;

-- Out Variables for Update Employee API


-- ----------------------------------------------------------ld_effective_start_date

DATE;

ld_effective_end_date

DATE;

lc_full_name

PER_ALL_PEOPLE_F.FULL_NAME%TYPE;

ln_comment_id

PER_ALL_PEOPLE_F.COMMENT_ID%TYPE;

lb_name_combination_warning
lb_assign_payroll_warning
lb_orig_hire_warning

BOOLEAN;
BOOLEAN;
BOOLEAN;

BEGIN

-- Find Date Track Mode


-- -------------------------------dt_api.find_dt_upd_modes
(

-- Input Data Elements


-- -----------------------------p_effective_date

=> TO_DATE('29-JUN-2011'),

p_base_table_name

=> 'PER_ALL_ASSIGNMENTS_F',

p_base_key_column

=> 'ASSIGNMENT_ID',

p_base_key_value

=> ln_assignment_id,

-- Output data elements


-- ------------------------------p_correction

=> lb_correction,

p_update

=> lb_update,

p_update_override
p_update_change_insert

=> lb_update_override,
=> lb_update_change_insert

);

IF ( lb_update_override = TRUE OR lb_update_change_insert = TRUE )


THEN

-- UPDATE_OVERRIDE
-- --------------------------------lc_dt_ud_mode := 'UPDATE_OVERRIDE';
END IF;

IF ( lb_correction = TRUE )
THEN
-- CORRECTION
-- ---------------------lc_dt_ud_mode := 'CORRECTION';
END IF;

IF ( lb_update = TRUE )
THEN
-- UPDATE
-- -------------lc_dt_ud_mode := 'UPDATE';
END IF;

-- Update Employee API


-- --------------------------------hr_person_api.update_person

-- Input Data Elements


-- -----------------------------p_effective_date
p_datetrack_update_mode
p_person_id

=> TO_DATE('29-JUN-2011'),
=> lc_dt_ud_mode,
=> 32979,

p_middle_names

=> 'TEST',

p_marital_status

=> 'M',

-- Output Data Elements


-- ---------------------------------p_employee_number

=> lc_employee_number,

p_object_version_number

=> ln_object_version_number,

p_effective_start_date

=> ld_effective_start_date,

p_effective_end_date

=> ld_effective_end_date,

p_full_name

=> lc_full_name,

p_comment_id

=> ln_comment_id,

p_name_combination_warning => lb_name_combination_warning,


p_assign_payroll_warning
p_orig_hire_warning
);

COMMIT;

=> lb_assign_payroll_warning,
=> lb_orig_hire_warning

EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;
3. Oracle HRMS API Create Employee Contact

API - hr_contact_rel_api.create_contact
Example -DECLARE
ln_contact_rel_id
PER_CONTACT_RELATIONSHIPS.CONTACT_RELATIONSHIP_ID
%TYPE;
ln_ctr_object_ver_num
PER_CONTACT_RELATIONSHIPS.OBJECT_VERSION_NUMBER
%TYPE;
ln_contact_person
PER_ALL_PEOPLE_F.PERSON_ID%TYPE;
ln_object_version_number PER_CONTACT_RELATIONSHIPS.OBJECT_VERSION_NUMBER
%TYPE;
ld_per_effective_start_date DATE;
ld_per_effective_end_date DATE;
lc_full_name
PER_ALL_PEOPLE_F.FULL_NAME%TYPE;
ln_per_comment_id
PER_ALL_PEOPLE_F.COMMENT_ID%TYPE;
lb_name_comb_warning
BOOLEAN;
lb_orig_hire_warning
BOOLEAN;

BEGIN
-- Create Employee Contact
-- ------------------------------------hr_contact_rel_api.create_contact
( -- Input data elements
-- ----------------------------p_start_date
p_business_group_id
p_person_id
p_contact_type
p_date_start
p_last_name

=> TO_DATE('14-JUN-2011'),
=> fnd_profile.value('PER_BUSINESS_GROUP_ID'),
=> 32979,
=> 'M',
=> TO_DATE('14-JUN-2011'),
=> 'TEST',

p_first_name
=> 'CONTACT',
p_personal_flag
=> 'Y',
-- Output data elements
-- -------------------------------p_contact_relationship_id
=> ln_contact_rel_id,
p_ctr_object_version_number
=> ln_ctr_object_ver_num,
p_per_person_id
=> ln_contact_person,
p_per_object_version_number
=> ln_object_version_number,
p_per_effective_start_date
=> ld_per_effective_start_date,
p_per_effective_end_date
=> ld_per_effective_end_date,
p_full_name
=> lc_full_name,
p_per_comment_id
=> ln_per_comment_id,
p_name_combination_warning => lb_name_comb_warning,
p_orig_hire_warning
=> lb_orig_hire_warning
);

COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;
4. Oracle HRMS API - Hire Into Job

API - hr_employee_api.hire_into_job
Example --

Consider a Contact for some employee already exist in Oracle System. Now
that Contact has got Job, so his Person type should be converted to
Employee from Contact (External)

Following API helps to create assignment for that Contact and helps to
change his Person Type

DECLARE
-- Local Variables
-- --------------------lc_dt_ud_mode
ln_person_id
ln_object_number
ld_effective_date
lc_employee_number

VARCHAR2(100) := NULL;
NUMBER
:= 32981;
NUMBER
:= 1;
DATE
:= TO_DATE('28-JUN-2012');
VARCHAR2(100) := 'CONTACT_TEST_01';

-- Out Variables for Find Date Track Mode API


-- -----------------------------------------------------------lb_correction
BOOLEAN;
lb_update
BOOLEAN;
lb_update_override
BOOLEAN;
lb_update_change_insert BOOLEAN;
-- Out Variables for Hire to Job API
-- ------------------------------------------ld_effective_start_date
DATE;
ld_effective_end_date
DATE;
lb_assign_payroll_warning BOOLEAN;
lb_orig_hire_warning
BOOLEAN;
ln_assignment_id
NUMBER;

BEGIN
-- Find Date Track Mode
-- ---------------------------dt_api.find_dt_upd_modes
( -- Input data elements
-- --------------------------p_effective_date
=> TO_DATE('28-JUN-2012'),
p_base_table_name
=> 'PER_ALL_PEOPLE_F',
p_base_key_column
=> 'PERSON_ID',
p_base_key_value
=> ln_person_id,
-- Output data elements
-- ----------------------------p_correction
=> lb_correction,

p_update
=> lb_update,
p_update_override
=> lb_update_override,
p_update_change_insert => lb_update_change_insert
);

IF ( lb_update_override = TRUE OR lb_update_change_insert = TRUE )


THEN
-- UPDATE_OVERRIDE
-- ----------------------------lc_dt_ud_mode := 'UPDATE_OVERRIDE';
END IF;

IF ( lb_correction = TRUE )
THEN
-- CORRECTION
-- -------------------lc_dt_ud_mode := 'CORRECTION';
END IF;

IF ( lb_update = TRUE )
THEN
-- UPDATE
-- -------------lc_dt_ud_mode := 'UPDATE';
END IF;
-- Hire into Job API
-- -----------------------hr_employee_api.hire_into_job
( -- Input Data Elements
-- ----------------------------p_effective_date
=> ld_effective_date,
p_person_id
=> ln_person_id,
p_datetrack_update_mode => lc_dt_ud_mode,
-- Output Data Elements

-- ---------------------------p_object_version_number
p_employee_number
p_assignment_id
p_effective_start_date
p_effective_end_date
p_assign_payroll_warning
p_orig_hire_warning

=> ln_object_number,
=> lc_employee_number,
=> ln_assignment_id,
=> ld_effective_start_date,
=> ld_effective_end_date,
=> lb_assign_payroll_warning,
=> lb_orig_hire_warning

);
COMMIT;

EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
DBMS_OUTPUT.PUT_LINE(SQLERRM);
END;
5. Oracle HRMS API Create Employee Address
API - hr_person_address_api.create_person_address

Example --

DECLARE
ln_address_id
ln_object_version_number

PER_ADDRESSES.ADDRESS_ID%TYPE;
PER_ADDRESSES.OBJECT_VERSION_NUMBER%TYPE;

BEGIN
-- Create Employee Address
-- -------------------------------------hr_person_address_api.create_person_address
(
-- Input data elements
-- -----------------------------p_effective_date
=> TO_DATE('08-JUN-2011'),
p_person_id
=> 32979,
p_primary_flag
=> 'Y',
p_style
=> 'US',
p_date_from
=> TO_DATE('08-JUN-2011'),
p_address_line1
=> '50 Main Street',

p_address_line2
=> NULL,
p_town_or_city
=> 'White Plains',
p_region_1
=> 'Westchester',
p_region_2
=> 'NY',
p_postal_code
=> 10601,
p_country
=> 'US',
-- Output data elements
-- -------------------------------p_address_id
=> ln_address_id,
p_object_version_number => ln_object_version_number
);

COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;
6. Oracle HRMS API Update Employee Address

API - hr_person_address_api.update_person_address

Example -Consider Employee having Address Line1 -- "50 Main Street"


Lets Update Address Line1 -- "60 Main Street" using update address API
DECLARE
ln_address_id
PER_ADDRESSES.ADDRESS_ID%TYPE;
ln_object_version_number PER_ADDRESSES.OBJECT_VERSION_NUMBER%TYPE := 1;

BEGIN
-- Update Employee Address
-- ---------------------------------------hr_person_address_api.update_person_address
( -- Input data elements
-- ----------------------------p_effective_date
=> TO_DATE('10-JUN-2011'),
p_address_id
=> 16406,
p_address_line1
=> '60 Main Street',
-- Output data elements

-- -------------------------------p_object_version_number => ln_object_version_number


);

COMMIT;

EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;
7. Oracle HRMS API Create Employee Element Entry

API - pay_element_entry_api.create_element_entry
Example -Lets Try to Create Element Entry "Bonus" for Employee
DECLARE
ln_element_link_id
ld_effective_start_date
ld_effective_end_date
ln_element_entry_id
ln_object_version_number
lb_create_warning
ln_input_value_id
ln_screen_entry_value
%TYPE;
ln_element_type_id

PAY_ELEMENT_LINKS_F.ELEMENT_LINK_ID%TYPE;
DATE;
DATE;
PAY_ELEMENT_ENTRIES_F.ELEMENT_ENTRY_ID%TYPE;
PAY_ELEMENT_ENTRIES_F.OBJECT_VERSION_NUMBER %TYPE;
BOOLEAN;
PAY_INPUT_VALUES_F.INPUT_VALUE_ID%TYPE;
PAY_ELEMENT_ENTRY_VALUES_F.SCREEN_ENTRY_VALUE
PAY_ELEMENT_TYPES_F.ELEMENT_TYPE_ID%TYPE;

BEGIN
-- Get Element Link Id
-- -----------------------------ln_element_link_id :=

hr_entry_api.get_link
(
p_assignment_id
=> 33561,
p_element_type_id => 50417,
p_session_date
=> TO_DATE('23-JUN-2011')
);

dbms_output.put_line( ' API: Element Link Id: ' || ln_element_link_id );

-- Create Element Entry

-- -----------------------------pay_element_entry_api.create_element_entry
(
-- Input data elements
-- ----------------------------p_effective_date
=> TO_DATE('22-JUN-2011'),
p_business_group_id
=> fnd_profile.value('PER_BUSINESS_GROUP_ID'),
p_assignment_id
=> 33561,
p_element_link_id
=> ln_element_link_id,
p_entry_type
=> 'E',
p_input_value_id1
=> 53726,
p_entry_value1
=> 2500,
-- Output data elements
-- -------------------------------p_effective_start_date
=> ld_effective_start_date,
p_effective_end_date
=> ld_effective_end_date,
p_element_entry_id
=> ln_element_entry_id,
p_object_version_number => ln_object_version_number,
p_create_warning
=> lb_create_warning
);
dbms_output.put_line( ' API: pay_element_entry_api.create_element_entry successfull Element Entry Id: ' || ln_element_entry_id );

COMMIT;

EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;
8. Oracle HRMS API Delete Employee Element Entry

API -- pay_element_entry_api.delete_element_entry

Example -Consider Employee has Element Entry "Bonus". Lets try to Delete
Element Entry "Bonus" using delete API

DECLARE
ld_effective_start_date
ld_effective_end_date
lb_delete_warning
ln_object_version_number
%TYPE := 1;

DATE;
DATE;
BOOLEAN;
PAY_ELEMENT_ENTRIES_F.OBJECT_VERSION_NUMBER

BEGIN
-- Delete Element Entry
-- ------------------------------pay_element_entry_api.delete_element_entry
( -- Input data elements
-- -----------------------------p_datetrack_delete_mode => 'DELETE',
p_effective_date
=> TO_DATE('23-JUNE-2011'),
p_element_entry_id
=> 118557,
-- Output data elements
-- -------------------------------p_object_version_number => ln_object_version_number,
p_effective_start_date
=> ld_effective_start_date,
p_effective_end_date
=> ld_effective_end_date,
p_delete_warning
=> lb_delete_warning
);

COMMIT;

EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;

9. Oracle HRMS API Rehire Employee


API -- hr_employee_api.re_hire_ex_employee

Example -Consider a Ex-Employee we will try to Rehire that employee using


Rehire API

DECLARE
ln_per_object_version_number
%TYPE
:= 5;
ln_assg_object_version_number
%TYPE;
ln_assignment_id
ld_per_effective_start_date
ld_per_effective_end_date
ln_assignment_sequence
%TYPE;
lb_assign_payroll_warning
lc_assignment_number
%TYPE;

PER_ALL_PEOPLE_F.OBJECT_VERSION_NUMBER
PER_ALL_ASSIGNMENTS_F.OBJECT_VERSION_NUMBER
PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_ID%TYPE;
PER_ALL_PEOPLE_F.EFFECTIVE_START_DATE%TYPE;
PER_ALL_PEOPLE_F.EFFECTIVE_END_DATE%TYPE;
PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_SEQUENCE
BOOLEAN;
PER_ALL_ASSIGNMENTS_F.ASSIGNMENT_NUMBER

BEGIN
-- Rehire Employee API
-- -------------------------------hr_employee_api.re_hire_ex_employee
( -- Input data elements
-- ----------------------------p_hire_date
=> TO_DATE('28-JUN-2011'),
p_person_id
=> 32979,
p_rehire_reason
=> NULL,
-- Output data elements
-- -------------------------------p_assignment_id
=> ln_assignment_id,
p_per_object_version_number
=> ln_per_object_version_number,
p_asg_object_version_number
=> ln_assg_object_version_number,
p_per_effective_start_date
=> ld_per_effective_start_date,
p_per_effective_end_date
=> ld_per_effective_end_date,
p_assignment_sequence
=> ln_assignment_sequence,
p_assignment_number
=> lc_assignment_number,
p_assign_payroll_warning
=> lb_assign_payroll_warning
);

COMMIT;

EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;

10. Oracle HRMS API Create Employee Payment Method

API -- hr_personal_pay_method_api.create_personal_pay_method

Example -DECLARE

ln_method_id PAY_PERSONAL_PAYMENT_METHODS_F.PERSONAL_PAYMENT_METHOD_ID
%TYPE;
ln_ext_acc_id
PAY_EXTERNAL_ACCOUNTS.EXTERNAL_ACCOUNT_ID%TYPE;
ln_obj_ver_num PAY_PERSONAL_PAYMENT_METHODS_F.OBJECT_VERSION_NUMBER%TYPE;
ld_eff_start_date DATE;
ld_eff_end_date DATE;
ln_comment_id
NUMBER;

BEGIN
-- Create Employee Payment Method
-- -------------------------------------------------hr_personal_pay_method_api.create_personal_pay_method
( -- Input data elements
-- -----------------------------p_effective_date
=> TO_DATE('21-JUN-2011'),
p_assignment_id
=> 33561,
p_org_payment_method_id
=> 2,
p_priority
=> 50,
p_percentage
=> 100,
p_territory_code
=> 'US',
p_segment1
=> 'PRAJKUMAR',
p_segment2
=> 'S',
p_segment3
=> '100200300',
p_segment4
=> '567',
p_segment5
=> 'HDFC',
p_segment6
=> 'INDIA',
-- Output data elements
-- -------------------------------p_personal_payment_method_id => ln_method_id,
p_external_account_id
=> ln_ext_acc_id,
p_object_version_number
=> ln_obj_ver_num,
p_effective_start_date
=> ld_eff_start_date,
p_effective_end_date
=> ld_eff_end_date,
p_comment_id
=> ln_comment_id
);

COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;

dbms_output.put_line(SQLERRM);
END;
11. Oracle HRMS API Create or Update Employee Phone

API -- hr_phone_api.create_or_update_phone

Example -DECLARE
ln_phone_id
ln_object_version_number

PER_PHONES.PHONE_ID%TYPE;
PER_PHONES.OBJECT_VERSION_NUMBER%TYPE;

BEGIN
-- Create or Update Employee Phone Detail
-- ----------------------------------------------------------hr_phone_api.create_or_update_phone
( -- Input data elements
-- ----------------------------p_date_from
=> TO_DATE('13-JUN-2011'),
p_phone_type
=> 'W1',
p_phone_number
=> '9999999',
p_parent_id
=> 32979,
p_parent_table
=> 'PER_ALL_PEOPLE_F',
p_effective_date
=> TO_DATE('13-JUN-2011'),
-- Output data elements
-- -------------------------------p_phone_id
=> ln_phone_id,
p_object_version_number => ln_object_version_number
);

COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;
12.

Oracle HRMS API Create or Update Employee Salary

API -- hr_maintain_proposal_api.cre_or_upd_salary_proposal

Note - Salary Basis is required to be assigned to employee


assignment before to run Salary Proposal API
Example
DECLARE
lb_inv_next_sal_date_warning
lb_proposed_salary_warning
lb_approved_warning
lb_payroll_warning
ln_pay_proposal_id
ln_object_version_number

BOOLEAN;
BOOLEAN;
BOOLEAN;
BOOLEAN;
NUMBER;
NUMBER;

BEGIN
-- Create or Upadte Employee Salary Proposal
-- ---------------------------------------------------------------hr_maintain_proposal_api.cre_or_upd_salary_proposal
( -- Input data elements
-- -----------------------------p_business_group_id
=> fnd_profile.value('PER_BUSINESS_GROUP_ID'),
p_assignment_id
=> 33561,
p_change_date
=> TO_DATE('13-JUN-2011'),
p_proposed_salary_n
=> 1000,
p_approved
=> 'Y',
-- Output data elements
-- -------------------------------p_pay_proposal_id
=> ln_pay_proposal_id,
p_object_version_number
=> ln_object_version_number,
p_inv_next_sal_date_warning => lb_inv_next_sal_date_warning,
p_proposed_salary_warning
=> lb_proposed_salary_warning,
p_approved_warning
=> lb_approved_warning,
p_payroll_warning
=> lb_payroll_warning
);

COMMIT;

EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;

13. Oracle HRMS API Update Employee Fed Tax Rule

API -- pay_federal_tax_rule_api.update_fed_tax_rule
Example -DECLARE
lb_correction
lb_update
lb_update_override
lb_update_change_insert
ld_effective_start_date
ld_effective_end_date
ln_assignment_id
lc_dt_ud_mode
ln_object_version_number
ln_supp_tax_override_rate
%TYPE;
ln_emp_fed_tax_rule_id
%TYPE;

BOOLEAN;
BOOLEAN;
BOOLEAN;
BOOLEAN;
DATE;
DATE;
NUMBER
:= 33561;
VARCHAR2(100)
:= NULL;
NUMBER
:= 0;
PAY_US_EMP_FED_TAX_RULES_F.SUPP_TAX_OVERRIDE_RATE
PAY_US_EMP_FED_TAX_RULES_F.EMP_FED_TAX_RULE_ID

BEGIN
-- Find Date Track Mode
-- ------------------------------dt_api.find_dt_upd_modes
( -- Input data elements
-- -----------------------------p_effective_date
=> TO_DATE('12-JUN-2011'),
p_base_table_name
=> 'PER_ALL_ASSIGNMENTS_F',
p_base_key_column
=> 'ASSIGNMENT_ID',
p_base_key_value
=> ln_assignment_id,
-- Output data elements
-- ------------------------------p_correction
=> lb_correction,
p_update
=> lb_update,
p_update_override
=> lb_update_override,
p_update_change_insert => lb_update_change_insert
);

IF ( lb_update_override = TRUE OR lb_update_change_insert = TRUE )


THEN
-- UPDATE_OVERRIDE
-- -------------------------------lc_dt_ud_mode := 'UPDATE_OVERRIDE';
END IF;

IF ( lb_correction = TRUE )
THEN
-- CORRECTION
-- ---------------------lc_dt_ud_mode := 'CORRECTION';
END IF;

IF ( lb_update = TRUE )
THEN
-- UPDATE
-- ------------lc_dt_ud_mode := 'UPDATE';
END IF;

-- Update Employee Fed Tax Rule


-- ---------------------------------------------pay_federal_tax_rule_api.update_fed_tax_rule
( -- Input data elements
-- ----------------------------p_effective_date
=> TO_DATE('20-JUN-2011'),
p_datetrack_update_mode => lc_dt_ud_mode,
p_emp_fed_tax_rule_id
=> 7417,
p_withholding_allowances => 100,
p_fit_additional_tax
=> 10,
p_fit_exempt
=> 'N',
p_supp_tax_override_rate
=> 5,
-- Output data elements
-- -------------------------------p_object_version_number
=> ln_object_version_number,
p_effective_start_date
=> ld_effective_start_date,
p_effective_end_date
=> ld_effective_end_date
);

COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;

14. Oracle HRMS API Create Employee State Tax Rule

API -- pay_state_tax_rule_api.create_state_tax_rule
Example -DECLARE
lc_dt_ud_mode
ln_assignment_id

VARCHAR2(100)
NUMBER

lb_correction
lb_update
lb_update_override
lb_update_change_insert

BOOLEAN;
BOOLEAN;
BOOLEAN;
BOOLEAN;

:= NULL;
:= 33561;

ln_emp_state_tax_rule_id PAY_US_EMP_STATE_TAX_RULES_F.EMP_STATE_TAX_RULE_ID
%TYPE;
ln_object_version_number NUMBER;
ld_effective_start_date
DATE;
ld_effective_end_date
DATE;

BEGIN
-- Find Date Track Mode
-- -------------------------------dt_api.find_dt_upd_modes
(
p_effective_date
=> TO_DATE('12-JUN-2011'),
p_base_table_name
=> 'PER_ALL_ASSIGNMENTS_F',
p_base_key_column
=> 'ASSIGNMENT_ID',
p_base_key_value
=> ln_assignment_id,
-- Output data elements
-- -------------------------------p_correction
=> lb_correction,
p_update
=> lb_update,
p_update_override
=> lb_update_override,
p_update_change_insert => lb_update_change_insert
);

IF ( lb_update_override = TRUE OR lb_update_change_insert = TRUE )


THEN
-- UPDATE_OVERRIDE
-- --------------------------------lc_dt_ud_mode := 'UPDATE_OVERRIDE';
END IF;

IF ( lb_correction = TRUE )
THEN
-- CORRECTION
-- ---------------------lc_dt_ud_mode := 'CORRECTION';
END IF;

IF ( lb_update = TRUE )
THEN
-- UPDATE
-- -------------lc_dt_ud_mode := 'UPDATE';
END IF;

-- Create Employee State Tax Rule


-- ----------------------------------------------pay_state_tax_rule_api.create_state_tax_rule
( -- Input Parameters
-- -------------------------p_effective_date
=> TO_DATE('15-JUN-2011'),
p_default_flag
=> 'Y',
p_assignment_id
=> 33561,
p_state_code
=> '05',
-- Output Parameters
-- ---------------------------p_emp_state_tax_rule_id
=> ln_emp_state_tax_rule_id,
p_object_version_number
=> ln_object_version_number,
p_effective_start_date
=> ld_effective_start_date,
p_effective_end_date
=> ld_effective_end_date
);

COMMIT;

EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;
15. Oracle HRMS API Update Employee State Tax Rule

API -- pay_state_tax_rule_api.update_state_tax_rule
Example -API -- pay_state_tax_rule_api.update_state_tax_rule
Example --

DECLARE
lc_dt_ud_mode
VARCHAR2(100) := NULL;
ln_assignment_id
NUMBER
:= 33561;
ln_object_version_number NUMBER
:= 1;
ld_effective_start_date
DATE;
ld_effective_end_date
DATE;
lb_correction
BOOLEAN;
lb_update
BOOLEAN;
lb_update_override
BOOLEAN;
lb_update_change_insert BOOLEAN;

BEGIN
-- Find Date Track Mode
-- -------------------------------dt_api.find_dt_upd_modes
( p_effective_date
=> TO_DATE('12-JUN-2011'),
p_base_table_name
=> 'PER_ALL_ASSIGNMENTS_F',
p_base_key_column
=> 'ASSIGNMENT_ID',
p_base_key_value
=> ln_assignment_id,
-- Output data elements
-- -------------------------------p_correction
=> lb_correction,
p_update
=> lb_update,
p_update_override
=> lb_update_override,
p_update_change_insert => lb_update_change_insert
);

IF ( lb_update_override = TRUE OR lb_update_change_insert = TRUE )


THEN
-- UPDATE_OVERRIDE
-- -------------------------------lc_dt_ud_mode := 'UPDATE_OVERRIDE';
END IF;

IF ( lb_correction = TRUE )
THEN
-- CORRECTION
-- ---------------------lc_dt_ud_mode := 'CORRECTION';
END IF;

IF ( lb_update = TRUE )
THEN
-- UPDATE
-- -------------lc_dt_ud_mode := 'UPDATE';
END IF;

-- Update State Tax Rule


-- --------------------------------pay_state_tax_rule_api.update_state_tax_rule
(
-- Input data elements
-- -----------------------------p_effective_date
=> TO_DATE('20-JUN-2011'),
p_datetrack_update_mode => lc_dt_ud_mode,
p_emp_state_tax_rule_id
=> 8455,
p_withholding_allowances => 100,
p_sit_additional_tax
=> 10,
p_sit_exempt
=> 'N',
-- Output data elements
-- -------------------------------p_object_version_number
=> ln_object_version_number,
p_effective_start_date
=> ld_effective_start_date,
p_effective_end_date
=> ld_effective_end_date
);

COMMIT;

EXCEPTION
WHEN OTHERS THEN
ROLLBACK;

dbms_output.put_line(SQLERRM);
END;
16. Oracle HRMS API Update Employee Assignment

To Update
Supervisor, Manager Flag, Bargaining Unit, Labour Union Member Flag, Gre,
Time Card, Work Schedule, Normal Hours, Frequency, Time Normal Finish,
Time Normal Start, Default Code Combination, Set of Books Id
API -- hr_assignment_api.update_emp_asg
To Update
Grade, Location, Job, Payroll, Organization, Employee Category, People Group
API -- hr_assignment_api.update_emp_asg_criteria

Example --

DECLARE
-- Local Variables
-- ----------------------lc_dt_ud_mode
VARCHAR2(100)
ln_assignment_id
NUMBER
ln_supervisor_id
NUMBER
ln_object_number
NUMBER
ln_people_group_id NUMBER

:= NULL;
:= 33561;
:= 2;
:= 1;
:= 1;

-- Out Variables for Find Date Track Mode API


-- ----------------------------------------------------------------lb_correction
BOOLEAN;
lb_update
BOOLEAN;
lb_update_override
BOOLEAN;
lb_update_change_insert BOOLEAN;

-- Out Variables for Update Employee Assignment API


-- ---------------------------------------------------------------------------ln_soft_coding_keyflex_id
%TYPE;
lc_concatenated_segments
ln_comment_id
lb_no_managers_warning

HR_SOFT_CODING_KEYFLEX.SOFT_CODING_KEYFLEX_ID
VARCHAR2(2000);
PER_ALL_ASSIGNMENTS_F.COMMENT_ID%TYPE;
BOOLEAN;

-- Out Variables for Update Employee Assgment Criteria


-- -------------------------------------------------------------------------------

ln_special_ceiling_step_id
PER_ALL_ASSIGNMENTS_F.SPECIAL_CEILING_STEP_ID
%TYPE;
lc_group_name
VARCHAR2(30);
ld_effective_start_date
PER_ALL_ASSIGNMENTS_F.EFFECTIVE_START_DATE
%TYPE;
ld_effective_end_date
PER_ALL_ASSIGNMENTS_F.EFFECTIVE_END_DATE
%TYPE;
lb_org_now_no_manager_warning BOOLEAN;
lb_other_manager_warning
BOOLEAN;
lb_spp_delete_warning
BOOLEAN;
lc_entries_changed_warning
VARCHAR2(30);
lb_tax_district_changed_warn
BOOLEAN;

BEGIN
-- Find Date Track Mode
-- -------------------------------dt_api.find_dt_upd_modes
( p_effective_date
p_base_table_name
p_base_key_column
p_base_key_value
-- Output data elements
-- -------------------------------p_correction
p_update
p_update_override
p_update_change_insert
);

=> TO_DATE('12-JUN-2011'),
=> 'PER_ALL_ASSIGNMENTS_F',
=> 'ASSIGNMENT_ID',
=> ln_assignment_id,
=> lb_correction,
=> lb_update,
=> lb_update_override,
=> lb_update_change_insert

IF ( lb_update_override = TRUE OR lb_update_change_insert = TRUE )


THEN
-- UPDATE_OVERRIDE
-- --------------------------------lc_dt_ud_mode := 'UPDATE_OVERRIDE';
END IF;

IF ( lb_correction = TRUE )
THEN
-- CORRECTION
-- ---------------------lc_dt_ud_mode := 'CORRECTION';
END IF;

IF ( lb_update = TRUE )
THEN
-- UPDATE
-- -------------lc_dt_ud_mode := 'UPDATE';
END IF;

-- Update Employee Assignment


-- --------------------------------------------hr_assignment_api.update_emp_asg
( -- Input data elements
-- -----------------------------p_effective_date
=> TO_DATE('12-JUN-2011'),
p_datetrack_update_mode
=> lc_dt_ud_mode,
p_assignment_id
=> ln_assignment_id,
p_supervisor_id
=> NULL,
p_change_reason
=> NULL,
p_manager_flag
=> 'N',
p_bargaining_unit_code
=> NULL,
p_labour_union_member_flag => NULL,
p_segment1
=> 204,
p_segment3
=> 'N',
p_normal_hours
=> 10,
p_frequency
=> 'W',
-- Output data elements
-- ------------------------------p_object_version_number
=> ln_object_number,
p_soft_coding_keyflex_id
=> ln_soft_coding_keyflex_id,
p_concatenated_segments
=> lc_concatenated_segments,
p_comment_id
=> ln_comment_id,
p_effective_start_date
=> ld_effective_start_date,
p_effective_end_date
=> ld_effective_end_date,
p_no_managers_warning
=> lb_no_managers_warning,
p_other_manager_warning
=> lb_other_manager_warning
);

-- Find Date Track Mode for Second API


-- -----------------------------------------------------dt_api.find_dt_upd_modes
( p_effective_date
p_base_table_name
p_base_key_column
p_base_key_value
-- Output data elements
-- ------------------------------p_correction
p_update
p_update_override
p_update_change_insert
);

=> TO_DATE('12-JUN-2011'),
=> 'PER_ALL_ASSIGNMENTS_F',
=> 'ASSIGNMENT_ID',
=> ln_assignment_id,
=> lb_correction,
=> lb_update,
=> lb_update_override,
=> lb_update_change_insert

IF ( lb_update_override = TRUE OR lb_update_change_insert = TRUE )


THEN
-- UPDATE_OVERRIDE
-- -------------------------------lc_dt_ud_mode := 'UPDATE_OVERRIDE';
END IF;

IF ( lb_correction = TRUE )
THEN
-- CORRECTION
-- ---------------------lc_dt_ud_mode := 'CORRECTION';
END IF;

IF ( lb_update = TRUE )
THEN
-- UPDATE
-- -------------lc_dt_ud_mode := 'UPDATE';
END IF;

-- Update Employee Assgment Criteria


-- ----------------------------------------------------hr_assignment_api.update_emp_asg_criteria
( -- Input data elements
-- -----------------------------p_effective_date
=> TO_DATE('12-JUN-2011'),
p_datetrack_update_mode
=> lc_dt_ud_mode,
p_assignment_id
=> ln_assignment_id,
p_location_id
=> 204,
p_grade_id
=> 29,
p_job_id
=> 16,
p_payroll_id
=> 52,
p_organization_id
=> 239,
p_employment_category
=> 'FR',
-- Output data elements
-- ------------------------------p_people_group_id
=> ln_people_group_id,
p_object_version_number
=> ln_object_number,
p_special_ceiling_step_id
=> ln_special_ceiling_step_id,
p_group_name
=> lc_group_name,
p_effective_start_date
=> ld_effective_start_date,
p_effective_end_date
=> ld_effective_end_date,
p_org_now_no_manager_warning => lb_org_now_no_manager_warning,
p_other_manager_warning
=> lb_other_manager_warning,
p_spp_delete_warning
=> lb_spp_delete_warning,

p_entries_changed_warning
p_tax_district_changed_warning
);

=> lc_entries_changed_warning,
=> lb_tax_district_changed_warn

COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
dbms_output.put_line(SQLERRM);
END;