DBA Data[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;