[Home] [Help]
PACKAGE BODY: APPS.HR_APP_API_HOOK_CALL_INTERNAL
Source
1 Package Body hr_app_api_hook_call_internal as
2 /* $Header: peahcbsi.pkb 115.4 2002/12/05 12:51:46 apholt noship $ */
3 --
4 -- Package Variables
5 --
6 g_package varchar2(33) := ' hr_app_api_hook_call_internal.';
7 --
8 -- ------------------------------------------------------------------------
9 -- |--------------------< create_app_api_hook_call >----------------------|
10 -- ------------------------------------------------------------------------
11 --
12 procedure create_app_api_hook_call
13 (p_validate in boolean default false,
14 p_effective_date in date,
15 p_api_hook_id in number,
16 p_api_hook_call_type in varchar2,
17 p_sequence in number,
18 p_application_id in number,
19 p_app_install_status in varchar2,
20 p_enabled_flag in varchar2 default 'N',
21 p_call_package in varchar2 default null,
22 p_call_procedure in varchar2 default null,
23 p_api_hook_call_id out nocopy number,
24 p_object_version_number out nocopy number) is
25 --
26 -- Declare cursors and local variables
27 --
28 l_effective_date date;
29 --
30 --
31 -- Out variables
32 --
33 l_api_hook_call_id hr_api_hook_calls.api_hook_call_id%TYPE;
34 l_object_version_number hr_api_hook_calls.object_version_number%TYPE;
35
36 l_legislation_code hr_api_hook_calls.legislation_code%TYPE := null;
37 l_encoded_error hr_api_hook_calls.encoded_error%TYPE := null;
38 l_status hr_api_hook_calls.status%TYPE := 'N';
39 l_pre_processor_date hr_api_hook_calls.pre_processor_date%TYPE := null;
40 --
41 l_proc varchar2(72) := g_package
42 || 'create_app_api_hook_call';
43 --
44 -- Declare a cursor that will check whether the passed
45 -- in hook package and hook procedure form a unique combination
46
47 cursor csr_valid_combo is
48 select api_hook_call_id, object_version_number
49 from hr_api_hook_calls
50 where api_hook_id = p_api_hook_id
51 and nvl(application_id,hr_api.g_number)
52 = nvl(p_application_id,hr_api.g_number)
53 and nvl(call_package, hr_api.g_varchar2)
54 = nvl(p_call_package,hr_api.g_varchar2)
55 and nvl(call_procedure, hr_api.g_varchar2)
56 = nvl(p_call_procedure, hr_api.g_varchar2)
57 and legislation_code IS NULL;
58
59 begin
60 hr_utility.set_location('Entering:'|| l_proc, 5);
61 --
62 -- Set l_effective_date equal to truncated version of p_effective_date for
63 -- API work. Stops dates being passed to row handlers with time portion.
64 --
65 l_effective_date := trunc(p_effective_date);
66 --
67 -- Issue a savepoint if operating in validation only mode.
68 --
69 savepoint create_app_api_hook_call;
70 --
71 hr_utility.set_location(l_proc, 10);
72 --
73 -- Validation in addition to Table Handlers
74 --
75 if (p_application_id is NULL) then
76 --
77 hr_utility.set_message(800, 'PER_289090_AHC_APP_ID_NULL');
78 hr_utility.raise_error;
79 --
80 end if;
81 --
82 if (p_app_install_status is NULL) then
83 --
84 hr_utility.set_message(800,'PER_289091_AHC_INST_STAT_NULL');
85 hr_utility.raise_error;
86 --
87 end if;
88 --
89 -- Process Logic
90 ----------------------------------------------------------------------------
91 -- Check for combination of hook call id, app_id, call pack, call proc --
92 ----------------------------------------------------------------------------
93 open csr_valid_combo;
94 fetch csr_valid_combo into l_api_hook_call_id, l_object_version_number;
95
96 -- Only call row handler code if the row doesn't already exist.
97 if csr_valid_combo%notfound then
98 --
99 -- Insert the hook row.
100 --
101 hr_ahc_ins.ins
102 (
103 p_api_hook_call_id => l_api_hook_call_id ,
104 p_effective_date => l_effective_date,
105 p_api_hook_id => p_api_hook_id,
106 p_api_hook_call_type => p_api_hook_call_type,
107 p_legislation_code => l_legislation_code,
108 p_sequence => p_sequence,
109 p_enabled_flag => p_enabled_flag,
110 p_call_package => p_call_package,
111 p_call_procedure => p_call_procedure,
112 p_pre_processor_date => l_pre_processor_date,
113 p_encoded_error => l_encoded_error,
114 p_status => l_status,
115 p_object_version_number => l_object_version_number,
116 p_application_id => p_application_id,
117 p_app_install_status => p_app_install_status
118 );
119 --
120 end if;
121
122 close csr_valid_combo;
123
124 hr_utility.set_location(l_proc, 20);
125 --
126 -- When in validation only mode raise the Validate_Enabled exception
127 --
128 if p_validate then
129 raise hr_api.validate_enabled;
130 end if;
131 --
132 -- Set all output arguments
133 --
134 p_api_hook_call_id := l_api_hook_call_id;
135 p_object_version_number := l_object_version_number;
136 --
137 hr_utility.set_location(' Leaving:'||l_proc, 100);
138 exception
139 when hr_api.validate_enabled then
140 --
141 -- As the Validate_Enabled exception has been raised
142 -- we must rollback to the savepoint
143 --
144 ROLLBACK TO create_app_api_hook_call;
145 --
146 -- Only set output warning arguments
147 -- (Any key or derived arguments must be set to null
148 -- when validation only mode is being used.)
149 --
150 p_api_hook_call_id := null;
151 p_object_version_number := null;
152 when others then
153 ROLLBACK TO create_app_api_hook_call;
154 p_api_hook_call_id := null;
155 p_object_version_number := null;
156 RAISE;
157 end create_app_api_hook_call;
158 --
159 --
160 -- ---------------------------------------------------------------------------
161 -- |--------------------------< delete_app_api_hook_call >-------------------|
162 -- ---------------------------------------------------------------------------
163 --
164 procedure delete_app_api_hook_call
165 (p_validate in boolean default false,
166 p_api_hook_call_id in number,
167 p_object_version_number in number) is
168 --
169 l_proc varchar2(72) := g_package||'delete_app_api_hook_call';
170 --
171 -- Cursor to check application_id
172 CURSOR csr_check_app IS
173 SELECT 'Y'
174 FROM hr_api_hook_calls
175 WHERE api_hook_call_id = p_api_hook_call_id
176 AND application_id IS NOT NULL;
177 --
178 -- Cursor to check hook call exists
179 CURSOR csr_check_exists IS
180 SELECT 'Y'
181 FROM hr_api_hook_calls
182 WHERE api_hook_call_id = p_api_hook_call_id;
183 --
184 l_exists varchar2(1);
185 --
186 begin
187 hr_utility.set_location('Entering:'|| l_proc, 5);
188 --
189 -- Issue a savepoint if operating in validation only mode.
190 --
191 savepoint delete_app_api_hook_call;
192 --
193 hr_utility.set_location(l_proc, 10);
194 --
195 -- Validation in addition to Table Handlers
196 --
197 -- Ensure the hook call definition specified is an application specific
198 -- hook call, and that application_id is null.
199 OPEN csr_check_app;
200 FETCH csr_check_app INTO l_exists;
201 IF csr_check_app%NOTFOUND THEN
202 CLOSE csr_check_app;
203 -- api_hook_call_id specified does not reference an application hook call
204 --
205 -- Check if hook exists at all.
206 OPEN csr_check_exists;
207 FETCH csr_check_exists INTO l_exists;
208 IF csr_check_exists%NOTFOUND THEN
209 -- Hook does not exist at all.
210 CLOSE csr_check_exists;
211 hr_utility.set_message(800,'PER_289096_AHC_HOOK_NOT_EXIST');
212 hr_utility.raise_error;
213 ELSE
214 -- Hook exists, but is not application hook.
215 CLOSE csr_check_exists;
216 hr_utility.set_message(800,'PER_289092_AHC_NOT_APPL_HOOK');
217 hr_utility.raise_error;
218 END IF;
219 END IF;
220 CLOSE csr_check_app;
221 --
222 --
223 -- Process Logic
224 --
225 hr_ahc_del.del
226 (p_api_hook_call_id => p_api_hook_call_id,
227 p_object_version_number => p_object_version_number);
228 --
229 hr_utility.set_location(l_proc, 20);
230 --
231 -- When in validation only mode raise the Validate_Enabled exception
232 --
233 if p_validate then
234 raise hr_api.validate_enabled;
235 end if;
236 --
237 hr_utility.set_location(' Leaving:'||l_proc, 100);
238 exception
239 when hr_api.validate_enabled then
240 --
241 -- As the Validate_Enabled exception has been raised
242 -- we must rollback to the savepoint
243 --
244 ROLLBACK TO delete_app_api_hook_call;
245 when others then
246 ROLLBACK TO delete_app_api_hook_call;
247 raise;
248 end delete_app_api_hook_call;
249 --
250 --
251 -- ------------------------------------------------------------------------
252 -- |---------------------< update_app_api_hook_call >-------------------------|
253 -- ------------------------------------------------------------------------
254 --
255 procedure update_app_api_hook_call
256 (p_validate in boolean default false,
257 p_effective_date in date,
258 p_api_hook_call_id in number,
259 p_object_version_number in out nocopy number,
260 p_sequence in number default hr_api.g_number,
261 p_app_install_status in varchar2 default hr_api.g_varchar2,
262 p_enabled_flag in varchar2 default hr_api.g_varchar2,
263 p_call_package in varchar2 default hr_api.g_varchar2,
264 p_call_procedure in varchar2 default hr_api.g_varchar2,
265 p_pre_processor_date in date default hr_api.g_date,
266 p_encoded_error in varchar2 default hr_api.g_varchar2,
267 p_status in varchar2 default hr_api.g_varchar2
268 ) is
269 --
270 -- Declare cursors and local variables
271 --
272 l_effective_date date;
273 --
274 -- Out variables
275 --
276 l_object_version_number hr_api_hook_calls.object_version_number%TYPE;
277
278 l_proc varchar2(72) := g_package||'update_app_api_hook_call';
279 --
280 -- Cursor to check application_id
281 CURSOR csr_check_app IS
282 SELECT 'Y'
283 FROM hr_api_hook_calls
284 WHERE api_hook_call_id = p_api_hook_call_id
285 AND application_id IS NOT NULL;
286 --
287 -- Cursor to check hook call exists
288 CURSOR csr_check_exists IS
289 SELECT 'Y'
290 FROM hr_api_hook_calls
291 WHERE api_hook_call_id = p_api_hook_call_id;
292 --
293 l_exists varchar2(1);
294 --
295 begin
296 hr_utility.set_location('Entering:'|| l_proc, 5);
297 --
298 -- Set l_effective_date equal to truncated version of p_effective_date for
299 -- API work. Stops dates being passed to row handlers with time portion.
300 --
301 l_effective_date := trunc(p_effective_date);
302 --
303 -- Capture the in value for the object version number
304 --
305 l_object_version_number := p_object_version_number;
306 --
307 -- Issue a savepoint if operating in validation only mode.
308 --
309 savepoint update_app_api_hook_call;
310 --
311 hr_utility.set_location(l_proc, 10);
312 --
313 -- Validation in addition to Table Handlers
314 --
315 -- Ensure the hook call definition specified is an application specific
316 -- hook call, and that application_id is null.
317 OPEN csr_check_app;
318 FETCH csr_check_app INTO l_exists;
319 IF csr_check_app%NOTFOUND THEN
320 CLOSE csr_check_app;
321 -- api_hook_call_id specified does not reference an application hook call
322 -- Check if hook exists
323 OPEN csr_check_exists;
324 FETCH csr_check_exists INTO l_exists;
325 IF csr_check_exists%NOTFOUND THEN
326 CLOSE csr_check_exists;
327 -- Hook call does not exist at all
328 hr_utility.set_message(800,'PER_289096_AHC_HOOK_NOT_EXIST');
329 hr_utility.raise_error;
330 ELSE
331 CLOSE csr_check_exists;
332 -- Hook call exists, but does not reference Application Hook call.
333 hr_utility.set_message(800,'PER_289092_AHC_NOT_APPL_HOOK');
334 hr_utility.raise_error;
335 END IF;
336 END IF;
337 CLOSE csr_check_app;
338 --
339 -- Update the hook call row
340 --
341 hr_ahc_upd.upd
342 (
343 p_api_hook_call_id => p_api_hook_call_id ,
344 p_effective_date => l_effective_date,
345 p_sequence => p_sequence,
346 p_enabled_flag => p_enabled_flag,
347 p_call_package => p_call_package,
348 p_call_procedure => p_call_procedure,
349 p_pre_processor_date => p_pre_processor_date,
350 p_encoded_error => p_encoded_error,
351 p_status => p_status,
352 p_object_version_number => p_object_version_number
353 );
354 --
355 hr_utility.set_location(l_proc, 20);
356 --
357 -- When in validation only mode raise the Validate_Enabled exception
358 --
359 if p_validate then
360 raise hr_api.validate_enabled;
361 end if;
362 --
363 -- Set all output arguments
364 --
365 p_object_version_number := l_object_version_number;
366 --
367 hr_utility.set_location(' Leaving:'||l_proc, 100);
368 exception
369 when hr_api.validate_enabled then
370 --
371 -- Only set output warning arguments
372 -- (Any key or derived arguments must be set to null
373 -- when validation only mode is being used.)
374 --
375 p_object_version_number := l_object_version_number;
376 --
377 -- As the Validate_Enabled exception has been raised
378 -- we must rollback to the savepoint
379 --
380 ROLLBACK TO update_app_api_hook_call;
381 --
382 when others then
383 ROLLBACK TO update_app_api_hook_call;
384 p_object_version_number :=null;
385 RAISE;
386 end update_app_api_hook_call;
387 --
388 end hr_app_api_hook_call_internal;