DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_ASG_UPD

Source


1 Package Body per_asg_upd as
2 /* $Header: peasgrhi.pkb 120.19.12010000.3 2008/11/12 06:37:24 skura ship $ */
3 --
4 -- ----------------------------------------------------------------------------
5 -- |                     Private Global Definitions                           |
6 -- ----------------------------------------------------------------------------
7 --
8 g_package  varchar2(33)    := '  per_asg_upd.';  -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |----------------------------< dt_update_dml >-----------------------------|
12 -- ----------------------------------------------------------------------------
13 -- {Start Of Comments}
14 --
15 -- Description:
16 --   This procedure controls the execution of dml from the datetrack mode
17 --   of CORRECTION only. It is important to note that the object version
18 --   number is only increment by 1 because the datetrack correction is
19 --   soley for one datetracked row.
20 --   This procedure controls the actual dml update logic. The functions of this
21 --   procedure are as follows:
22 --   1) Get the next object_version_number.
23 --   2) To set and unset the g_api_dml status as required (as we are about to
24 --      perform dml).
25 --   3) To update the specified row in the schema using the primary key in
26 --      the predicates.
27 --   4) To trap any constraint violations that may have occurred.
28 --   5) To raise any other errors.
29 --
30 -- Pre Conditions:
31 --   This is an internal private procedure which must be called from the
32 --   update_dml procedure.
33 --
34 -- In Arguments:
35 --   A Pl/Sql record structre.
36 --
37 -- Post Success:
38 --   The specified row will be updated in the schema.
39 --
40 -- Post Failure:
41 --   On the update dml failure it is important to note that we always reset the
42 --   g_api_dml status to false.
43 --   If a check or unique integrity constraint violation is raised the
44 --   constraint_error procedure will be called.
45 --   If any other error is reported, the error will be raised after the
46 --   g_api_dml status is reset.
47 --
48 -- Developer Implementation Notes:
49 --   The update 'set' arguments list should be modified if any of your
50 --   attributes are not updateable.
51 --
52 -- Access Status:
53 --   Internal Table Handler Use Only.
54 --
55 -- {End Of Comments}
56 -- ----------------------------------------------------------------------------
57 Procedure dt_update_dml
58     (p_rec              in out nocopy per_asg_shd.g_rec_type,
59      p_effective_date     in    date,
60      p_datetrack_mode     in    varchar2,
61      p_validation_start_date in    date,
62      p_validation_end_date     in    date) is
63 --
64   l_proc    varchar2(72) := g_package||'dt_update_dml';
65 -- Start of 518655
66   l_object_version_number number;
67 -- End of 518655
68 --
69 Begin
70   hr_utility.set_location('Entering:'||l_proc, 5);
71   --
72   If (p_datetrack_mode = 'CORRECTION') then
73     hr_utility.set_location(l_proc, 10);
74     --
75     -- Because we are updating a row we must get the next object
76     -- version number.
77     --
78     p_rec.object_version_number :=
79       dt_api.get_object_version_number
80       (p_base_table_name    => 'per_all_assignments_f',
81        p_base_key_column    => 'assignment_id',
82        p_base_key_value    => p_rec.assignment_id);
83     --
84     per_asg_shd.g_api_dml := true;  -- Set the api dml status
85     --
86     -- Update the per_all_assignments_f Row
87     --
88     update  per_all_assignments_f
89     set
90     assignment_id                   = p_rec.assignment_id,
91     recruiter_id                    = p_rec.recruiter_id,
92     grade_id                        = p_rec.grade_id,
93     position_id                     = p_rec.position_id,
94     job_id                          = p_rec.job_id,
95     assignment_status_type_id       = p_rec.assignment_status_type_id,
96     payroll_id                      = p_rec.payroll_id,
97     location_id                     = p_rec.location_id,
98     person_referred_by_id           = p_rec.person_referred_by_id,
99     supervisor_id                   = p_rec.supervisor_id,
100     special_ceiling_step_id         = p_rec.special_ceiling_step_id,
101     recruitment_activity_id         = p_rec.recruitment_activity_id,
102     source_organization_id          = p_rec.source_organization_id,
103     organization_id                 = p_rec.organization_id,
104     people_group_id                 = p_rec.people_group_id,
105     soft_coding_keyflex_id          = p_rec.soft_coding_keyflex_id,
106     vacancy_id                      = p_rec.vacancy_id,
107     pay_basis_id                    = p_rec.pay_basis_id,
108     application_id                  = p_rec.application_id,
109     assignment_number               = p_rec.assignment_number,
110     change_reason                   = p_rec.change_reason,
111     comment_id                      = p_rec.comment_id,
112     date_probation_end              = p_rec.date_probation_end,
113     default_code_comb_id            = p_rec.default_code_comb_id,
114     employment_category             = p_rec.employment_category,
115     frequency                       = p_rec.frequency,
116     internal_address_line           = p_rec.internal_address_line,
117     manager_flag                    = p_rec.manager_flag,
118     normal_hours                    = p_rec.normal_hours,
119     perf_review_period              = p_rec.perf_review_period,
120     perf_review_period_frequency    = p_rec.perf_review_period_frequency,
121     probation_period                = p_rec.probation_period,
122     probation_unit                  = p_rec.probation_unit,
123     sal_review_period               = p_rec.sal_review_period,
124     sal_review_period_frequency     = p_rec.sal_review_period_frequency,
125     set_of_books_id                 = p_rec.set_of_books_id,
126     source_type                     = p_rec.source_type,
127     time_normal_finish              = p_rec.time_normal_finish,
128     time_normal_start               = p_rec.time_normal_start,
129     bargaining_unit_code            = p_rec.bargaining_unit_code,
130     labour_union_member_flag        = p_rec.labour_union_member_flag,
131     hourly_salaried_code            = p_rec.hourly_salaried_code,
132     request_id                      = p_rec.request_id,
133     program_application_id          = p_rec.program_application_id,
134     program_id                      = p_rec.program_id,
135     program_update_date             = p_rec.program_update_date,
136     ass_attribute_category          = p_rec.ass_attribute_category,
137     ass_attribute1                  = p_rec.ass_attribute1,
138     ass_attribute2                  = p_rec.ass_attribute2,
139     ass_attribute3                  = p_rec.ass_attribute3,
140     ass_attribute4                  = p_rec.ass_attribute4,
141     ass_attribute5                  = p_rec.ass_attribute5,
142     ass_attribute6                  = p_rec.ass_attribute6,
143     ass_attribute7                  = p_rec.ass_attribute7,
144     ass_attribute8                  = p_rec.ass_attribute8,
145     ass_attribute9                  = p_rec.ass_attribute9,
146     ass_attribute10                 = p_rec.ass_attribute10,
147     ass_attribute11                 = p_rec.ass_attribute11,
148     ass_attribute12                 = p_rec.ass_attribute12,
149     ass_attribute13                 = p_rec.ass_attribute13,
150     ass_attribute14                 = p_rec.ass_attribute14,
151     ass_attribute15                 = p_rec.ass_attribute15,
152     ass_attribute16                 = p_rec.ass_attribute16,
153     ass_attribute17                 = p_rec.ass_attribute17,
154     ass_attribute18                 = p_rec.ass_attribute18,
155     ass_attribute19                 = p_rec.ass_attribute19,
156     ass_attribute20                 = p_rec.ass_attribute20,
157     ass_attribute21                 = p_rec.ass_attribute21,
158     ass_attribute22                 = p_rec.ass_attribute22,
159     ass_attribute23                 = p_rec.ass_attribute23,
160     ass_attribute24                 = p_rec.ass_attribute24,
161     ass_attribute25                 = p_rec.ass_attribute25,
162     ass_attribute26                 = p_rec.ass_attribute26,
163     ass_attribute27                 = p_rec.ass_attribute27,
164     ass_attribute28                 = p_rec.ass_attribute28,
165     ass_attribute29                 = p_rec.ass_attribute29,
166     ass_attribute30                 = p_rec.ass_attribute30,
167     title                           = p_rec.title,
168     object_version_number           = p_rec.object_version_number ,
169     contract_id                     = p_rec.contract_id,
170     establishment_id                = p_rec.establishment_id,
171     collective_agreement_id         = p_rec.collective_agreement_id,
172     cagr_grade_def_id               = p_rec.cagr_grade_def_id,
173     cagr_id_flex_num                = p_rec.cagr_id_flex_num,
174     notice_period        = p_rec.notice_period,
175     notice_period_uom          = p_rec.notice_period_uom,
176     employee_category          = p_rec.employee_category,
177     work_at_home         = p_rec.work_at_home,
178     job_post_source_name       = p_rec.job_post_source_name,
179     posting_content_id              = p_rec.posting_content_id,
180     period_of_placement_date_start  = p_rec.period_of_placement_date_start,
181     vendor_id                       = p_rec.vendor_id,
182     vendor_employee_number          = p_rec.vendor_employee_number,
183     vendor_assignment_number        = p_rec.vendor_assignment_number,
184     assignment_category             = p_rec.assignment_category,
185     project_title                   = p_rec.project_title,
186     applicant_rank                  = p_rec.applicant_rank,
187     grade_ladder_pgm_id             = p_rec.grade_ladder_pgm_id,
188     supervisor_assignment_id        = p_rec.supervisor_assignment_id,
189     vendor_site_id                  = p_rec.vendor_site_id,
190     po_header_id                    = p_rec.po_header_id,
191     po_line_id                      = p_rec.po_line_id,
192     projected_assignment_end        = p_rec.projected_assignment_end
193     where   assignment_id           = p_rec.assignment_id
194     and     effective_start_date    = p_validation_start_date
195     and     effective_end_date      = p_validation_end_date;
196     --
197 
198     -- Start of fix 518655
199     if nvl(per_asg_shd.g_old_rec.assignment_number, hr_api.g_varchar2) <>
200        nvl(p_rec.assignment_number, hr_api.g_varchar2) then
201            --
202        l_object_version_number := dt_api.get_object_version_number
203                        (p_base_table_name   => 'per_all_assignments_f',
204                         p_base_key_column   => 'assignment_id',
205                         p_base_key_value    =>  p_rec.assignment_id);
206     --
207        update  per_all_assignments_f paaf
208           set  paaf.assignment_number = p_rec.assignment_number,
209                paaf.object_version_number = l_object_version_number
210         where  paaf.assignment_id = p_rec.assignment_id
211           and  paaf.person_id = per_asg_shd.g_old_rec.person_id
212           and  (paaf.effective_start_date < p_validation_start_date
213           or   paaf.effective_end_date > p_validation_end_date);
214             --
215     end if;
216     -- End of fix 518655
217 
218     per_asg_shd.g_api_dml := false;   -- Unset the api dml status
219     --
220     -- Set the effective start and end dates
221     --
222     p_rec.effective_start_date := p_validation_start_date;
223     p_rec.effective_end_date   := p_validation_end_date;
224   End If;
225 --
226 hr_utility.set_location(' Leaving:'||l_proc, 15);
227 Exception
228   When hr_api.check_integrity_violated Then
229     -- A check constraint has been violated
230     per_asg_shd.g_api_dml := false;   -- Unset the api dml status
231     per_asg_shd.constraint_error
232       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
233   When hr_api.unique_integrity_violated Then
234     -- Unique integrity has been violated
235     per_asg_shd.g_api_dml := false;   -- Unset the api dml status
236     per_asg_shd.constraint_error
237       (p_constraint_name => hr_api.strip_constraint_name(SQLERRM));
238   When Others Then
239     per_asg_shd.g_api_dml := false;   -- Unset the api dml status
240     Raise;
241 End dt_update_dml;
242 --
243 -- ----------------------------------------------------------------------------
244 -- |------------------------------< update_dml >------------------------------|
245 -- ----------------------------------------------------------------------------
246 -- {Start Of Comments}
247 --
248 -- Description:
249 --   This procedure calls the dt_update_dml control logic which handles
250 --   the actual datetrack dml.
251 --
252 -- Pre Conditions:
253 --   This is an internal private procedure which must be called from the upd
254 --   procedure.
255 --
256 -- In Arguments:
257 --   A Pl/Sql record structre.
258 --
259 -- Post Success:
260 --   Processing contines.
261 --
262 -- Post Failure:
263 --   No specific error handling is required within this procedure.
264 --
265 -- Developer Implementation Notes:
266 --   The update 'set' arguments list should be modified if any of your
267 --   attributes are not updateable.
268 --
269 -- Access Status:
270 --   Internal Table Handler Use Only.
271 --
272 -- {End Of Comments}
273 -- ----------------------------------------------------------------------------
274 Procedure update_dml
275     (p_rec              in out nocopy per_asg_shd.g_rec_type,
276      p_effective_date     in    date,
277      p_datetrack_mode     in    varchar2,
278      p_validation_start_date in    date,
279      p_validation_end_date     in    date) is
280 --
281   l_proc    varchar2(72) := g_package||'update_dml';
282 --
283 Begin
284   hr_utility.set_location('Entering:'||l_proc, 5);
285   --
286   dt_update_dml(p_rec            => p_rec,
287         p_effective_date    => p_effective_date,
288         p_datetrack_mode    => p_datetrack_mode,
289                p_validation_start_date    => p_validation_start_date,
290         p_validation_end_date    => p_validation_end_date);
291   --
292   hr_utility.set_location(' Leaving:'||l_proc, 10);
293 End update_dml;
294 --
295 -- ----------------------------------------------------------------------------
296 -- |----------------------------< dt_pre_update >-----------------------------|
297 -- ----------------------------------------------------------------------------
298 -- {Start Of Comments}
299 --
300 -- Description:
301 --   The dt_pre_update procedure controls the execution
302 --   of dml for the datetrack modes of: UPDATE, UPDATE_OVERRIDE
303 --   and UPDATE_CHANGE_INSERT only. The execution required is as
304 --   follows:
305 --
306 --   1) Providing the datetrack update mode is not 'CORRECTION'
307 --      then set the effective end date of the current row (this
308 --      will be the validation_start_date - 1).
309 --   2) If the datetrack mode is 'UPDATE_OVERRIDE' then call the
310 --      corresponding delete_dml process to delete any future rows
311 --      where the effective_start_date is greater than or equal to
312 --    the validation_start_date.
313 --   3) Call the insert_dml process to insert the new updated row
314 --      details..
315 --
316 -- Pre Conditions:
317 --   This is an internal procedure which is called from the
318 --   pre_update procedure.
319 --
320 -- In Arguments:
321 --
322 -- Post Success:
323 --   Processing continues.
324 --
325 -- Post Failure:
326 --   If an error has occurred, an error message and exception will be raised
327 --   but not handled.
328 --
329 -- Developer Implementation Notes:
330 --   This is an internal procedure which is required by Datetrack. Don't
331 --   remove or modify.
332 --
333 -- Access Status:
334 --   Internal Table Handler Use Only.
335 --
336 -- {End Of Comments}
337 -- ----------------------------------------------------------------------------
338 Procedure dt_pre_update
339     (p_rec              in out nocopy    per_asg_shd.g_rec_type,
340      p_effective_date     in    date,
341      p_datetrack_mode     in    varchar2,
342      p_validation_start_date in    date,
343      p_validation_end_date     in    date) is
344 --
345   l_proc              varchar2(72) := g_package||'dt_pre_update';
346   l_dummy_version_number  number;
347 --
348 Begin
349   hr_utility.set_location('Entering:'||l_proc, 5);
350   If (p_datetrack_mode <> 'CORRECTION') then
351     hr_utility.set_location(l_proc, 10);
352     --
353     -- Update the current effective end date
354     --
355     per_asg_shd.upd_effective_end_date
356      (p_effective_date           => p_effective_date,
357       p_base_key_value           => p_rec.assignment_id,
358       p_new_effective_end_date => (p_validation_start_date - 1),
359       p_validation_start_date  => p_validation_start_date,
360       p_validation_end_date    => p_validation_end_date,
361       p_object_version_number  => l_dummy_version_number);
362     --
363     If (p_datetrack_mode = 'UPDATE_OVERRIDE') then
364       hr_utility.set_location(l_proc, 15);
365       --
366       -- As the datetrack mode is 'UPDATE_OVERRIDE' then we must
367       -- delete any future rows
368       --
369       per_asg_del.delete_dml
370         (p_rec             => p_rec,
371      p_effective_date     => p_effective_date,
372      p_datetrack_mode     => p_datetrack_mode,
373      p_validation_start_date => p_validation_start_date,
374      p_validation_end_date   => p_validation_end_date);
375     End If;
376     hr_utility.set_location(l_proc, 20);
377     --
378     -- We must now insert the updated row
379     --
380     per_asg_ins.insert_dml
381       (p_rec            => p_rec,
382        p_effective_date        => p_effective_date,
383        p_datetrack_mode        => p_datetrack_mode,
384        p_validation_start_date    => p_validation_start_date,
385        p_validation_end_date    => p_validation_end_date);
386   End If;
387   hr_utility.set_location(' Leaving:'||l_proc, 20);
388 End dt_pre_update;
389 --
390 -- ----------------------------------------------------------------------------
391 -- |------------------------------< pre_update >------------------------------|
392 -- ----------------------------------------------------------------------------
393 -- {Start Of Comments}
394 --
395 -- Description:
396 --   This private procedure contains any processing which is required before
397 --   the update dml.
398 --
399 -- Pre Conditions:
400 --   This is an internal procedure which is called from the upd procedure.
401 --
402 -- In Arguments:
403 --   A Pl/Sql record structre.
404 --
405 -- Post Success:
406 --   Processing continues.
407 --
408 -- Post Failure:
409 --   If an error has occurred, an error message and exception will be raised
410 --   but not handled.
411 --
412 -- Developer Implementation Notes:
413 --   Any pre-processing required before the update dml is issued should be
414 --   coded within this procedure. It is important to note that any 3rd party
415 --   maintenance should be reviewed before placing in this procedure. The call
416 --   to the dt_update_dml procedure should NOT be removed.
417 --
418 -- Access Status:
419 --   Internal Table Handler Use Only.
420 --
421 -- {End Of Comments}
422 -- ----------------------------------------------------------------------------
423 Procedure pre_update
424     (p_rec              in out nocopy    per_asg_shd.g_rec_type,
425      p_effective_date     in    date,
426      p_datetrack_mode     in    varchar2,
427      p_validation_start_date in    date,
428      p_validation_end_date     in    date) is
429 --
430   l_proc    varchar2(72) := g_package||'pre_update';
431   l_rowid       varchar2(72);
432   l_eed         date;
433   l_esd         date;
434 --
435   Cursor csr_rowid is
436      select rowid, effective_start_date, effective_end_date
437      from per_all_assignments_f
438      where assignment_id = p_rec.assignment_id
439      and p_effective_date between
440          effective_start_date and effective_end_date;
441 --
442   cursor csr_rowid_u is
443      select rowid
444      from per_all_assignments_f
445      where assignment_id = p_rec.assignment_id
446      and p_effective_date -1 between
447          effective_start_date and effective_end_date;
448 --
449 Begin
450   hr_utility.set_location('Entering:'||l_proc, 1);
451   --
452   -- Insert the comment text if comments exist
453   --
454   If (p_rec.comment_text is not null and p_rec.comment_id is null) then
455     hr_comm_api.ins(p_comment_id        => p_rec.comment_id,
456                     p_source_table_name => 'PER_ALL_ASSIGNMENTS_F',
457                     p_comment_text      => p_rec.comment_text);
458   -- Update the comments if they have changed
459   ElsIf (p_rec.comment_id is not null and p_rec.comment_text <>
460          per_asg_shd.g_old_rec.comment_text) then
461     hr_comm_api.upd(p_comment_id        => p_rec.comment_id,
462                     p_source_table_name => 'PER_ALL_ASSIGNMENTS_F',
463                     p_comment_text      => p_rec.comment_text);
464   End If;
465   hr_utility.set_location(l_proc, 10);
466   --
467   -- Generate date probation end
468   --
469   -- Business Rule Mapping
470   -- =====================
471   -- Rule CHK_DATE_PROBATION_END c,e and f
472   -- Rule CHK_PROBATION_PERIOD c
473   -- Rule CHK_PROBATION_UNIT d
474   --
475 -- Bug 3629308, 4041992 Starts Here
476 -- Desc: TO skip the probation end date calculation for both EMP and APL
477   if p_rec.date_probation_end is null then
478   per_asg_bus2.gen_date_probation_end
479     (p_assignment_id         =>  p_rec.assignment_id
480     ,p_effective_date        =>  P_effective_date
481     ,p_probation_unit        =>  p_rec.probation_unit
482     ,p_probation_period      =>  p_rec.probation_period
483     ,p_validation_start_date =>  p_validation_start_date
484     ,p_object_version_number =>  p_rec.object_version_number
485     ,p_date_probation_end    =>  p_rec.date_probation_end
486     );
487   end if;
488 -- Bug 3629308, 4041992 Ends Here
489   --
490   hr_utility.set_location(l_proc, 20);
491   --
492   dt_pre_update
493     (p_rec                    => p_rec,
494      p_effective_date         => p_effective_date,
495      p_datetrack_mode         => p_datetrack_mode,
496      p_validation_start_date => p_validation_start_date,
497      p_validation_end_date   => p_validation_end_date);
498   --
499   -- Check for DT mode, if correction use current values
500   -- else use values from currently existing record.
501   --
502   if p_datetrack_mode <> 'CORRECTION' then
503      open csr_rowid_u;
504      fetch csr_rowid_u into l_rowid;
505      close csr_rowid_u;
506      l_esd := p_rec.effective_start_date;
507      l_eed := p_rec.effective_end_date;
508   else
509      open csr_rowid;
510      fetch csr_rowid into l_rowid, l_esd, l_eed;
511      close csr_rowid;
512   end if;
513   --
514   ben_dt_trgr_handle.assignment
515     (p_rowid                   => l_rowid
516     ,p_assignment_id           => p_rec.assignment_id
517     ,p_business_group_id       => p_rec.business_group_id
518     ,p_person_id               => p_rec.person_id
519     ,p_effective_start_date    => l_esd
520     ,p_effective_end_date      => l_eed
521     ,p_assignment_status_type_id  => p_rec.assignment_status_type_id
522     ,p_assignment_type         => p_rec.assignment_type
523     ,p_organization_id         => p_rec.organization_id
524     ,p_primary_flag            => p_rec.primary_flag
525     ,p_change_reason           => p_rec.change_reason
526     ,p_employment_category     => p_rec.employment_category
527     ,p_frequency               => p_rec.frequency
528     ,p_grade_id                => p_rec.grade_id
529     ,p_job_id                  => p_rec.job_id
530     ,p_position_id             => p_rec.position_id
531     ,p_location_id             => p_rec.location_id
532     ,p_normal_hours            => p_rec.normal_hours
533     ,p_payroll_id              => p_rec.payroll_id
534     ,p_pay_basis_id            => p_rec.pay_basis_id
535     ,p_bargaining_unit_code    => p_rec.bargaining_unit_code
536     ,p_labour_union_member_flag => p_rec.labour_union_member_flag
537     ,p_hourly_salaried_code    => p_rec.hourly_salaried_code
538     ,p_people_group_id    => p_rec.people_group_id
539     ,p_ass_attribute1 => p_rec.ass_attribute1
540     ,p_ass_attribute2 => p_rec.ass_attribute2
541     ,p_ass_attribute3 => p_rec.ass_attribute3
542     ,p_ass_attribute4 => p_rec.ass_attribute4
543     ,p_ass_attribute5 => p_rec.ass_attribute5
544     ,p_ass_attribute6 => p_rec.ass_attribute6
545     ,p_ass_attribute7 => p_rec.ass_attribute7
546     ,p_ass_attribute8 => p_rec.ass_attribute8
547     ,p_ass_attribute9 => p_rec.ass_attribute9
548     ,p_ass_attribute10 => p_rec.ass_attribute10
549     ,p_ass_attribute11 => p_rec.ass_attribute11
550     ,p_ass_attribute12 => p_rec.ass_attribute12
551     ,p_ass_attribute13 => p_rec.ass_attribute13
552     ,p_ass_attribute14 => p_rec.ass_attribute14
553     ,p_ass_attribute15 => p_rec.ass_attribute15
554     ,p_ass_attribute16 => p_rec.ass_attribute16
555     ,p_ass_attribute17 => p_rec.ass_attribute17
556     ,p_ass_attribute18 => p_rec.ass_attribute18
557     ,p_ass_attribute19 => p_rec.ass_attribute19
558     ,p_ass_attribute20 => p_rec.ass_attribute20
559     ,p_ass_attribute21 => p_rec.ass_attribute21
560     ,p_ass_attribute22 => p_rec.ass_attribute22
561     ,p_ass_attribute23 => p_rec.ass_attribute23
562     ,p_ass_attribute24 => p_rec.ass_attribute24
563     ,p_ass_attribute25 => p_rec.ass_attribute25
564     ,p_ass_attribute26 => p_rec.ass_attribute26
565     ,p_ass_attribute27 => p_rec.ass_attribute27
566     ,p_ass_attribute28 => p_rec.ass_attribute28
567     ,p_ass_attribute29 => p_rec.ass_attribute29
568     ,p_ass_attribute30 => p_rec.ass_attribute30
569     );
570   --
571   hr_utility.set_location(' Leaving:'||l_proc, 30);
572 End pre_update;
573 --
574 -- ----------------------------------------------------------------------------
575 -- |-----------------------------< post_update >------------------------------|
576 -- ----------------------------------------------------------------------------
577 -- {Start Of Comments}
578 --
579 -- Description:
580 --   This private procedure contains any processing which is required after the
581 --   update dml.
582 --
583 -- Pre Conditions:
584 --   This is an internal procedure which is called from the upd procedure.
585 --
586 -- In Arguments:
587 --   A Pl/Sql record structre.
588 --
589 -- Post Success:
590 --   Processing continues.
591 --
592 -- Post Failure:
593 --   If an error has occurred, an error message and exception will be raised
594 --   but not handled.
595 --
596 -- Developer Implementation Notes:
597 --   Any post-processing required after the update dml is issued should be
598 --   coded within this procedure. It is important to note that any 3rd party
599 --   maintenance should be reviewed before placing in this procedure.
600 --
601 -- Access Status:
602 --   Internal Table Handler Use Only.
603 --
604 -- {End Of Comments}
605 -- ----------------------------------------------------------------------------
606 Procedure post_update
607     (p_rec                    in per_asg_shd.g_rec_type,
608      p_effective_date           in date,
609      p_datetrack_mode           in varchar2,
610      p_validation_start_date       in date,
611      p_validation_end_date           in date,
612          p_payroll_id_updated          in boolean,
613          p_other_manager_warning       in boolean,
614          p_hourly_salaried_warning     in boolean,
615          p_no_managers_warning         in boolean,
616          p_org_now_no_manager_warning  in boolean) is
617 --
618   l_proc    varchar2(72) := g_package||'post_update';
619 --
620 Begin
621   hr_utility.set_location('Entering:'||l_proc, 5);
622   --
623   -- Start of API User Hook for post_update.
624   begin
625     per_asg_rku.after_update
626       (p_effective_date                 => p_effective_date
627       ,p_datetrack_mode                 => p_datetrack_mode
628       ,p_validation_start_date          => p_validation_start_date
629       ,p_validation_end_date            => p_validation_end_date
630       ,p_assignment_id                  => p_rec.assignment_id
631       ,p_effective_start_date           => p_rec.effective_start_date
632       ,p_effective_end_date             => p_rec.effective_end_date
633       ,p_recruiter_id                   => p_rec.recruiter_id
634       ,p_grade_id                       => p_rec.grade_id
635       ,p_position_id                    => p_rec.position_id
636       ,p_job_id                         => p_rec.job_id
637       ,p_assignment_status_type_id      => p_rec.assignment_status_type_id
638       ,p_payroll_id                     => p_rec.payroll_id
639       ,p_location_id                    => p_rec.location_id
640       ,p_person_referred_by_id          => p_rec.person_referred_by_id
641       ,p_supervisor_id                  => p_rec.supervisor_id
642       ,p_special_ceiling_step_id        => p_rec.special_ceiling_step_id
643       ,p_recruitment_activity_id        => p_rec.recruitment_activity_id
644       ,p_source_organization_id         => p_rec.source_organization_id
645       ,p_organization_id                => p_rec.organization_id
646       ,p_people_group_id                => p_rec.people_group_id
647       ,p_soft_coding_keyflex_id         => p_rec.soft_coding_keyflex_id
648       ,p_vacancy_id                     => p_rec.vacancy_id
649       ,p_pay_basis_id                   => p_rec.pay_basis_id
650       ,p_assignment_type                => p_rec.assignment_type
651       ,p_primary_flag                   => p_rec.primary_flag
652       ,p_application_id                 => p_rec.application_id
653       ,p_assignment_number              => p_rec.assignment_number
654       ,p_change_reason                  => p_rec.change_reason
655       ,p_comment_id                     => p_rec.comment_id
656       ,p_comments                       => p_rec.comment_text
657       ,p_date_probation_end             => p_rec.date_probation_end
658       ,p_default_code_comb_id           => p_rec.default_code_comb_id
659       ,p_employment_category            => p_rec.employment_category
660       ,p_frequency                      => p_rec.frequency
661       ,p_internal_address_line          => p_rec.internal_address_line
662       ,p_manager_flag                   => p_rec.manager_flag
663       ,p_normal_hours                   => p_rec.normal_hours
664       ,p_perf_review_period             => p_rec.perf_review_period
665       ,p_perf_review_period_frequen     => p_rec.perf_review_period_frequency
666       ,p_period_of_service_id           => p_rec.period_of_service_id
667       ,p_probation_period               => p_rec.probation_period
668       ,p_probation_unit                 => p_rec.probation_unit
669       ,p_sal_review_period              => p_rec.sal_review_period
670       ,p_sal_review_period_frequen      => p_rec.sal_review_period_frequency
671       ,p_set_of_books_id                => p_rec.set_of_books_id
672       ,p_source_type                    => p_rec.source_type
673       ,p_time_normal_finish             => p_rec.time_normal_finish
674       ,p_time_normal_start              => p_rec.time_normal_start
675       ,p_bargaining_unit_code           => p_rec.bargaining_unit_code
676       ,p_labour_union_member_flag       => p_rec.labour_union_member_flag
677       ,p_hourly_salaried_code           => p_rec.hourly_salaried_code
678       ,p_request_id                     => p_rec.request_id
679       ,p_program_application_id         => p_rec.program_application_id
680       ,p_program_id                     => p_rec.program_id
681       ,p_program_update_date            => p_rec.program_update_date
682       ,p_ass_attribute_category         => p_rec.ass_attribute_category
683       ,p_ass_attribute1                 => p_rec.ass_attribute1
684       ,p_ass_attribute2                 => p_rec.ass_attribute2
685       ,p_ass_attribute3                 => p_rec.ass_attribute3
686       ,p_ass_attribute4                 => p_rec.ass_attribute4
687       ,p_ass_attribute5                 => p_rec.ass_attribute5
688       ,p_ass_attribute6                 => p_rec.ass_attribute6
689       ,p_ass_attribute7                 => p_rec.ass_attribute7
690       ,p_ass_attribute8                 => p_rec.ass_attribute8
691       ,p_ass_attribute9                 => p_rec.ass_attribute9
692       ,p_ass_attribute10                => p_rec.ass_attribute10
693       ,p_ass_attribute11                => p_rec.ass_attribute11
694       ,p_ass_attribute12                => p_rec.ass_attribute12
695       ,p_ass_attribute13                => p_rec.ass_attribute13
696       ,p_ass_attribute14                => p_rec.ass_attribute14
697       ,p_ass_attribute15                => p_rec.ass_attribute15
698       ,p_ass_attribute16                => p_rec.ass_attribute16
699       ,p_ass_attribute17                => p_rec.ass_attribute17
700       ,p_ass_attribute18                => p_rec.ass_attribute18
701       ,p_ass_attribute19                => p_rec.ass_attribute19
702       ,p_ass_attribute20                => p_rec.ass_attribute20
703       ,p_ass_attribute21                => p_rec.ass_attribute21
704       ,p_ass_attribute22                => p_rec.ass_attribute22
705       ,p_ass_attribute23                => p_rec.ass_attribute23
706       ,p_ass_attribute24                => p_rec.ass_attribute24
707       ,p_ass_attribute25                => p_rec.ass_attribute25
708       ,p_ass_attribute26                => p_rec.ass_attribute26
709       ,p_ass_attribute27                => p_rec.ass_attribute27
710       ,p_ass_attribute28                => p_rec.ass_attribute28
711       ,p_ass_attribute29                => p_rec.ass_attribute29
712       ,p_ass_attribute30                => p_rec.ass_attribute30
713       ,p_title                          => p_rec.title
714       ,p_contract_id                    => p_rec.contract_id
715       ,p_establishment_id               => p_rec.establishment_id
716       ,p_collective_agreement_id        => p_rec.collective_agreement_id
717       ,p_cagr_grade_def_id              => p_rec.cagr_grade_def_id
718       ,p_cagr_id_flex_num               => p_rec.cagr_id_flex_num
719       ,p_object_version_number          => p_rec.object_version_number
720       ,p_payroll_id_updated             => p_payroll_id_updated
721       ,p_other_manager_warning          => p_other_manager_warning
722       ,p_hourly_salaried_warning        => p_hourly_salaried_warning
723       ,p_no_managers_warning            => p_no_managers_warning
724       ,p_org_now_no_manager_warning     => p_org_now_no_manager_warning
725       ,p_notice_period             => p_rec.notice_period
726       ,p_notice_period_uom    => p_rec.notice_period_uom
727       ,p_employee_category    => p_rec.employee_category
728       ,p_work_at_home         => p_rec.work_at_home
729       ,p_job_post_source_name    => p_rec.job_post_source_name
730       ,p_posting_content_id             => p_rec.posting_content_id
731       ,p_placement_date_start => p_rec.period_of_placement_date_start
732       ,p_vendor_id                      => p_rec.vendor_id
733       ,p_vendor_employee_number         => p_rec.vendor_employee_number
734       ,p_vendor_assignment_number       => p_rec.vendor_assignment_number
735       ,p_assignment_category            => p_rec.assignment_category
736       ,p_project_title                  => p_rec.project_title
737       ,p_applicant_rank                 => p_rec.applicant_rank
738       ,p_grade_ladder_pgm_id            => p_rec.grade_ladder_pgm_id
739       ,p_supervisor_assignment_id       => p_rec.supervisor_assignment_id
740       ,p_vendor_site_id                 => p_rec.vendor_site_id
741       ,p_po_header_id                   => p_rec.po_header_id
742       ,p_po_line_id                     => p_rec.po_line_id
743       ,p_projected_assignment_end       => p_rec.projected_assignment_end
744       ,p_effective_start_date_o
745           => per_asg_shd.g_old_rec.effective_start_date
746       ,p_effective_end_date_o
747           => per_asg_shd.g_old_rec.effective_end_date
748       ,p_business_group_id_o
749           => per_asg_shd.g_old_rec.business_group_id
750       ,p_recruiter_id_o
751           => per_asg_shd.g_old_rec.recruiter_id
752       ,p_grade_id_o
753           => per_asg_shd.g_old_rec.grade_id
754       ,p_position_id_o
755           => per_asg_shd.g_old_rec.position_id
756       ,p_job_id_o
757           => per_asg_shd.g_old_rec.job_id
758       ,p_assignment_status_type_id_o
759           => per_asg_shd.g_old_rec.assignment_status_type_id
760       ,p_payroll_id_o
761           => per_asg_shd.g_old_rec.payroll_id
762       ,p_location_id_o
763           => per_asg_shd.g_old_rec.location_id
764       ,p_person_referred_by_id_o
765           => per_asg_shd.g_old_rec.person_referred_by_id
766       ,p_supervisor_id_o
767           => per_asg_shd.g_old_rec.supervisor_id
768       ,p_special_ceiling_step_id_o
769           => per_asg_shd.g_old_rec.special_ceiling_step_id
770       ,p_person_id_o
771           => per_asg_shd.g_old_rec.person_id
772       ,p_recruitment_activity_id_o
773           => per_asg_shd.g_old_rec.recruitment_activity_id
774       ,p_source_organization_id_o
775           => per_asg_shd.g_old_rec.source_organization_id
776       ,p_organization_id_o
777           => per_asg_shd.g_old_rec.organization_id
778       ,p_people_group_id_o
779           => per_asg_shd.g_old_rec.people_group_id
780       ,p_soft_coding_keyflex_id_o
781           => per_asg_shd.g_old_rec.soft_coding_keyflex_id
782       ,p_vacancy_id_o
783           => per_asg_shd.g_old_rec.vacancy_id
784       ,p_assignment_sequence_o
785           => per_asg_shd.g_old_rec.assignment_sequence
786       ,p_pay_basis_id_o
787           => per_asg_shd.g_old_rec.pay_basis_id
788       ,p_assignment_type_o
789           => per_asg_shd.g_old_rec.assignment_type
790       ,p_primary_flag_o
791           => per_asg_shd.g_old_rec.primary_flag
792       ,p_application_id_o
793           => per_asg_shd.g_old_rec.application_id
794       ,p_assignment_number_o
795           => per_asg_shd.g_old_rec.assignment_number
796       ,p_change_reason_o
797           => per_asg_shd.g_old_rec.change_reason
798       ,p_comment_id_o
799           => per_asg_shd.g_old_rec.comment_id
800       ,p_date_probation_end_o
801           => per_asg_shd.g_old_rec.date_probation_end
802       ,p_default_code_comb_id_o
803           => per_asg_shd.g_old_rec.default_code_comb_id
804       ,p_employment_category_o
805           => per_asg_shd.g_old_rec.employment_category
806       ,p_frequency_o
807           => per_asg_shd.g_old_rec.frequency
808       ,p_internal_address_line_o
809           => per_asg_shd.g_old_rec.internal_address_line
810       ,p_manager_flag_o
811           => per_asg_shd.g_old_rec.manager_flag
812       ,p_normal_hours_o
813           => per_asg_shd.g_old_rec.normal_hours
814       ,p_perf_review_period_o
815           => per_asg_shd.g_old_rec.perf_review_period
816       ,p_perf_review_period_frequen_o
817           => per_asg_shd.g_old_rec.perf_review_period_frequency
818       ,p_period_of_service_id_o
819           => per_asg_shd.g_old_rec.period_of_service_id
820       ,p_probation_period_o
821           => per_asg_shd.g_old_rec.probation_period
822       ,p_probation_unit_o
823           => per_asg_shd.g_old_rec.probation_unit
824       ,p_sal_review_period_o
825           => per_asg_shd.g_old_rec.sal_review_period
826       ,p_sal_review_period_frequen_o
827           => per_asg_shd.g_old_rec.sal_review_period_frequency
828       ,p_set_of_books_id_o
829           => per_asg_shd.g_old_rec.set_of_books_id
830       ,p_source_type_o
831           => per_asg_shd.g_old_rec.source_type
832       ,p_time_normal_finish_o
833           => per_asg_shd.g_old_rec.time_normal_finish
834       ,p_time_normal_start_o
835           => per_asg_shd.g_old_rec.time_normal_start
836       ,p_bargaining_unit_code_o
837           => per_asg_shd.g_old_rec.bargaining_unit_code
838       ,p_labour_union_member_flag_o
839           => per_asg_shd.g_old_rec.labour_union_member_flag
840       ,p_hourly_salaried_code_o
841           => per_asg_shd.g_old_rec.hourly_salaried_code
842       ,p_request_id_o
843           => per_asg_shd.g_old_rec.request_id
844       ,p_program_application_id_o
845           => per_asg_shd.g_old_rec.program_application_id
846       ,p_program_id_o
847           => per_asg_shd.g_old_rec.program_id
848       ,p_program_update_date_o
849           => per_asg_shd.g_old_rec.program_update_date
850       ,p_ass_attribute_category_o
851           => per_asg_shd.g_old_rec.ass_attribute_category
852       ,p_ass_attribute1_o
853           => per_asg_shd.g_old_rec.ass_attribute1
854       ,p_ass_attribute2_o
855           => per_asg_shd.g_old_rec.ass_attribute2
856       ,p_ass_attribute3_o
857           => per_asg_shd.g_old_rec.ass_attribute3
858       ,p_ass_attribute4_o
859           => per_asg_shd.g_old_rec.ass_attribute4
860       ,p_ass_attribute5_o
861           => per_asg_shd.g_old_rec.ass_attribute5
862       ,p_ass_attribute6_o
863           => per_asg_shd.g_old_rec.ass_attribute6
864       ,p_ass_attribute7_o
865           => per_asg_shd.g_old_rec.ass_attribute7
866       ,p_ass_attribute8_o
867           => per_asg_shd.g_old_rec.ass_attribute8
868       ,p_ass_attribute9_o
869           => per_asg_shd.g_old_rec.ass_attribute9
870       ,p_ass_attribute10_o
871           => per_asg_shd.g_old_rec.ass_attribute10
872       ,p_ass_attribute11_o
873           => per_asg_shd.g_old_rec.ass_attribute11
874       ,p_ass_attribute12_o
875           => per_asg_shd.g_old_rec.ass_attribute12
876       ,p_ass_attribute13_o
877           => per_asg_shd.g_old_rec.ass_attribute13
878       ,p_ass_attribute14_o
879           => per_asg_shd.g_old_rec.ass_attribute14
880       ,p_ass_attribute15_o
881           => per_asg_shd.g_old_rec.ass_attribute15
882       ,p_ass_attribute16_o
883           => per_asg_shd.g_old_rec.ass_attribute16
884       ,p_ass_attribute17_o
885           => per_asg_shd.g_old_rec.ass_attribute17
886       ,p_ass_attribute18_o
887           => per_asg_shd.g_old_rec.ass_attribute18
888       ,p_ass_attribute19_o
889           => per_asg_shd.g_old_rec.ass_attribute19
890       ,p_ass_attribute20_o
891           => per_asg_shd.g_old_rec.ass_attribute20
892       ,p_ass_attribute21_o
893           => per_asg_shd.g_old_rec.ass_attribute21
894       ,p_ass_attribute22_o
895           => per_asg_shd.g_old_rec.ass_attribute22
896       ,p_ass_attribute23_o
897           => per_asg_shd.g_old_rec.ass_attribute23
898       ,p_ass_attribute24_o
899           => per_asg_shd.g_old_rec.ass_attribute24
900       ,p_ass_attribute25_o
901           => per_asg_shd.g_old_rec.ass_attribute25
902       ,p_ass_attribute26_o
903           => per_asg_shd.g_old_rec.ass_attribute26
904       ,p_ass_attribute27_o
905           => per_asg_shd.g_old_rec.ass_attribute27
906       ,p_ass_attribute28_o
907           => per_asg_shd.g_old_rec.ass_attribute28
908       ,p_ass_attribute29_o
909           => per_asg_shd.g_old_rec.ass_attribute29
910       ,p_ass_attribute30_o
911           => per_asg_shd.g_old_rec.ass_attribute30
912       ,p_title_o
913           => per_asg_shd.g_old_rec.title
914       ,p_contract_id_o
915           => per_asg_shd.g_old_rec.contract_id
916       ,p_establishment_id_o
917           => per_asg_shd.g_old_rec.establishment_id
918       ,p_collective_agreement_id_o
919           => per_asg_shd.g_old_rec.collective_agreement_id
920       ,p_cagr_grade_def_id_o
921           => per_asg_shd.g_old_rec.cagr_grade_def_id
922       ,p_cagr_id_flex_num_o
923           => per_asg_shd.g_old_rec.cagr_id_flex_num
924       ,p_object_version_number_o
925           => per_asg_shd.g_old_rec.object_version_number
926       ,p_notice_period_o
927           => per_asg_shd.g_old_rec.notice_period
928       ,p_notice_period_uom_o
929      => per_asg_shd.g_old_rec.notice_period_uom
930       ,p_employee_category_o
931           => per_asg_shd.g_old_rec.employee_category
932       ,p_work_at_home_o
933           => per_asg_shd.g_old_rec.work_at_home
934       ,p_job_post_source_name_o
935           => per_asg_shd.g_old_rec.job_post_source_name
936       ,p_posting_content_id_o
937           => per_asg_shd.g_old_rec.posting_content_id
938       ,p_placement_date_start_o
939           => per_asg_shd.g_old_rec.period_of_placement_date_start
940       ,p_vendor_id_o
941           => per_asg_shd.g_old_rec.vendor_id
942       ,p_vendor_employee_number_o
943           => per_asg_shd.g_old_rec.vendor_employee_number
944       ,p_vendor_assignment_number_o
945           => per_asg_shd.g_old_rec.vendor_assignment_number
946       ,p_assignment_category_o
947           => per_asg_shd.g_old_rec.assignment_category
948       ,p_project_title_o
949           => per_asg_shd.g_old_rec.project_title
950       ,p_applicant_rank_o
951           => per_asg_shd.g_old_rec.applicant_rank
952       ,p_grade_ladder_pgm_id_o
953           => per_asg_shd.g_old_rec.grade_ladder_pgm_id
954       ,p_supervisor_assignment_id_o
955           => per_asg_shd.g_old_rec.supervisor_assignment_id
956       ,p_vendor_site_id_o
957           => per_asg_shd.g_old_rec.vendor_site_id
958       ,p_po_header_id_o
959           => per_asg_shd.g_old_rec.po_header_id
960       ,p_po_line_id_o
961           => per_asg_shd.g_old_rec.po_line_id
962       ,p_projected_assignment_end_o
963           => per_asg_shd.g_old_rec.projected_assignment_end
964        );
965   exception
966     when hr_api.cannot_find_prog_unit then
967       hr_api.cannot_find_prog_unit_error
968         (p_module_name => 'PER_ALL_ASSIGNMENTS_F'
969         ,p_hook_type   => 'AU'
970         );
971   end;
972   -- End of API User Hook for post_update.
973   --
974   -- Temporary hardcoded hook added for pay object group functionality. Will
975   -- replace by proper hook when dynamic triggers for assignments converted
976   -- to package dynamic triggers.
977   --
978   pay_pog_all_assignments_pkg.after_update
979   (p_effective_date            => p_effective_date
980   ,p_datetrack_mode            => p_datetrack_mode
981   ,p_validation_start_date     => p_validation_start_date
982   ,p_validation_end_date       => p_validation_end_date
983   ,P_APPLICANT_RANK            => p_rec.applicant_rank
984   ,P_APPLICATION_ID            => p_rec.application_id
985   ,P_ASSIGNMENT_CATEGORY       => p_rec.assignment_category
986   ,P_ASSIGNMENT_ID             => p_rec.assignment_id
987   ,P_ASSIGNMENT_NUMBER         => p_rec.assignment_number
988   ,P_ASSIGNMENT_STATUS_TYPE_ID => p_rec.assignment_status_type_id
989   ,P_ASSIGNMENT_TYPE           => p_rec.assignment_type
990   ,P_ASS_ATTRIBUTE1            => p_rec.ass_attribute1
991   ,P_ASS_ATTRIBUTE10           => p_rec.ass_attribute10
992   ,P_ASS_ATTRIBUTE11           => p_rec.ass_attribute11
993   ,P_ASS_ATTRIBUTE12           => p_rec.ass_attribute12
994   ,P_ASS_ATTRIBUTE13           => p_rec.ass_attribute13
995   ,P_ASS_ATTRIBUTE14           => p_rec.ass_attribute14
996   ,P_ASS_ATTRIBUTE15           => p_rec.ass_attribute15
997   ,P_ASS_ATTRIBUTE16           => p_rec.ass_attribute16
998   ,P_ASS_ATTRIBUTE17           => p_rec.ass_attribute17
999   ,P_ASS_ATTRIBUTE18           => p_rec.ass_attribute18
1000   ,P_ASS_ATTRIBUTE19           => p_rec.ass_attribute19
1001   ,P_ASS_ATTRIBUTE2            => p_rec.ass_attribute2
1002   ,P_ASS_ATTRIBUTE20           => p_rec.ass_attribute20
1003   ,P_ASS_ATTRIBUTE21           => p_rec.ass_attribute21
1004   ,P_ASS_ATTRIBUTE22           => p_rec.ass_attribute22
1005   ,P_ASS_ATTRIBUTE23           => p_rec.ass_attribute23
1006   ,P_ASS_ATTRIBUTE24           => p_rec.ass_attribute24
1007   ,P_ASS_ATTRIBUTE25           => p_rec.ass_attribute25
1008   ,P_ASS_ATTRIBUTE26           => p_rec.ass_attribute26
1009   ,P_ASS_ATTRIBUTE27           => p_rec.ass_attribute27
1010   ,P_ASS_ATTRIBUTE28           => p_rec.ass_attribute28
1011   ,P_ASS_ATTRIBUTE29           => p_rec.ass_attribute29
1012   ,P_ASS_ATTRIBUTE3            => p_rec.ass_attribute3
1013   ,P_ASS_ATTRIBUTE30           => p_rec.ass_attribute30
1014   ,P_ASS_ATTRIBUTE4            => p_rec.ass_attribute4
1015   ,P_ASS_ATTRIBUTE5            => p_rec.ass_attribute5
1016   ,P_ASS_ATTRIBUTE6            => p_rec.ass_attribute6
1017   ,P_ASS_ATTRIBUTE7            => p_rec.ass_attribute7
1018   ,P_ASS_ATTRIBUTE8            => p_rec.ass_attribute8
1019   ,P_ASS_ATTRIBUTE9            => p_rec.ass_attribute9
1020   ,P_ASS_ATTRIBUTE_CATEGORY    => p_rec.ass_attribute_category
1021   ,P_BARGAINING_UNIT_CODE      => p_rec.bargaining_unit_code
1022   ,P_CAGR_GRADE_DEF_ID         => p_rec.cagr_grade_def_id
1023   ,P_CAGR_ID_FLEX_NUM          => p_rec.cagr_id_flex_num
1024   ,P_CHANGE_REASON             => p_rec.change_reason
1025   ,P_COLLECTIVE_AGREEMENT_ID   => p_rec.collective_agreement_id
1026   ,P_COMMENTS                  => p_rec.comment_text
1027   ,P_COMMENT_ID                => p_rec.comment_id
1028   ,P_CONTRACT_ID               => p_rec.contract_id
1029   ,P_DATE_PROBATION_END        => p_rec.date_probation_end
1030   ,P_DEFAULT_CODE_COMB_ID      => p_rec.default_code_comb_id
1031   ,P_EFFECTIVE_END_DATE        => p_rec.effective_end_date
1032   ,P_EFFECTIVE_START_DATE      => p_rec.effective_start_date
1033   ,P_EMPLOYEE_CATEGORY         => p_rec.employee_category
1034   ,P_EMPLOYMENT_CATEGORY       => p_rec.employment_category
1035   ,P_ESTABLISHMENT_ID          => p_rec.establishment_id
1036   ,P_FREQUENCY                 => p_rec.frequency
1037   ,P_GRADE_ID                  => p_rec.grade_id
1038   ,P_HOURLY_SALARIED_CODE      => p_rec.hourly_salaried_code
1039   ,P_HOURLY_SALARIED_WARNING   => p_hourly_salaried_warning
1040   ,P_INTERNAL_ADDRESS_LINE     => p_rec.internal_address_line
1041   ,P_JOB_ID                    => p_rec.job_id
1042   ,P_JOB_POST_SOURCE_NAME      => p_rec.job_post_source_name
1043   ,P_LABOUR_UNION_MEMBER_FLAG  => p_rec.labour_union_member_flag
1044   ,P_LOCATION_ID               => p_rec.location_id
1045   ,P_MANAGER_FLAG              => p_rec.manager_flag
1046   ,P_NORMAL_HOURS              => p_rec.normal_hours
1047   ,P_NOTICE_PERIOD             => p_rec.notice_period
1048   ,P_NOTICE_PERIOD_UOM         => p_rec.notice_period_uom
1049   ,P_NO_MANAGERS_WARNING       => p_no_managers_warning
1050   ,P_OBJECT_VERSION_NUMBER     => p_rec.object_version_number
1051   ,P_ORGANIZATION_ID           => p_rec.organization_id
1052   ,P_ORG_NOW_NO_MANAGER_WARNING => p_org_now_no_manager_warning
1053   ,P_OTHER_MANAGER_WARNING     => p_other_manager_warning
1054   ,P_PAYROLL_ID                => p_rec.payroll_id
1055   ,P_PAYROLL_ID_UPDATED        => p_payroll_id_updated
1056   ,P_PAY_BASIS_ID              => p_rec.pay_basis_id
1057   ,P_PEOPLE_GROUP_ID           => p_rec.people_group_id
1058   ,P_PERF_REVIEW_PERIOD        => p_rec.perf_review_period
1059   ,P_PERF_REVIEW_PERIOD_FREQUEN => p_rec.perf_review_period_frequency
1060   ,P_PERIOD_OF_SERVICE_ID      => p_rec.period_of_service_id
1061   ,P_PERSON_REFERRED_BY_ID     => p_rec.person_referred_by_id
1062   ,P_PLACEMENT_DATE_START      => p_rec.period_of_placement_date_start
1063   ,P_POSITION_ID               => p_rec.position_id
1064   ,P_POSTING_CONTENT_ID        => p_rec.posting_content_id
1065   ,P_PRIMARY_FLAG              => p_rec.primary_flag
1066   ,P_PROBATION_PERIOD          => p_rec.probation_period
1067   ,P_PROBATION_UNIT            => p_rec.probation_unit
1068   ,P_PROGRAM_APPLICATION_ID    => p_rec.program_application_id
1069   ,P_PROGRAM_ID                => p_rec.program_id
1070   ,P_PROGRAM_UPDATE_DATE       => p_rec.program_update_date
1071   ,P_PROJECT_TITLE             => p_rec.project_title
1072   ,P_RECRUITER_ID              => p_rec.recruiter_id
1073   ,P_RECRUITMENT_ACTIVITY_ID   => p_rec.recruitment_activity_id
1074   ,P_REQUEST_ID                => p_rec.request_id
1075   ,P_SAL_REVIEW_PERIOD         => p_rec.sal_review_period
1076   ,P_SAL_REVIEW_PERIOD_FREQUEN => p_rec.sal_review_period_frequency
1077   ,P_SET_OF_BOOKS_ID           => p_rec.set_of_books_id
1078   ,P_SOFT_CODING_KEYFLEX_ID    => p_rec.soft_coding_keyflex_id
1079   ,P_SOURCE_ORGANIZATION_ID    => p_rec.source_organization_id
1080   ,P_SOURCE_TYPE               => p_rec.source_type
1081   ,P_SPECIAL_CEILING_STEP_ID   => p_rec.special_ceiling_step_id
1082   ,P_SUPERVISOR_ID             => p_rec.supervisor_id
1083   ,P_TIME_NORMAL_FINISH        => p_rec.time_normal_finish
1084   ,P_TIME_NORMAL_START         => p_rec.time_normal_start
1085   ,P_TITLE                     => p_rec.title
1086   ,P_VACANCY_ID                => p_rec.vacancy_id
1087   ,P_VENDOR_ASSIGNMENT_NUMBER  => p_rec.vendor_assignment_number
1088   ,P_VENDOR_EMPLOYEE_NUMBER    => p_rec.vendor_employee_number
1089   ,P_VENDOR_ID                 => p_rec.vendor_id
1090   ,P_WORK_AT_HOME              => p_rec.work_at_home
1091   ,P_GRADE_LADDER_PGM_ID       => p_rec.grade_ladder_pgm_id
1092   ,P_SUPERVISOR_ASSIGNMENT_ID  => p_rec.supervisor_assignment_id
1093   ,P_VENDOR_SITE_ID            => p_rec.vendor_site_id
1094   ,P_PO_HEADER_ID              => p_rec.po_header_id
1095   ,P_PO_LINE_ID                => p_rec.po_line_id
1096   ,P_PROJECTED_ASSIGNMENT_END  => p_rec.projected_assignment_end
1097   ,P_APPLICANT_RANK_O          => per_asg_shd.g_old_rec.applicant_rank
1098   ,P_APPLICATION_ID_O          => per_asg_shd.g_old_rec.application_id
1099   ,P_ASSIGNMENT_CATEGORY_O     => per_asg_shd.g_old_rec.assignment_category
1100   ,P_ASSIGNMENT_NUMBER_O       => per_asg_shd.g_old_rec.assignment_number
1101   ,P_ASSIGNMENT_SEQUENCE_O     => per_asg_shd.g_old_rec.assignment_sequence
1102   ,P_ASSIGNMENT_STATUS_TYPE_ID_O => per_asg_shd.g_old_rec.assignment_status_type_id
1103   ,P_ASSIGNMENT_TYPE_O         => per_asg_shd.g_old_rec.assignment_type
1104   ,P_ASS_ATTRIBUTE1_O          => per_asg_shd.g_old_rec.ass_attribute1
1105   ,P_ASS_ATTRIBUTE10_O         => per_asg_shd.g_old_rec.ass_attribute10
1106   ,P_ASS_ATTRIBUTE11_O         => per_asg_shd.g_old_rec.ass_attribute11
1107   ,P_ASS_ATTRIBUTE12_O         => per_asg_shd.g_old_rec.ass_attribute12
1108   ,P_ASS_ATTRIBUTE13_O         => per_asg_shd.g_old_rec.ass_attribute13
1109   ,P_ASS_ATTRIBUTE14_O         => per_asg_shd.g_old_rec.ass_attribute14
1110   ,P_ASS_ATTRIBUTE15_O         => per_asg_shd.g_old_rec.ass_attribute15
1111   ,P_ASS_ATTRIBUTE16_O         => per_asg_shd.g_old_rec.ass_attribute16
1112   ,P_ASS_ATTRIBUTE17_O         => per_asg_shd.g_old_rec.ass_attribute17
1113   ,P_ASS_ATTRIBUTE18_O         => per_asg_shd.g_old_rec.ass_attribute18
1114   ,P_ASS_ATTRIBUTE19_O         => per_asg_shd.g_old_rec.ass_attribute19
1115   ,P_ASS_ATTRIBUTE2_O          => per_asg_shd.g_old_rec.ass_attribute2
1116   ,P_ASS_ATTRIBUTE20_O         => per_asg_shd.g_old_rec.ass_attribute20
1117   ,P_ASS_ATTRIBUTE21_O         => per_asg_shd.g_old_rec.ass_attribute21
1118   ,P_ASS_ATTRIBUTE22_O         => per_asg_shd.g_old_rec.ass_attribute22
1119   ,P_ASS_ATTRIBUTE23_O         => per_asg_shd.g_old_rec.ass_attribute23
1120   ,P_ASS_ATTRIBUTE24_O         => per_asg_shd.g_old_rec.ass_attribute24
1121   ,P_ASS_ATTRIBUTE25_O         => per_asg_shd.g_old_rec.ass_attribute25
1122   ,P_ASS_ATTRIBUTE26_O         => per_asg_shd.g_old_rec.ass_attribute26
1123   ,P_ASS_ATTRIBUTE27_O         => per_asg_shd.g_old_rec.ass_attribute27
1124   ,P_ASS_ATTRIBUTE28_O         => per_asg_shd.g_old_rec.ass_attribute28
1125   ,P_ASS_ATTRIBUTE29_O         => per_asg_shd.g_old_rec.ass_attribute29
1126   ,P_ASS_ATTRIBUTE3_O          => per_asg_shd.g_old_rec.ass_attribute3
1127   ,P_ASS_ATTRIBUTE30_O         => per_asg_shd.g_old_rec.ass_attribute30
1128   ,P_ASS_ATTRIBUTE4_O          => per_asg_shd.g_old_rec.ass_attribute4
1129   ,P_ASS_ATTRIBUTE5_O          => per_asg_shd.g_old_rec.ass_attribute5
1130   ,P_ASS_ATTRIBUTE6_O          => per_asg_shd.g_old_rec.ass_attribute6
1131   ,P_ASS_ATTRIBUTE7_O          => per_asg_shd.g_old_rec.ass_attribute7
1132   ,P_ASS_ATTRIBUTE8_O          => per_asg_shd.g_old_rec.ass_attribute8
1133   ,P_ASS_ATTRIBUTE9_O          => per_asg_shd.g_old_rec.ass_attribute9
1134   ,P_ASS_ATTRIBUTE_CATEGORY_O  => per_asg_shd.g_old_rec.ass_attribute_category
1135   ,P_BARGAINING_UNIT_CODE_O    => per_asg_shd.g_old_rec.bargaining_unit_code
1136   ,P_BUSINESS_GROUP_ID_O       => per_asg_shd.g_old_rec.business_group_id
1137   ,P_CAGR_GRADE_DEF_ID_O       => per_asg_shd.g_old_rec.cagr_grade_def_id
1138   ,P_CAGR_ID_FLEX_NUM_O        => per_asg_shd.g_old_rec.cagr_id_flex_num
1139   ,P_CHANGE_REASON_O           => per_asg_shd.g_old_rec.change_reason
1140   ,P_COLLECTIVE_AGREEMENT_ID_O => per_asg_shd.g_old_rec.collective_agreement_id
1141   ,P_COMMENT_ID_O              => per_asg_shd.g_old_rec.comment_id
1142   ,P_CONTRACT_ID_O             => per_asg_shd.g_old_rec.contract_id
1143   ,P_DATE_PROBATION_END_O      => per_asg_shd.g_old_rec.date_probation_end
1144   ,P_DEFAULT_CODE_COMB_ID_O    => per_asg_shd.g_old_rec.default_code_comb_id
1145   ,P_EFFECTIVE_END_DATE_O      => per_asg_shd.g_old_rec.effective_end_date
1146   ,P_EFFECTIVE_START_DATE_O    => per_asg_shd.g_old_rec.effective_start_date
1147   ,P_EMPLOYEE_CATEGORY_O       => per_asg_shd.g_old_rec.employee_category
1148   ,P_EMPLOYMENT_CATEGORY_O     => per_asg_shd.g_old_rec.employment_category
1149   ,P_ESTABLISHMENT_ID_O        => per_asg_shd.g_old_rec.establishment_id
1150   ,P_FREQUENCY_O               => per_asg_shd.g_old_rec.frequency
1151   ,P_GRADE_ID_O                => per_asg_shd.g_old_rec.grade_id
1152   ,P_HOURLY_SALARIED_CODE_O    => per_asg_shd.g_old_rec.hourly_salaried_code
1153   ,P_INTERNAL_ADDRESS_LINE_O   => per_asg_shd.g_old_rec.internal_address_line
1154   ,P_JOB_ID_O                  => per_asg_shd.g_old_rec.job_id
1155   ,P_JOB_POST_SOURCE_NAME_O    => per_asg_shd.g_old_rec.job_post_source_name
1156   ,P_LABOUR_UNION_MEMBER_FLAG_O => per_asg_shd.g_old_rec.labour_union_member_flag
1157   ,P_LOCATION_ID_O             => per_asg_shd.g_old_rec.location_id
1158   ,P_MANAGER_FLAG_O            => per_asg_shd.g_old_rec.manager_flag
1159   ,P_NORMAL_HOURS_O            => per_asg_shd.g_old_rec.normal_hours
1160   ,P_NOTICE_PERIOD_O           => per_asg_shd.g_old_rec.notice_period
1161   ,P_NOTICE_PERIOD_UOM_O       => per_asg_shd.g_old_rec.notice_period_uom
1162   ,P_OBJECT_VERSION_NUMBER_O   => per_asg_shd.g_old_rec.object_version_number
1163   ,P_ORGANIZATION_ID_O         => per_asg_shd.g_old_rec.organization_id
1164   ,P_PAYROLL_ID_O              => per_asg_shd.g_old_rec.payroll_id
1165   ,P_PAY_BASIS_ID_O            => per_asg_shd.g_old_rec.pay_basis_id
1166   ,P_PEOPLE_GROUP_ID_O         => per_asg_shd.g_old_rec.people_group_id
1167   ,P_PERF_REVIEW_PERIOD_O      => per_asg_shd.g_old_rec.perf_review_period
1168   ,P_PERF_REVIEW_PERIOD_FREQUEN_O => per_asg_shd.g_old_rec.perf_review_period_frequency
1169   ,P_PERIOD_OF_SERVICE_ID_O    => per_asg_shd.g_old_rec.period_of_service_id
1170   ,P_PERSON_ID_O               => per_asg_shd.g_old_rec.person_id
1171   ,P_PERSON_REFERRED_BY_ID_O   => per_asg_shd.g_old_rec.person_referred_by_id
1172   ,P_PLACEMENT_DATE_START_O    => per_asg_shd.g_old_rec.period_of_placement_date_start
1173   ,P_POSITION_ID_O             => per_asg_shd.g_old_rec.position_id
1174   ,P_POSTING_CONTENT_ID_O      => per_asg_shd.g_old_rec.posting_content_id
1175   ,P_PRIMARY_FLAG_O            => per_asg_shd.g_old_rec.primary_flag
1176   ,P_PROBATION_PERIOD_O        => per_asg_shd.g_old_rec.probation_period
1177   ,P_PROBATION_UNIT_O          => per_asg_shd.g_old_rec.probation_unit
1178   ,P_PROGRAM_APPLICATION_ID_O  => per_asg_shd.g_old_rec.program_application_id
1179   ,P_PROGRAM_ID_O              => per_asg_shd.g_old_rec.program_id
1180   ,P_PROGRAM_UPDATE_DATE_O     => per_asg_shd.g_old_rec.program_update_date
1181   ,P_PROJECT_TITLE_O           => per_asg_shd.g_old_rec.project_title
1182   ,P_RECRUITER_ID_O            => per_asg_shd.g_old_rec.recruiter_id
1183   ,P_RECRUITMENT_ACTIVITY_ID_O => per_asg_shd.g_old_rec.recruitment_activity_id
1184   ,P_REQUEST_ID_O              => per_asg_shd.g_old_rec.request_id
1185   ,P_SAL_REVIEW_PERIOD_O       => per_asg_shd.g_old_rec.sal_review_period
1186   ,P_SAL_REVIEW_PERIOD_FREQUEN_O => per_asg_shd.g_old_rec.sal_review_period_frequency
1187   ,P_SET_OF_BOOKS_ID_O         => per_asg_shd.g_old_rec.set_of_books_id
1188   ,P_SOFT_CODING_KEYFLEX_ID_O  => per_asg_shd.g_old_rec.soft_coding_keyflex_id
1189   ,P_SOURCE_ORGANIZATION_ID_O  => per_asg_shd.g_old_rec.source_organization_id
1190   ,P_SOURCE_TYPE_O             => per_asg_shd.g_old_rec.source_type
1191   ,P_SPECIAL_CEILING_STEP_ID_O => per_asg_shd.g_old_rec.special_ceiling_step_id
1192   ,P_SUPERVISOR_ID_O           => per_asg_shd.g_old_rec.supervisor_id
1193   ,P_TIME_NORMAL_FINISH_O      => per_asg_shd.g_old_rec.time_normal_finish
1194   ,P_TIME_NORMAL_START_O       => per_asg_shd.g_old_rec.time_normal_start
1195   ,P_TITLE_O                   => per_asg_shd.g_old_rec.title
1196   ,P_VACANCY_ID_O              => per_asg_shd.g_old_rec.vacancy_id
1197   ,P_VENDOR_ASSIGNMENT_NUMBER_O => per_asg_shd.g_old_rec.vendor_assignment_number
1198   ,P_VENDOR_EMPLOYEE_NUMBER_O  => per_asg_shd.g_old_rec.vendor_employee_number
1199   ,P_VENDOR_ID_O               => per_asg_shd.g_old_rec.vendor_id
1200   ,P_WORK_AT_HOME_O            => per_asg_shd.g_old_rec.work_at_home
1201   ,P_GRADE_LADDER_PGM_ID_O     => per_asg_shd.g_old_rec.grade_ladder_pgm_id
1202   ,P_SUPERVISOR_ASSIGNMENT_ID_O => per_asg_shd.g_old_rec.supervisor_assignment_id
1203   ,P_VENDOR_SITE_ID_O          => per_asg_shd.g_old_rec.vendor_site_id
1204   ,P_PO_HEADER_ID_O            => per_asg_shd.g_old_rec.po_header_id
1205   ,P_PO_LINE_ID_O              => per_asg_shd.g_old_rec.po_line_id
1206   ,P_PROJECTED_ASSIGNMENT_END_O => per_asg_shd.g_old_rec.projected_assignment_end
1207   );
1208   --
1209   -- Call to Workflow Sync Procedure For Assignments
1210     per_pqh_shr.per_asg_wf_sync('POST_UPDATE',
1211                             p_rec,
1212                             per_asg_shd.g_old_rec.position_id,
1213                             p_effective_date,
1214                             p_validation_start_date,
1215                             p_validation_end_date,
1216                             p_datetrack_mode);
1217 
1218  -- End of call to Workflow Sync Procedure For Assignments
1219 
1220   --
1221   hr_utility.set_location(' Leaving:'||l_proc, 10);
1222 End post_update;
1223 --
1224 -- ----------------------------------------------------------------------------
1225 -- |-----------------------------< convert_defs >-----------------------------|
1226 -- ----------------------------------------------------------------------------
1227 -- {Start Of Comments}
1228 --
1229 -- Description:
1230 --   The Convert_Defs procedure has one very important function:
1231 --   It must return the record structure for the row with all system defaulted
1232 --   values converted into its corresponding argument value for update. When
1233 --   we attempt to update a row through the Upd business process , certain
1234 --   arguments can be defaulted which enables flexibility in the calling of
1235 --   the upd process (e.g. only attributes which need to be updated need to be
1236 --   specified). For the upd business process to determine which attributes
1237 --   have NOT been specified we need to check if the argument has a reserved
1238 --   system default value. Therefore, for all attributes which have a
1239 --   corresponding reserved system default mechanism specified we need to
1240 --   check if a system default is being used. If a system default is being
1241 --   used then we convert the defaulted value into its corresponding attribute
1242 --   value held in the g_old_rec data structure.
1243 --
1244 -- Pre Conditions:
1245 --   This private procedure can only be called from the upd process.
1246 --
1247 -- In Arguments:
1248 --   A Pl/Sql record structre.
1249 --
1250 -- Post Success:
1251 --   The record structure will be returned with all system defaulted argument
1252 --   values converted into its current row attribute value.
1253 --
1254 -- Post Failure:
1255 --   No direct error handling is required within this function. Any possible
1256 --   errors within this procedure will be a PL/SQL value error due to
1257 --   conversion of datatypes or data lengths.
1258 --
1259 -- Developer Implementation Notes:
1260 --   None.
1261 --
1262 -- Access Status:
1263 --   Internal Table Handler Use Only.
1264 --
1265 -- {End Of Comments}
1266 -- ----------------------------------------------------------------------------
1267 Procedure convert_defs(p_rec in out nocopy per_asg_shd.g_rec_type) is
1268 --
1269   l_proc  varchar2(72) := g_package||'convert_defs';
1270 --
1271 Begin
1272   --
1273   hr_utility.set_location('Entering:'||l_proc, 5);
1274   --
1275   -- We must now examine each argument value in the
1276   -- p_rec plsql record structure
1277   -- to see if a system default is being used. If a system default
1278   -- is being used then we must set to the 'current' argument value.
1279   --
1280   If (p_rec.business_group_id = hr_api.g_number) then
1281     p_rec.business_group_id :=
1282     per_asg_shd.g_old_rec.business_group_id;
1283   End If;
1284   If (p_rec.recruiter_id = hr_api.g_number) then
1285     p_rec.recruiter_id :=
1286     per_asg_shd.g_old_rec.recruiter_id;
1287   End If;
1288   If (p_rec.grade_id = hr_api.g_number) then
1289     p_rec.grade_id :=
1290     per_asg_shd.g_old_rec.grade_id;
1291   End If;
1292   If (p_rec.position_id = hr_api.g_number) then
1293     p_rec.position_id :=
1294     per_asg_shd.g_old_rec.position_id;
1295   End If;
1296   If (p_rec.job_id = hr_api.g_number) then
1297     p_rec.job_id :=
1298     per_asg_shd.g_old_rec.job_id;
1299   End If;
1300   If (p_rec.assignment_status_type_id = hr_api.g_number) then
1301     p_rec.assignment_status_type_id :=
1302     per_asg_shd.g_old_rec.assignment_status_type_id;
1303   End If;
1304   If (p_rec.payroll_id = hr_api.g_number) then
1305     p_rec.payroll_id :=
1306     per_asg_shd.g_old_rec.payroll_id;
1307   End If;
1308   If (p_rec.location_id = hr_api.g_number) then
1309     p_rec.location_id :=
1310     per_asg_shd.g_old_rec.location_id;
1311   End If;
1312   If (p_rec.person_referred_by_id = hr_api.g_number) then
1313     p_rec.person_referred_by_id :=
1314     per_asg_shd.g_old_rec.person_referred_by_id;
1315   End If;
1316   If (p_rec.supervisor_id = hr_api.g_number) then
1317     p_rec.supervisor_id :=
1318     per_asg_shd.g_old_rec.supervisor_id;
1319   End If;
1320   If (p_rec.special_ceiling_step_id = hr_api.g_number) then
1321     p_rec.special_ceiling_step_id :=
1322     per_asg_shd.g_old_rec.special_ceiling_step_id;
1323   End If;
1324   If (p_rec.person_id = hr_api.g_number) then
1325     p_rec.person_id :=
1326     per_asg_shd.g_old_rec.person_id;
1327   End If;
1328   If (p_rec.recruitment_activity_id = hr_api.g_number) then
1329     p_rec.recruitment_activity_id :=
1330     per_asg_shd.g_old_rec.recruitment_activity_id;
1331   End If;
1332   If (p_rec.source_organization_id = hr_api.g_number) then
1333     p_rec.source_organization_id :=
1334     per_asg_shd.g_old_rec.source_organization_id;
1335   End If;
1336   If (p_rec.organization_id = hr_api.g_number) then
1337     p_rec.organization_id :=
1338     per_asg_shd.g_old_rec.organization_id;
1339   End If;
1340   If (p_rec.people_group_id = hr_api.g_number) then
1341     p_rec.people_group_id :=
1342     per_asg_shd.g_old_rec.people_group_id;
1343   End If;
1344   If (p_rec.soft_coding_keyflex_id = hr_api.g_number) then
1345     p_rec.soft_coding_keyflex_id :=
1346     per_asg_shd.g_old_rec.soft_coding_keyflex_id;
1347   End If;
1348   If (p_rec.vacancy_id = hr_api.g_number) then
1349     p_rec.vacancy_id :=
1350     per_asg_shd.g_old_rec.vacancy_id;
1351   End If;
1352   If (p_rec.pay_basis_id = hr_api.g_number) then
1353     p_rec.pay_basis_id :=
1354     per_asg_shd.g_old_rec.pay_basis_id;
1355   End If;
1356   If (p_rec.assignment_sequence = hr_api.g_number) then
1357     p_rec.assignment_sequence :=
1358     per_asg_shd.g_old_rec.assignment_sequence;
1359   End If;
1360   If (p_rec.assignment_type = hr_api.g_varchar2) then
1361     p_rec.assignment_type :=
1362     per_asg_shd.g_old_rec.assignment_type;
1363   End If;
1364   If (p_rec.primary_flag = hr_api.g_varchar2) then
1365     p_rec.primary_flag :=
1366     per_asg_shd.g_old_rec.primary_flag;
1367   End If;
1368   If (p_rec.application_id = hr_api.g_number) then
1369     p_rec.application_id :=
1370     per_asg_shd.g_old_rec.application_id;
1371   End If;
1372   If (p_rec.assignment_number = hr_api.g_varchar2) then
1373     p_rec.assignment_number :=
1374     per_asg_shd.g_old_rec.assignment_number;
1375   End If;
1376   If (p_rec.change_reason = hr_api.g_varchar2) then
1377     p_rec.change_reason :=
1378     per_asg_shd.g_old_rec.change_reason;
1379   End If;
1380   If (p_rec.comment_id = hr_api.g_number) then
1381     p_rec.comment_id :=
1382     per_asg_shd.g_old_rec.comment_id;
1383   End If;
1384   If (p_rec.comment_text = hr_api.g_varchar2) then
1385     p_rec.comment_text :=
1386     per_asg_shd.g_old_rec.comment_text;
1387   End If;
1388   If (p_rec.date_probation_end = hr_api.g_date) then
1389     p_rec.date_probation_end :=
1390     per_asg_shd.g_old_rec.date_probation_end;
1391   End If;
1392   If (p_rec.default_code_comb_id = hr_api.g_number) then
1393     p_rec.default_code_comb_id :=
1394     per_asg_shd.g_old_rec.default_code_comb_id;
1395   End If;
1396   If (p_rec.employment_category = hr_api.g_varchar2) then
1397     p_rec.employment_category :=
1398     per_asg_shd.g_old_rec.employment_category;
1399   End If;
1400   If (p_rec.frequency = hr_api.g_varchar2) then
1401     p_rec.frequency :=
1402     per_asg_shd.g_old_rec.frequency;
1403   End If;
1404   If (p_rec.internal_address_line = hr_api.g_varchar2) then
1405     p_rec.internal_address_line :=
1406     per_asg_shd.g_old_rec.internal_address_line;
1407   End If;
1408   If (p_rec.manager_flag = hr_api.g_varchar2) then
1409     p_rec.manager_flag :=
1410     per_asg_shd.g_old_rec.manager_flag;
1411   End If;
1412   If (p_rec.normal_hours = hr_api.g_number) then
1413     p_rec.normal_hours :=
1414     per_asg_shd.g_old_rec.normal_hours;
1415   End If;
1416   If (p_rec.perf_review_period = hr_api.g_number) then
1417     p_rec.perf_review_period :=
1418     per_asg_shd.g_old_rec.perf_review_period;
1419   End If;
1420   If (p_rec.perf_review_period_frequency = hr_api.g_varchar2) then
1421     p_rec.perf_review_period_frequency :=
1422     per_asg_shd.g_old_rec.perf_review_period_frequency;
1423   End If;
1424   If (p_rec.period_of_service_id = hr_api.g_number) then
1425     p_rec.period_of_service_id :=
1426     per_asg_shd.g_old_rec.period_of_service_id;
1427   End If;
1428   If (p_rec.probation_period = hr_api.g_number) then
1429     p_rec.probation_period :=
1430     per_asg_shd.g_old_rec.probation_period;
1431   End If;
1432   If (p_rec.probation_unit = hr_api.g_varchar2) then
1433     p_rec.probation_unit :=
1434     per_asg_shd.g_old_rec.probation_unit;
1435   End If;
1436   If (p_rec.sal_review_period = hr_api.g_number) then
1437     p_rec.sal_review_period :=
1438     per_asg_shd.g_old_rec.sal_review_period;
1439   End If;
1440   If (p_rec.sal_review_period_frequency = hr_api.g_varchar2) then
1441     p_rec.sal_review_period_frequency :=
1442     per_asg_shd.g_old_rec.sal_review_period_frequency;
1443   End If;
1444   If (p_rec.set_of_books_id = hr_api.g_number) then
1445     p_rec.set_of_books_id :=
1446     per_asg_shd.g_old_rec.set_of_books_id;
1447   End If;
1448   If (p_rec.source_type = hr_api.g_varchar2) then
1449     p_rec.source_type :=
1450     per_asg_shd.g_old_rec.source_type;
1451   End If;
1452   If (p_rec.time_normal_finish = hr_api.g_varchar2) then
1453     p_rec.time_normal_finish :=
1454     per_asg_shd.g_old_rec.time_normal_finish;
1455   End If;
1456   If (p_rec.time_normal_start = hr_api.g_varchar2) then
1457     p_rec.time_normal_start :=
1458     per_asg_shd.g_old_rec.time_normal_start;
1459   End If;
1460   If (p_rec.bargaining_unit_code = hr_api.g_varchar2) then
1461     p_rec.bargaining_unit_code :=
1462     per_asg_shd.g_old_rec.bargaining_unit_code;
1463   End If;
1464   If (p_rec.labour_union_member_flag = hr_api.g_varchar2) then
1465     p_rec.labour_union_member_flag :=
1466     per_asg_shd.g_old_rec.labour_union_member_flag;
1467   End If;
1468   If (p_rec.hourly_salaried_code = hr_api.g_varchar2) then
1469     p_rec.hourly_salaried_code :=
1470     per_asg_shd.g_old_rec.hourly_salaried_code;
1471   End If;
1472   If (p_rec.request_id = hr_api.g_number) then
1473     p_rec.request_id :=
1474     per_asg_shd.g_old_rec.request_id;
1475   End If;
1476   If (p_rec.program_application_id = hr_api.g_number) then
1477     p_rec.program_application_id :=
1478     per_asg_shd.g_old_rec.program_application_id;
1479   End If;
1480   If (p_rec.program_id = hr_api.g_number) then
1481     p_rec.program_id :=
1482     per_asg_shd.g_old_rec.program_id;
1483   End If;
1484   If (p_rec.program_update_date = hr_api.g_date) then
1485     p_rec.program_update_date :=
1486     per_asg_shd.g_old_rec.program_update_date;
1487   End If;
1488   If (p_rec.ass_attribute_category = hr_api.g_varchar2) then
1489     p_rec.ass_attribute_category :=
1490     per_asg_shd.g_old_rec.ass_attribute_category;
1491   End If;
1492   If (p_rec.ass_attribute1 = hr_api.g_varchar2) then
1493     p_rec.ass_attribute1 :=
1494     per_asg_shd.g_old_rec.ass_attribute1;
1495   End If;
1496   If (p_rec.ass_attribute2 = hr_api.g_varchar2) then
1497     p_rec.ass_attribute2 :=
1498     per_asg_shd.g_old_rec.ass_attribute2;
1499   End If;
1500   If (p_rec.ass_attribute3 = hr_api.g_varchar2) then
1501     p_rec.ass_attribute3 :=
1502     per_asg_shd.g_old_rec.ass_attribute3;
1503   End If;
1504   If (p_rec.ass_attribute4 = hr_api.g_varchar2) then
1505     p_rec.ass_attribute4 :=
1506     per_asg_shd.g_old_rec.ass_attribute4;
1507   End If;
1508   If (p_rec.ass_attribute5 = hr_api.g_varchar2) then
1509     p_rec.ass_attribute5 :=
1510     per_asg_shd.g_old_rec.ass_attribute5;
1511   End If;
1512   If (p_rec.ass_attribute6 = hr_api.g_varchar2) then
1513     p_rec.ass_attribute6 :=
1514     per_asg_shd.g_old_rec.ass_attribute6;
1515   End If;
1516   If (p_rec.ass_attribute7 = hr_api.g_varchar2) then
1517     p_rec.ass_attribute7 :=
1518     per_asg_shd.g_old_rec.ass_attribute7;
1519   End If;
1520   If (p_rec.ass_attribute8 = hr_api.g_varchar2) then
1521     p_rec.ass_attribute8 :=
1522     per_asg_shd.g_old_rec.ass_attribute8;
1523   End If;
1524   If (p_rec.ass_attribute9 = hr_api.g_varchar2) then
1525     p_rec.ass_attribute9 :=
1526     per_asg_shd.g_old_rec.ass_attribute9;
1527   End If;
1528   If (p_rec.ass_attribute10 = hr_api.g_varchar2) then
1529     p_rec.ass_attribute10 :=
1530     per_asg_shd.g_old_rec.ass_attribute10;
1531   End If;
1532   If (p_rec.ass_attribute11 = hr_api.g_varchar2) then
1533     p_rec.ass_attribute11 :=
1534     per_asg_shd.g_old_rec.ass_attribute11;
1535   End If;
1536   If (p_rec.ass_attribute12 = hr_api.g_varchar2) then
1537     p_rec.ass_attribute12 :=
1538     per_asg_shd.g_old_rec.ass_attribute12;
1539   End If;
1540   If (p_rec.ass_attribute13 = hr_api.g_varchar2) then
1541     p_rec.ass_attribute13 :=
1542     per_asg_shd.g_old_rec.ass_attribute13;
1543   End If;
1544   If (p_rec.ass_attribute14 = hr_api.g_varchar2) then
1545     p_rec.ass_attribute14 :=
1546     per_asg_shd.g_old_rec.ass_attribute14;
1547   End If;
1548   If (p_rec.ass_attribute15 = hr_api.g_varchar2) then
1549     p_rec.ass_attribute15 :=
1550     per_asg_shd.g_old_rec.ass_attribute15;
1551   End If;
1552   If (p_rec.ass_attribute16 = hr_api.g_varchar2) then
1553     p_rec.ass_attribute16 :=
1554     per_asg_shd.g_old_rec.ass_attribute16;
1555   End If;
1556   If (p_rec.ass_attribute17 = hr_api.g_varchar2) then
1557     p_rec.ass_attribute17 :=
1558     per_asg_shd.g_old_rec.ass_attribute17;
1559   End If;
1560   If (p_rec.ass_attribute18 = hr_api.g_varchar2) then
1561     p_rec.ass_attribute18 :=
1562     per_asg_shd.g_old_rec.ass_attribute18;
1563   End If;
1564   If (p_rec.ass_attribute19 = hr_api.g_varchar2) then
1565     p_rec.ass_attribute19 :=
1566     per_asg_shd.g_old_rec.ass_attribute19;
1567   End If;
1568   If (p_rec.ass_attribute20 = hr_api.g_varchar2) then
1569     p_rec.ass_attribute20 :=
1570     per_asg_shd.g_old_rec.ass_attribute20;
1571   End If;
1572   If (p_rec.ass_attribute21 = hr_api.g_varchar2) then
1573     p_rec.ass_attribute21 :=
1574     per_asg_shd.g_old_rec.ass_attribute21;
1575   End If;
1576   If (p_rec.ass_attribute22 = hr_api.g_varchar2) then
1577     p_rec.ass_attribute22 :=
1578     per_asg_shd.g_old_rec.ass_attribute22;
1579   End If;
1580   If (p_rec.ass_attribute23 = hr_api.g_varchar2) then
1581     p_rec.ass_attribute23 :=
1582     per_asg_shd.g_old_rec.ass_attribute23;
1583   End If;
1584   If (p_rec.ass_attribute24 = hr_api.g_varchar2) then
1585     p_rec.ass_attribute24 :=
1586     per_asg_shd.g_old_rec.ass_attribute24;
1587   End If;
1588   If (p_rec.ass_attribute25 = hr_api.g_varchar2) then
1589     p_rec.ass_attribute25 :=
1590     per_asg_shd.g_old_rec.ass_attribute25;
1591   End If;
1592   If (p_rec.ass_attribute26 = hr_api.g_varchar2) then
1593     p_rec.ass_attribute26 :=
1594     per_asg_shd.g_old_rec.ass_attribute26;
1595   End If;
1596   If (p_rec.ass_attribute27 = hr_api.g_varchar2) then
1597     p_rec.ass_attribute27 :=
1598     per_asg_shd.g_old_rec.ass_attribute27;
1599   End If;
1600   If (p_rec.ass_attribute28 = hr_api.g_varchar2) then
1601     p_rec.ass_attribute28 :=
1602     per_asg_shd.g_old_rec.ass_attribute28;
1603   End If;
1604   If (p_rec.ass_attribute29 = hr_api.g_varchar2) then
1605     p_rec.ass_attribute29 :=
1606     per_asg_shd.g_old_rec.ass_attribute29;
1607   End If;
1608   If (p_rec.ass_attribute30 = hr_api.g_varchar2) then
1609     p_rec.ass_attribute30 :=
1610     per_asg_shd.g_old_rec.ass_attribute30;
1611   End If;
1612   If (p_rec.title = hr_api.g_varchar2) then
1613     p_rec.title :=
1614     per_asg_shd.g_old_rec.title;
1615   End If;
1616  If (p_rec.contract_id = hr_api.g_number) then
1617     p_rec.contract_id :=
1618     per_asg_shd.g_old_rec.contract_id;
1619   End If;
1620  If (p_rec.establishment_id = hr_api.g_number) then
1621     p_rec.establishment_id :=
1622     per_asg_shd.g_old_rec.establishment_id;
1623   End If;
1624  If (p_rec.collective_agreement_id = hr_api.g_number) then
1625     p_rec.collective_agreement_id :=
1626     per_asg_shd.g_old_rec.collective_agreement_id;
1627   End If;
1628  If (p_rec.cagr_grade_def_id = hr_api.g_number) then
1629     p_rec.cagr_grade_def_id :=
1630     per_asg_shd.g_old_rec.cagr_grade_def_id;
1631   End If;
1632  If (p_rec.cagr_id_flex_num = hr_api.g_number) then
1633     p_rec.cagr_id_flex_num :=
1634     per_asg_shd.g_old_rec.cagr_id_flex_num;
1635   End If;
1636  If (p_rec.notice_period = hr_api.g_number) then
1637     p_rec.notice_period :=
1638     per_asg_shd.g_old_rec.notice_period;
1639   End If;
1640  If (p_rec.notice_period_uom = hr_api.g_varchar2) then
1641     p_rec.notice_period_uom :=
1642     per_asg_shd.g_old_rec.notice_period_uom;
1643   End If;
1644  If (p_rec.employee_category = hr_api.g_varchar2) then
1645     p_rec.employee_category :=
1646     per_asg_shd.g_old_rec.employee_category;
1647   End If;
1648  If (p_rec.work_at_home = hr_api.g_varchar2) then
1649     p_rec.work_at_home :=
1650     per_asg_shd.g_old_rec.work_at_home;
1651   End If;
1652  If (p_rec.job_post_source_name = hr_api.g_varchar2) then
1653     p_rec.job_post_source_name :=
1654     per_asg_shd.g_old_rec.job_post_source_name;
1655   End If;
1656  If (p_rec.posting_content_id = hr_api.g_number) then
1657     p_rec.posting_content_id :=
1658     per_asg_shd.g_old_rec.posting_content_id;
1659   End If;
1660  If (p_rec.period_of_placement_date_start = hr_api.g_date) then
1661     p_rec.period_of_placement_date_start :=
1662     per_asg_shd.g_old_rec.period_of_placement_date_start;
1663   End If;
1664  If (p_rec.vendor_id = hr_api.g_number) then
1665     p_rec.vendor_id :=
1666     per_asg_shd.g_old_rec.vendor_id;
1667   End If;
1668  If (p_rec.vendor_employee_number = hr_api.g_varchar2) then
1669     p_rec.vendor_employee_number :=
1670     per_asg_shd.g_old_rec.vendor_employee_number;
1671   End If;
1672  If (p_rec.vendor_assignment_number = hr_api.g_varchar2) then
1673     p_rec.vendor_assignment_number :=
1674     per_asg_shd.g_old_rec.vendor_assignment_number;
1675   End If;
1676  If (p_rec.assignment_category = hr_api.g_varchar2) then
1677     p_rec.assignment_category :=
1678     per_asg_shd.g_old_rec.assignment_category;
1679   End If;
1680  If (p_rec.project_title = hr_api.g_varchar2) then
1681     p_rec.project_title :=
1682     per_asg_shd.g_old_rec.project_title;
1683   End If;
1684  If (p_rec.applicant_rank = hr_api.g_number) then
1685      p_rec.applicant_rank :=
1686      per_asg_shd.g_old_rec.applicant_rank;
1687   End If;
1688  If (p_rec.grade_ladder_pgm_id = hr_api.g_number) then
1689      p_rec.grade_ladder_pgm_id :=
1690      per_asg_shd.g_old_rec.grade_ladder_pgm_id;
1691   End If;
1692  If (p_rec.supervisor_assignment_id = hr_api.g_number) then
1693      p_rec.supervisor_assignment_id :=
1694      per_asg_shd.g_old_rec.supervisor_assignment_id;
1695   End If;
1696  If (p_rec.vendor_site_id = hr_api.g_number) then
1697      p_rec.vendor_site_id :=
1698      per_asg_shd.g_old_rec.vendor_site_id;
1699   End If;
1700  If (p_rec.po_header_id = hr_api.g_number) then
1701      p_rec.po_header_id :=
1702      per_asg_shd.g_old_rec.po_header_id;
1703   End If;
1704  If (p_rec.po_line_id = hr_api.g_number) then
1705      p_rec.po_line_id :=
1706      per_asg_shd.g_old_rec.po_line_id;
1707   End If;
1708  If (p_rec.projected_assignment_end = hr_api.g_date) then
1709      p_rec.projected_assignment_end :=
1710      per_asg_shd.g_old_rec.projected_assignment_end;
1711   End If;
1712   --
1713   hr_utility.set_location(' Leaving:'||l_proc, 10);
1714 --
1715 End convert_defs;
1716 --
1717 -- ----------------------------------------------------------------------------
1718 -- |---------------------------------< upd >----------------------------------|
1719 -- ----------------------------------------------------------------------------
1720 Procedure upd
1721   (
1722   p_rec                    in out nocopy     per_asg_shd.g_rec_type,
1723   p_effective_date            in     date,
1724   p_datetrack_mode            in     varchar2,
1725   p_validation_start_date       out nocopy     date,
1726   p_validation_end_date         out nocopy     date,
1727   p_validate                in     boolean default false,
1728   p_payroll_id_updated          out nocopy     boolean,
1729   p_other_manager_warning       out nocopy     boolean,
1730   p_hourly_salaried_warning     out nocopy     boolean,
1731   p_no_managers_warning         out nocopy     boolean,
1732   p_org_now_no_manager_warning  out nocopy     boolean
1733   ) is
1734 --
1735   l_proc            varchar2(72) := g_package||'upd';
1736   l_validation_start_date    date;
1737   l_validation_end_date        date;
1738   l_inv_pos_grade_warning       boolean;
1739   l_payroll_id_updated          boolean;
1740   l_other_manager_warning       boolean;
1741   l_hourly_salaried_warning       boolean;
1742   l_no_managers_warning         boolean;
1743   l_org_now_no_manager_warning  boolean;
1744 --
1745 Begin
1746   hr_utility.set_location('Entering:'||l_proc, 5);
1747   --
1748   -- Ensure that the DateTrack update mode is valid
1749   --
1750   dt_api.validate_dt_upd_mode(p_datetrack_mode => p_datetrack_mode);
1751   --
1752   -- Determine if the business process is to be validated.
1753   --
1754   If p_validate then
1755     --
1756     -- Issue the savepoint.
1757     --
1758     SAVEPOINT upd_per_asg;
1759     --
1760   End If;
1761   --
1762   -- We must lock the row which we need to update.
1763   --
1764   per_asg_shd.lck
1765     (p_effective_date     => p_effective_date,
1766            p_datetrack_mode     => p_datetrack_mode,
1767            p_assignment_id     => p_rec.assignment_id,
1768            p_object_version_number => p_rec.object_version_number,
1769            p_validation_start_date => l_validation_start_date,
1770            p_validation_end_date     => l_validation_end_date
1771         );
1772   --
1773   -- 1. During an update system defaults are used to determine if
1774   --    arguments have been defaulted or not. We must therefore
1775   --    derive the full record structure values to be updated.
1776   --
1777   convert_defs(p_rec);
1778   --
1779   -- 2. Call the supporting update validate operations.
1780   --
1781   per_asg_bus1.update_validate
1782     (p_rec                  => p_rec,
1783      p_effective_date          => p_effective_date,
1784      p_datetrack_mode            => p_datetrack_mode,
1785      p_validation_start_date      => l_validation_start_date,
1786      p_validation_end_date          => l_validation_end_date,
1787          p_payroll_id_updated         => l_payroll_id_updated,
1788          p_other_manager_warning      => p_other_manager_warning,
1789          p_hourly_salaried_warning    => p_hourly_salaried_warning,
1790          p_no_managers_warning        => p_no_managers_warning,
1791          p_org_now_no_manager_warning => p_org_now_no_manager_warning,
1792          p_inv_pos_grade_warning      => l_inv_pos_grade_warning);
1793   --
1794   -- Call to raise any errors on multi-message list
1795   hr_multi_message.end_validation_set;
1796   --
1797   -- Call the supporting pre-update operation
1798   --
1799   pre_update
1800     (p_rec             => p_rec,
1801      p_effective_date     => p_effective_date,
1802      p_datetrack_mode     => p_datetrack_mode,
1803      p_validation_start_date => l_validation_start_date,
1804      p_validation_end_date     => l_validation_end_date);
1805   --
1806   -- Update the row.
1807   --
1808   update_dml
1809     (p_rec             => p_rec,
1810      p_effective_date     => p_effective_date,
1811      p_datetrack_mode     => p_datetrack_mode,
1812      p_validation_start_date => l_validation_start_date,
1813      p_validation_end_date     => l_validation_end_date);
1814   --
1815   -- Call the supporting post-update operation
1816   --
1817   post_update
1818     (p_rec                  => p_rec,
1819      p_effective_date          => p_effective_date,
1820      p_datetrack_mode          => p_datetrack_mode,
1821      p_validation_start_date      => l_validation_start_date,
1822      p_validation_end_date          => l_validation_end_date,
1823          p_payroll_id_updated         => l_payroll_id_updated,
1824          p_other_manager_warning      => l_other_manager_warning,
1825          p_hourly_salaried_warning      => l_hourly_salaried_warning,
1826          p_no_managers_warning        => l_no_managers_warning,
1827          p_org_now_no_manager_warning => l_org_now_no_manager_warning);
1828   --
1829   -- Call to raise any errors on multi-message list
1830   hr_multi_message.end_validation_set;
1831   --
1832   -- Set validation start and end dates
1833   --
1834   p_validation_start_date := l_validation_start_date;
1835   p_validation_end_date   := l_validation_end_date;
1836   --
1837   -- Set other output arguments
1838   --
1839   p_payroll_id_updated         := l_payroll_id_updated;
1840   --p_other_manager_warning      := l_other_manager_warning;
1841   --p_no_managers_warning        := l_no_managers_warning;
1842   p_org_now_no_manager_warning := l_org_now_no_manager_warning;
1843   --
1844   -- If we are validating then raise the Validate_Enabled exception
1845   --
1846   If p_validate then
1847     Raise HR_Api.Validate_Enabled;
1848   End If;
1849   --
1850   hr_utility.set_location(' Leaving:'||l_proc, 10);
1851 Exception
1852   When HR_Api.Validate_Enabled Then
1853     --
1854     -- As the Validate_Enabled exception has been raised
1855     -- we must rollback to the savepoint
1856     --
1857     ROLLBACK TO upd_per_asg;
1858 End upd;
1859 --
1860 -- ----------------------------------------------------------------------------
1861 -- |---------------------------------< upd >----------------------------------|
1862 -- ----------------------------------------------------------------------------
1863 Procedure upd
1864   (
1865   p_assignment_id                in number,
1866   p_effective_start_date         out nocopy date,
1867   p_effective_end_date           out nocopy date,
1868 
1869   p_business_group_id            out nocopy number,
1870   p_recruiter_id                 in number           default hr_api.g_number,
1871   p_grade_id                     in number           default hr_api.g_number,
1872   p_position_id                  in number           default hr_api.g_number,
1873   p_job_id                       in number           default hr_api.g_number,
1874   p_assignment_status_type_id    in number           default hr_api.g_number,
1875   p_payroll_id                   in number           default hr_api.g_number,
1876   p_location_id                  in number           default hr_api.g_number,
1877   p_person_referred_by_id        in number           default hr_api.g_number,
1878   p_supervisor_id                in number           default hr_api.g_number,
1879   p_special_ceiling_step_id      in number           default hr_api.g_number,
1880   p_recruitment_activity_id      in number           default hr_api.g_number,
1881   p_source_organization_id       in number           default hr_api.g_number,
1882 
1883   p_organization_id              in number           default hr_api.g_number,
1884   p_people_group_id              in number           default hr_api.g_number,
1885   p_soft_coding_keyflex_id       in number           default hr_api.g_number,
1886   p_vacancy_id                   in number           default hr_api.g_number,
1887   p_pay_basis_id                 in number           default hr_api.g_number,
1888   p_assignment_type              in varchar2         default hr_api.g_varchar2,
1889   p_primary_flag                 in varchar2         default hr_api.g_varchar2,
1890   p_application_id               in number           default hr_api.g_number,
1891   p_assignment_number            in varchar2         default hr_api.g_varchar2,
1892   p_change_reason                in varchar2         default hr_api.g_varchar2,
1893   p_comment_id                   out nocopy number,
1894   p_comments                     in varchar2         default hr_api.g_varchar2,
1895   p_date_probation_end           in date             default hr_api.g_date,
1896 
1897   p_default_code_comb_id         in number           default hr_api.g_number,
1898   p_employment_category          in varchar2         default hr_api.g_varchar2,
1899   p_frequency                    in varchar2         default hr_api.g_varchar2,
1900   p_internal_address_line        in varchar2         default hr_api.g_varchar2,
1901   p_manager_flag                 in varchar2         default hr_api.g_varchar2,
1902   p_normal_hours                 in number           default hr_api.g_number,
1903   p_perf_review_period           in number           default hr_api.g_number,
1904   p_perf_review_period_frequency in varchar2         default hr_api.g_varchar2,
1905   p_period_of_service_id         in number           default hr_api.g_number,
1906   p_probation_period             in number           default hr_api.g_number,
1907   p_probation_unit               in varchar2         default hr_api.g_varchar2,
1908   p_sal_review_period            in number           default hr_api.g_number,
1909   p_sal_review_period_frequency  in varchar2         default hr_api.g_varchar2,
1910   p_set_of_books_id              in number           default hr_api.g_number,
1911 
1912   p_source_type                  in varchar2         default hr_api.g_varchar2,
1913   p_time_normal_finish           in varchar2         default hr_api.g_varchar2,
1914   p_time_normal_start            in varchar2         default hr_api.g_varchar2,
1915   p_bargaining_unit_code         in varchar2         default hr_api.g_varchar2,
1916   p_labour_union_member_flag     in varchar2         default hr_api.g_varchar2,
1917   p_hourly_salaried_code         in varchar2         default hr_api.g_varchar2,
1918   p_request_id                   in number           default hr_api.g_number,
1919   p_program_application_id       in number           default hr_api.g_number,
1920   p_program_id                   in number           default hr_api.g_number,
1921   p_program_update_date          in date             default hr_api.g_date,
1922   p_ass_attribute_category       in varchar2         default hr_api.g_varchar2,
1923   p_ass_attribute1               in varchar2         default hr_api.g_varchar2,
1924   p_ass_attribute2               in varchar2         default hr_api.g_varchar2,
1925   p_ass_attribute3               in varchar2         default hr_api.g_varchar2,
1926   p_ass_attribute4               in varchar2         default hr_api.g_varchar2,
1927   p_ass_attribute5               in varchar2         default hr_api.g_varchar2,
1928 
1929   p_ass_attribute6               in varchar2         default hr_api.g_varchar2,
1930   p_ass_attribute7               in varchar2         default hr_api.g_varchar2,
1931   p_ass_attribute8               in varchar2         default hr_api.g_varchar2,
1932   p_ass_attribute9               in varchar2         default hr_api.g_varchar2,
1933   p_ass_attribute10              in varchar2         default hr_api.g_varchar2,
1934   p_ass_attribute11              in varchar2         default hr_api.g_varchar2,
1935   p_ass_attribute12              in varchar2         default hr_api.g_varchar2,
1936   p_ass_attribute13              in varchar2         default hr_api.g_varchar2,
1937   p_ass_attribute14              in varchar2         default hr_api.g_varchar2,
1938   p_ass_attribute15              in varchar2         default hr_api.g_varchar2,
1939   p_ass_attribute16              in varchar2         default hr_api.g_varchar2,
1940   p_ass_attribute17              in varchar2         default hr_api.g_varchar2,
1941   p_ass_attribute18              in varchar2         default hr_api.g_varchar2,
1942 
1943   p_ass_attribute19              in varchar2         default hr_api.g_varchar2,
1944   p_ass_attribute20              in varchar2         default hr_api.g_varchar2,
1945   p_ass_attribute21              in varchar2         default hr_api.g_varchar2,
1946   p_ass_attribute22              in varchar2         default hr_api.g_varchar2,
1947   p_ass_attribute23              in varchar2         default hr_api.g_varchar2,
1948   p_ass_attribute24              in varchar2         default hr_api.g_varchar2,
1949   p_ass_attribute25              in varchar2         default hr_api.g_varchar2,
1950   p_ass_attribute26              in varchar2         default hr_api.g_varchar2,
1951   p_ass_attribute27              in varchar2         default hr_api.g_varchar2,
1952   p_ass_attribute28              in varchar2         default hr_api.g_varchar2,
1953   p_ass_attribute29              in varchar2         default hr_api.g_varchar2,
1954   p_ass_attribute30              in varchar2         default hr_api.g_varchar2,
1955   p_title                        in varchar2         default hr_api.g_varchar2,
1956   p_contract_id                  in number           default hr_api.g_number,
1957   p_establishment_id             in number           default hr_api.g_number,
1958   p_collective_agreement_id      in number           default hr_api.g_number,
1959   p_cagr_grade_def_id            in number           default hr_api.g_number,
1960   p_cagr_id_flex_num             in number           default hr_api.g_number,
1961   p_object_version_number        in out nocopy number,
1962   p_notice_period     in number       default hr_api.g_number,
1963   p_notice_period_uom       in varchar2        default hr_api.g_varchar2,
1964   p_employee_category       in varchar2        default hr_api.g_varchar2,
1965   p_work_at_home      in varchar2        default hr_api.g_varchar2,
1966   p_job_post_source_name    in varchar2         default hr_api.g_varchar2,
1967   p_posting_content_id           in number           default hr_api.g_number,
1968   p_placement_date_start         in date             default hr_api.g_date,
1969   p_vendor_id                    in number           default hr_api.g_number,
1970   p_vendor_employee_number        in varchar2         default hr_api.g_varchar2,
1971   p_vendor_assignment_number     in varchar2         default hr_api.g_varchar2,
1972   p_assignment_category          in varchar2         default hr_api.g_varchar2,
1973   p_project_title                in varchar2         default hr_api.g_varchar2,
1974   p_applicant_rank               in number           default hr_api.g_number,
1975   p_grade_ladder_pgm_id          in number           default hr_api.g_number,
1976   p_supervisor_assignment_id     in number           default hr_api.g_number,
1977   p_vendor_site_id               in number           default hr_api.g_number,
1978   p_po_header_id                 in number           default hr_api.g_number,
1979   p_po_line_id                   in number           default hr_api.g_number,
1980   p_projected_assignment_end     in date             default hr_api.g_date,
1981   p_payroll_id_updated           out nocopy boolean,
1982   p_other_manager_warning        out nocopy boolean,
1983   p_hourly_salaried_warning      out nocopy boolean,
1984   p_no_managers_warning          out nocopy boolean,
1985   p_org_now_no_manager_warning   out nocopy boolean,
1986   p_validation_start_date        out nocopy date,
1987   p_validation_end_date          out nocopy date,
1988   p_effective_date         in date,
1989   p_datetrack_mode         in varchar2,
1990   p_validate             in boolean      default false
1991   ) is
1992 --
1993   l_rec        per_asg_shd.g_rec_type;
1994 
1995   l_proc    varchar2(72) := g_package||'upd';
1996 --
1997 Begin
1998   hr_utility.set_location('Entering:'||l_proc, 5);
1999   --
2000   -- Call conversion function to turn arguments into the
2001   -- l_rec structure.
2002   --
2003   l_rec :=
2004   per_asg_shd.convert_args
2005   (
2006   p_assignment_id,
2007   null,
2008 
2009   null,
2010   hr_api.g_number,
2011   p_recruiter_id,
2012   p_grade_id,
2013   p_position_id,
2014   p_job_id,
2015   p_assignment_status_type_id,
2016   p_payroll_id,
2017   p_location_id,
2018   p_person_referred_by_id,
2019   p_supervisor_id,
2020   p_special_ceiling_step_id,
2021   hr_api.g_number,
2022 
2023   p_recruitment_activity_id,
2024   p_source_organization_id,
2025   p_organization_id,
2026   p_people_group_id,
2027   p_soft_coding_keyflex_id,
2028   p_vacancy_id,
2029   p_pay_basis_id,
2030   hr_api.g_number,
2031   p_assignment_type,
2032   p_primary_flag,
2033   p_application_id,
2034   p_assignment_number,
2035   p_change_reason,
2036   hr_api.g_number,
2037   p_comments,
2038   p_date_probation_end,
2039   p_default_code_comb_id,
2040   p_employment_category,
2041   p_frequency,
2042   p_internal_address_line,
2043   p_manager_flag,
2044   p_normal_hours,
2045   p_perf_review_period,
2046   p_perf_review_period_frequency,
2047   p_period_of_service_id,
2048   p_probation_period,
2049   p_probation_unit,
2050   p_sal_review_period,
2051   p_sal_review_period_frequency,
2052   p_set_of_books_id,
2053   p_source_type,
2054   p_time_normal_finish,
2055   p_time_normal_start,
2056   p_bargaining_unit_code,
2057   p_labour_union_member_flag,
2058   p_hourly_salaried_code,
2059   p_request_id,
2060   p_program_application_id,
2061   p_program_id,
2062   p_program_update_date,
2063   p_ass_attribute_category,
2064   p_ass_attribute1,
2065   p_ass_attribute2,
2066   p_ass_attribute3,
2067   p_ass_attribute4,
2068   p_ass_attribute5,
2069   p_ass_attribute6,
2070   p_ass_attribute7,
2071   p_ass_attribute8,
2072   p_ass_attribute9,
2073   p_ass_attribute10,
2074   p_ass_attribute11,
2075   p_ass_attribute12,
2076   p_ass_attribute13,
2077   p_ass_attribute14,
2078   p_ass_attribute15,
2079   p_ass_attribute16,
2080   p_ass_attribute17,
2081   p_ass_attribute18,
2082   p_ass_attribute19,
2083   p_ass_attribute20,
2084   p_ass_attribute21,
2085   p_ass_attribute22,
2086   p_ass_attribute23,
2087   p_ass_attribute24,
2088   p_ass_attribute25,
2089   p_ass_attribute26,
2090   p_ass_attribute27,
2091   p_ass_attribute28,
2092   p_ass_attribute29,
2093   p_ass_attribute30,
2094   p_title,
2095   p_object_version_number,
2096   p_contract_id,
2097   p_establishment_id,
2098   p_collective_agreement_id,
2099   p_cagr_grade_def_id,
2100   p_cagr_id_flex_num,
2101   p_notice_period,
2102   p_notice_period_uom,
2103   p_employee_category,
2104   p_work_at_home,
2105   p_job_post_source_name,
2106   p_posting_content_id,
2107   p_placement_date_start,
2108   p_vendor_id,
2109   p_vendor_employee_number,
2110   p_vendor_assignment_number,
2111   p_assignment_category,
2112   p_project_title,
2113   p_applicant_rank,
2114   p_grade_ladder_pgm_id,
2115   p_supervisor_assignment_id,
2116   p_vendor_site_id,
2117   p_po_header_id,
2118   p_po_line_id,
2119   p_projected_assignment_end
2120 );
2121   --
2122   -- Having converted the arguments into the
2123   -- plsql record structure we call the corresponding record
2124   -- business process.
2125   --
2126   upd(l_rec,
2127       p_effective_date,
2128 
2129       p_datetrack_mode,
2130       p_validation_start_date,
2131       p_validation_end_date,
2132       p_validate,
2133       p_payroll_id_updated,
2134       p_other_manager_warning,
2135       p_hourly_salaried_warning,
2136       p_no_managers_warning,
2137       p_org_now_no_manager_warning);
2138   --
2139   p_business_group_id           := l_rec.business_group_id;
2140   p_comment_id                  := l_rec.comment_id;
2141   p_effective_end_date          := l_rec.effective_end_date;
2142   p_effective_start_date        := l_rec.effective_start_date;
2143 
2144   p_object_version_number       := l_rec.object_version_number;
2145   --
2146   hr_utility.set_location(' Leaving:'||l_proc, 10);
2147 End upd;
2148 --
2149 end per_asg_upd;