[Home] [Help]
PACKAGE BODY: APPS.HR_KI_UCX_LOAD_API
Source
1 Package Body HR_KI_UCX_LOAD_API as
2 /* $Header: hrkiucxl.pkb 120.1 2006/06/27 16:08:10 avarri noship $ */
3 --
4 -- Package Variables
5 --
6 g_package varchar2(31) := 'HR_KI_UCX_LOAD_API';
7 --
8 procedure UPDATE_ROW (
9 X_UI_CONTEXT_ID in number
10 ,X_LABEL in varchar
11 ,X_LOCATION in varchar
12 ,X_LAST_UPDATE_DATE in DATE
13 ,X_LAST_UPDATED_BY in NUMBER
14 ,X_LAST_UPDATE_LOGIN in NUMBER
15 ,X_OBJECT_VERSION_NUMBER in NUMBER
16 ) is
17
18 begin
19
20 update HR_KI_UI_CONTEXTS
21 set
22 LABEL = X_LABEL,
23 LOCATION=X_LOCATION,
24 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
25 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
26 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
27 OBJECT_VERSION_NUMBER = X_OBJECT_VERSION_NUMBER+1
28 where UI_CONTEXT_ID = X_UI_CONTEXT_ID;
29
30 end UPDATE_ROW;
31
32 procedure INSERT_ROW (
33 X_ROWID in out nocopy VARCHAR2,
34 X_UI_CONTEXT_ID in out nocopy NUMBER,
35 X_USER_INTERFACE_ID in NUMBER,
36 X_UI_CONTEXT_KEY in VARCHAR,
37 X_LABEL in VARCHAR,
38 X_LOCATION in VARCHAR,
39 X_CREATED_BY in NUMBER,
40 X_CREATION_DATE in DATE,
41 X_LAST_UPDATE_DATE in DATE,
42 X_LAST_UPDATED_BY in NUMBER,
43 X_LAST_UPDATE_LOGIN in NUMBER
44
45 ) is
46
47 cursor C is select ROWID from HR_KI_UI_CONTEXTS
48 where ui_context_id = x_ui_context_id;
49
50 begin
51
52 select HR_KI_UI_CONTEXTS_S.NEXTVAL into x_ui_context_id from sys.dual;
53
54 insert into HR_KI_UI_CONTEXTS (
55 ui_context_id,
56 ui_context_key,
57 user_interface_id,
58 label,
59 location,
60 CREATION_DATE,
61 CREATED_BY,
62 LAST_UPDATE_DATE,
63 LAST_UPDATED_BY,
64 LAST_UPDATE_LOGIN,
65 OBJECT_VERSION_NUMBER
66 ) values (
67 X_UI_CONTEXT_ID,
68 X_UI_CONTEXT_KEY,
69 X_USER_INTERFACE_ID,
70 X_LABEL,
71 X_LOCATION,
72 X_CREATION_DATE,
73 X_CREATED_BY,
74 X_LAST_UPDATE_DATE,
75 X_LAST_UPDATED_BY,
76 X_LAST_UPDATE_LOGIN,
77 1
78 );
79
80 open c;
81 fetch c into X_ROWID;
82 if (c%notfound) then
83 close c;
84 hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
85 hr_utility.set_message_token('PROCEDURE',
86 'HR_KI_UI_CONTEXTS.insert_row');
87 hr_utility.set_message_token('STEP','1');
88 hr_utility.raise_error;
89 end if;
90 close c;
91
92
93 end INSERT_ROW;
94
95 procedure validate_keys
96 (
97 X_USER_INTERFACE_KEY in VARCHAR2
98 ,X_USER_INTERFACE_ID in out nocopy number
99 )
100 is
101
102 l_proc VARCHAR2(35) := 'HR_KI_UCX_LOAD_API.VALIDATE_KEYS';
103
104 CURSOR C_VAL_INT IS
105 select user_interface_id
106 from HR_KI_USER_INTERFACES
107 where upper(user_interface_key) = upper(X_USER_INTERFACE_KEY);
108
109 begin
110
111 open C_VAL_INT;
112 fetch C_VAL_INT into X_USER_INTERFACE_ID;
113
114 If C_VAL_INT%NOTFOUND then
115 close C_VAL_INT;
116 fnd_message.set_name( 'PER','PER_449569_UCX_UI_ID_ABSENT');
117 fnd_message.raise_error;
118 End If;
119
120 close C_VAL_INT;
121
122
123 end validate_keys;
124
125 procedure LOAD_ROW
126 (
127 X_USER_INTERFACE_KEY in VARCHAR2,
128 X_UI_CONTEXT_KEY in VARCHAR2,
129 X_LABEL in VARCHAR2,
130 X_LOCATION in VARCHAR2,
131 X_LAST_UPDATE_DATE in VARCHAR2,
132 X_CUSTOM_MODE in VARCHAR2,
133 X_OWNER in VARCHAR2
134
135 )
136 is
137 l_proc VARCHAR2(31) := 'HR_KI_UCX_LOAD_API.LOAD_ROW';
138 l_rowid rowid;
139 l_created_by HR_KI_UI_CONTEXTS.created_by%TYPE := 0;
140 l_creation_date HR_KI_UI_CONTEXTS.creation_date%TYPE := SYSDATE;
141 l_last_update_date HR_KI_UI_CONTEXTS.last_update_date%TYPE := SYSDATE;
142 l_last_updated_by HR_KI_UI_CONTEXTS.last_updated_by%TYPE := 0;
143 l_last_update_login HR_KI_UI_CONTEXTS.last_update_login%TYPE := 0;
144 l_ui_context_id HR_KI_UI_CONTEXTS.ui_context_id%TYPE;
145 l_user_interface_id HR_KI_USER_INTERFACES.user_interface_id%TYPE;
146 l_object_version_number HR_KI_OPTION_TYPES.object_version_number%TYPE;
147
148
149 db_luby number; -- entity owner in db
150 db_ludate date; -- entity update date in db
151
152 CURSOR C_APPL IS
153 select uic.ui_context_id,uic.object_version_number
154 from HR_KI_UI_CONTEXTS uic,
155 hr_ki_user_interfaces uit
156 where uic.user_interface_id = uit.user_interface_id
157 and upper(uic.ui_context_key)=upper(x_ui_context_key)
158 and upper(uit.user_interface_key)=upper(x_user_interface_key);
159
160 begin
161 --
162 -- added for 5354277
163 hr_general.g_data_migrator_mode := 'Y';
164 --
165 --validate Keys
166 validate_keys(
167 X_USER_INTERFACE_KEY => x_user_interface_key
168 ,X_USER_INTERFACE_ID => l_user_interface_id
169 );
170
171 -- Translate owner to file_last_updated_by
172 l_last_updated_by := fnd_load_util.owner_id(X_OWNER);
173 l_created_by := fnd_load_util.owner_id(X_OWNER);
174
175 -- Translate char last_update_date to date
176 l_last_update_date := nvl(to_date(X_LAST_UPDATE_DATE, 'YYYY/MM/DD hh24:mi:ss'), sysdate);
177
178
179 -- Update or insert row as appropriate
180
181 OPEN C_APPL;
182 FETCH C_APPL INTO l_ui_context_id,l_object_version_number;
183
184
185 if C_APPL%notfound then
186 close C_APPL;
187 INSERT_ROW
188 (
189 X_ROWID => l_rowid
190 ,X_UI_CONTEXT_ID => l_ui_context_id
191 ,X_USER_INTERFACE_ID => l_user_interface_id
192 ,X_UI_CONTEXT_KEY => x_ui_context_key
193 ,X_LABEL => x_label
194 ,X_LOCATION => x_location
195 ,X_CREATED_BY => l_created_by
196 ,X_CREATION_DATE => l_creation_date
197 ,X_LAST_UPDATE_DATE => l_last_update_date
198 ,X_LAST_UPDATED_BY => l_last_updated_by
199 ,X_LAST_UPDATE_LOGIN => l_last_update_login
200 );
201
202
203 else
204 close C_APPL;
205 select LAST_UPDATED_BY, LAST_UPDATE_DATE
206 into db_luby, db_ludate
207 from HR_KI_UI_CONTEXTS
208 where ui_context_id = l_ui_context_id;
209
210
211 if (fnd_load_util.upload_test(l_last_updated_by, l_last_update_date, db_luby,
212 db_ludate, X_CUSTOM_MODE)) then
213
214 -- Updating label is allowed but the UI_CONTEXT_KEY will not be updated
215 -- by convention UI_CONTEXT_KEY should be <ui_key>::<label>
216
217 -- Ideally we should not allow to update,but chances are
218 -- that we need way to handle updation of label
219 -- Recommended way is to create new row
220
221 UPDATE_ROW
222 (
223 X_UI_CONTEXT_ID => l_ui_context_id
224 ,X_LABEL => X_LABEL
225 ,X_LOCATION => X_LOCATION
226 ,X_LAST_UPDATE_DATE => l_last_update_date
227 ,X_LAST_UPDATED_BY => l_last_updated_by
228 ,X_LAST_UPDATE_LOGIN => l_last_update_login
229 ,X_OBJECT_VERSION_NUMBER => l_object_version_number
230 );
231
232 end if;
233
234 end if;
235
236 --
237 end LOAD_ROW;
238
239 END HR_KI_UCX_LOAD_API;