1 Package Body ota_chat_message_swi As
2 /* $Header: otcmsswi.pkb 120.1 2005/08/03 14:28 asud noship $ */
3 --
4 -- Package variables
5 --
6 g_package varchar2(33) := 'ota_chat_message_swi.';
7 --
8 -- ----------------------------------------------------------------------------
9 -- |--------------------------< create_chat_message >-------------------------|
10 -- ----------------------------------------------------------------------------
11 PROCEDURE create_chat_message
12 (p_validate in number default hr_api.g_false_num
13 ,p_effective_date in date
14 ,p_chat_id in number
15 ,p_person_id in number
16 ,p_contact_id in number
17 ,p_target_person_id in number
18 ,p_target_contact_id in number
19 ,p_message_text in varchar2
20 ,p_business_group_id in number
21 ,p_chat_message_id in number
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 --
29 -- Variables for IN/OUT parameters
30 --
31 -- Other variables
32 l_chat_message_id number;
33 l_proc varchar2(72) := g_package ||'create_chat_message';
34 Begin
35 hr_utility.set_location(' Entering:' || l_proc,10);
36 --
37 -- Issue a savepoint
38 --
39 savepoint create_chat_message_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 ota_cms_ins.set_base_key_value
57 (p_chat_message_id => p_chat_message_id
58 );
59 --
60 -- Call API
61 --
62 ota_chat_message_api.create_chat_message
63 (p_validate => l_validate
64 ,p_effective_date => p_effective_date
65 ,p_chat_id => p_chat_id
66 ,p_person_id => p_person_id
67 ,p_contact_id => p_contact_id
68 ,p_target_person_id => p_target_person_id
69 ,p_target_contact_id => p_target_contact_id
70 ,p_message_text => p_message_text
71 ,p_business_group_id => p_business_group_id
72 ,p_chat_message_id => l_chat_message_id
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 message exists in the list.
96 --
97 rollback to create_chat_message_swi;
98 --
99 -- Reset IN OUT parameters 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 the
110 -- error.
111 --
112 rollback to create_chat_message_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 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_chat_message;
124 --
125 -- ----------------------------------------------------------------------------
126 -- |--------------------------< update_chat_message >-------------------------|
127 -- ----------------------------------------------------------------------------
128 PROCEDURE update_chat_message
129 (p_validate in number default hr_api.g_false_num
130 ,p_effective_date in date
131 ,p_chat_id in number
132 ,p_person_id in number default hr_api.g_number
133 ,p_contact_id in number default hr_api.g_number
134 ,p_target_person_id in number default hr_api.g_number
135 ,p_target_contact_id in number default hr_api.g_number
136 ,p_message_text in varchar2 default hr_api.g_varchar2
137 ,p_business_group_id in number default hr_api.g_number
138 ,p_chat_message_id in number
139 ,p_object_version_number in out nocopy number
140 ,p_return_status out nocopy varchar2
141 ) is
142 --
143 -- Variables for API Boolean parameters
144 l_validate boolean;
145 --
146 -- Variables for IN/OUT parameters
147 --
148 -- Other variables
149 l_chat_message_id number;
150 l_effective_date date := trunc(p_effective_date);
151 l_object_version_number number := p_object_version_number;
152 l_proc varchar2(72) := g_package ||'update_chat_message';
153 Begin
154 hr_utility.set_location(' Entering:' || l_proc,10);
155 --
156 -- Issue a savepoint
157 --
158 savepoint update_chat_message_swi;
159 --
160 -- Initialise Multiple Message Detection
161 --
162 hr_multi_message.enable_message_list;
163 --
164 -- Remember IN OUT parameter IN values
165 --
166 --
167 -- Convert constant values to their corresponding boolean value
168 --
169 l_validate :=
170 hr_api.constant_to_boolean
171 (p_constant_value => p_validate);
172 --
173 -- Call API
174 --
175 ota_chat_message_api.update_chat_message
176 (p_validate => l_validate
177 ,p_effective_date => l_effective_date
178 ,p_chat_id => p_chat_id
179 ,p_person_id => p_person_id
180 ,p_contact_id => p_contact_id
181 ,p_target_person_id => p_target_person_id
182 ,p_target_contact_id => p_target_contact_id
183 ,p_message_text => p_message_text
184 ,p_business_group_id => p_business_group_id
185 ,p_chat_message_id => p_chat_message_id
186 ,p_object_version_number => l_object_version_number
187 );
188 --
189 -- Convert API warning boolean parameter values to specific
190 -- messages and add them to Multiple Message List
191 --
192 --
193 -- Convert API non-warning boolean parameter values
194 --
195 --
196 -- Derive the API return status value based on whether
197 -- messages of any type exist in the Multiple Message List.
198 -- Also disable Multiple Message Detection.
199 --
200 p_return_status := hr_multi_message.get_return_status_disable;
201 hr_utility.set_location(' Leaving:' || l_proc,20);
202 --
203 exception
204 when hr_multi_message.error_message_exist then
205 --
206 -- Catch the Multiple Message List exception which
207 -- indicates API processing has been aborted because
208 -- at least one message exists in the list.
209 --
210 rollback to update_chat_message_swi;
211 --
212 -- Reset IN OUT parameters and set OUT parameters
213 --
214 p_object_version_number := l_object_version_number;
215 p_return_status := hr_multi_message.get_return_status_disable;
216 hr_utility.set_location(' Leaving:' || l_proc, 30);
217 when others then
218 --
219 -- When Multiple Message Detection is enabled catch
220 -- any Application specific or other unexpected
221 -- exceptions. Adding appropriate details to the
222 -- Multiple Message List. Otherwise re-raise the
223 -- error.
224 --
225 rollback to update_chat_message_swi;
226 if hr_multi_message.unexpected_error_add(l_proc) then
227 hr_utility.set_location(' Leaving:' || l_proc,40);
228 raise;
229 end if;
230 --
231 -- Reset IN OUT and set OUT parameters
232 --
233 p_object_version_number := l_object_version_number;
234 p_return_status := hr_multi_message.get_return_status_disable;
235 hr_utility.set_location(' Leaving:' || l_proc,50);
236 end update_chat_message;
237 -- ----------------------------------------------------------------------------
238 -- |--------------------------< delete_chat_message >-------------------------|
239 -- ----------------------------------------------------------------------------
240 PROCEDURE delete_chat_message
241 (p_validate in number default hr_api.g_false_num
242 ,p_chat_message_id in number
243 ,p_object_version_number in number
244 ,p_return_status out nocopy varchar2
245 ) is
246 --
247 -- Variables for API Boolean parameters
248 l_validate boolean;
249 --
250 -- Variables for IN/OUT parameters
251 --
252 -- Other variables
253 l_proc varchar2(72) := g_package ||'delete_chat_message';
254 Begin
255 hr_utility.set_location(' Entering:' || l_proc,10);
256 --
257 -- Issue a savepoint
258 --
259 savepoint delete_chat_message_swi;
260 --
261 -- Initialise Multiple Message Detection
262 --
263 hr_multi_message.enable_message_list;
264 --
265 -- Remember IN OUT parameter IN values
266 --
267 --
268 -- Convert constant values to their corresponding boolean value
269 --
270 l_validate :=
271 hr_api.constant_to_boolean
272 (p_constant_value => p_validate);
273 --
274 -- Register Surrogate ID or user key values
275 --
276 --
277 -- Call API
278 --
279 ota_chat_message_api.delete_chat_message
280 (p_validate => l_validate
281 ,p_chat_message_id => p_chat_message_id
282 ,p_object_version_number => p_object_version_number
283 );
284 --
285 -- Convert API warning boolean parameter values to specific
286 -- messages and add them to Multiple Message List
287 --
288 --
289 -- Convert API non-warning boolean parameter values
290 --
291 --
292 -- Derive the API return status value based on whether
293 -- messages of any type exist in the Multiple Message List.
294 -- Also disable Multiple Message Detection.
295 --
296 p_return_status := hr_multi_message.get_return_status_disable;
297 hr_utility.set_location(' Leaving:' || l_proc,20);
298 --
299 exception
300 when hr_multi_message.error_message_exist then
301 --
302 -- Catch the Multiple Message List exception which
303 -- indicates API processing has been aborted because
304 -- at least one message exists in the list.
305 --
306 rollback to delete_chat_message_swi;
307 --
308 -- Reset IN OUT parameters and set OUT parameters
309 --
310 p_return_status := hr_multi_message.get_return_status_disable;
311 hr_utility.set_location(' Leaving:' || l_proc, 30);
312 when others then
313 --
314 -- When Multiple Message Detection is enabled catch
315 -- any Application specific or other unexpected
316 -- exceptions. Adding appropriate details to the
317 -- Multiple Message List. Otherwise re-raise the
318 -- error.
319 --
320 rollback to delete_chat_message_swi;
321 if hr_multi_message.unexpected_error_add(l_proc) then
322 hr_utility.set_location(' Leaving:' || l_proc,40);
323 raise;
324 end if;
325 --
326 -- Reset IN OUT and set OUT parameters
327 --
328 p_return_status := hr_multi_message.get_return_status_disable;
329 hr_utility.set_location(' Leaving:' || l_proc,50);
330 end delete_chat_message;
331 end ota_chat_message_swi;