DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_ASG_SHD

Source


1 Package Body per_asg_shd 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_shd.';  -- Global package name
9 --
10 -- ----------------------------------------------------------------------------
11 -- |------------------------< return_api_dml_status >-------------------------|
12 -- ----------------------------------------------------------------------------
13 Function return_api_dml_status Return Boolean Is
14 --
15 Begin
16   --
17   Return (nvl(g_api_dml, false));
18 End return_api_dml_status;
19 --
20 -- ----------------------------------------------------------------------------
21 -- |---------------------------< constraint_error >---------------------------|
22 -- ----------------------------------------------------------------------------
23 Procedure constraint_error
24             (p_constraint_name in all_constraints.constraint_name%TYPE) Is
25 --
26   l_proc     varchar2(72) := g_package||'constraint_error';
27 --
28 Begin
29   --
30   If (p_constraint_name = 'PER_ASS_ASSIGNMENT_TYPE_CHK') Then
31     hr_utility.set_message(801, 'HR_7427_ASG_INVALID_ASS_TYPE');
32     hr_utility.raise_error;
33   ElsIf (p_constraint_name = 'PER_ASS_MANAGER_FLAG_CHK') Then
34     hr_utility.set_message(801, 'HR_7429_ASG_INV_MANAGER_FLAG');
35     hr_utility.raise_error;
36   ElsIf (p_constraint_name = 'PER_ASS_PRIMARY_FLAG_CHK') Then
37     hr_utility.set_message(801, 'HR_7428_ASG_INV_PRIMARY_FLAG');
38     hr_utility.raise_error;
39   ElsIf (p_constraint_name = 'PER_ASS_UNION_MBER_FLAG_CHK') Then
40     hr_utility.set_message(801, 'PER_52382_ASG_UNION_MBER_FLAG');
41     hr_utility.raise_error;
42   Else
43     hr_utility.set_message(801, 'HR_7877_API_INVALID_CONSTRAINT');
44     hr_utility.set_message_token('PROCEDURE', l_proc);
45     hr_utility.set_message_token('CONSTRAINT_NAME', p_constraint_name);
46     hr_utility.raise_error;
47   End If;
48   --
49 End constraint_error;
50 --
51 -- ----------------------------------------------------------------------------
52 -- |-----------------------------< api_updating >-----------------------------|
53 -- ----------------------------------------------------------------------------
54 Function api_updating
55   (p_effective_date        in date,
56    p_assignment_id        in number,
57    p_object_version_number    in number
58   ) Return Boolean Is
59 --
60   --
61   -- Cursor selects the 'current' row from the HR Schema
62   --
63   Cursor C_Sel1 is
64     select
65     assignment_id,
66     effective_start_date,
67     effective_end_date,
68     business_group_id,
69     recruiter_id,
70     grade_id,
71     position_id,
72     job_id,
73     assignment_status_type_id,
74     payroll_id,
75     location_id,
76     person_referred_by_id,
77     supervisor_id,
78     special_ceiling_step_id,
79     person_id,
80     recruitment_activity_id,
81     source_organization_id,
82     organization_id,
83     people_group_id,
84     soft_coding_keyflex_id,
85     vacancy_id,
86     pay_basis_id,
87     assignment_sequence,
88     assignment_type,
89     primary_flag,
90     application_id,
91     assignment_number,
92     change_reason,
93     comment_id,
94     null,
95     date_probation_end,
96     default_code_comb_id,
97     employment_category,
98     frequency,
99     internal_address_line,
100     manager_flag,
101     normal_hours,
102     perf_review_period,
103     perf_review_period_frequency,
104     period_of_service_id,
105     probation_period,
106     probation_unit,
107     sal_review_period,
108     sal_review_period_frequency,
109     set_of_books_id,
110     source_type,
111     time_normal_finish,
112     time_normal_start,
113     bargaining_unit_code,
114     labour_union_member_flag,
115     hourly_salaried_code,
116     request_id,
117     program_application_id,
118     program_id,
119     program_update_date,
120     ass_attribute_category,
121     ass_attribute1,
122     ass_attribute2,
123     ass_attribute3,
124     ass_attribute4,
125     ass_attribute5,
126     ass_attribute6,
127     ass_attribute7,
128     ass_attribute8,
129     ass_attribute9,
130     ass_attribute10,
131     ass_attribute11,
132     ass_attribute12,
133     ass_attribute13,
134     ass_attribute14,
135     ass_attribute15,
136     ass_attribute16,
137     ass_attribute17,
138     ass_attribute18,
139     ass_attribute19,
140     ass_attribute20,
141     ass_attribute21,
142     ass_attribute22,
143     ass_attribute23,
144     ass_attribute24,
145     ass_attribute25,
146     ass_attribute26,
147     ass_attribute27,
148     ass_attribute28,
149     ass_attribute29,
150     ass_attribute30,
151     title,
152     object_version_number ,
153     contract_id,
154     establishment_id,
155     collective_agreement_id,
156     cagr_grade_def_id,
157     cagr_id_flex_num,
158     notice_period,
159     notice_period_uom,
160     employee_category,
161     work_at_home,
162     job_post_source_name,
163     posting_content_id,
164     period_of_placement_date_start,
165     vendor_id,
166     vendor_employee_number,
167     vendor_assignment_number,
168     assignment_category,
169     project_title,
170     applicant_rank,
171     grade_ladder_pgm_id,
172     supervisor_assignment_id,
173     vendor_site_id,
174     po_header_id,
175     po_line_id,
176     projected_assignment_end
177     from    per_all_assignments_f
178     where    assignment_id    = p_assignment_id
179     and        p_effective_date between effective_start_date
180                                  and     effective_end_date;
181 --
182   l_fct_ret    boolean;
183 --
184 Begin
185   --
186   If (p_effective_date is null
187     or p_assignment_id is null
188     or p_object_version_number is null)
189   then
190     --
191     -- One of the primary key arguments is null therefore we must
192     -- set the returning function value to false
193     --
194     l_fct_ret := false;
195   Else
196     If (p_assignment_id = g_old_rec.assignment_id and
197         p_object_version_number = g_old_rec.object_version_number) Then
198       --
199       -- The g_old_rec is current therefore we must
200       -- set the returning function to true
201       --
202       l_fct_ret := true;
203     Else
204       --
205       -- Select the current row
206       --
207       Open C_Sel1;
208       Fetch C_Sel1 Into g_old_rec;
209       If C_Sel1%notfound Then
210         Close C_Sel1;
211         --
212         -- The primary key is invalid therefore we must error
213         --
214         hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
215         hr_utility.raise_error;
216       End If;
217       Close C_Sel1;
218       If (p_object_version_number <> g_old_rec.object_version_number) Then
219         hr_utility.set_message(801, 'HR_7155_OBJECT_INVALID');
220         hr_utility.raise_error;
221       End If;
222       l_fct_ret := true;
223     End If;
224   End If;
225   Return (l_fct_ret);
226 --
227 End api_updating;
228 --
229 -- ----------------------------------------------------------------------------
230 -- |--------------------------< find_dt_del_modes >---------------------------|
231 -- ----------------------------------------------------------------------------
232 Procedure find_dt_del_modes
233     (p_effective_date    in  date,
234      p_base_key_value    in  number,
235      p_zap            out nocopy boolean,
236      p_delete        out nocopy boolean,
237      p_future_change    out nocopy boolean,
238      p_delete_next_change    out nocopy boolean) is
239 --
240   l_proc         varchar2(72)     := g_package||'find_dt_del_modes';
241 --
242   l_parent_key_value1    number;
243   l_parent_key_value2    number;
244   --
245   Cursor C_Sel1 Is
246     select  asg.payroll_id,
247         asg.person_id
248     from    per_all_assignments_f asg
249     where   asg.assignment_id = p_base_key_value
250     and     p_effective_date  between asg.effective_start_date
251                               and     asg.effective_end_date;
252 --
253 Begin
254   Open  C_Sel1;
255   Fetch C_Sel1 Into l_parent_key_value1,
256             l_parent_key_value2;
257   If C_Sel1%notfound then
258     Close C_Sel1;
259     hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
260     hr_utility.set_message_token('PROCEDURE', l_proc);
261     hr_utility.set_message_token('STEP','10');
262     hr_utility.raise_error;
263   End If;
264   Close C_Sel1;
265   --
266   -- Call the corresponding datetrack api
267   --
268   dt_api.find_dt_del_modes
269     (p_effective_date    => p_effective_date,
270      p_base_table_name    => 'per_all_assignments_f',
271      p_base_key_column    => 'assignment_id',
272      p_base_key_value    => p_base_key_value,
273      p_parent_table_name1    => 'pay_all_payrolls_f',  -- bug fix 2679167
274      p_parent_key_column1    => 'payroll_id',
275      p_parent_key_value1    => l_parent_key_value1,
276      p_parent_table_name2    => 'per_people_f',
277      p_parent_key_column2    => 'person_id',
278      p_parent_key_value2    => l_parent_key_value2,
279      p_zap            => p_zap,
280      p_delete        => p_delete,
281      p_future_change    => p_future_change,
282      p_delete_next_change    => p_delete_next_change);
283   --
284 End find_dt_del_modes;
285 --
286 -- ----------------------------------------------------------------------------
287 -- |--------------------------< find_dt_upd_modes >---------------------------|
288 -- ----------------------------------------------------------------------------
289 Procedure find_dt_upd_modes
290     (p_effective_date    in  date,
291      p_base_key_value    in  number,
292      p_correction        out nocopy boolean,
293      p_update        out nocopy boolean,
294      p_update_override    out nocopy boolean,
295      p_update_change_insert    out nocopy boolean) is
296 --
297 Begin
298   --
299   -- Call the corresponding datetrack api
300   --
301   dt_api.find_dt_upd_modes
302     (p_effective_date    => p_effective_date,
303      p_base_table_name    => 'per_all_assignments_f',
304      p_base_key_column    => 'assignment_id',
305      p_base_key_value    => p_base_key_value,
306      p_correction        => p_correction,
307      p_update        => p_update,
308      p_update_override    => p_update_override,
309      p_update_change_insert    => p_update_change_insert);
310   --
311 End find_dt_upd_modes;
312 --
313 -- ----------------------------------------------------------------------------
314 -- |------------------------< upd_effective_end_date >------------------------|
315 -- ----------------------------------------------------------------------------
316 Procedure upd_effective_end_date
317     (p_effective_date        in date,
318      p_base_key_value        in number,
319      p_new_effective_end_date    in date,
320      p_validation_start_date    in date,
321      p_validation_end_date        in date,
322          p_object_version_number       out nocopy number) is
323 --
324   l_object_version_number number;
325 --
326 Begin
327   --
328   -- Because we are updating a row we must get the next object
329   -- version number.
330   --
331   l_object_version_number :=
332     dt_api.get_object_version_number
333     (p_base_table_name    => 'per_all_assignments_f',
334      p_base_key_column    => 'assignment_id',
335      p_base_key_value    => p_base_key_value);
336   --
337   g_api_dml := true;  -- Set the api dml status
338   --
339   -- Update the specified datetrack row setting the effective
340   -- end date to the specified new effective end date.
341   --
342   update  per_all_assignments_f asg
343   set      asg.effective_end_date    = p_new_effective_end_date,
344       asg.object_version_number = l_object_version_number
345   where      asg.assignment_id         = p_base_key_value
346   and      p_effective_date between asg.effective_start_date
347                            and     asg.effective_end_date;
348   --
349   g_api_dml := false;   -- Unset the api dml status
350   p_object_version_number := l_object_version_number;
351 --
352 Exception
353   When Others Then
354     g_api_dml := false;   -- Unset the api dml status
355     Raise;
356 End upd_effective_end_date;
357 --
358 -- ----------------------------------------------------------------------------
359 -- |---------------------------------< lck >----------------------------------|
360 -- ----------------------------------------------------------------------------
361 Procedure lck
362     (p_effective_date     in  date,
363      p_datetrack_mode     in  varchar2,
364      p_assignment_id     in  number,
365      p_object_version_number in  number,
366      p_validation_start_date out nocopy date,
367      p_validation_end_date     out nocopy date) is
368 --
369   l_proc          varchar2(72) := g_package||'lck';
370   l_validation_start_date date;
371   l_validation_end_date      date;
372   l_object_invalid       exception;
373   l_argument          varchar2(30);
374   --
375   -- Cursor C_Sel1 selects the current locked row as of session date
376   -- ensuring that the object version numbers match.
377   --
378   Cursor C_Sel1 is
379     select
380     assignment_id,
381     effective_start_date,
382     effective_end_date,
383     business_group_id,
384     recruiter_id,
385     grade_id,
386     position_id,
387     job_id,
388     assignment_status_type_id,
389     payroll_id,
390     location_id,
391     person_referred_by_id,
392     supervisor_id,
393     special_ceiling_step_id,
394     person_id,
395     recruitment_activity_id,
396     source_organization_id,
397     organization_id,
398     people_group_id,
399     soft_coding_keyflex_id,
400     vacancy_id,
401     pay_basis_id,
402     assignment_sequence,
403     assignment_type,
404     primary_flag,
405     application_id,
406     assignment_number,
407     change_reason,
408     comment_id,
409     null,
410     date_probation_end,
411     default_code_comb_id,
412     employment_category,
413     frequency,
414     internal_address_line,
415     manager_flag,
416     normal_hours,
417     perf_review_period,
418     perf_review_period_frequency,
419     period_of_service_id,
420     probation_period,
421     probation_unit,
422     sal_review_period,
423     sal_review_period_frequency,
424     set_of_books_id,
425     source_type,
426     time_normal_finish,
427     time_normal_start,
428     bargaining_unit_code,
429     labour_union_member_flag,
430     hourly_salaried_code,
431     request_id,
432     program_application_id,
433     program_id,
434     program_update_date,
435     ass_attribute_category,
436     ass_attribute1,
437     ass_attribute2,
438     ass_attribute3,
439     ass_attribute4,
440     ass_attribute5,
441     ass_attribute6,
442     ass_attribute7,
443     ass_attribute8,
444     ass_attribute9,
445     ass_attribute10,
446     ass_attribute11,
447     ass_attribute12,
448     ass_attribute13,
449     ass_attribute14,
450     ass_attribute15,
451     ass_attribute16,
452     ass_attribute17,
453     ass_attribute18,
454     ass_attribute19,
455     ass_attribute20,
456     ass_attribute21,
457     ass_attribute22,
458     ass_attribute23,
459     ass_attribute24,
460     ass_attribute25,
461     ass_attribute26,
462     ass_attribute27,
463     ass_attribute28,
464     ass_attribute29,
465     ass_attribute30,
466     title,
467     object_version_number,
468     contract_id,
469     establishment_id,
470     collective_agreement_id,
474     notice_period_uom,
471     cagr_grade_def_id,
472     cagr_id_flex_num,
473     notice_period,
475     employee_category,
476     work_at_home,
477     job_post_source_name,
478     posting_content_id,
479     period_of_placement_date_start,
480     vendor_id,
481     vendor_employee_number,
482     vendor_assignment_number,
483     assignment_category,
484     project_title,
485     applicant_rank,
486     grade_ladder_pgm_id,
487     supervisor_assignment_id,
488     vendor_site_id,
489     po_header_id,
490     po_line_id,
491     projected_assignment_end
492     from    per_all_assignments_f
493     where   assignment_id = p_assignment_id
494     and        p_effective_date  between effective_start_date
495                               and     effective_end_date
496     for update nowait;
497   --
498   -- Cursor C_Sel3 select comment text
499   --
500   Cursor C_Sel3 is
501     select hc.comment_text
502     from   hr_comments hc
503     where  hc.comment_id = per_asg_shd.g_old_rec.comment_id;
504   --
505 Begin
506   --
507   -- Ensure that all the mandatory arguments are not null
508   --
509   hr_api.mandatory_arg_error(p_api_name       => l_proc,
510                              p_argument       => 'effective_date',
511                              p_argument_value => p_effective_date);
512   --
513   hr_api.mandatory_arg_error(p_api_name       => l_proc,
514                              p_argument       => 'datetrack_mode',
515                              p_argument_value => p_datetrack_mode);
516   --
517   hr_api.mandatory_arg_error(p_api_name       => l_proc,
518                              p_argument       => 'assignment_id',
519                              p_argument_value => p_assignment_id);
520   --
521   hr_api.mandatory_arg_error(p_api_name       => l_proc,
522                              p_argument       => 'object_version_number',
523                              p_argument_value => p_object_version_number);
524   --
525   -- Check to ensure the datetrack mode is not INSERT.
526   --
527   If (p_datetrack_mode <> 'INSERT') then
528     --
529     -- We must select and lock the current row.
530     --
531     Open  C_Sel1;
532     Fetch C_Sel1 Into g_old_rec;
533     If C_Sel1%notfound then
534       Close C_Sel1;
535       --
536       -- The primary key is invalid therefore we must error
537       --
538       hr_utility.set_message(801, 'HR_7220_INVALID_PRIMARY_KEY');
539       hr_utility.raise_error;
540       --
541     End If;
542     Close C_Sel1;
543     --
544     -- Check if the set object version number is the same as the existing
545     -- object version number
546     --
547     If (p_object_version_number <> g_old_rec.object_version_number) Then
548         hr_utility.set_message(801, 'HR_7155_OBJECT_INVALID');
549         hr_utility.raise_error;
550       End If;
551     --
552     -- Providing we are doing an update and a comment_id exists then
553     -- we select the comment text.
554     --
555     If ((g_old_rec.comment_id is not null)             and
556         (p_datetrack_mode = 'UPDATE'                   or
557          p_datetrack_mode = 'CORRECTION'               or
558          p_datetrack_mode = 'UPDATE_OVERRIDE'          or
559          p_datetrack_mode = 'UPDATE_CHANGE_INSERT')) then
560       Open C_Sel3;
561       Fetch C_Sel3 Into per_asg_shd.g_old_rec.comment_text;
562       If C_Sel3%notfound then
563         --
564         -- The comment_text for the specified comment_id does not exist.
565         -- We must error due to data integrity problems.
566         --
567         Close C_Sel3;
568         hr_utility.set_message(801, 'HR_7202_COMMENT_TEXT_NOT_EXIST');
569         hr_utility.raise_error;
570       End If;
571       Close C_Sel3;
572     End If;
573     --
574     -- Validate the datetrack mode mode getting the validation start
575     -- and end dates for the specified datetrack operation.
576     --
577     -- Added hr_all_positions_f to validation,Oct-99 SCNair
578     --
579     --
580     -- Removed reference to pay_payrolls_f
581     -- as part of fix for bug 1056246.
582     --
583 
584          --p_parent_table_name1      => 'pay_payrolls_f',
585          --p_parent_key_column1      => 'payroll_id',
586          --p_parent_key_value1       => g_old_rec.payroll_id,
587 
588     -- Bug 3199913
589     -- Removed refernce to 'hr_all_positions_f' since assignment and position
590     -- do not have parent-child relationship.
591 
592     dt_api.validate_dt_mode
593         (p_effective_date          => p_effective_date,
594          p_datetrack_mode          => p_datetrack_mode,
595          p_base_table_name         => 'per_all_assignments_f',
596          p_base_key_column         => 'assignment_id',
597          p_base_key_value          => p_assignment_id,
598          p_parent_table_name1      => 'per_people_f',
599          p_parent_key_column1      => 'person_id',
600          p_parent_key_value1       => g_old_rec.person_id,
601          p_child_table_name1       => 'pay_cost_allocations_f',
602          p_child_key_column1       => 'cost_allocation_id',
603          p_child_table_name2       => 'pay_assignment_link_usages_f',
604          p_child_key_column2       => 'assignment_link_usage_id',
608          p_child_key_column4       => 'placement_id',
605          p_child_table_name3       => 'pay_personal_payment_methods_f',
606          p_child_key_column3       => 'personal_payment_method_id',
607          p_child_table_name4       => 'per_spinal_point_placements_f',
609          p_child_table_name5       => 'pay_element_entries_f',
610          p_child_key_column5       => 'element_entry_id',
611          p_child_table_name6       => 'pay_us_emp_fed_tax_rules_f',
612          p_child_key_column6       => 'emp_fed_tax_rule_id',
613          p_child_table_name7       => 'pay_us_emp_county_tax_rules_f',
614          p_child_key_column7       => 'emp_county_tax_rule_id',
615          p_child_table_name8       => 'pay_us_emp_state_tax_rules_f',
616          p_child_key_column8       => 'emp_state_tax_rule_id',
617          p_child_table_name9       => 'pay_us_emp_city_tax_rules_f',
618          p_child_key_column9       => 'emp_city_tax_rule_id',
619          p_enforce_foreign_locking => true,
620          p_validation_start_date   => l_validation_start_date,
621          p_validation_end_date     => l_validation_end_date);
622   Else
623     --
624     -- We are doing a datetrack 'INSERT' which is illegal within this
625     -- procedure therefore we must error (note: to lck on insert the
626     -- private procedure ins_lck should be called).
627     --
628     hr_utility.set_message(801, 'HR_6153_ALL_PROCEDURE_FAIL');
629     hr_utility.set_message_token('PROCEDURE', l_proc);
630     hr_utility.set_message_token('STEP','20');
631     hr_utility.raise_error;
632     --
633   End If;
634   --
635   -- Set the validation start and end date OUT arguments
636   --
637   p_validation_start_date := l_validation_start_date;
638   p_validation_end_date   := l_validation_end_date;
639   --
640 --
641 -- We need to trap the ORA LOCK exception
642 --
643 Exception
644   When HR_Api.Object_Locked then
645     --
646     -- The object is locked therefore we need to supply a meaningful
647     -- error message.
648     --
649     hr_utility.set_message(801, 'HR_7165_OBJECT_LOCKED');
650     hr_utility.set_message_token('TABLE_NAME', 'per_all_assignments_f');
651     hr_utility.raise_error;
652   When l_object_invalid then
653     --
654     -- The object doesn't exist or is invalid
655     --
656     hr_utility.set_message(801, 'HR_7155_OBJECT_INVALID');
657     hr_utility.set_message_token('TABLE_NAME', 'per_all_assignments_f');
658     hr_utility.raise_error;
659 End lck;
660 --
661 -- ----------------------------------------------------------------------------
662 -- |-----------------------------< convert_args >-----------------------------|
663 -- ----------------------------------------------------------------------------
664 Function convert_args
665     (
666     p_assignment_id                 in number,
667     p_effective_start_date          in date,
668     p_effective_end_date            in date,
669     p_business_group_id             in number,
670     p_recruiter_id                  in number,
671     p_grade_id                      in number,
672     p_position_id                   in number,
673     p_job_id                        in number,
674     p_assignment_status_type_id     in number,
675     p_payroll_id                    in number,
676     p_location_id                   in number,
677     p_person_referred_by_id         in number,
678     p_supervisor_id                 in number,
679     p_special_ceiling_step_id       in number,
680     p_person_id                     in number,
681     p_recruitment_activity_id       in number,
682     p_source_organization_id        in number,
683     p_organization_id               in number,
684     p_people_group_id               in number,
685     p_soft_coding_keyflex_id        in number,
686     p_vacancy_id                    in number,
687     p_pay_basis_id                  in number,
688     p_assignment_sequence           in number,
689     p_assignment_type               in varchar2,
690     p_primary_flag                  in varchar2,
691     p_application_id                in number,
692     p_assignment_number             in varchar2,
693     p_change_reason                 in varchar2,
694     p_comment_id                    in number,
695     p_comments                      in varchar2,
696     p_date_probation_end            in date,
697     p_default_code_comb_id          in number,
698     p_employment_category           in varchar2,
699     p_frequency                     in varchar2,
700     p_internal_address_line         in varchar2,
701     p_manager_flag                  in varchar2,
702     p_normal_hours                  in number,
703     p_perf_review_period            in number,
704     p_perf_review_period_frequency  in varchar2,
705     p_period_of_service_id          in number,
706     p_probation_period              in number,
707     p_probation_unit                in varchar2,
708     p_sal_review_period             in number,
709     p_sal_review_period_frequency   in varchar2,
710     p_set_of_books_id               in number,
711     p_source_type                   in varchar2,
712     p_time_normal_finish            in varchar2,
713     p_time_normal_start             in varchar2,
714     p_bargaining_unit_code          in varchar2,
715     p_labour_union_member_flag      in varchar2,
716     p_hourly_salaried_code          in varchar2,
717     p_request_id                    in number,
721     p_ass_attribute_category        in varchar2,
718     p_program_application_id        in number,
719     p_program_id                    in number,
720     p_program_update_date           in date,
722     p_ass_attribute1                in varchar2,
723     p_ass_attribute2                in varchar2,
724     p_ass_attribute3                in varchar2,
725     p_ass_attribute4                in varchar2,
726     p_ass_attribute5                in varchar2,
727     p_ass_attribute6                in varchar2,
728     p_ass_attribute7                in varchar2,
729     p_ass_attribute8                in varchar2,
730     p_ass_attribute9                in varchar2,
731     p_ass_attribute10               in varchar2,
732     p_ass_attribute11               in varchar2,
733     p_ass_attribute12               in varchar2,
734     p_ass_attribute13               in varchar2,
735     p_ass_attribute14               in varchar2,
736     p_ass_attribute15               in varchar2,
737     p_ass_attribute16               in varchar2,
738     p_ass_attribute17               in varchar2,
739     p_ass_attribute18               in varchar2,
740     p_ass_attribute19               in varchar2,
741     p_ass_attribute20               in varchar2,
742     p_ass_attribute21               in varchar2,
743     p_ass_attribute22               in varchar2,
744     p_ass_attribute23               in varchar2,
745     p_ass_attribute24               in varchar2,
746     p_ass_attribute25               in varchar2,
747     p_ass_attribute26               in varchar2,
748     p_ass_attribute27               in varchar2,
749     p_ass_attribute28               in varchar2,
750     p_ass_attribute29               in varchar2,
751     p_ass_attribute30               in varchar2,
752     p_title                         in varchar2,
753     p_object_version_number         in number,
754     p_contract_id                   in number,
755     p_establishment_id              in number,
756     p_collective_agreement_id       in number,
757     p_cagr_grade_def_id             in number,
758     p_cagr_id_flex_num              in number,
759     p_notice_period         in number,
760     p_notice_period_uom        in varchar2,
761     p_employee_category        in varchar2,
762     p_work_at_home          in varchar2,
763     p_job_post_source_name          in varchar2,
764     p_posting_content_id            in number,
765     p_placement_date_start          in date,
766     p_vendor_id                     in number,
767     p_vendor_employee_number        in varchar2,
768     p_vendor_assignment_number      in varchar2,
769     p_assignment_category           in varchar2,
770     p_project_title                 in varchar2,
771     p_applicant_rank                in number,
772     p_grade_ladder_pgm_id           in number,
773     p_supervisor_assignment_id      in number,
774     p_vendor_site_id                in number,
775     p_po_header_id                  in number,
776     p_po_line_id                    in number,
777     p_projected_assignment_end      in date
778    )
779     Return g_rec_type is
780 --
781   l_rec      g_rec_type;
782 --
783 Begin
784   --
785   --
786   -- Convert arguments into local l_rec structure.
787   --
788   l_rec.assignment_id                    := p_assignment_id;
789   l_rec.effective_start_date             := p_effective_start_date;
790   l_rec.effective_end_date               := p_effective_end_date;
791   l_rec.business_group_id                := p_business_group_id;
792   l_rec.recruiter_id                     := p_recruiter_id;
793   l_rec.grade_id                         := p_grade_id;
794   l_rec.position_id                      := p_position_id;
795   l_rec.job_id                           := p_job_id;
796   l_rec.assignment_status_type_id        := p_assignment_status_type_id;
797   l_rec.payroll_id                       := p_payroll_id;
798   l_rec.location_id                      := p_location_id;
799   l_rec.person_referred_by_id            := p_person_referred_by_id;
800   l_rec.supervisor_id                    := p_supervisor_id;
801   l_rec.special_ceiling_step_id          := p_special_ceiling_step_id;
802   l_rec.person_id                        := p_person_id;
803   l_rec.recruitment_activity_id          := p_recruitment_activity_id;
804   l_rec.source_organization_id           := p_source_organization_id;
805   l_rec.organization_id                  := p_organization_id;
806   l_rec.people_group_id                  := p_people_group_id;
807   l_rec.soft_coding_keyflex_id           := p_soft_coding_keyflex_id;
808   l_rec.vacancy_id                       := p_vacancy_id;
809   l_rec.pay_basis_id                     := p_pay_basis_id;
810   l_rec.assignment_sequence              := p_assignment_sequence;
811   l_rec.assignment_type                  := p_assignment_type;
812   l_rec.primary_flag                     := p_primary_flag;
813   l_rec.application_id                   := p_application_id;
814   l_rec.assignment_number                := p_assignment_number;
815   l_rec.change_reason                    := p_change_reason;
816   l_rec.comment_id                       := p_comment_id;
817   l_rec.comment_text                     := p_comments;
818   l_rec.date_probation_end               := p_date_probation_end;
819   l_rec.default_code_comb_id             := p_default_code_comb_id;
820   l_rec.employment_category              := p_employment_category;
821   l_rec.frequency                        := p_frequency;
822   l_rec.internal_address_line            := p_internal_address_line;
826   l_rec.perf_review_period_frequency     := p_perf_review_period_frequency;
823   l_rec.manager_flag                     := p_manager_flag;
824   l_rec.normal_hours                     := p_normal_hours;
825   l_rec.perf_review_period               := p_perf_review_period;
827   l_rec.period_of_service_id             := p_period_of_service_id;
828   l_rec.probation_period                 := p_probation_period;
829   l_rec.probation_unit                   := p_probation_unit;
830   l_rec.sal_review_period                := p_sal_review_period;
831   l_rec.sal_review_period_frequency      := p_sal_review_period_frequency;
832   l_rec.set_of_books_id                  := p_set_of_books_id;
833   l_rec.source_type                      := p_source_type;
834   l_rec.time_normal_finish               := p_time_normal_finish;
835   l_rec.time_normal_start                := p_time_normal_start;
836   l_rec.bargaining_unit_code             := p_bargaining_unit_code;
837   l_rec.labour_union_member_flag         := p_labour_union_member_flag;
838   l_rec.hourly_salaried_code             := p_hourly_salaried_code;
839   l_rec.request_id                       := p_request_id;
840   l_rec.program_application_id           := p_program_application_id;
841   l_rec.program_id                       := p_program_id;
842   l_rec.program_update_date              := p_program_update_date;
843   l_rec.ass_attribute_category           := p_ass_attribute_category;
844   l_rec.ass_attribute1                   := p_ass_attribute1;
845   l_rec.ass_attribute2                   := p_ass_attribute2;
846   l_rec.ass_attribute3                   := p_ass_attribute3;
847   l_rec.ass_attribute4                   := p_ass_attribute4;
848   l_rec.ass_attribute5                   := p_ass_attribute5;
849   l_rec.ass_attribute6                   := p_ass_attribute6;
850   l_rec.ass_attribute7                   := p_ass_attribute7;
851   l_rec.ass_attribute8                   := p_ass_attribute8;
852   l_rec.ass_attribute9                   := p_ass_attribute9;
853   l_rec.ass_attribute10                  := p_ass_attribute10;
854   l_rec.ass_attribute11                  := p_ass_attribute11;
855   l_rec.ass_attribute12                  := p_ass_attribute12;
856   l_rec.ass_attribute13                  := p_ass_attribute13;
857   l_rec.ass_attribute14                  := p_ass_attribute14;
858   l_rec.ass_attribute15                  := p_ass_attribute15;
859   l_rec.ass_attribute16                  := p_ass_attribute16;
860   l_rec.ass_attribute17                  := p_ass_attribute17;
861   l_rec.ass_attribute18                  := p_ass_attribute18;
862   l_rec.ass_attribute19                  := p_ass_attribute19;
863   l_rec.ass_attribute20                  := p_ass_attribute20;
864   l_rec.ass_attribute21                  := p_ass_attribute21;
865   l_rec.ass_attribute22                  := p_ass_attribute22;
866   l_rec.ass_attribute23                  := p_ass_attribute23;
867   l_rec.ass_attribute24                  := p_ass_attribute24;
868   l_rec.ass_attribute25                  := p_ass_attribute25;
869   l_rec.ass_attribute26                  := p_ass_attribute26;
870   l_rec.ass_attribute27                  := p_ass_attribute27;
871   l_rec.ass_attribute28                  := p_ass_attribute28;
872   l_rec.ass_attribute29                  := p_ass_attribute29;
873   l_rec.ass_attribute30                  := p_ass_attribute30;
874   l_rec.title                            := p_title;
875   l_rec.object_version_number            := p_object_version_number;
876   l_rec.contract_id                      := p_contract_id;
877   l_rec.establishment_id                 := p_establishment_id;
878   l_rec.collective_agreement_id          := p_collective_agreement_id;
879   l_rec.cagr_grade_def_id                := p_cagr_grade_def_id;
880   l_rec.cagr_id_flex_num                 := p_cagr_id_flex_num;
881   l_rec.notice_period          := p_notice_period;
882   l_rec.notice_period_uom      := p_notice_period_uom;
883   l_rec.employee_category      := p_employee_category;
884   l_rec.work_at_home        := p_work_at_home;
885   l_rec.job_post_source_name             := p_job_post_source_name ;
886   l_rec.posting_content_id               := p_posting_content_id;
887   l_rec.period_of_placement_date_start   := p_placement_date_start;
888   l_rec.vendor_id                        := p_vendor_id;
889   l_rec.vendor_employee_number           := p_vendor_employee_number;
890   l_rec.vendor_assignment_number         := p_vendor_assignment_number;
891   l_rec.assignment_category              := p_assignment_category;
892   l_rec.project_title                    := p_project_title;
893   l_rec.applicant_rank                   := p_applicant_rank;
894   l_rec.grade_ladder_pgm_id              := p_grade_ladder_pgm_id;
895   l_rec.supervisor_assignment_id         := p_supervisor_assignment_id;
896   l_rec.vendor_site_id                   := p_vendor_site_id;
897   l_rec.po_header_id                     := p_po_header_id;
898   l_rec.po_line_id                       := p_po_line_id;
899   l_rec.projected_assignment_end         := p_projected_assignment_end;
900 --
901   -- Return the plsql record structure.
902   --
903   Return(l_rec);
904 --
905 End convert_args;
906 --
907 end per_asg_shd;