DBA Data[Home] [Help]

PACKAGE BODY: APPS.IRC_REC_TEAM_MEMBERS_SWI

Source


1 Package Body irc_rec_team_members_swi As
2 /* $Header: irrtmswi.pkb 120.3.12010000.2 2008/09/05 10:10:34 pvelugul ship $ */
3 --
4 -- Package variables
5 --
6 g_package  varchar2(33) := 'irc_rec_team_members_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |------------------------< create_rec_team_member >------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_rec_team_member
12   (p_validate                     in     number    default hr_api.g_false_num
13   ,p_rec_team_member_id           in     number
14   ,p_person_id                     in     number
15   ,p_vacancy_id                   in     number
16   ,p_job_id                       in     number    default null
17   ,p_start_date                   in     date      default null
18   ,p_end_date                     in     date      default null
19   ,p_update_allowed               in     varchar2  default null
20   ,p_delete_allowed               in     varchar2  default null
21   ,p_interview_security            in     varchar2  default 'SELF'
22   ,p_object_version_number           out nocopy number
23   ,p_return_status                   out nocopy varchar2
24   ) is
25   --
26   -- Variables for API Boolean parameters
27   l_validate                      boolean;
28   l_rec_team_member_id            number;
29   --
30   -- Variables for IN/OUT parameters
31   --
32   -- Other variables
33   l_proc    varchar2(72) := g_package ||'create_rec_team_member';
34 Begin
35   hr_utility.set_location(' Entering:' || l_proc,10);
36   --
37   -- Issue a savepoint
38   --
39   savepoint create_rec_team_member_swi;
40   --
41   -- Initialise Multiple Message Detection
42   --
43   hr_multi_message.enable_message_list;
44   --
45   -- Remember IN OUT parameter IN values
46   --
47   --
48   -- Convert constant values to their corresponding boolean value
49   --
50   l_validate :=
51     hr_api.constant_to_boolean
52       (p_constant_value => p_validate);
53   --
54   -- Register Surrogate ID or user key values
55   --
56   irc_rtm_ins.set_base_key_value
57     (p_rec_team_member_id => p_rec_team_member_id
58     );
59   --
60   -- Call API
61   --
62   irc_rec_team_members_api.create_rec_team_member
63     (p_validate                     => l_validate
64     ,p_rec_team_member_id           => l_rec_team_member_id
65     ,p_person_id                    => p_person_id
66     ,p_vacancy_id                   => p_vacancy_id
67     ,p_job_id                       => p_job_id
68     ,p_start_date                   => p_start_date
69     ,p_end_date                     => p_end_date
70     ,p_update_allowed               => p_update_allowed
71     ,p_delete_allowed               => p_delete_allowed
72     ,p_interview_security            => p_interview_security
73     ,p_object_version_number        => p_object_version_number
74     );
75   --
76   -- Convert API warning boolean parameter values to specific
77   -- messages and add them to Multiple Message List
78   --
79   --
80   -- Convert API non-warning boolean parameter values
81   --
82   --
83   -- Derive the API return status value based on whether
84   -- messages of any type exist in the Multiple Message List.
85   -- Also disable Multiple Message Detection.
86   --
87   p_return_status := hr_multi_message.get_return_status_disable;
88   hr_utility.set_location(' Leaving:' || l_proc,20);
89   --
90 exception
91   when hr_multi_message.error_message_exist then
92     --
93     -- Catch the Multiple Message List exception which
94     -- indicates API processing has been aborted because
95     --  at least one error message exists in the list.
96     --
97     rollback to create_rec_team_member_swi;
98     --
99     -- Reset IN OUT paramters and set OUT parameters
100     --
101     p_object_version_number        := null;
102     p_return_status := hr_multi_message.get_return_status_disable;
103     hr_utility.set_location(' Leaving:' || l_proc,30);
104   when others then
105     --
106     -- When Multiple Message Detection is enabled catch
107     -- any Application specific or other unexpected
108     -- exceptions.  Adding appropriate details to the
109     -- Multiple Message List.  Otherwise re-raise
110     -- the error.
111     --
112     rollback to create_rec_team_member_swi;
113     if hr_multi_message.unexpected_error_add(l_proc) then
114        hr_utility.set_location(' Leaving:' || l_proc, 40);
115        raise;
116     end if;
117     --
118     -- Reset IN OUT parameters and set OUT parameters
119     --
120     p_object_version_number        := null;
121     p_return_status := hr_multi_message.get_return_status_disable;
122     hr_utility.set_location(' Leaving: ' || l_proc, 50);
123 end create_rec_team_member;
124 -- ----------------------------------------------------------------------------
125 -- |------------------------< delete_rec_team_member >------------------------|
126 -- ----------------------------------------------------------------------------
127 PROCEDURE delete_rec_team_member
128   (p_validate                     in     number    default hr_api.g_false_num
129   ,p_rec_team_member_id           in     number
130   ,p_object_version_number        in     number
131   ,p_return_status                   out nocopy varchar2
132   ) is
133   --
134   -- Variables for API Boolean parameters
135   l_validate                      boolean;
136   --
137   -- Variables for IN/OUT parameters
138   --
139   -- Other variables
140   l_proc    varchar2(72) := g_package ||'delete_rec_team_member';
141   l_object_version_number irc_rec_team_members.object_version_number%TYPE;
142 
143   cursor get_object_version_number(p_rec_team_member_id irc_rec_team_members.rec_team_member_id%TYPE) is
144   select object_version_number
145     from irc_rec_team_members
146    where rec_team_member_id = p_rec_team_member_id;
147 
148 Begin
149   hr_utility.set_location(' Entering:' || l_proc,10);
150   --
151   -- Issue a savepoint
152   --
153   savepoint delete_rec_team_member_swi;
154   --
155   -- Initialise Multiple Message Detection
156   --
157   hr_multi_message.enable_message_list;
158   --
159   -- Remember IN OUT parameter IN values
160   --
161   --
162   -- Convert constant values to their corresponding boolean value
163   --
164   l_validate :=
165     hr_api.constant_to_boolean
166       (p_constant_value => p_validate);
167   --
168   -- Register Surrogate ID or user key values
169   --
170   --
171   -- Call API
172   --
173   l_object_version_number := p_object_version_number;
174   if(p_object_version_number is null or p_object_version_number < 0) then
175     open get_object_version_number(p_rec_team_member_id);
176     fetch get_object_version_number into l_object_version_number;
177     close get_object_version_number;
178   end if;
179   --
180   irc_rec_team_members_api.delete_rec_team_member
181     (p_validate                     => l_validate
182     ,p_rec_team_member_id           => p_rec_team_member_id
183     ,p_object_version_number        => l_object_version_number
184     );
185   --
186   -- Convert API warning boolean parameter values to specific
187   -- messages and add them to Multiple Message List
188   --
189   --
190   -- Convert API non-warning boolean parameter values
191   --
192   --
193   -- Derive the API return status value based on whether
194   -- messages of any type exist in the Multiple Message List.
195   -- Also disable Multiple Message Detection.
196   --
197   p_return_status := hr_multi_message.get_return_status_disable;
198   hr_utility.set_location(' Leaving:' || l_proc,20);
199   --
200 exception
201   when hr_multi_message.error_message_exist then
202     --
203     -- Catch the Multiple Message List exception which
204     -- indicates API processing has been aborted because
205     --  at least one error message exists in the list.
206     --
207     rollback to delete_rec_team_member_swi;
208     --
209     -- Reset IN OUT paramters and set OUT parameters
210     --
211     p_return_status := hr_multi_message.get_return_status_disable;
212     hr_utility.set_location(' Leaving:' || l_proc,30);
213   when others then
214     --
215     -- When Multiple Message Detection is enabled catch
216     -- any Application specific or other unexpected
217     -- exceptions.  Adding appropriate details to the
218     -- Multiple Message List.  Otherwise re-raise
219     -- the error.
220     --
221     rollback to delete_rec_team_member_swi;
222     if hr_multi_message.unexpected_error_add(l_proc) then
223        hr_utility.set_location(' Leaving:' || l_proc, 40);
224        raise;
225     end if;
226     --
227     -- Reset IN OUT parameters and set OUT parameters
228     --
229     p_return_status := hr_multi_message.get_return_status_disable;
230     hr_utility.set_location(' Leaving: ' || l_proc, 50);
231 end delete_rec_team_member;
232 -- ----------------------------------------------------------------------------
233 -- |------------------------< update_rec_team_member >------------------------|
234 -- ----------------------------------------------------------------------------
235 PROCEDURE update_rec_team_member
236   (p_validate                     in     number    default hr_api.g_false_num
237   ,p_rec_team_member_id           in     number
238   ,p_person_id                    in     number    default hr_api.g_number
239   ,p_party_id                     in     number    default hr_api.g_number
240   ,p_vacancy_id                   in     number    default hr_api.g_number
241   ,p_object_version_number        in out nocopy number
242   ,p_job_id                       in     number    default hr_api.g_number
243   ,p_start_date                   in     date      default hr_api.g_date
244   ,p_end_date                     in     date      default hr_api.g_date
245   ,p_update_allowed               in     varchar2  default hr_api.g_varchar2
246   ,p_delete_allowed               in     varchar2  default hr_api.g_varchar2
247   ,p_interview_security            in     varchar2  default 'SELF'
248   ,p_return_status                   out nocopy varchar2
249   ) is
250   --
251   -- Variables for API Boolean parameters
252   l_validate                      boolean;
253   --
254   -- Variables for IN/OUT parameters
255   l_object_version_number         number;
256   --
257   -- Other variables
258   l_proc    varchar2(72) := g_package ||'update_rec_team_member';
259 Begin
260   hr_utility.set_location(' Entering:' || l_proc,10);
261   --
262   -- Issue a savepoint
263   --
264   savepoint update_rec_team_member_swi;
265   --
266   -- Initialise Multiple Message Detection
267   --
268   hr_multi_message.enable_message_list;
269   --
270   -- Remember IN OUT parameter IN values
271   --
272   l_object_version_number         := p_object_version_number;
273   --
274   -- Convert constant values to their corresponding boolean value
275   --
276   l_validate :=
277     hr_api.constant_to_boolean
278       (p_constant_value => p_validate);
279   --
280   -- Register Surrogate ID or user key values
281   --
282   --
283   -- Call API
284   --
285   irc_rec_team_members_api.update_rec_team_member
286     (p_validate                     => l_validate
287     ,p_rec_team_member_id           => p_rec_team_member_id
288     ,p_person_id                    => p_person_id
289     ,p_object_version_number        => p_object_version_number
290     ,p_job_id                       => p_job_id
291     ,p_party_id                     => p_party_id
292     ,p_vacancy_id                   => p_vacancy_id
293     ,p_start_date                   => p_start_date
294     ,p_end_date                     => p_end_date
295     ,p_update_allowed               => p_update_allowed
296     ,p_delete_allowed               => p_delete_allowed
297     ,p_interview_security            => p_interview_security
298     );
299   --
300   -- Convert API warning boolean parameter values to specific
301   -- messages and add them to Multiple Message List
302   --
303   --
304   -- Convert API non-warning boolean parameter values
305   --
306   --
307   -- Derive the API return status value based on whether
308   -- messages of any type exist in the Multiple Message List.
309   -- Also disable Multiple Message Detection.
310   --
311   p_return_status := hr_multi_message.get_return_status_disable;
312   hr_utility.set_location(' Leaving:' || l_proc,20);
313   --
314 exception
315   when hr_multi_message.error_message_exist then
316     --
317     -- Catch the Multiple Message List exception which
318     -- indicates API processing has been aborted because
319     --  at least one error message exists in the list.
320     --
321     rollback to update_rec_team_member_swi;
322     --
323     -- Reset IN OUT paramters and set OUT parameters
324     --
325     p_object_version_number        := l_object_version_number;
326     p_return_status := hr_multi_message.get_return_status_disable;
327     hr_utility.set_location(' Leaving:' || l_proc,30);
328   when others then
329     --
330     -- When Multiple Message Detection is enabled catch
331     -- any Application specific or other unexpected
332     -- exceptions.  Adding appropriate details to the
333     -- Multiple Message List.  Otherwise re-raise
334     -- the error.
335     --
336     rollback to update_rec_team_member_swi;
337     if hr_multi_message.unexpected_error_add(l_proc) then
338        hr_utility.set_location(' Leaving:' || l_proc, 40);
339        raise;
340     end if;
341     --
342     -- Reset IN OUT parameters and set OUT parameters
343     --
344     p_object_version_number        := l_object_version_number;
345     p_return_status := hr_multi_message.get_return_status_disable;
346     hr_utility.set_location(' Leaving: ' || l_proc, 50);
347 end update_rec_team_member;
348 --
349 -- ----------------------------------------------------------------------------
350 -- |----------------------------< process_api >-------------------------------|
351 -- ----------------------------------------------------------------------------
352 
353 procedure process_api
354 (
355   p_document            in         CLOB
356  ,p_return_status       out nocopy VARCHAR2
357  ,p_validate            in         number    default hr_api.g_false_num
358  ,p_effective_date      in         date      default null
359 )
360 IS
361   l_postState               VARCHAR2(2);
362   l_return_status           VARCHAR2(1);
363   l_object_version_number   number;
364   l_rec_team_member_id      number;
365   l_commitElement           xmldom.DOMElement;
366   l_parser                  xmlparser.Parser;
367   l_CommitNode              xmldom.DOMNode;
368 
369   l_proc               varchar2(72)  := g_package || 'process_offers_api';
370   l_effective_date     date          :=  trunc(sysdate);
371 
372 BEGIN
373 --
374   hr_utility.set_location(' Entering:' || l_proc,10);
375   hr_utility.set_location(' CLOB --> xmldom.DOMNode:' || l_proc,15);
376 --
377   l_parser      := xmlparser.newParser;
378   xmlparser.ParseCLOB(l_parser,p_document);
379   l_CommitNode  := xmldom.makeNode(xmldom.getDocumentElement(xmlparser.getDocument(l_parser)));
380 --
381   hr_utility.set_location('Extracting the PostState:' || l_proc,20);
382 
383   l_commitElement := xmldom.makeElement(l_CommitNode);
384   l_postState := xmldom.getAttribute(l_commitElement, 'PS');
385 --
386 --Get the values for in/out parameters
387 --
388   l_object_version_number := hr_transaction_swi.getNumberValue(l_CommitNode,'ObjectVersionNumber');
389   l_rec_team_member_id    := hr_transaction_swi.getNumberValue(l_CommitNode,'RecTeamMemberId');
390 --
391   if p_effective_date is null then
392     l_effective_date := trunc(sysdate);
393   else
394     l_effective_date := p_effective_date;
395   end if;
396 --
397   if l_postState = '0' then
398 --
399   hr_utility.set_location('creating :' || l_proc,30);
400   --
401     create_rec_team_member
402     (p_validate               => p_validate
403     ,p_rec_team_member_id     => l_rec_team_member_id
404     ,p_person_id              => hr_transaction_swi.getNumberValue(l_CommitNode,'PersonId',NULL)
405     ,p_vacancy_id             => hr_transaction_swi.getNumberValue(l_CommitNode,'VacancyId',NULL)
406     ,p_job_id                 => hr_transaction_swi.getNumberValue(l_CommitNode,'JobId',NULL)
407     ,p_start_date             => hr_transaction_swi.getDateValue(l_CommitNode,'StartDate',NULL)
408     ,p_end_date               => hr_transaction_swi.getDateValue(l_CommitNode,'EndDate',NULL)
409     ,p_update_allowed         => hr_transaction_swi.getVarchar2Value(l_CommitNode,'UpdateAllowed',NULL)
410     ,p_delete_allowed         => hr_transaction_swi.getVarchar2Value(l_CommitNode,'DeleteAllowed',NULL)
411     ,p_interview_security      => hr_transaction_swi.getVarchar2Value(l_CommitNode,'InterviewSecurity',NULL)
412     ,p_object_version_number  => l_object_version_number
413     ,p_return_status          => l_return_status
414     );
415   --
416   elsif l_postState = '2' then
417 --
418   hr_utility.set_location('updating :' || l_proc,32);
419   --
420     update_rec_team_member
421     (p_validate               => p_validate
422     ,p_rec_team_member_id     => l_rec_team_member_id
423     ,p_person_id              => hr_transaction_swi.getNumberValue(l_CommitNode,'PersonId',NULL)
424     ,p_party_id               => hr_transaction_swi.getNumberValue(l_CommitNode,'PartyId',NULL)
425     ,p_vacancy_id             => hr_transaction_swi.getNumberValue(l_CommitNode,'VacancyId',NULL)
426     ,p_job_id                 => hr_transaction_swi.getNumberValue(l_CommitNode,'JobId',NULL)
427     ,p_start_date             => hr_transaction_swi.getDateValue(l_CommitNode,'StartDate',NULL)
428     ,p_end_date               => hr_transaction_swi.getDateValue(l_CommitNode,'EndDate',NULL)
429     ,p_update_allowed         => hr_transaction_swi.getVarchar2Value(l_CommitNode,'UpdateAllowed',NULL)
430     ,p_delete_allowed         => hr_transaction_swi.getVarchar2Value(l_CommitNode,'DeleteAllowed',NULL)
431     ,p_interview_security      => hr_transaction_swi.getVarchar2Value(l_CommitNode,'InterviewSecurity',NULL)
432     ,p_object_version_number  => l_object_version_number
433     ,p_return_status          => l_return_status
434     );
435   --
436   elsif l_postState = '3' then
437 --
438   hr_utility.set_location('deleting :' || l_proc,33);
439   --
440     delete_rec_team_member
441     (p_validate               => p_validate
442     ,p_object_version_number  => l_object_version_number
443     ,p_rec_team_member_id     => l_rec_team_member_id
444     ,p_return_status          => l_return_status
445     );
446   --
447   end if;
448 
449   p_return_status := l_return_status;
450 
451   hr_utility.set_location
452     ('Exiting :'|| l_proc || ': return status :'|| l_return_status || ':',40);
453 
454 end process_api;
455 --
456 end irc_rec_team_members_swi;