0% found this document useful (0 votes)
287 views3 pages

Api To Update Supervisor

This document declares variables and defines a procedure to update employee assignments. It loops through a select statement, gets manager and employee IDs from another table, finds the assignment record, calls an API to determine the appropriate update mode, and calls another API to update the employee's supervisor assignment.

Uploaded by

Aamani Ammu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
287 views3 pages

Api To Update Supervisor

This document declares variables and defines a procedure to update employee assignments. It loops through a select statement, gets manager and employee IDs from another table, finds the assignment record, calls an API to determine the appropriate update mode, and calls another API to update the employee's supervisor assignment.

Uploaded by

Aamani Ammu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

DECLARE

L_PERSON_ID NUMBER;
L_ASSIGNMENT_ID NUMBER;
L_EFFECTIVE_DATE DATE:= NULL;
L_SUPERVISOR_ID NUMBER;
LB_CORRECTION BOOLEAN;
LB_UPDATE BOOLEAN;
LB_UPDATE_OVERRIDE BOOLEAN;
LB_UPDATE_CHANGE_INSERT BOOLEAN;
LC_DT_UD_MODE VARCHAR2(100):= NULL;
L_OBJ_VERSION_NUM NUMBER ;
L_SOFT_CODING_KEYFLEX_ID HR_SOFT_CODING_KEYFLEX.SOFT_CODING_KEYFLEX_ID%TYPE :=
NULL;
L_CONCATENATED_SEGMENTS VARCHAR2(2000);
L_COMMENT_ID PER_ALL_ASSIGNMENTS_F.COMMENT_ID%TYPE;
L_EFFECTIVE_START_DATE PER_ALL_ASSIGNMENTS_F.EFFECTIVE_START_DATE%TYPE;
L_EFFECTIVE_END_DATE PER_ALL_ASSIGNMENTS_F.EFFECTIVE_END_DATE%TYPE;
L_NO_MANAGERS_WARNING BOOLEAN;
L_OTHER_MANAGER_WARNING BOOLEAN;
ERROR_MESSAGE VARCHAR2(4000):= NULL;
CURRENT_RECORDS NUMBER;
TOTAL_RECORDS NUMBER;
ERROR_RECORDS NUMBER;
L_EFFECTIVE_DATE_VALID NUMBER;
ERROR_MESSAGE1 VARCHAR2(4000):= NULL;
MGR_ID NUMBER;
MGR_EFFECTIVE_DATE DATE;
EMP_EFFECTIVE_DATE DATE;
EMP_ID NUMBER;
VCOUNT NUMBER :=0;

BEGIN
--LC_DT_UD_MODE := 'UPDATE';
FOR I IN (SELECT A.*

FROM XX_SUPERVISOR a
WHERE EMP_NAME NOT IN ('Abdullah Essam Abdullah Abdul Aziz','Hassan
Shehata Mohamed Shehata') ) LOOP

L_SOFT_CODING_KEYFLEX_ID := NULL;
LB_CORRECTION := NULL;
LB_UPDATE := NULL;
LB_UPDATE_OVERRIDE := NULL;
LB_UPDATE_CHANGE_INSERT := NULL;
L_CONCATENATED_SEGMENTS := NULL;
L_COMMENT_ID := NULL;
L_EFFECTIVE_START_DATE := NULL;
L_EFFECTIVE_END_DATE := NULL;
L_NO_MANAGERS_WARNING := NULL;
L_OTHER_MANAGER_WARNING := NULL;

SELECT PERSON_ID ,EFFECTIVE_START_DATE


INTO MGR_ID ,MGR_EFFECTIVE_DATE
FROM
PER_ALL_PEOPLE_F
WHERE LAST_NAME = I.MGR_NAME ;
SELECT PERSON_ID ,EFFECTIVE_START_DATE
INTO EMP_ID ,EMP_EFFECTIVE_DATE
FROM
PER_ALL_PEOPLE_F
WHERE LAST_NAME = I.EMP_NAME ;

--
SELECT A.ASSIGNMENT_ID ,A.OBJECT_VERSION_NUMBER
INTO L_ASSIGNMENT_ID ,L_OBJ_VERSION_NUM
FROM per_all_assignments_f a
WHERE person_id = EMP_ID
AND SYSDATE BETWEEN EFFECTIVE_START_DATE AND EFFECTIVE_END_DATE;

IF MGR_EFFECTIVE_DATE >= EMP_EFFECTIVE_DATE


THEN
L_EFFECTIVE_DATE := MGR_EFFECTIVE_DATE;
ELSE
L_EFFECTIVE_DATE := EMP_EFFECTIVE_DATE;
END IF;

DBMS_OUTPUT.PUT_LINE(VCOUNT||'****'||L_OBJ_VERSION_NUM);

DT_API.FIND_DT_UPD_MODES
( P_EFFECTIVE_DATE => L_EFFECTIVE_DATE,
P_BASE_TABLE_NAME => 'PER_ALL_ASSIGNMENTS_F',
P_BASE_KEY_COLUMN => 'ASSIGNMENT_ID',
P_BASE_KEY_VALUE => L_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;
HR_ASSIGNMENT_API.UPDATE_EMP_ASG
(
-- INPUT DATA ELEMENTS
P_EFFECTIVE_DATE => L_EFFECTIVE_DATE,
P_DATETRACK_UPDATE_MODE => LC_DT_UD_MODE,
P_ASSIGNMENT_ID => L_ASSIGNMENT_ID,
P_SUPERVISOR_ID => MGR_ID, -- ENTER
SUPERVISOR_ID HERE TO CHANGE THE EXISTING SUPERVISOR
P_CHANGE_REASON => NULL,
--IN OUT ELEMENT
P_OBJECT_VERSION_NUMBER => L_OBJ_VERSION_NUM ,
P_SOFT_CODING_KEYFLEX_ID => L_SOFT_CODING_KEYFLEX_ID,
--OUTPUT DATA ELEMENTS
P_CONCATENATED_SEGMENTS => L_CONCATENATED_SEGMENTS,
P_COMMENT_ID => L_COMMENT_ID,
P_EFFECTIVE_START_DATE => L_EFFECTIVE_START_DATE,
P_EFFECTIVE_END_DATE => L_EFFECTIVE_END_DATE,
P_NO_MANAGERS_WARNING => L_NO_MANAGERS_WARNING,
P_OTHER_MANAGER_WARNING => L_OTHER_MANAGER_WARNING
);
END LOOP;
END;

You might also like