[Home] [Help]
PACKAGE BODY: APPS.PER_PJI_BUS
Source
4 -- ----------------------------------------------------------------------------
1 Package Body per_pji_bus as
2 /* $Header: pepjirhi.pkb 115.8 2002/12/03 15:41:52 eumenyio ship $ */
3 --
5 -- | Private Global Definitions |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package varchar2(33) := ' per_pji_bus.'; -- Global package name
9 --
10 -- The following two global variables are only to be
11 -- used by the return_legislation_code function.
12 --
13 g_legislation_code varchar2(150) default null;
14 g_previous_job_extra_info_id number default null;
15 --
16 -- ----------------------------------------------------------------------------
17 -- |------------------------< chk_previous_job_id >---------------------------|
18 -- ----------------------------------------------------------------------------
19 -- {Start Of Comments}
20 --
21 -- Description:
22 -- This procedure ensures that previous_job_id is valid.
23 --
24 -- Pre Conditions:
25 -- g_old_rec has been populated with details of the values currently in
26 -- the database.
27 --
28 -- In Arguments:
29 -- p_previous_job_id
30 --
31 -- Post Success:
32 -- Processing continues if previous_job_id is valid
33 --
34 --
35 -- Post Failure:
36 -- An application error is raised if previous_job_id is not valid.
37 --
38 -- {End Of Comments}
39 -- ----------------------------------------------------------------------------
40 procedure chk_previous_job_id
41 (p_previous_job_id
42 in per_previous_jobs.previous_job_id%type
43 ,p_previous_job_extra_info_id
44 in per_prev_job_extra_info.previous_job_extra_info_id%type
45 ,p_object_version_number
46 in per_prev_job_extra_info.object_version_number%type) is
50 where previous_job_id = p_previous_job_id;
47 cursor csr_previous_job_id is
48 select previous_job_id
49 from per_previous_jobs
51 l_previous_job_id per_previous_jobs.previous_job_id%type;
52 --
53 l_proc varchar2(72) := g_package||'chk_previous_job_id';
54 l_api_updating boolean;
55 begin
56 hr_utility.set_location('Entering:'||l_proc, 5);
57 --
58 hr_utility.set_location(l_proc, 10);
59 l_api_updating
60 := per_pji_shd.api_updating(p_previous_job_extra_info_id
61 => p_previous_job_extra_info_id
62 ,p_object_version_number
63 => p_object_version_number
64 );
65 if ((l_api_updating
66 and nvl(per_pji_shd.g_old_rec.previous_job_id, hr_api.g_number)
67 <> nvl(p_previous_job_id,hr_api.g_number))
68 or
69 (not l_api_updating)) then
70 hr_utility.set_location(l_proc, 15);
71 open csr_previous_job_id;
72 fetch csr_previous_job_id into l_previous_job_id;
73 if csr_previous_job_id%notfound then
74 hr_utility.set_location(l_proc, 20);
75 close csr_previous_job_id;
76 fnd_message.set_name('PER','HR_289540_PJI_INV_PREV_JOB_ID');
77 fnd_message.raise_error;
78 end if;
79 if csr_previous_job_id%isopen then
80 close csr_previous_job_id;
81 end if;
82 end if;
83 --
84 hr_utility.set_location('Leaving:'||l_proc, 25);
85 exception
86 when others then
87 raise;
88 end chk_previous_job_id;
89 --
90 -- ----------------------------------------------------------------------------
91 -- |---------------------------< chk_information_type >-----------------------|
92 -- ----------------------------------------------------------------------------
93 -- {Start Of Comments}
94 --
95 -- Description:
96 -- This procedure ensures that information_type is valid
97 --
98 -- Pre Conditions:
99 -- g_old_rec has been populated with details of the values currently in
100 -- the database.
101 --
102 -- In Arguments:
103 -- p_previous_job_extra_info_id
104 -- p_object_version_number
105 -- p_information_type
106 --
107 -- Post Success:
108 -- Processing continues if information_type is valid.
109 --
110 --
111 -- Post Failure:
112 -- An application error is raised if information_type is invalid.
113 --
114 -- {End Of Comments}
115 -- ----------------------------------------------------------------------------
116 procedure chk_information_type
117 (p_previous_job_extra_info_id
118 in per_prev_job_extra_info.previous_job_extra_info_id%type
119 ,p_object_version_number
120 in per_prev_job_extra_info.object_version_number%type
121 ,p_information_type
122 in per_prev_job_extra_info.information_type%type) is
123 cursor csr_information_type is
124 select information_type
125 from per_prev_job_info_types
126 where information_type = p_information_type
127 and active_inactive_flag = 'Y';
128 l_information_type per_prev_job_extra_info.information_type%type;
129 --
130 l_proc varchar2(72) := g_package||'chk_information_type';
131 l_api_updating boolean;
132 begin
133 hr_utility.set_location('Entering:'||l_proc, 5);
134 --
135 hr_utility.set_location(l_proc, 10);
136 l_api_updating
137 := per_pji_shd.api_updating(p_previous_job_extra_info_id
138 => p_previous_job_extra_info_id
139 ,p_object_version_number
140 => p_object_version_number
141 );
142 if ((l_api_updating
143 and nvl(per_pji_shd.g_old_rec.information_type, hr_api.g_varchar2)
144 <> nvl(p_information_type,hr_api.g_varchar2))
145 or
146 (not l_api_updating)) then
147 hr_utility.set_location(l_proc, 15);
148 open csr_information_type;
149 fetch csr_information_type into l_information_type;
150 if csr_information_type%notfound then
151 hr_utility.set_location(l_proc, 20);
152 close csr_information_type;
153 fnd_message.set_name('PER','HR_289539_PJI_INV_INFO_TYPE');
154 fnd_message.raise_error;
155 end if;
156 if csr_information_type%isopen then
157 close csr_information_type;
158 end if;
159 end if;
160 --
161 hr_utility.set_location('Leaving:'||l_proc, 25);
162 exception
163 when others then
164 raise;
165 end chk_information_type;
166 --
167 -- ---------------------------------------------------------------------------
168 -- |----------------------< set_security_group_id >--------------------------|
169 -- ---------------------------------------------------------------------------
170 --
171 Procedure set_security_group_id
172 (p_previous_job_extra_info_id in number
173 ) is
174 --
175 -- Declare cursor
176 --
177 cursor csr_sec_grp is
178 select pbg.security_group_id
179 from per_business_groups pbg
180 , per_prev_job_extra_info pji
181 , per_previous_jobs pjo
182 , per_previous_employers pem
183 where pji.previous_job_extra_info_id = p_previous_job_extra_info_id
184 and pji.previous_job_id = pjo.previous_job_id
185 and pjo.previous_employer_id = pem.previous_employer_id
186 and pbg.business_group_id = pem.business_group_id;
187 --
188 -- Declare local variables
189 --
190 l_security_group_id number;
191 l_proc varchar2(72) := g_package||'set_security_group_id';
192 --
193 begin
194 --
195 hr_utility.set_location('Entering:'|| l_proc, 10);
196 --
197 -- Ensure that all the mandatory parameter are not null
198 --
199 hr_api.mandatory_arg_error
200 (p_api_name => l_proc
201 ,p_argument => 'previous_job_extra_info_id'
202 ,p_argument_value => p_previous_job_extra_info_id
203 );
204 --
205 open csr_sec_grp;
206 fetch csr_sec_grp into l_security_group_id;
207 --
208 if csr_sec_grp%notfound then
209 --
210 close csr_sec_grp;
211 --
215 fnd_message.raise_error;
212 -- The primary key is invalid therefore we must error
213 --
214 fnd_message.set_name('PAY','HR_7220_INVALID_PRIMARY_KEY');
216 --
217 end if;
218 close csr_sec_grp;
219 --
220 -- Set the security_group_id in CLIENT_INFO
221 --
222 hr_api.set_security_group_id
223 (p_security_group_id => l_security_group_id
224 );
225 --
226 hr_utility.set_location(' Leaving:'|| l_proc, 20);
227 --
228 end set_security_group_id;
229 --
230 -- ---------------------------------------------------------------------------
231 -- |---------------------< return_legislation_code >-------------------------|
232 -- ---------------------------------------------------------------------------
233 --
234 Function return_legislation_code
235 (p_previous_job_extra_info_id in number
236 )
237 Return Varchar2 Is
238 --
239 -- Declare cursor
240 cursor csr_leg_code is
241 select pbg.legislation_code
242 from per_business_groups pbg
243 , per_prev_job_extra_info pji
244 , per_previous_jobs pjo
245 , per_previous_employers pem
246 where pji.previous_job_extra_info_id = p_previous_job_extra_info_id
247 and pji.previous_job_id = pjo.previous_job_id
248 and pjo.previous_employer_id = pem.previous_employer_id(+)
249 and pem.business_group_id = pbg.business_group_id(+);
250 --
251 -- Declare local variables
252 --
253 l_legislation_code varchar2(150);
254 l_proc varchar2(72) := g_package||'return_legislation_code';
255 --
256 Begin
257 --
258 hr_utility.set_location('Entering:'|| l_proc, 10);
259 --
260 -- Ensure that all the mandatory parameter are not null
261 --
262 hr_api.mandatory_arg_error
263 (p_api_name => l_proc
264 ,p_argument => 'previous_job_extra_info_id'
265 ,p_argument_value => p_previous_job_extra_info_id
266 );
267 --
268 if ( nvl(per_pji_bus.g_previous_job_extra_info_id, hr_api.g_number)
269 = p_previous_job_extra_info_id) then
270 --
271 -- The legislation code has already been found with a previous
272 -- call to this function. Just return the value in the global
273 -- variable.
274 --
275 l_legislation_code := per_pji_bus.g_legislation_code;
276 hr_utility.set_location(l_proc, 20);
277 else
278 --
279 -- The ID is different to the last call to this function
280 -- or this is the first call to this function.
281 --
282 open csr_leg_code;
283 fetch csr_leg_code into l_legislation_code;
284 --
285 if csr_leg_code%notfound then
286 --
287 -- The primary key is invalid therefore we must error
288 --
289 close csr_leg_code;
290 fnd_message.set_name('PAY','HR_7220_INVALID_PRIMARY_KEY');
291 fnd_message.raise_error;
292 end if;
293 hr_utility.set_location(l_proc,30);
294 --
295 -- Set the global variables so the values are
296 -- available for the next call to this function.
297 --
298 close csr_leg_code;
299 per_pji_bus.g_previous_job_extra_info_id := p_previous_job_extra_info_id;
300 per_pji_bus.g_legislation_code := l_legislation_code;
301 end if;
302 hr_utility.set_location(' Leaving:'|| l_proc, 40);
303 return l_legislation_code;
304 end return_legislation_code;
305 --
306 -- ----------------------------------------------------------------------------
307 -- |-----------------------------< chk_ddf >----------------------------------|
308 -- ----------------------------------------------------------------------------
309 --
310 -- Description:
311 -- Validates all the Developer Descriptive Flexfield values.
312 --
313 -- Prerequisites:
314 -- All other columns have been validated. Must be called as the
315 -- last step from insert_validate and update_validate.
316 --
317 -- In Arguments:
318 -- p_rec
319 --
320 -- Post Success:
321 -- If the Developer Descriptive Flexfield structure column and data values
322 -- are all valid this procedure will end normally and processing will
323 -- continue.
324 --
325 -- Post Failure:
326 -- If the Developer Descriptive Flexfield structure column value or any of
327 -- the data values are invalid then an application error is raised as
328 -- a PL/SQL exception.
329 --
330 -- Access Status:
331 -- Internal Row Handler Use Only.
332 --
333 -- ----------------------------------------------------------------------------
334 procedure chk_ddf
335 (p_rec in per_pji_shd.g_rec_type
336 ) is
337 --
338 l_proc varchar2(72) := g_package || 'chk_ddf';
339 --
340 begin
341 hr_utility.set_location('Entering:'||l_proc,10);
342 --
343 if ((p_rec.previous_job_extra_info_id is not null) and (
344 nvl(per_pji_shd.g_old_rec.information_type, hr_api.g_varchar2) <>
345 nvl(p_rec.information_type, hr_api.g_varchar2) or
346 nvl(per_pji_shd.g_old_rec.pji_information_category, hr_api.g_varchar2) <>
347 nvl(p_rec.pji_information_category, hr_api.g_varchar2) or
348 nvl(per_pji_shd.g_old_rec.pji_information1, hr_api.g_varchar2) <>
349 nvl(p_rec.pji_information1, hr_api.g_varchar2) or
350 nvl(per_pji_shd.g_old_rec.pji_information2, hr_api.g_varchar2) <>
354 nvl(per_pji_shd.g_old_rec.pji_information4, hr_api.g_varchar2) <>
351 nvl(p_rec.pji_information2, hr_api.g_varchar2) or
352 nvl(per_pji_shd.g_old_rec.pji_information3, hr_api.g_varchar2) <>
353 nvl(p_rec.pji_information3, hr_api.g_varchar2) or
355 nvl(p_rec.pji_information4, hr_api.g_varchar2) or
356 nvl(per_pji_shd.g_old_rec.pji_information5, hr_api.g_varchar2) <>
357 nvl(p_rec.pji_information5, hr_api.g_varchar2) or
358 nvl(per_pji_shd.g_old_rec.pji_information6, hr_api.g_varchar2) <>
359 nvl(p_rec.pji_information6, hr_api.g_varchar2) or
360 nvl(per_pji_shd.g_old_rec.pji_information7, hr_api.g_varchar2) <>
361 nvl(p_rec.pji_information7, hr_api.g_varchar2) or
362 nvl(per_pji_shd.g_old_rec.pji_information8, hr_api.g_varchar2) <>
363 nvl(p_rec.pji_information8, hr_api.g_varchar2) or
364 nvl(per_pji_shd.g_old_rec.pji_information9, hr_api.g_varchar2) <>
365 nvl(p_rec.pji_information9, hr_api.g_varchar2) or
366 nvl(per_pji_shd.g_old_rec.pji_information10, hr_api.g_varchar2) <>
367 nvl(p_rec.pji_information10, hr_api.g_varchar2) or
368 nvl(per_pji_shd.g_old_rec.pji_information11, hr_api.g_varchar2) <>
369 nvl(p_rec.pji_information11, hr_api.g_varchar2) or
370 nvl(per_pji_shd.g_old_rec.pji_information12, hr_api.g_varchar2) <>
371 nvl(p_rec.pji_information12, hr_api.g_varchar2) or
372 nvl(per_pji_shd.g_old_rec.pji_information13, hr_api.g_varchar2) <>
373 nvl(p_rec.pji_information13, hr_api.g_varchar2) or
374 nvl(per_pji_shd.g_old_rec.pji_information14, hr_api.g_varchar2) <>
375 nvl(p_rec.pji_information14, hr_api.g_varchar2) or
376 nvl(per_pji_shd.g_old_rec.pji_information15, hr_api.g_varchar2) <>
377 nvl(p_rec.pji_information15, hr_api.g_varchar2) or
378 nvl(per_pji_shd.g_old_rec.pji_information16, hr_api.g_varchar2) <>
379 nvl(p_rec.pji_information16, hr_api.g_varchar2) or
380 nvl(per_pji_shd.g_old_rec.pji_information17, hr_api.g_varchar2) <>
381 nvl(p_rec.pji_information17, hr_api.g_varchar2) or
382 nvl(per_pji_shd.g_old_rec.pji_information18, hr_api.g_varchar2) <>
383 nvl(p_rec.pji_information18, hr_api.g_varchar2) or
384 nvl(per_pji_shd.g_old_rec.pji_information19, hr_api.g_varchar2) <>
385 nvl(p_rec.pji_information19, hr_api.g_varchar2) or
386 nvl(per_pji_shd.g_old_rec.pji_information20, hr_api.g_varchar2) <>
387 nvl(p_rec.pji_information20, hr_api.g_varchar2) or
388 nvl(per_pji_shd.g_old_rec.pji_information21, hr_api.g_varchar2) <>
389 nvl(p_rec.pji_information21, hr_api.g_varchar2) or
390 nvl(per_pji_shd.g_old_rec.pji_information22, hr_api.g_varchar2) <>
391 nvl(p_rec.pji_information22, hr_api.g_varchar2) or
392 nvl(per_pji_shd.g_old_rec.pji_information23, hr_api.g_varchar2) <>
393 nvl(p_rec.pji_information23, hr_api.g_varchar2) or
394 nvl(per_pji_shd.g_old_rec.pji_information24, hr_api.g_varchar2) <>
395 nvl(p_rec.pji_information24, hr_api.g_varchar2) or
396 nvl(per_pji_shd.g_old_rec.pji_information25, hr_api.g_varchar2) <>
397 nvl(p_rec.pji_information25, hr_api.g_varchar2) or
398 nvl(per_pji_shd.g_old_rec.pji_information26, hr_api.g_varchar2) <>
399 nvl(p_rec.pji_information26, hr_api.g_varchar2) or
400 nvl(per_pji_shd.g_old_rec.pji_information27, hr_api.g_varchar2) <>
401 nvl(p_rec.pji_information27, hr_api.g_varchar2) or
402 nvl(per_pji_shd.g_old_rec.pji_information28, hr_api.g_varchar2) <>
403 nvl(p_rec.pji_information28, hr_api.g_varchar2) or
404 nvl(per_pji_shd.g_old_rec.pji_information29, hr_api.g_varchar2) <>
405 nvl(p_rec.pji_information29, hr_api.g_varchar2) or
406 nvl(per_pji_shd.g_old_rec.pji_information30, hr_api.g_varchar2) <>
407 nvl(p_rec.pji_information30, hr_api.g_varchar2) ))
408 or (p_rec.previous_job_extra_info_id is null) then
409 --
410 -- Only execute the validation if absolutely necessary:
411 -- a) During update, the structure column value or any
412 -- of the attribute values have actually changed.
413 -- b) During insert.
414 --
415 hr_dflex_utility.ins_or_upd_descflex_attribs
416 (p_appl_short_name => 'PER'
417 ,p_descflex_name => 'Extra Previous Job DDF'
418 ,p_attribute_category => p_rec.pji_information_category
419 ,p_attribute1_name => 'PJI_INFORMATION1'
420 ,p_attribute1_value => p_rec.pji_information1
421 ,p_attribute2_name => 'PJI_INFORMATION2'
422 ,p_attribute2_value => p_rec.pji_information2
423 ,p_attribute3_name => 'PJI_INFORMATION3'
424 ,p_attribute3_value => p_rec.pji_information3
425 ,p_attribute4_name => 'PJI_INFORMATION4'
426 ,p_attribute4_value => p_rec.pji_information4
427 ,p_attribute5_name => 'PJI_INFORMATION5'
428 ,p_attribute5_value => p_rec.pji_information5
429 ,p_attribute6_name => 'PJI_INFORMATION6'
430 ,p_attribute6_value => p_rec.pji_information6
431 ,p_attribute7_name => 'PJI_INFORMATION7'
432 ,p_attribute7_value => p_rec.pji_information7
433 ,p_attribute8_name => 'PJI_INFORMATION8'
434 ,p_attribute8_value => p_rec.pji_information8
435 ,p_attribute9_name => 'PJI_INFORMATION9'
436 ,p_attribute9_value => p_rec.pji_information9
437 ,p_attribute10_name => 'PJI_INFORMATION10'
438 ,p_attribute10_value => p_rec.pji_information10
439 ,p_attribute11_name => 'PJI_INFORMATION11'
440 ,p_attribute11_value => p_rec.pji_information11
441 ,p_attribute12_name => 'PJI_INFORMATION12'
442 ,p_attribute12_value => p_rec.pji_information12
443 ,p_attribute13_name => 'PJI_INFORMATION13'
444 ,p_attribute13_value => p_rec.pji_information13
445 ,p_attribute14_name => 'PJI_INFORMATION14'
446 ,p_attribute14_value => p_rec.pji_information14
447 ,p_attribute15_name => 'PJI_INFORMATION15'
448 ,p_attribute15_value => p_rec.pji_information15
449 ,p_attribute16_name => 'PJI_INFORMATION16'
450 ,p_attribute16_value => p_rec.pji_information16
451 ,p_attribute17_name => 'PJI_INFORMATION17'
452 ,p_attribute17_value => p_rec.pji_information17
453 ,p_attribute18_name => 'PJI_INFORMATION18'
454 ,p_attribute18_value => p_rec.pji_information18
455 ,p_attribute19_name => 'PJI_INFORMATION19'
456 ,p_attribute19_value => p_rec.pji_information20
457 ,p_attribute20_name => 'PJI_INFORMATION20'
458 ,p_attribute20_value => p_rec.pji_information20
459 ,p_attribute21_name => 'PJI_INFORMATION21'
460 ,p_attribute21_value => p_rec.pji_information21
461 ,p_attribute22_name => 'PJI_INFORMATION22'
462 ,p_attribute22_value => p_rec.pji_information22
463 ,p_attribute23_name => 'PJI_INFORMATION23'
464 ,p_attribute23_value => p_rec.pji_information23
465 ,p_attribute24_name => 'PJI_INFORMATION24'
466 ,p_attribute24_value => p_rec.pji_information24
467 ,p_attribute25_name => 'PJI_INFORMATION25'
468 ,p_attribute25_value => p_rec.pji_information25
469 ,p_attribute26_name => 'PJI_INFORMATION26'
470 ,p_attribute26_value => p_rec.pji_information26
471 ,p_attribute27_name => 'PJI_INFORMATION27'
472 ,p_attribute27_value => p_rec.pji_information27
473 ,p_attribute28_name => 'PJI_INFORMATION28'
474 ,p_attribute28_value => p_rec.pji_information28
475 ,p_attribute29_name => 'PJI_INFORMATION29'
476 ,p_attribute29_value => p_rec.pji_information29
477 ,p_attribute30_name => 'PJI_INFORMATION30'
478 ,p_attribute30_value => p_rec.pji_information30
479 );
480 end if;
481 --
482 hr_utility.set_location(' Leaving:'||l_proc,20);
483 end chk_ddf;
484 --
485 -- ----------------------------------------------------------------------------
486 -- |------------------------------< chk_df >----------------------------------|
487 -- ----------------------------------------------------------------------------
488 --
489 -- Description:
490 -- Validates all the Descriptive Flexfield values.
491 --
492 -- Prerequisites:
493 -- All other columns have been validated. Must be called as the
494 -- last step from insert_validate and update_validate.
495 --
496 -- In Arguments:
497 -- p_rec
498 --
499 -- Post Success:
500 -- If the Descriptive Flexfield structure column and data values are
501 -- all valid this procedure will end normally and processing will
502 -- continue.
503 --
504 -- Post Failure:
505 -- If the Descriptive Flexfield structure column value or any of
506 -- the data values are invalid then an application error is raised as
507 -- a PL/SQL exception.
508 --
509 -- Access Status:
510 -- Internal Row Handler Use Only.
511 --
512 -- ----------------------------------------------------------------------------
513 procedure chk_df
514 (p_rec in per_pji_shd.g_rec_type
515 ) is
516 --
517 l_proc varchar2(72) := g_package || 'chk_df';
518 --
519 begin
520 hr_utility.set_location('Entering:'||l_proc,10);
521 --
522 if ((p_rec.previous_job_extra_info_id is not null) and (
523 nvl(per_pji_shd.g_old_rec.pji_attribute_category, hr_api.g_varchar2) <>
524 nvl(p_rec.pji_attribute_category, hr_api.g_varchar2) or
525 nvl(per_pji_shd.g_old_rec.pji_attribute1, hr_api.g_varchar2) <>
526 nvl(p_rec.pji_attribute1, hr_api.g_varchar2) or
527 nvl(per_pji_shd.g_old_rec.pji_attribute2, hr_api.g_varchar2) <>
528 nvl(p_rec.pji_attribute2, hr_api.g_varchar2) or
529 nvl(per_pji_shd.g_old_rec.pji_attribute3, hr_api.g_varchar2) <>
530 nvl(p_rec.pji_attribute3, hr_api.g_varchar2) or
531 nvl(per_pji_shd.g_old_rec.pji_attribute4, hr_api.g_varchar2) <>
532 nvl(p_rec.pji_attribute4, hr_api.g_varchar2) or
533 nvl(per_pji_shd.g_old_rec.pji_attribute5, hr_api.g_varchar2) <>
534 nvl(p_rec.pji_attribute5, hr_api.g_varchar2) or
535 nvl(per_pji_shd.g_old_rec.pji_attribute6, hr_api.g_varchar2) <>
536 nvl(p_rec.pji_attribute6, hr_api.g_varchar2) or
537 nvl(per_pji_shd.g_old_rec.pji_attribute7, hr_api.g_varchar2) <>
538 nvl(p_rec.pji_attribute7, hr_api.g_varchar2) or
539 nvl(per_pji_shd.g_old_rec.pji_attribute8, hr_api.g_varchar2) <>
540 nvl(p_rec.pji_attribute8, hr_api.g_varchar2) or
541 nvl(per_pji_shd.g_old_rec.pji_attribute9, hr_api.g_varchar2) <>
542 nvl(p_rec.pji_attribute9, hr_api.g_varchar2) or
543 nvl(per_pji_shd.g_old_rec.pji_attribute10, hr_api.g_varchar2) <>
544 nvl(p_rec.pji_attribute10, hr_api.g_varchar2) or
545 nvl(per_pji_shd.g_old_rec.pji_attribute11, hr_api.g_varchar2) <>
546 nvl(p_rec.pji_attribute11, hr_api.g_varchar2) or
547 nvl(per_pji_shd.g_old_rec.pji_attribute12, hr_api.g_varchar2) <>
548 nvl(p_rec.pji_attribute12, hr_api.g_varchar2) or
549 nvl(per_pji_shd.g_old_rec.pji_attribute13, hr_api.g_varchar2) <>
550 nvl(p_rec.pji_attribute13, hr_api.g_varchar2) or
551 nvl(per_pji_shd.g_old_rec.pji_attribute14, hr_api.g_varchar2) <>
552 nvl(p_rec.pji_attribute14, hr_api.g_varchar2) or
553 nvl(per_pji_shd.g_old_rec.pji_attribute15, hr_api.g_varchar2) <>
554 nvl(p_rec.pji_attribute15, hr_api.g_varchar2) or
555 nvl(per_pji_shd.g_old_rec.pji_attribute16, hr_api.g_varchar2) <>
556 nvl(p_rec.pji_attribute16, hr_api.g_varchar2) or
557 nvl(per_pji_shd.g_old_rec.pji_attribute17, hr_api.g_varchar2) <>
558 nvl(p_rec.pji_attribute17, hr_api.g_varchar2) or
559 nvl(per_pji_shd.g_old_rec.pji_attribute18, hr_api.g_varchar2) <>
560 nvl(p_rec.pji_attribute18, hr_api.g_varchar2) or
561 nvl(per_pji_shd.g_old_rec.pji_attribute19, hr_api.g_varchar2) <>
562 nvl(p_rec.pji_attribute19, hr_api.g_varchar2) or
563 nvl(per_pji_shd.g_old_rec.pji_attribute20, hr_api.g_varchar2) <>
564 nvl(p_rec.pji_attribute20, hr_api.g_varchar2) or
565 nvl(per_pji_shd.g_old_rec.pji_attribute21, hr_api.g_varchar2) <>
566 nvl(p_rec.pji_attribute21, hr_api.g_varchar2) or
567 nvl(per_pji_shd.g_old_rec.pji_attribute22, hr_api.g_varchar2) <>
568 nvl(p_rec.pji_attribute22, hr_api.g_varchar2) or
569 nvl(per_pji_shd.g_old_rec.pji_attribute23, hr_api.g_varchar2) <>
570 nvl(p_rec.pji_attribute23, hr_api.g_varchar2) or
571 nvl(per_pji_shd.g_old_rec.pji_attribute24, hr_api.g_varchar2) <>
572 nvl(p_rec.pji_attribute24, hr_api.g_varchar2) or
573 nvl(per_pji_shd.g_old_rec.pji_attribute25, hr_api.g_varchar2) <>
574 nvl(p_rec.pji_attribute25, hr_api.g_varchar2) or
575 nvl(per_pji_shd.g_old_rec.pji_attribute26, hr_api.g_varchar2) <>
576 nvl(p_rec.pji_attribute26, hr_api.g_varchar2) or
577 nvl(per_pji_shd.g_old_rec.pji_attribute27, hr_api.g_varchar2) <>
578 nvl(p_rec.pji_attribute27, hr_api.g_varchar2) or
579 nvl(per_pji_shd.g_old_rec.pji_attribute28, hr_api.g_varchar2) <>
580 nvl(p_rec.pji_attribute28, hr_api.g_varchar2) or
581 nvl(per_pji_shd.g_old_rec.pji_attribute29, hr_api.g_varchar2) <>
582 nvl(p_rec.pji_attribute29, hr_api.g_varchar2) or
583 nvl(per_pji_shd.g_old_rec.pji_attribute30, hr_api.g_varchar2) <>
584 nvl(p_rec.pji_attribute30, hr_api.g_varchar2) ))
585 or (p_rec.previous_job_extra_info_id is null) then
586 --
587 -- Only execute the validation if absolutely necessary:
588 -- a) During update, the structure column value or any
589 -- of the attribute values have actually changed.
590 -- b) During insert.
591 --
592 hr_dflex_utility.ins_or_upd_descflex_attribs
593 (p_appl_short_name => 'PER'
594 ,p_descflex_name => 'PER_PREV_JOB_EXTRA_INFO'
595 ,p_attribute_category => p_rec.pji_attribute_category
596 ,p_attribute1_name => 'PJI_ATTRIBUTE1'
597 ,p_attribute1_value => p_rec.pji_attribute1
598 ,p_attribute2_name => 'PJI_ATTRIBUTE2'
599 ,p_attribute2_value => p_rec.pji_attribute2
600 ,p_attribute3_name => 'PJI_ATTRIBUTE3'
601 ,p_attribute3_value => p_rec.pji_attribute3
602 ,p_attribute4_name => 'PJI_ATTRIBUTE4'
603 ,p_attribute4_value => p_rec.pji_attribute4
604 ,p_attribute5_name => 'PJI_ATTRIBUTE5'
605 ,p_attribute5_value => p_rec.pji_attribute5
606 ,p_attribute6_name => 'PJI_ATTRIBUTE6'
607 ,p_attribute6_value => p_rec.pji_attribute6
608 ,p_attribute7_name => 'PJI_ATTRIBUTE7'
609 ,p_attribute7_value => p_rec.pji_attribute7
610 ,p_attribute8_name => 'PJI_ATTRIBUTE8'
611 ,p_attribute8_value => p_rec.pji_attribute8
612 ,p_attribute9_name => 'PJI_ATTRIBUTE9'
613 ,p_attribute9_value => p_rec.pji_attribute9
614 ,p_attribute10_name => 'PJI_ATTRIBUTE10'
615 ,p_attribute10_value => p_rec.pji_attribute10
616 ,p_attribute11_name => 'PJI_ATTRIBUTE11'
617 ,p_attribute11_value => p_rec.pji_attribute11
618 ,p_attribute12_name => 'PJI_ATTRIBUTE12'
619 ,p_attribute12_value => p_rec.pji_attribute12
620 ,p_attribute13_name => 'PJI_ATTRIBUTE13'
621 ,p_attribute13_value => p_rec.pji_attribute13
622 ,p_attribute14_name => 'PJI_ATTRIBUTE14'
623 ,p_attribute14_value => p_rec.pji_attribute14
624 ,p_attribute15_name => 'PJI_ATTRIBUTE15'
625 ,p_attribute15_value => p_rec.pji_attribute15
626 ,p_attribute16_name => 'PJI_ATTRIBUTE16'
627 ,p_attribute16_value => p_rec.pji_attribute16
628 ,p_attribute17_name => 'PJI_ATTRIBUTE17'
629 ,p_attribute17_value => p_rec.pji_attribute17
630 ,p_attribute18_name => 'PJI_ATTRIBUTE18'
631 ,p_attribute18_value => p_rec.pji_attribute18
632 ,p_attribute19_name => 'PJI_ATTRIBUTE19'
633 ,p_attribute19_value => p_rec.pji_attribute19
634 ,p_attribute20_name => 'PJI_ATTRIBUTE20'
635 ,p_attribute20_value => p_rec.pji_attribute20
636 ,p_attribute21_name => 'PJI_ATTRIBUTE21'
637 ,p_attribute21_value => p_rec.pji_attribute21
638 ,p_attribute22_name => 'PJI_ATTRIBUTE22'
639 ,p_attribute22_value => p_rec.pji_attribute22
640 ,p_attribute23_name => 'PJI_ATTRIBUTE23'
641 ,p_attribute23_value => p_rec.pji_attribute23
642 ,p_attribute24_name => 'PJI_ATTRIBUTE24'
643 ,p_attribute24_value => p_rec.pji_attribute24
644 ,p_attribute25_name => 'PJI_ATTRIBUTE25'
645 ,p_attribute25_value => p_rec.pji_attribute25
646 ,p_attribute26_name => 'PJI_ATTRIBUTE26'
647 ,p_attribute26_value => p_rec.pji_attribute26
648 ,p_attribute27_name => 'PJI_ATTRIBUTE27'
649 ,p_attribute27_value => p_rec.pji_attribute27
650 ,p_attribute28_name => 'PJI_ATTRIBUTE28'
651 ,p_attribute28_value => p_rec.pji_attribute28
652 ,p_attribute29_name => 'PJI_ATTRIBUTE29'
653 ,p_attribute29_value => p_rec.pji_attribute29
654 ,p_attribute30_name => 'PJI_ATTRIBUTE30'
655 ,p_attribute30_value => p_rec.pji_attribute30
656 );
657 end if;
658 --
659 hr_utility.set_location(' Leaving:'||l_proc,20);
660 end chk_df;
661 --
662 -- ----------------------------------------------------------------------------
663 -- |-----------------------< chk_non_updateable_args >------------------------|
664 -- ----------------------------------------------------------------------------
665 -- {Start Of Comments}
666 --
667 -- Description:
668 -- This procedure is used to ensure that non updateable attributes have
669 -- not been updated. If an attribute has been updated an error is generated.
670 --
671 -- Pre Conditions:
672 -- g_old_rec has been populated with details of the values currently in
673 -- the database.
674 --
675 -- In Arguments:
676 -- p_rec has been populated with the updated values the user would like the
677 -- record set to.
678 --
679 -- Post Success:
680 -- Processing continues if all the non updateable attributes have not
681 -- changed.
682 --
683 -- Post Failure:
684 -- An application error is raised if any of the non updatable attributes
685 -- have been altered.
686 --
687 -- {End Of Comments}
688 -- ----------------------------------------------------------------------------
689 Procedure chk_non_updateable_args
690 (p_rec in per_pji_shd.g_rec_type
691 ) IS
692 --
693 l_proc varchar2(72) := g_package || 'chk_non_updateable_args';
694 l_error EXCEPTION;
695 l_argument varchar2(30);
696 --
697 Begin
698 --
699 -- Only proceed with the validation if a row exists for the current
700 -- record in the HR Schema.
701 --
702 IF NOT per_pji_shd.api_updating
703 (p_previous_job_extra_info_id => p_rec.previous_job_extra_info_id
704 ,p_object_version_number => p_rec.object_version_number
705 ) THEN
706 fnd_message.set_name('PER', 'HR_6153_ALL_PROCEDURE_FAIL');
707 fnd_message.set_token('PROCEDURE ', l_proc);
708 fnd_message.set_token('STEP ', '5');
709 fnd_message.raise_error;
710 END IF;
711 -- Check for non updateable args
712 if per_pji_shd.g_old_rec.previous_job_extra_info_id
713 <> p_rec.previous_job_extra_info_id
714 then
715 hr_api.argument_changed_error
716 (p_api_name => l_proc
717 ,p_argument => 'previous_job_extra_info_id'
718 );
719 end if;
720 --
721 EXCEPTION
722 WHEN l_error THEN
723 hr_api.argument_changed_error
724 (p_api_name => l_proc
725 ,p_argument => l_argument);
726 WHEN OTHERS THEN
727 RAISE;
728 End chk_non_updateable_args;
729 --
730 -- ----------------------------------------------------------------------------
731 -- |---------------------------< insert_validate >----------------------------|
732 -- ----------------------------------------------------------------------------
733 Procedure insert_validate
734 (p_rec in per_pji_shd.g_rec_type) is
735 l_proc varchar2(72) := g_package||'insert_validate';
736 --
737 Begin
738 hr_utility.set_location('Entering:'||l_proc, 5);
739 --
740 -- Check whether the Previous Job Id is Valid
741 hr_api.mandatory_arg_error
742 (p_api_name => l_proc
743 ,p_argument => 'previous_job_id'
744 ,p_argument_value => p_rec.previous_job_id
745 );
746 --
747 hr_api.mandatory_arg_error
748 (p_api_name => l_proc
749 ,p_argument => 'information_type'
750 ,p_argument_value => p_rec.information_type
751 );
752 --
753 hr_utility.set_location(l_proc, 10);
754 chk_previous_job_id(p_previous_job_id
755 => p_rec.previous_job_id
756 ,p_previous_job_extra_info_id
757 => p_rec.previous_job_extra_info_id
758 ,p_object_version_number
759 => p_rec.object_version_number);
760 -- Check for valid Information Types for selected Previous Job
761 hr_utility.set_location(l_proc, 15);
762 chk_information_type(p_previous_job_extra_info_id
763 => p_rec.previous_job_extra_info_id
764 ,p_object_version_number
765 => p_rec.object_version_number
766 ,p_information_type
767 => p_rec.information_type);
768 -- Call all supporting business operations
769 hr_utility.set_location(l_proc, 20);
770 per_pji_bus.chk_ddf(p_rec);
771 --
772 hr_utility.set_location(l_proc, 25);
773 per_pji_bus.chk_df(p_rec);
774 --
775 hr_utility.set_location(' Leaving:'||l_proc, 30);
776 End insert_validate;
777 --
778 -- ----------------------------------------------------------------------------
779 -- |---------------------------< update_validate >----------------------------|
780 -- ----------------------------------------------------------------------------
781 Procedure update_validate
782 (p_rec in per_pji_shd.g_rec_type
783 ) is
784 --
785 l_proc varchar2(72) := g_package||'update_validate';
786 --
787 Begin
788 hr_utility.set_location('Entering:'||l_proc, 5);
789 --
790 -- Call all supporting business operations
791 --
792 hr_api.mandatory_arg_error
793 (p_api_name => l_proc
794 ,p_argument => 'previous_job_id'
795 ,p_argument_value => p_rec.previous_job_id
796 );
797 --
798 hr_api.mandatory_arg_error
799 (p_api_name => l_proc
800 ,p_argument => 'information_type'
801 ,p_argument_value => p_rec.information_type
802 );
803 --
804 hr_utility.set_location(l_proc, 10);
805 chk_non_updateable_args(p_rec => p_rec);
806 -- Check for valid Information Types for selected Previous Job
807 hr_utility.set_location(l_proc, 20);
808 chk_information_type(p_previous_job_extra_info_id
809 => p_rec.previous_job_extra_info_id
810 ,p_object_version_number
811 => p_rec.object_version_number
812 ,p_information_type
813 => p_rec.information_type);
814 --
815 hr_utility.set_location(l_proc, 25);
816 per_pji_bus.chk_ddf(p_rec);
817 --
818 hr_utility.set_location(l_proc, 30);
819 per_pji_bus.chk_df(p_rec);
820 --
821 hr_utility.set_location(' Leaving:'||l_proc, 35);
822 End update_validate;
823 --
824 -- ----------------------------------------------------------------------------
825 -- |---------------------------< delete_validate >----------------------------|
826 -- ----------------------------------------------------------------------------
827 Procedure delete_validate
828 (p_rec in per_pji_shd.g_rec_type
829 ) is
830 --
831 l_proc varchar2(72) := g_package||'delete_validate';
832 --
833 Begin
834 hr_utility.set_location('Entering:'||l_proc, 5);
835 --
836 -- Call all supporting business operations
837 --
838 hr_utility.set_location(' Leaving:'||l_proc, 10);
839 End delete_validate;
840 --
841 end per_pji_bus;