DBA Data[Home] [Help]

PACKAGE BODY: APPS.PER_RECRUITMENT_ACTIVITY_SWI

Source


1 Package Body per_recruitment_activity_swi As
2 /* $Header: peraaswi.pkb 120.2 2006/12/19 01:19:14 gjaggava noship $ */
3 --
4 -- Package variables
5 --
6 g_package  varchar2(33) := 'per_recruitment_activity_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |----------------------< create_recruitment_activity >---------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_recruitment_activity
12   (p_validate                     in     number    default hr_api.g_false_num
13   ,p_business_group_id            in     number
14   ,p_date_start                   in     date
15   ,p_name                         in     varchar2
16   ,p_authorising_person_id        in     number    default null
17   ,p_run_by_organization_id       in     number    default null
18   ,p_internal_contact_person_id   in     number    default null
19   ,p_parent_recruitment_activity  in     number    default null
20   ,p_currency_code                in     varchar2  default null
21   ,p_actual_cost                  in     varchar2  default null
22   ,p_comments                     in     long      default null
23   ,p_contact_telephone_number     in     varchar2  default null
24   ,p_date_closing                 in     date      default null
25   ,p_date_end                     in     date      default null
26   ,p_external_contact             in     varchar2  default null
27   ,p_planned_cost                 in     varchar2  default null
28   ,p_recruiting_site_id           in     number    default null
29   ,p_recruiting_site_response     in     varchar2  default null
30   ,p_last_posted_date             in     date      default null
31   ,p_type                         in     varchar2  default null
32   ,p_attribute_category           in     varchar2  default null
33   ,p_attribute1                   in     varchar2  default null
34   ,p_attribute2                   in     varchar2  default null
35   ,p_attribute3                   in     varchar2  default null
36   ,p_attribute4                   in     varchar2  default null
37   ,p_attribute5                   in     varchar2  default null
38   ,p_attribute6                   in     varchar2  default null
39   ,p_attribute7                   in     varchar2  default null
40   ,p_attribute8                   in     varchar2  default null
41   ,p_attribute9                   in     varchar2  default null
42   ,p_attribute10                  in     varchar2  default null
43   ,p_attribute11                  in     varchar2  default null
44   ,p_attribute12                  in     varchar2  default null
45   ,p_attribute13                  in     varchar2  default null
46   ,p_attribute14                  in     varchar2  default null
47   ,p_attribute15                  in     varchar2  default null
48   ,p_attribute16                  in     varchar2  default null
49   ,p_attribute17                  in     varchar2  default null
50   ,p_attribute18                  in     varchar2  default null
51   ,p_attribute19                  in     varchar2  default null
52   ,p_attribute20                  in     varchar2  default null
53   ,p_posting_content_id           in     number    default null
54   ,p_status                       in     varchar2  default null
55   ,p_object_version_number           out nocopy number
56   ,p_recruitment_activity_id      in     number
57   ,p_return_status                   out nocopy varchar2
58   ) is
59   --
60   -- Variables for API Boolean parameters
61   l_validate                      boolean;
62   --
63   -- Variables for IN/OUT parameters
64   --
65   -- Other variables
66   l_recruitment_activity_id      number;
67   l_proc    varchar2(72) := g_package ||'create_recruitment_activity';
68 Begin
69   hr_utility.set_location(' Entering:' || l_proc,10);
70   --
71   -- Issue a savepoint
72   --
73   savepoint create_rec_activity_swi;
74   --
75   -- Initialise Multiple Message Detection
76   --
77   hr_multi_message.enable_message_list;
78   --
79   -- Remember IN OUT parameter IN values
80   --
81   --
82   -- Convert constant values to their corresponding boolean value
83   --
84   l_validate :=
85     hr_api.constant_to_boolean
86       (p_constant_value => p_validate);
87   --
88   -- Register Surrogate ID or user key values
89   --
90   per_raa_ins.set_base_key_value
91     (p_recruitment_activity_id => p_recruitment_activity_id
92     );
93   --
94   -- Call API
95   --
96   per_recruitment_activity_api.create_recruitment_activity
97     (p_validate                     => l_validate
98     ,p_business_group_id            => p_business_group_id
99     ,p_date_start                   => p_date_start
100     ,p_name                         => p_name
101     ,p_authorising_person_id        => p_authorising_person_id
102     ,p_run_by_organization_id       => p_run_by_organization_id
103     ,p_internal_contact_person_id   => p_internal_contact_person_id
104     ,p_parent_recruitment_activity  => p_parent_recruitment_activity
105     ,p_currency_code                => p_currency_code
106     ,p_actual_cost                  => p_actual_cost
107     ,p_comments                     => p_comments
108     ,p_contact_telephone_number     => p_contact_telephone_number
109     ,p_date_closing                 => p_date_closing
110     ,p_date_end                     => p_date_end
111     ,p_external_contact             => p_external_contact
112     ,p_planned_cost                 => p_planned_cost
113     ,p_recruiting_site_id           => p_recruiting_site_id
114     ,p_recruiting_site_response     => p_recruiting_site_response
115     ,p_last_posted_date             => p_last_posted_date
116     ,p_type                         => p_type
117     ,p_attribute_category           => p_attribute_category
118     ,p_attribute1                   => p_attribute1
119     ,p_attribute2                   => p_attribute2
120     ,p_attribute3                   => p_attribute3
121     ,p_attribute4                   => p_attribute4
122     ,p_attribute5                   => p_attribute5
123     ,p_attribute6                   => p_attribute6
124     ,p_attribute7                   => p_attribute7
125     ,p_attribute8                   => p_attribute8
126     ,p_attribute9                   => p_attribute9
127     ,p_attribute10                  => p_attribute10
128     ,p_attribute11                  => p_attribute11
129     ,p_attribute12                  => p_attribute12
130     ,p_attribute13                  => p_attribute13
131     ,p_attribute14                  => p_attribute14
132     ,p_attribute15                  => p_attribute15
133     ,p_attribute16                  => p_attribute16
134     ,p_attribute17                  => p_attribute17
135     ,p_attribute18                  => p_attribute18
136     ,p_attribute19                  => p_attribute19
137     ,p_attribute20                  => p_attribute20
138     ,p_posting_content_id           => p_posting_content_id
139     ,p_status                       => p_status
140     ,p_object_version_number        => p_object_version_number
141     ,p_recruitment_activity_id      => l_recruitment_activity_id
142     );
143   --
144   -- Convert API warning boolean parameter values to specific
145   -- messages and add them to Multiple Message List
146   --
147   --
148   -- Convert API non-warning boolean parameter values
149   --
150   --
151   -- Derive the API return status value based on whether
152   -- messages of any type exist in the Multiple Message List.
153   -- Also disable Multiple Message Detection.
154   --
155   p_return_status := hr_multi_message.get_return_status_disable;
156   hr_utility.set_location(' Leaving:' || l_proc,20);
157   --
158 exception
159   when hr_multi_message.error_message_exist then
160     --
161     -- Catch the Multiple Message List exception which
162     -- indicates API processing has been aborted because
163     -- at least one message exists in the list.
164     --
165     rollback to create_rec_activity_swi;
166     --
167     -- Reset IN OUT parameters and set OUT parameters
168     --
169     p_object_version_number        := null;
170     p_return_status := hr_multi_message.get_return_status_disable;
171     hr_utility.set_location(' Leaving:' || l_proc, 30);
172   when others then
173     --
174     -- When Multiple Message Detection is enabled catch
175     -- any Application specific or other unexpected
176     -- exceptions.  Adding appropriate details to the
177     -- Multiple Message List.  Otherwise re-raise the
178     -- error.
179     --
180     rollback to create_rec_activity_swi;
181     if hr_multi_message.unexpected_error_add(l_proc) then
182        hr_utility.set_location(' Leaving:' || l_proc,40);
183        raise;
184     end if;
185     --
186     -- Reset IN OUT and set OUT parameters
187     --
188     p_object_version_number        := null;
189     p_return_status := hr_multi_message.get_return_status_disable;
190     hr_utility.set_location(' Leaving:' || l_proc,50);
191 end create_recruitment_activity;
192 -- ----------------------------------------------------------------------------
193 -- |----------------------< delete_recruitment_activity >---------------------|
194 -- ----------------------------------------------------------------------------
195 PROCEDURE delete_recruitment_activity
196   (p_validate                     in     number    default hr_api.g_false_num
197   ,p_object_version_number        in     number
198   ,p_recruitment_activity_id      in     number
199   ,p_return_status                   out nocopy varchar2
200   ) is
201   --
202   -- Variables for API Boolean parameters
203   l_validate                      boolean;
204   --
205   -- Variables for IN/OUT parameters
206   --
207   -- Other variables
208   l_proc    varchar2(72) := g_package ||'delete_recruitment_activity';
209 Begin
210   hr_utility.set_location(' Entering:' || l_proc,10);
211   --
212   -- Issue a savepoint
213   --
214   savepoint delete_rec_activity_swi;
215   --
216   -- Initialise Multiple Message Detection
217   --
218   hr_multi_message.enable_message_list;
219   --
220   -- Remember IN OUT parameter IN values
221   --
222   --
223   -- Convert constant values to their corresponding boolean value
224   --
225   l_validate :=
226     hr_api.constant_to_boolean
227       (p_constant_value => p_validate);
228   --
229   -- Register Surrogate ID or user key values
230   --
231   --
232   -- Call API
233   --
234   per_recruitment_activity_api.delete_recruitment_activity
235     (p_validate                     => l_validate
236     ,p_object_version_number        => p_object_version_number
237     ,p_recruitment_activity_id      => p_recruitment_activity_id
238     );
239   --
240   -- Convert API warning boolean parameter values to specific
241   -- messages and add them to Multiple Message List
242   --
243   --
244   -- Convert API non-warning boolean parameter values
245   --
246   --
247   -- Derive the API return status value based on whether
248   -- messages of any type exist in the Multiple Message List.
249   -- Also disable Multiple Message Detection.
250   --
251   p_return_status := hr_multi_message.get_return_status_disable;
252   hr_utility.set_location(' Leaving:' || l_proc,20);
253   --
254 exception
255   when hr_multi_message.error_message_exist then
256     --
257     -- Catch the Multiple Message List exception which
258     -- indicates API processing has been aborted because
259     -- at least one message exists in the list.
260     --
261     rollback to delete_rec_activity_swi;
262     --
263     -- Reset IN OUT parameters and set OUT parameters
264     --
265     p_return_status := hr_multi_message.get_return_status_disable;
266     hr_utility.set_location(' Leaving:' || l_proc, 30);
267   when others then
268     --
269     -- When Multiple Message Detection is enabled catch
270     -- any Application specific or other unexpected
271     -- exceptions.  Adding appropriate details to the
272     -- Multiple Message List.  Otherwise re-raise the
273     -- error.
274     --
275     rollback to delete_rec_activity_swi;
276     if hr_multi_message.unexpected_error_add(l_proc) then
277        hr_utility.set_location(' Leaving:' || l_proc,40);
278        raise;
279     end if;
280     --
281     -- Reset IN OUT and set OUT parameters
282     --
283     p_return_status := hr_multi_message.get_return_status_disable;
284     hr_utility.set_location(' Leaving:' || l_proc,50);
285 end delete_recruitment_activity;
286 -- ----------------------------------------------------------------------------
287 -- |----------------------< update_recruitment_activity >---------------------|
288 -- ----------------------------------------------------------------------------
289 PROCEDURE update_recruitment_activity
290   (p_validate                     in     number    default hr_api.g_false_num
291   ,p_recruitment_activity_id      in     number
292   ,p_authorising_person_id        in     number    default hr_api.g_number
293   ,p_run_by_organization_id       in     number    default hr_api.g_number
294   ,p_internal_contact_person_id   in     number    default hr_api.g_number
295   ,p_parent_recruitment_activity  in     number    default hr_api.g_number
296   ,p_currency_code                in     varchar2  default hr_api.g_varchar2
297   ,p_date_start                   in     date      default hr_api.g_date
298   ,p_name                         in     varchar2  default hr_api.g_varchar2
299   ,p_actual_cost                  in     varchar2  default hr_api.g_varchar2
300   ,p_comments                     in     long      default hr_api.g_varchar2
301   ,p_contact_telephone_number     in     varchar2  default hr_api.g_varchar2
302   ,p_date_closing                 in     date      default hr_api.g_date
303   ,p_date_end                     in     date      default hr_api.g_date
304   ,p_external_contact             in     varchar2  default hr_api.g_varchar2
305   ,p_planned_cost                 in     varchar2  default hr_api.g_varchar2
306   ,p_recruiting_site_id           in     number    default hr_api.g_number
307   ,p_recruiting_site_response     in     varchar2  default hr_api.g_varchar2
308   ,p_last_posted_date             in     date      default hr_api.g_date
309   ,p_type                         in     varchar2  default hr_api.g_varchar2
310   ,p_attribute_category           in     varchar2  default hr_api.g_varchar2
311   ,p_attribute1                   in     varchar2  default hr_api.g_varchar2
312   ,p_attribute2                   in     varchar2  default hr_api.g_varchar2
313   ,p_attribute3                   in     varchar2  default hr_api.g_varchar2
314   ,p_attribute4                   in     varchar2  default hr_api.g_varchar2
315   ,p_attribute5                   in     varchar2  default hr_api.g_varchar2
316   ,p_attribute6                   in     varchar2  default hr_api.g_varchar2
317   ,p_attribute7                   in     varchar2  default hr_api.g_varchar2
318   ,p_attribute8                   in     varchar2  default hr_api.g_varchar2
319   ,p_attribute9                   in     varchar2  default hr_api.g_varchar2
320   ,p_attribute10                  in     varchar2  default hr_api.g_varchar2
321   ,p_attribute11                  in     varchar2  default hr_api.g_varchar2
322   ,p_attribute12                  in     varchar2  default hr_api.g_varchar2
323   ,p_attribute13                  in     varchar2  default hr_api.g_varchar2
327   ,p_attribute17                  in     varchar2  default hr_api.g_varchar2
324   ,p_attribute14                  in     varchar2  default hr_api.g_varchar2
325   ,p_attribute15                  in     varchar2  default hr_api.g_varchar2
326   ,p_attribute16                  in     varchar2  default hr_api.g_varchar2
328   ,p_attribute18                  in     varchar2  default hr_api.g_varchar2
329   ,p_attribute19                  in     varchar2  default hr_api.g_varchar2
330   ,p_attribute20                  in     varchar2  default hr_api.g_varchar2
331   ,p_posting_content_id           in     number    default hr_api.g_number
332   ,p_status                       in     varchar2  default hr_api.g_varchar2
333   ,p_object_version_number        in out nocopy number
334   ,p_return_status                   out nocopy varchar2
335   ) is
336   --
337   -- Variables for API Boolean parameters
338   l_validate                      boolean;
339   --
340   -- Variables for IN/OUT parameters
341   l_object_version_number         number;
342   --
343   -- Other variables
344   l_proc    varchar2(72) := g_package ||'update_recruitment_activity';
345 Begin
346   hr_utility.set_location(' Entering:' || l_proc,10);
347   --
348   -- Issue a savepoint
349   --
350   savepoint update_rec_activity_swi;
351   --
352   -- Initialise Multiple Message Detection
353   --
354   hr_multi_message.enable_message_list;
355   --
356   -- Remember IN OUT parameter IN values
357   --
358   l_object_version_number         := p_object_version_number;
359   --
360   -- Convert constant values to their corresponding boolean value
361   --
362   l_validate :=
363     hr_api.constant_to_boolean
364       (p_constant_value => p_validate);
365   --
366   -- Register Surrogate ID or user key values
367   --
368   --
369   -- Call API
370   --
371   per_recruitment_activity_api.update_recruitment_activity
372     (p_validate                     => l_validate
373     ,p_recruitment_activity_id      => p_recruitment_activity_id
374     ,p_authorising_person_id        => p_authorising_person_id
375     ,p_run_by_organization_id       => p_run_by_organization_id
376     ,p_internal_contact_person_id   => p_internal_contact_person_id
377     ,p_parent_recruitment_activity  => p_parent_recruitment_activity
378     ,p_currency_code                => p_currency_code
379     ,p_date_start                   => p_date_start
380     ,p_name                         => p_name
381     ,p_actual_cost                  => p_actual_cost
382     ,p_comments                     => p_comments
383     ,p_contact_telephone_number     => p_contact_telephone_number
384     ,p_date_closing                 => p_date_closing
385     ,p_date_end                     => p_date_end
386     ,p_external_contact             => p_external_contact
387     ,p_planned_cost                 => p_planned_cost
388     ,p_recruiting_site_id           => p_recruiting_site_id
389     ,p_recruiting_site_response     => p_recruiting_site_response
390     ,p_last_posted_date             => p_last_posted_date
391     ,p_type                         => p_type
392     ,p_attribute_category           => p_attribute_category
393     ,p_attribute1                   => p_attribute1
394     ,p_attribute2                   => p_attribute2
395     ,p_attribute3                   => p_attribute3
396     ,p_attribute4                   => p_attribute4
397     ,p_attribute5                   => p_attribute5
398     ,p_attribute6                   => p_attribute6
399     ,p_attribute7                   => p_attribute7
400     ,p_attribute8                   => p_attribute8
401     ,p_attribute9                   => p_attribute9
402     ,p_attribute10                  => p_attribute10
403     ,p_attribute11                  => p_attribute11
404     ,p_attribute12                  => p_attribute12
405     ,p_attribute13                  => p_attribute13
406     ,p_attribute14                  => p_attribute14
407     ,p_attribute15                  => p_attribute15
408     ,p_attribute16                  => p_attribute16
409     ,p_attribute17                  => p_attribute17
410     ,p_attribute18                  => p_attribute18
411     ,p_attribute19                  => p_attribute19
412     ,p_attribute20                  => p_attribute20
413     ,p_posting_content_id           => p_posting_content_id
414     ,p_status                       => p_status
415     ,p_object_version_number        => p_object_version_number
416     );
417   --
418   -- Convert API warning boolean parameter values to specific
419   -- messages and add them to Multiple Message List
420   --
421   --
422   -- Convert API non-warning boolean parameter values
423   --
424   --
425   -- Derive the API return status value based on whether
426   -- messages of any type exist in the Multiple Message List.
427   -- Also disable Multiple Message Detection.
428   --
429   p_return_status := hr_multi_message.get_return_status_disable;
430   hr_utility.set_location(' Leaving:' || l_proc,20);
431   --
432 exception
433   when hr_multi_message.error_message_exist then
434     --
435     -- Catch the Multiple Message List exception which
436     -- indicates API processing has been aborted because
437     -- at least one message exists in the list.
438     --
439     rollback to update_rec_activity_swi;
440     --
441     -- Reset IN OUT parameters and set OUT parameters
442     --
446   when others then
443     p_object_version_number        := l_object_version_number;
444     p_return_status := hr_multi_message.get_return_status_disable;
445     hr_utility.set_location(' Leaving:' || l_proc, 30);
447     --
448     -- When Multiple Message Detection is enabled catch
449     -- any Application specific or other unexpected
450     -- exceptions.  Adding appropriate details to the
451     -- Multiple Message List.  Otherwise re-raise the
452     -- error.
453     --
454     rollback to update_rec_activity_swi;
455     if hr_multi_message.unexpected_error_add(l_proc) then
456        hr_utility.set_location(' Leaving:' || l_proc,40);
457        raise;
458     end if;
459     --
460     -- Reset IN OUT and set OUT parameters
461     --
462     p_object_version_number        := l_object_version_number;
463     p_return_status := hr_multi_message.get_return_status_disable;
464     hr_utility.set_location(' Leaving:' || l_proc,50);
465 end update_recruitment_activity;
466 --
467 -- ----------------------------------------------------------------------------
468 -- |----------------------------< process_api >-------------------------------|
469 -- ----------------------------------------------------------------------------
470 
471 procedure process_api
472 (
473   p_document            in         CLOB
474  ,p_return_status       out nocopy VARCHAR2
475  ,p_validate            in         number    default hr_api.g_false_num
476  ,p_effective_date      in         date      default null
477 )
478 IS
479    l_postState               VARCHAR2(2);
480    l_return_status           VARCHAR2(1);
481    l_object_version_number   number;
482    l_recruitment_activity_id   number;
483    l_commitElement           xmldom.DOMElement;
484    l_parser                  xmlparser.Parser;
485    l_CommitNode              xmldom.DOMNode;
486 
487    l_proc               varchar2(72)  := g_package || 'process_api';
488    l_effective_date     date          :=  trunc(sysdate);
489    l_posting_date       date;
490 
491    cursor csr_rec_act_for(rec_act_id in number) is
492      select recruitment_activity_for_id, object_version_number
493      from per_recruitment_activity_for
494      where recruitment_activity_id = rec_act_id;
495 
496    cursor csr_rec_act_ovn(rec_act_id in number) is
497      select object_version_number
498      from per_recruitment_activities
499      where recruitment_activity_id = rec_act_id;
500 
501 BEGIN
502 --
503    hr_utility.set_location(' Entering:' || l_proc,10);
504    hr_utility.set_location(' CLOB --> xmldom.DOMNode:' || l_proc,15);
505 --
506    l_parser      := xmlparser.newParser;
507    xmlparser.ParseCLOB(l_parser,p_document);
508    l_CommitNode  := xmldom.makeNode(xmldom.getDocumentElement(xmlparser.getDocument(l_parser)));
509 --
510    hr_utility.set_location('Extracting the PostState:' || l_proc,20);
511 
512    l_commitElement := xmldom.makeElement(l_CommitNode);
513    l_postState := xmldom.getAttribute(l_commitElement, 'PS');
514 --
515 --Get the values for in/out parameters
516 --
517    l_object_version_number := hr_transaction_swi.getNumberValue(l_CommitNode,'ObjectVersionNumber');
518    l_recruitment_activity_id := hr_transaction_swi.getNumberValue(l_CommitNode,'RecruitmentActivityId');
519 --
520    if p_effective_date is null then
521      l_effective_date := trunc(sysdate);
522    else
523      l_effective_date := p_effective_date;
524    end if;
525 --
526   l_posting_date := get_posting_date
527   ( p_type_flag           => hr_transaction_swi.getVarchar2Value(l_CommitNode,'RecruitingSiteType',NULL)
528   , p_current_start_date  => hr_transaction_swi.getDateValue(l_CommitNode,'DateStart',NULL)
529   , p_internal_start_date => hr_transaction_swi.getDateValue(l_CommitNode,'InternalStartDate',NULL)
530   , p_dates_editable      => hr_transaction_swi.getVarchar2Value(l_CommitNode,'DatesEditable',NULL));
531 --
532    if l_postState = '0' then
533 --
534    hr_utility.set_location('creating :' || l_proc,30);
535      --
536      create_recruitment_activity
537      (p_validate                     => p_validate
538      ,p_business_group_id            => hr_transaction_swi.getNumberValue(l_CommitNode,'BusinessGroupId',NULL)
539      ,p_date_start                   => l_posting_date
540      ,p_name                         => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Name',NULL)
541      ,p_date_closing                 => hr_transaction_swi.getDateValue(l_CommitNode,'DateClosing',NULL)
542      ,p_date_end                     => hr_transaction_swi.getDateValue(l_CommitNode,'DateEnd',NULL)
543      ,p_recruiting_site_id           => hr_transaction_swi.getNumberValue(l_CommitNode,'RecruitingSiteId',NULL)
544      ,p_last_posted_date             => hr_transaction_swi.getDateValue(l_CommitNode,'LastPostedDate',NULL)
545      ,p_attribute_category           => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AttributeCategory',NULL)
546      ,p_attribute1                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute1',NULL)
547      ,p_attribute2                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute2',NULL)
548      ,p_attribute3                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute3',NULL)
549      ,p_attribute4                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute4',NULL)
550      ,p_attribute5                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute5',NULL)
554      ,p_attribute9                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute9',NULL)
551      ,p_attribute6                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute6',NULL)
552      ,p_attribute7                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute7',NULL)
553      ,p_attribute8                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute8',NULL)
555      ,p_attribute10                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute10',NULL)
556      ,p_attribute11                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute11',NULL)
557      ,p_attribute12                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute12',NULL)
558      ,p_attribute13                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute13',NULL)
559      ,p_attribute14                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute14',NULL)
560      ,p_attribute15                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute15',NULL)
561      ,p_attribute16                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute16',NULL)
562      ,p_attribute17                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute17',NULL)
563      ,p_attribute18                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute18',NULL)
564      ,p_attribute19                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute19',NULL)
565      ,p_attribute20                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute20',NULL)
566      ,p_posting_content_id           => hr_transaction_swi.getNumberValue(l_CommitNode,'PostingContentId',NULL)
567      ,p_recruitment_activity_id      => l_recruitment_activity_id
568      ,p_object_version_number        => l_object_version_number
569      ,p_return_status                => l_return_status
570      );
571      --
572    elsif l_postState = '2' then
573 --
574    hr_utility.set_location('updating :' || l_proc,32);
575      --
576      update_recruitment_activity
577      (p_validate                     => p_validate
578      ,p_recruitment_activity_id      => l_recruitment_activity_id
579      ,p_authorising_person_id        => hr_transaction_swi.getNumberValue(l_CommitNode,'AuthorisingPersonId',NULL)
580      ,p_run_by_organization_id       => hr_transaction_swi.getNumberValue(l_CommitNode,'RunByOrganizationId',NULL)
581      ,p_internal_contact_person_id   => hr_transaction_swi.getNumberValue(l_CommitNode,'InternalContactPersonId',NULL)
582      ,p_parent_recruitment_activity  => hr_transaction_swi.getNumberValue(l_CommitNode,'ParentRecruitmentActivity',NULL)
583      ,p_currency_code                => hr_transaction_swi.getVarchar2Value(l_CommitNode,'CurrencyCode',NULL)
584      ,p_date_start                   => l_posting_date
585      ,p_name                         => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Name',NULL)
586      ,p_actual_cost                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'ActualCost',NULL)
587      ,p_contact_telephone_number     => hr_transaction_swi.getVarchar2Value(l_CommitNode,'ContactTelephoneNumber',NULL)
588      ,p_date_closing                 => hr_transaction_swi.getDateValue(l_CommitNode,'DateClosing',NULL)
589      ,p_date_end                     => hr_transaction_swi.getDateValue(l_CommitNode,'DateEnd',NULL)
590      ,p_external_contact             => hr_transaction_swi.getVarchar2Value(l_CommitNode,'ExternalContact',NULL)
591      ,p_planned_cost                 => hr_transaction_swi.getVarchar2Value(l_CommitNode,'PlannedCost',NULL)
592      ,p_recruiting_site_id           => hr_transaction_swi.getNumberValue(l_CommitNode,'RecruitingSiteId',NULL)
593      ,p_recruiting_site_response     => hr_transaction_swi.getVarchar2Value(l_CommitNode,'RecruitingSiteResponse',NULL)
594      ,p_last_posted_date             => hr_transaction_swi.getDateValue(l_CommitNode,'LastPostedDate',NULL)
595      ,p_type                         => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Type',NULL)
596      ,p_attribute_category           => hr_transaction_swi.getVarchar2Value(l_CommitNode,'AttributeCategory',NULL)
597      ,p_attribute1                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute1',NULL)
598      ,p_attribute2                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute2',NULL)
599      ,p_attribute3                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute3',NULL)
600      ,p_attribute4                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute4',NULL)
601      ,p_attribute5                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute5',NULL)
602      ,p_attribute6                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute6',NULL)
603      ,p_attribute7                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute7',NULL)
604      ,p_attribute8                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute8',NULL)
605      ,p_attribute9                   => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute9',NULL)
606      ,p_attribute10                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute10',NULL)
607      ,p_attribute11                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute11',NULL)
608      ,p_attribute12                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute12',NULL)
609      ,p_attribute13                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute13',NULL)
610      ,p_attribute14                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute14',NULL)
611      ,p_attribute15                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute15',NULL)
615      ,p_attribute19                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute19',NULL)
612      ,p_attribute16                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute16',NULL)
613      ,p_attribute17                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute17',NULL)
614      ,p_attribute18                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute18',NULL)
616      ,p_attribute20                  => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Attribute20',NULL)
617      ,p_posting_content_id           => hr_transaction_swi.getNumberValue(l_CommitNode,'PostingContentId',NULL)
618      ,p_status                       => hr_transaction_swi.getVarchar2Value(l_CommitNode,'Status',NULL)
619      ,p_object_version_number        => l_object_version_number
620      ,p_return_status                => l_return_status
621      );
622      --
623    elsif l_postState = '3' then
624 --
625    hr_utility.set_location('deleting :' || l_proc,33);
626      --
627      -- delete all child recruitment_activity_for rows before deleting
628      -- the parent entity
629      for rec_act_for in csr_rec_act_for(l_recruitment_activity_id) loop
630        per_rec_activity_for_swi.delete_rec_activity_for
631        (p_validate               => p_validate
632        ,p_object_version_number  => rec_act_for.object_version_number
633        ,p_rec_activity_for_id    => rec_act_for.recruitment_activity_for_id
634        ,p_return_status          => l_return_status
635        );
636      end loop;
637 
638      -- the following if block is a work around for SSHR bug 5353275
639      if l_object_version_number = hr_api.g_number then
640        hr_utility.set_location('OVN is NULL for delete ' || l_proc, 36);
641        open csr_rec_act_ovn(l_recruitment_activity_id);
642        fetch csr_rec_act_ovn into l_object_version_number;
643        close csr_rec_act_ovn;
644      end if;
645      --
646      delete_recruitment_activity
647      (p_validate                     => p_validate
648      ,p_object_version_number        => l_object_version_number
649      ,p_recruitment_activity_id      => l_recruitment_activity_id
650      ,p_return_status                => l_return_status
651      );
652      --
653    end if;
654 
655    p_return_status := l_return_status;
656 
657    hr_utility.set_location
658      ('Exiting :'|| l_proc || ': return status :'|| l_return_status || ':',40);
659 
660 end process_api;
661 --
662 
663 
664 
665 
666 --
667 --  If the start date of the external posting was not enterable
668 --  because the IRC: Internal Posting Days profile option was set then
669 --    the start date of the external posting will be set to be that
670 --    number of days after the start date of the internal posting.
671 --
672 --  find the internal site and determine any correction to
673 --  the start date required
674 --
675 --  If the start date of the internal posting is before the approval date then
676 --    the start date of the internal posting will be moved to the approval date
677 --    the start date of the external posting will be moved by the same amount.
678 --
679 function get_posting_date
680   (p_type_flag varchar2, p_current_start_date date,
681    p_internal_start_date date, p_dates_editable varchar2)
682 return date is
683 --
684   return_date date;
685 --
686 begin
687 --
688 hr_utility.trace('Entering get_posting_date');
689 --
690   return_date := p_current_start_date;
691 --
692   if (p_type_flag = 'I' AND p_current_start_date < sysdate() AND p_dates_editable = 'Y') then
693 --
694 hr_utility.trace('Moving internal date to approval date');
695 --
696     return_date := sysdate;
697   end if;
698 --
699   if (p_type_flag = 'X') then
700     if (p_dates_editable = 'N') then
701 --
702 hr_utility.trace('External date not editable - moving to internal date plus posting days');
703 --
704     return_date := p_internal_start_date + get_internal_posting_days();
705   else
706 --
707 hr_utility.trace('Dates Editable');
708 --
709     if (p_type_flag = 'X' AND p_current_start_date < sysdate()) then
710 --
711 hr_utility.trace('moving external date');
712 --
713       return_date := p_current_start_date + (sysdate - p_internal_start_date);
714     end if;
715   end if;
716   end if;
717 --
718 hr_utility.trace('Exiting get_posting_date returning :' || to_char(return_date) || ':');
719 --
720   return return_date;
721 --
722 end get_posting_date;
723 --
724 ----------------------------------------------------------
725 FUNCTION get_internal_posting_days return number IS
726 --
727 number_of_days varchar2(10);
728 --
729 BEGIN
730 --
731 hr_utility.trace('Entering get_internal_posting_days');
732 --
733 number_of_days := fnd_profile.value('IRC_INTERNAL_POSTING_DAYS');
734 
735 if (number_of_days is null) then
736 hr_utility.trace('Number of days is null - returning -1');
737   return -1;
738 else
739 hr_utility.trace('Returning number of days as :' || number_of_days || ':');
740   return to_number(number_of_days);
741 end if;
742 --
743 END get_internal_posting_days;
744 --
745 --
746 ----------------------------------------------------------
747 end per_recruitment_activity_swi;