DBA Data[Home] [Help]

PACKAGE BODY: APPS.OTA_FORUM_MESSAGE_SWI

Source


1 Package Body ota_forum_message_swi As
2 /* $Header: otfmsswi.pkb 120.3 2006/03/28 02:19 aabalakr noship $ */
3 --
4 -- Package variables
5 --
6 g_package  varchar2(33) := 'ota_forum_message_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |-------------------------< create_forum_message >-------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_forum_message
12   (p_validate                     in     number    default hr_api.g_false_num
13   ,p_effective_date               in     date
14   ,p_forum_id                     in     number
15   ,p_forum_thread_id              in     number
16   ,p_business_group_id            in     number
17   ,p_message_scope                in     varchar2
18   ,p_message_body                 in     varchar2  default null
19   ,p_parent_message_id            in     number    default null
20   ,p_person_id                    in     number    default null
21   ,p_contact_id                   in     number    default null
22   ,p_target_person_id             in     number    default null
23   ,p_target_contact_id            in     number    default null
24   ,p_forum_message_id                in  number
25   ,p_object_version_number           out nocopy number
26   ,p_return_status                   out nocopy varchar2
27   ) is
28   --
29   -- Variables for API Boolean parameters
30   l_validate                      boolean;
31   --
32   -- Variables for IN/OUT parameters
33   --
34   -- Other variables
35   l_proc    varchar2(72) := g_package ||'create_forum_message';
36   l_forum_message_id number;
37 Begin
38   hr_utility.set_location(' Entering:' || l_proc,10);
39   --
40   -- Issue a savepoint
41   --
42   savepoint create_forum_message_swi;
43   --
44   -- Initialise Multiple Message Detection
45   --
46   hr_multi_message.enable_message_list;
47   --
48   -- Remember IN OUT parameter IN values
49   --
50   --
51   -- Convert constant values to their corresponding boolean value
52   --
53   l_validate :=
54     hr_api.constant_to_boolean
55       (p_constant_value => p_validate);
56   --
57   --
58   -- Register Surrogate ID or user key values
59     --
60     ota_fms_ins.set_base_key_value
61     (
62       p_forum_message_id => p_forum_message_id
63     );
64 
65   --
66   -- Call API
67   --
68   ota_forum_message_api.create_forum_message
69     (p_validate                     => l_validate
70     ,p_effective_date               => p_effective_date
71     ,p_forum_id                     => p_forum_id
72     ,p_forum_thread_id              => p_forum_thread_id
73     ,p_business_group_id            => p_business_group_id
74     ,p_message_scope                => p_message_scope
75     ,p_message_body                 => p_message_body
76     ,p_parent_message_id            => p_parent_message_id
77     ,p_person_id                    => p_person_id
78     ,p_contact_id                   => p_contact_id
79     ,p_target_person_id             => p_target_person_id
80     ,p_target_contact_id            => p_target_contact_id
81     ,p_forum_message_id             => l_forum_message_id
82     ,p_object_version_number        => p_object_version_number
83     );
84   --
85   -- Convert API warning boolean parameter values to specific
86   -- messages and add them to Multiple Message List
87   --
88   --
89   -- Convert API non-warning boolean parameter values
90   --
91   --
92   -- Derive the API return status value based on whether
93   -- messages of any type exist in the Multiple Message List.
94   -- Also disable Multiple Message Detection.
95   --
96   p_return_status := hr_multi_message.get_return_status_disable;
97   hr_utility.set_location(' Leaving:' || l_proc,20);
98   --
99 exception
100   when hr_multi_message.error_message_exist then
101     --
102     -- Catch the Multiple Message List exception which
103     -- indicates API processing has been aborted because
104     -- at least one message exists in the list.
105     --
106     rollback to create_forum_message_swi;
107     --
108     -- Reset IN OUT parameters and set OUT parameters
109     --
110     l_forum_message_id             := null;
111     p_object_version_number        := null;
112     p_return_status := hr_multi_message.get_return_status_disable;
113     hr_utility.set_location(' Leaving:' || l_proc, 30);
114   when others then
115     --
116     -- When Multiple Message Detection is enabled catch
117     -- any Application specific or other unexpected
118     -- exceptions.  Adding appropriate details to the
119     -- Multiple Message List.  Otherwise re-raise the
120     -- error.
121     --
122     rollback to create_forum_message_swi;
123     if hr_multi_message.unexpected_error_add(l_proc) then
124        hr_utility.set_location(' Leaving:' || l_proc,40);
125        raise;
126     end if;
127     --
128     -- Reset IN OUT and set OUT parameters
129     --
130     l_forum_message_id             := null;
131     p_object_version_number        := null;
132     p_return_status := hr_multi_message.get_return_status_disable;
133     hr_utility.set_location(' Leaving:' || l_proc,50);
134 end create_forum_message;
135 -- ----------------------------------------------------------------------------
136 -- |-------------------------< update_forum_message >-------------------------|
137 -- ----------------------------------------------------------------------------
138 PROCEDURE update_forum_message
139   (p_validate                     in     number    default hr_api.g_false_num
140   ,p_effective_date               in     date
141   ,p_forum_id                     in     number
142   ,p_forum_thread_id              in     number
143   ,p_business_group_id            in     number    default hr_api.g_number
144   ,p_message_scope                in     varchar2  default hr_api.g_varchar2
145   ,p_message_body                 in     varchar2  default hr_api.g_varchar2
146   ,p_parent_message_id            in     number    default hr_api.g_number
147   ,p_person_id                    in     number    default hr_api.g_number
148   ,p_contact_id                   in     number    default hr_api.g_number
149   ,p_target_person_id             in     number    default hr_api.g_number
150   ,p_target_contact_id            in     number    default hr_api.g_number
151   ,p_forum_message_id                in  number
152   ,p_object_version_number        in out nocopy number
153   ,p_return_status                   out nocopy varchar2
154   ) is
155   --
156   -- Variables for API Boolean parameters
157   l_validate                      boolean;
158   --
159   -- Variables for IN/OUT parameters
160   --
161   -- Other variables
162   l_proc    varchar2(72) := g_package ||'update_forum_message';
163   l_forum_message_id number;
164   l_object_version_number number := p_object_version_number;
165 
166 Begin
167   hr_utility.set_location(' Entering:' || l_proc,10);
168   --
169   -- Issue a savepoint
170   --
171   savepoint update_forum_message_swi;
172   --
173   -- Initialise Multiple Message Detection
174   --
175   hr_multi_message.enable_message_list;
176   --
177   -- Remember IN OUT parameter IN values
178   --
179   --
180   -- Convert constant values to their corresponding boolean value
181   --
182   l_validate :=
183     hr_api.constant_to_boolean
184       (p_constant_value => p_validate);
185   --
186   --
187   -- Call API
188   --
189   ota_forum_message_api.update_forum_message
190     (p_validate                     => l_validate
191     ,p_effective_date               => p_effective_date
192     ,p_forum_id                     => p_forum_id
193     ,p_forum_thread_id              => p_forum_thread_id
194     ,p_business_group_id            => p_business_group_id
195     ,p_message_scope                => p_message_scope
196     ,p_message_body                 => p_message_body
197     ,p_parent_message_id            => p_parent_message_id
198     ,p_person_id                    => p_person_id
199     ,p_contact_id                   => p_contact_id
200     ,p_target_person_id             => p_target_person_id
201     ,p_target_contact_id            => p_target_contact_id
202     ,p_forum_message_id             => p_forum_message_id
203     ,p_object_version_number        => l_object_version_number
204     );
205   --
206   -- Convert API warning boolean parameter values to specific
207   -- messages and add them to Multiple Message List
208   --
209   --
210   -- Convert API non-warning boolean parameter values
211   --
212   --
213   -- Derive the API return status value based on whether
214   -- messages of any type exist in the Multiple Message List.
215   -- Also disable Multiple Message Detection.
216   --
217   p_return_status := hr_multi_message.get_return_status_disable;
218   p_object_version_number := l_object_version_number;
219 
220   hr_utility.set_location(' Leaving:' || l_proc,20);
221   --
222 exception
223   when hr_multi_message.error_message_exist then
224     --
225     -- Catch the Multiple Message List exception which
226     -- indicates API processing has been aborted because
227     -- at least one message exists in the list.
228     --
229     rollback to update_forum_message_swi;
230     --
231     -- Reset IN OUT parameters and set OUT parameters
232     --
233     l_forum_message_id             := null;
234     p_object_version_number        := null;
235     p_return_status := hr_multi_message.get_return_status_disable;
236     hr_utility.set_location(' Leaving:' || l_proc, 30);
237   when others then
238     --
239     -- When Multiple Message Detection is enabled catch
240     -- any Application specific or other unexpected
241     -- exceptions.  Adding appropriate details to the
242     -- Multiple Message List.  Otherwise re-raise the
243     -- error.
244     --
245     rollback to update_forum_message_swi;
246     if hr_multi_message.unexpected_error_add(l_proc) then
247        hr_utility.set_location(' Leaving:' || l_proc,40);
248        raise;
249     end if;
250     --
251     -- Reset IN OUT and set OUT parameters
252     --
253     l_forum_message_id             := null;
254     p_object_version_number        := null;
255     p_return_status := hr_multi_message.get_return_status_disable;
256     hr_utility.set_location(' Leaving:' || l_proc,50);
257 end update_forum_message;
258 -- ----------------------------------------------------------------------------
259 -- |-------------------------< delete_forum_message >-------------------------|
260 -- ----------------------------------------------------------------------------
261 PROCEDURE delete_forum_message
262   (p_validate                     in     number    default hr_api.g_false_num
263   ,p_forum_message_id             in     number
264   ,p_object_version_number        in     number
265   ,p_return_status                   out nocopy varchar2
266   ) is
267   --
268   -- Variables for API Boolean parameters
269   l_validate                      boolean;
270   --
271   -- Variables for IN/OUT parameters
272   --
273   -- Other variables
274   l_proc    varchar2(72) := g_package ||'delete_forum_message';
275 Begin
276   hr_utility.set_location(' Entering:' || l_proc,10);
277   --
278   -- Issue a savepoint
279   --
280   savepoint delete_forum_message_swi;
281   --
282   -- Initialise Multiple Message Detection
283   --
284   hr_multi_message.enable_message_list;
285   --
286   -- Remember IN OUT parameter IN values
287   --
288   --
289   -- Convert constant values to their corresponding boolean value
290   --
291   l_validate :=
292     hr_api.constant_to_boolean
293       (p_constant_value => p_validate);
294   --
295   -- Register Surrogate ID or user key values
296   --
297   --
298   -- Call API
299   --
300   ota_forum_message_api.delete_forum_message
301     (p_validate                     => l_validate
302     ,p_forum_message_id             => p_forum_message_id
303     ,p_object_version_number        => p_object_version_number
304     );
305   --
306   -- Convert API warning boolean parameter values to specific
307   -- messages and add them to Multiple Message List
308   --
309   --
310   -- Convert API non-warning boolean parameter values
311   --
312   --
313   -- Derive the API return status value based on whether
314   -- messages of any type exist in the Multiple Message List.
315   -- Also disable Multiple Message Detection.
316   --
317   p_return_status := hr_multi_message.get_return_status_disable;
318   hr_utility.set_location(' Leaving:' || l_proc,20);
319   --
320 exception
321   when hr_multi_message.error_message_exist then
322     --
323     -- Catch the Multiple Message List exception which
324     -- indicates API processing has been aborted because
325     -- at least one message exists in the list.
326     --
327     rollback to delete_forum_message_swi;
328     --
329     -- Reset IN OUT parameters and set OUT parameters
330     --
331     p_return_status := hr_multi_message.get_return_status_disable;
332     hr_utility.set_location(' Leaving:' || l_proc, 30);
333   when others then
334     --
335     -- When Multiple Message Detection is enabled catch
336     -- any Application specific or other unexpected
337     -- exceptions.  Adding appropriate details to the
338     -- Multiple Message List.  Otherwise re-raise the
339     -- error.
340     --
341     rollback to delete_forum_message_swi;
342     if hr_multi_message.unexpected_error_add(l_proc) then
343        hr_utility.set_location(' Leaving:' || l_proc,40);
344        raise;
345     end if;
346     --
347     -- Reset IN OUT and set OUT parameters
348     --
349     p_return_status := hr_multi_message.get_return_status_disable;
350     hr_utility.set_location(' Leaving:' || l_proc,50);
351 end delete_forum_message;
352 end ota_forum_message_swi;