step 1:
=======
select ahk.api_hook_id,
ahk.hook_package,
ahk.hook_procedure,
ahm.API_MODULE_ID
from hr_api_hooks ahk,
hr_api_modules ahm
where (ahm.module_name='PER_PAY_PROPOSALS'
or ahm.module_name='PER_PAY_PROPOSALS')
and ahm.api_module_type = 'RH'
and ahk.api_hook_type = 'AI'
and ahk.api_module_id=ahm.api_module_id;
step2:
======
create or replace package XX_SS_PKG_HK_SAL is
PROCEDURE XX_HK_SAL(p_pay_proposal_id in number,
p_assignment_id in number,
p_business_group_id in number,
p_change_date in date,
p_comments in varchar2,
p_next_sal_review_date in date,
p_proposal_reason in varchar2,
p_proposed_salary_n in number,
p_forced_ranking in number,
p_date_to in date,
p_performance_review_id in number,
p_attribute_category in varchar2,
p_attribute1 in varchar2,
p_attribute2 in varchar2,
p_attribute3 in varchar2,
p_attribute4 in varchar2,
p_attribute5 in varchar2,
p_attribute6 in varchar2,
p_attribute7 in varchar2,
p_attribute8 in varchar2,
p_attribute9 in varchar2,
p_attribute10 in varchar2,
p_attribute11 in varchar2,
p_attribute12 in varchar2,
p_attribute13 in varchar2,
p_attribute14 in varchar2,
p_attribute15 in varchar2,
p_attribute16 in varchar2,
p_attribute17 in varchar2,
p_attribute18 in varchar2,
p_attribute19 in varchar2,
p_attribute20 in varchar2,
p_object_version_number in number,
p_multiple_components in varchar2,
p_approved in varchar2,
p_inv_next_sal_date_warning in boolean,
p_proposed_salary_warning in boolean,
p_approved_warning in boolean,
p_payroll_warning in boolean);
end XX_SEH_PKG_HK_SAL;
create or replace package body XX_SS_PKG_HK_SAL is
PROCEDURE XX_HK_SAL(p_pay_proposal_id in number,
p_assignment_id in number,
p_business_group_id in number,
p_change_date in date,
p_comments in varchar2,
p_next_sal_review_date in date,
p_proposal_reason in varchar2,
p_proposed_salary_n in number,
p_forced_ranking in number,
p_date_to in date,
p_performance_review_id in number,
p_attribute_category in varchar2,
p_attribute1 in varchar2,
p_attribute2 in varchar2,
p_attribute3 in varchar2,
p_attribute4 in varchar2,
p_attribute5 in varchar2,
p_attribute6 in varchar2,
p_attribute7 in varchar2,
p_attribute8 in varchar2,
p_attribute9 in varchar2,
p_attribute10 in varchar2,
p_attribute11 in varchar2,
p_attribute12 in varchar2,
p_attribute13 in varchar2,
p_attribute14 in varchar2,
p_attribute15 in varchar2,
p_attribute16 in varchar2,
p_attribute17 in varchar2,
p_attribute18 in varchar2,
p_attribute19 in varchar2,
p_attribute20 in varchar2,
p_object_version_number in number,
p_multiple_components in varchar2,
p_approved in varchar2,
p_inv_next_sal_date_warning in boolean,
p_proposed_salary_warning in boolean,
p_approved_warning in boolean,
p_payroll_warning in boolean)
is
nl_pay_proposal_id number(20);
nl_assignment_id number(20);
lv_pay_proposal_id number(10);
lv_count number(1);
begin
select count(pps.PAY_PROPOSAL_ID)
into lv_count
from per_pay_proposals pps
where pps.PAY_PROPOSAL_ID=p_pay_proposal_id;
if lv_count=1 then
update per_pay_proposals pps1 set pps1.PROPOSED_SALARY= ROUND(pps1.PROPOSED_SALARY,2)
where pps1.PAY_PROPOSAL_ID=p_pay_proposal_id;
commit;
else
fnd_file.put_line(fnd_file.log,'Invalid Pay Proposal Id');
end if;
end XX_HK_SAL;
end XX_SEH_PKG_HK_SAL;
/
select * from HR_API_HOOK_CALLS;
step 3:
=======
DECLARE
L_API_HOOK_ID NUMBER:= 3035;
L_API_HOOK_CALL_ID NUMBER;
L_OBJECT_VERSION_NUMBER NUMBER;
L_SEQUENCE NUMBER;
BEGIN
SELECT HR_API_HOOKS_S.NEXTVAL
INTO L_SEQUENCE
FROM DUAL;
HR_API_HOOK_CALL_API.CREATE_API_HOOK_CALL
(P_VALIDATE => FALSE,
P_EFFECTIVE_DATE => TO_DATE('01-JAN-1950','DD-MON-YYYY'),
P_API_HOOK_ID =>L_API_HOOK_ID,
P_API_HOOK_CALL_TYPE => 'PP',
P_SEQUENCE => L_SEQUENCE,
P_ENABLED_FLAG => 'Y',
P_CALL_PACKAGE => 'XX_SS_PKG_HK_SAL',
P_CALL_PROCEDURE => 'XX_HK_SAL',
P_API_HOOK_CALL_ID => L_API_HOOK_CALL_ID,
P_OBJECT_VERSION_NUMBER => L_OBJECT_VERSION_NUMBER);
DBMS_OUTPUT.PUT_LINE('L_API_HOOK_CALL_ID '|| L_API_HOOK_CALL_ID);
END;
/
select * from HR_API_HOOK_CALLS where call_package='XX_SS_PKG_HK_SAL';
select * from HR_API_HOOK_CALLS where call_procedure='XX_HK_SAL';
step 4:
=======
declare
l_api_module_id number := 1416; --Value 1416 is derived from Step 1 above using following query
begin
hr_api_user_hooks_utility.create_hooks_one_module(l_api_module_id);
dbms_output.put_line('Success');
exception when others then
dbms_output.put_line('Exception : '||SQLERRM);
end;
/