[Home] [Help]
PACKAGE BODY: APPS.PA_PROJECT_SUBTEAMS_PUB
Source
1 PACKAGE BODY pa_project_subteams_pub AS
2 --$Header: PARTSTPB.pls 120.1 2005/09/28 04:53:18 sunkalya noship $
3
4 PROCEDURE Create_Subteam
5 (
6 p_api_version IN NUMBER := 1.0,
7 p_init_msg_list IN VARCHAR2 := fnd_api.g_true,
8 p_commit IN VARCHAR2 := FND_API.g_false,
9 p_validate_only IN VARCHAR2 := FND_API.g_true,
10 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
11 p_calling_module IN VARCHAR2 := 'SELF_SERVICE',
12 p_debug_mode IN VARCHAR2 := 'N',
13 p_max_msg_count IN NUMBER := FND_API.g_miss_num,
14 p_subteam_name IN pa_project_subteams.name%TYPE := FND_API.g_miss_char,
15 p_object_type IN pa_project_subteams.object_type%TYPE := FND_API.g_miss_char,
16 p_object_id IN pa_project_subteams.object_id%TYPE := FND_API.g_miss_num,
17 --p_project_number IN VARCHAR2 := FND_API.g_miss_char,
18 p_object_name IN VARCHAR2 := FND_API.g_miss_char,
19 p_description IN pa_project_subteams.description%TYPE := FND_API.g_miss_char,
20 p_record_version_number IN pa_project_subteams.record_version_number%TYPE := FND_API.g_miss_num,
21 p_attribute_category IN pa_project_subteams.attribute_category%TYPE := FND_API.g_miss_char,
22 p_attribute1 IN pa_project_subteams.attribute1%TYPE := FND_API.G_MISS_CHAR,
23 p_attribute2 IN pa_project_subteams.attribute2%TYPE := FND_API.G_MISS_CHAR,
24 p_attribute3 IN pa_project_subteams.attribute3%TYPE := FND_API.G_MISS_CHAR,
25 p_attribute4 IN pa_project_subteams.attribute4%TYPE := FND_API.G_MISS_CHAR,
26 p_attribute5 IN pa_project_subteams.attribute5%TYPE := FND_API.G_MISS_CHAR,
27 p_attribute6 IN pa_project_subteams.attribute6%TYPE := FND_API.G_MISS_CHAR,
28 p_attribute7 IN pa_project_subteams.attribute7%TYPE := FND_API.G_MISS_CHAR,
29 p_attribute8 IN pa_project_subteams.attribute8%TYPE := FND_API.G_MISS_CHAR,
30 p_attribute9 IN pa_project_subteams.attribute9%TYPE := FND_API.G_MISS_CHAR,
31 p_attribute10 IN pa_project_subteams.attribute10%TYPE := FND_API.G_MISS_CHAR,
32 p_attribute11 IN pa_project_subteams.attribute11%TYPE := FND_API.G_MISS_CHAR,
33 p_attribute12 IN pa_project_subteams.attribute12%TYPE := FND_API.G_MISS_CHAR,
34 p_attribute13 IN pa_project_subteams.attribute13%TYPE := FND_API.G_MISS_CHAR,
35 p_attribute14 IN pa_project_subteams.attribute14%TYPE := FND_API.G_MISS_CHAR,
36 p_attribute15 IN pa_project_subteams.attribute15%TYPE := FND_API.G_MISS_CHAR,
37 --Bug: 4537865
38 x_new_subteam_id OUT NOCOPY pa_project_subteams.project_subteam_id%TYPE,
39 x_subteam_row_id OUT NOCOPY ROWID,
40 x_return_status OUT NOCOPY VARCHAR2,
41 x_msg_count OUT NOCOPY NUMBER,
42 x_msg_data OUT NOCOPY VARCHAR2
43 --Bug: 4537865
44 )
45 IS
46
47 l_object_id number := FND_API.g_miss_num;
48 l_msg_index_out NUMBER;
49 l_error_message_code varchar2(30);
50 BEGIN
51
52 -- Initialize the Error Stack
53 PA_DEBUG.init_err_stack('PA_PROJECT_SUBTEAMS_PUB.Create_Subteam');
54
55 -- Initialize the error flag
56 PA_PROJECT_SUBTEAMS_PUB.g_error_exists := FND_API.G_FALSE;
57
58 -- Initialize the return status to success
59 x_return_status := FND_API.G_RET_STS_SUCCESS;
60
61 --Clear the global PL/SQL message table
62 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
63 FND_MSG_PUB.initialize;
64 END IF;
65
66 -- Issue API savepoint if the transaction is to be committed
67 IF p_commit = FND_API.G_TRUE THEN
68 --DBMS_OUTPUT.Put_Line('Commit is set to '||FND_API.G_TRUE);
69 SAVEPOINT SBT_PUB_CREATE_SUBTEAM;
70 END IF;
71
72 -- Do all Value to ID conversions and validations
73 IF ((p_object_id IS NULL OR p_object_id = FND_API.G_MISS_NUM)
74 AND (p_object_name IS NOT NULL AND p_object_name <> FND_API.G_MISS_CHAR)) THEN
75 pa_project_subteam_utils.get_object_id(p_object_type => p_object_type
76 ,p_object_id => l_object_id
77 ,p_object_name => p_object_name
78 ,x_return_status => x_return_status
79 ,x_error_message_code => l_error_message_code);
80 if(x_return_status = FND_API.G_RET_STS_ERROR) then
81 PA_UTILS.Add_Message( p_app_short_name => 'PA'
82 ,p_msg_name => l_error_message_code);
83 PA_PROJECT_SUBTEAMS_PUB.g_error_exists := FND_API.G_TRUE;
84 return;
85 end if;
86 /****
87 l_project_id := PA_UTILS.GetProjId (x_project_num => p_project_number);
88 ELSIF (p_project_id IS NULL OR p_project_id = FND_API.G_MISS_NUM)
89 AND p_project_name IS NOT NULL THEN
90
91 SELECT project_id
92 INTO l_project_id
93 FROM pa_projects_all
94 WHERE name = p_project_name;
95 *****/
96 ELSE
97 l_object_id := p_object_id;
98 END IF;
99
100
101 -- Call the private package
102 PA_PROJECT_SUBTEAMS_PVT.Create_Subteam
103 (
104 p_api_version => p_api_version
105 ,p_init_msg_list => p_init_msg_list
106 ,p_commit => p_commit
107 ,p_validate_only => p_validate_only
108 ,p_validation_level => p_validation_level
109 ,p_calling_module => p_calling_module
110 ,p_debug_mode => p_debug_mode
111 ,p_max_msg_count => p_max_msg_count
112 ,p_subteam_name => p_subteam_name
113 ,p_object_type => p_object_type
114 ,p_object_id => l_object_id
115 ,p_description => p_description
116 ,p_record_version_number => p_record_version_number
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 ,x_new_subteam_id => x_new_subteam_id
134 ,x_subteam_row_id => x_subteam_row_id
135 ,x_return_status => x_return_status
136 ,x_msg_count => x_msg_count
137 ,x_msg_data => x_msg_data
138 );
139
140 --
141 -- IF the number of messaages is 1 then fetch the message code from the stack
142 -- and return its text
143 --
144
145 x_msg_count := FND_MSG_PUB.Count_Msg;
146 IF x_msg_count = 1 THEN
147 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
148 ,p_msg_index => 1
149 ,p_data => x_msg_data
150 ,p_msg_index_out => l_msg_index_out
151 );
152 END IF;
153
154 -- Reset the error stack when returning to the calling program
155 PA_DEBUG.Reset_Err_Stack;
156
157 -- If g_error_exists is TRUE then set the x_return_status to 'E'
158
159 IF PA_PROJECT_SUBTEAMS_PUB.g_error_exists = FND_API.G_TRUE THEN
160 x_return_status := FND_API.G_RET_STS_ERROR;
161 END IF;
162
163
164 -- Put any message text from message stack into the Message ARRAY
165 EXCEPTION
166 WHEN OTHERS THEN
167 IF p_commit = FND_API.G_TRUE THEN
168 ROLLBACK TO SBT_PUB_CREATE_SUBTEAM;
169 END IF;
170
171 -- Set the excetption Message and the stack
172 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_PROJECT_SUBTEAMS_PUB.Create_Subteam'
173 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
174 --
175 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
176 RAISE; -- This is optional depending on the needs
177
178 END Create_Subteam;
179
180
181 PROCEDURE Update_Subteam
182 (
183 p_api_version IN NUMBER := 1.0,
184 p_init_msg_list IN VARCHAR2 := fnd_api.g_true,
185 p_commit IN VARCHAR2 := FND_API.g_false,
186 p_validate_only IN VARCHAR2 := FND_API.g_true,
187 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
188 p_calling_module IN VARCHAR2 := 'SELF_SERVICE',
189 p_debug_mode IN VARCHAR2 := 'N',
190 p_max_msg_count IN NUMBER := FND_API.g_miss_num,
191 p_subteam_row_id IN ROWID := NULL,
192 p_subteam_id IN pa_project_subteams.project_subteam_id%TYPE := fnd_api.g_miss_num,
193 p_subteam_name IN pa_project_subteams.name%TYPE := FND_API.g_miss_char,
194 p_object_type IN pa_project_subteams.object_type%TYPE := FND_API.g_miss_char,
195 p_object_id IN pa_project_subteams.object_id%TYPE := FND_API.g_miss_num,
196 p_object_name IN VARCHAR2 := FND_API.g_miss_char,
197 p_description IN pa_project_subteams.description%TYPE := FND_API.g_miss_char,
198 p_record_version_number IN pa_project_subteams.record_version_number%TYPE := FND_API.g_miss_num,
199 p_attribute_category IN pa_project_subteams.attribute_category%TYPE := FND_API.g_miss_char,
200 p_attribute1 IN pa_project_subteams.attribute1%TYPE := FND_API.G_MISS_CHAR,
201 p_attribute2 IN pa_project_subteams.attribute2%TYPE := FND_API.G_MISS_CHAR,
202 p_attribute3 IN pa_project_subteams.attribute3%TYPE := FND_API.G_MISS_CHAR,
203 p_attribute4 IN pa_project_subteams.attribute4%TYPE := FND_API.G_MISS_CHAR,
204 p_attribute5 IN pa_project_subteams.attribute5%TYPE := FND_API.G_MISS_CHAR,
205 p_attribute6 IN pa_project_subteams.attribute6%TYPE := FND_API.G_MISS_CHAR,
206 p_attribute7 IN pa_project_subteams.attribute7%TYPE := FND_API.G_MISS_CHAR,
207 p_attribute8 IN pa_project_subteams.attribute8%TYPE := FND_API.G_MISS_CHAR,
208 p_attribute9 IN pa_project_subteams.attribute9%TYPE := FND_API.G_MISS_CHAR,
209 p_attribute10 IN pa_project_subteams.attribute10%TYPE := FND_API.G_MISS_CHAR,
210 p_attribute11 IN pa_project_subteams.attribute11%TYPE := FND_API.G_MISS_CHAR,
211 p_attribute12 IN pa_project_subteams.attribute12%TYPE := FND_API.G_MISS_CHAR,
212 p_attribute13 IN pa_project_subteams.attribute13%TYPE := FND_API.G_MISS_CHAR,
213 p_attribute14 IN pa_project_subteams.attribute14%TYPE := FND_API.G_MISS_CHAR,
214 p_attribute15 IN pa_project_subteams.attribute15%TYPE := FND_API.G_MISS_CHAR,
215 --Bug: 4537865
216 x_return_status OUT NOCOPY VARCHAR2,
217 x_msg_count OUT NOCOPY NUMBER,
218 --x_record_version_number OUT NOCOPY NUMBER,
219 x_msg_data OUT NOCOPY VARCHAR2
220 --Bug: 4537865
221 )
222 IS
223
224 CURSOR check_record_version IS
225 SELECT ROWID
226 FROM pa_project_subteams
227 WHERE (project_subteam_id = p_subteam_id
228 OR ROWID = p_subteam_row_id)
229 AND record_version_number = p_record_version_number;
230
231 l_subteam_row_id ROWID := NULL;
232 l_object_id number := FND_API.g_miss_num;
233 l_msg_index_out number;
234 l_error_message_code varchar2(30);
235 BEGIN
236
237 -- Initialize the Error Stack
238 PA_DEBUG.init_err_stack('PA_PROJECT_SUBTEAMS_PUB.Update_Subteam');
239
240 -- Initialize the error flag
241 PA_PROJECT_SUBTEAMS_PUB.g_error_exists := FND_API.G_FALSE;
242
243 -- Issue API savepoint if the transaction is to be committed
244 IF p_commit = FND_API.G_TRUE THEN
245 SAVEPOINT SBT_PUB_UPDATE_SUBTEAM;
246 END IF;
247
248 --Clear the global PL/SQL message table
249 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
250 FND_MSG_PUB.initialize;
251 END IF;
252
253 OPEN check_record_version;
254
255 FETCH check_record_version INTO l_subteam_row_id;
256
257 IF check_record_version%NOTFOUND THEN
258 PA_UTILS.Add_Message( p_app_short_name => 'PA'
259 ,p_msg_name => 'PA_XC_RECORD_CHANGED');
260 PA_PROJECT_SUBTEAMS_PUB.g_error_exists := FND_API.G_TRUE;
261 ELSE
262 -- Do all Value to ID conversions and validations
263 IF (p_object_id IS NULL OR p_object_id = FND_API.G_MISS_NUM)
264 AND (p_object_name IS NOT NULL AND p_object_name <> FND_API.G_MISS_CHAR) THEN
265 pa_project_subteam_utils.get_object_id(p_object_type => p_object_type
266 ,p_object_id => l_object_id
267 ,p_object_name => p_object_name
268 ,x_return_status => x_return_status
269 ,x_error_message_code => l_error_message_code);
270 if(x_return_status = FND_API.G_RET_STS_ERROR) then
271 PA_UTILS.Add_Message( p_app_short_name => 'PA'
272 ,p_msg_name =>l_error_message_code );
273 PA_PROJECT_SUBTEAMS_PUB.g_error_exists := FND_API.G_TRUE;
274 return;
275 end if;
276 --l_project_id := PA_UTILS.GetProjId (x_project_num => p_project_number);
277 ELSE
278 l_object_id := p_object_id;
279 END IF;
280
281
282 -- Call the private package
283 PA_PROJECT_SUBTEAMS_PVT.Update_Subteam
284 (
285 p_api_version => p_api_version
286 ,p_init_msg_list => p_init_msg_list
287 ,p_commit => p_commit
288 ,p_validate_only => p_validate_only
289 ,p_validation_level => p_validation_level
290 ,p_calling_module => p_calling_module
291 ,p_debug_mode => p_debug_mode
292 ,p_max_msg_count => p_max_msg_count
293
294 ,p_subteam_row_id => l_subteam_row_id
295 ,p_subteam_id => p_subteam_id
296 ,p_subteam_name => p_subteam_name
297 ,p_object_type => p_object_type
298 ,p_object_id => l_object_id
299 ,p_description => p_description
300 ,p_record_version_number => p_record_version_number
301 ,p_attribute_category => p_attribute_category
302 ,p_attribute1 => p_attribute1
303 ,p_attribute2 => p_attribute2
304 ,p_attribute3 => p_attribute3
305 ,p_attribute4 => p_attribute4
306 ,p_attribute5 => p_attribute5
307 ,p_attribute6 => p_attribute6
308 ,p_attribute7 => p_attribute7
309 ,p_attribute8 => p_attribute8
310 ,p_attribute9 => p_attribute9
311 ,p_attribute10 => p_attribute10
312 ,p_attribute11 => p_attribute11
313 ,p_attribute12 => p_attribute12
314 ,p_attribute13 => p_attribute13
315 ,p_attribute14 => p_attribute14
316 ,p_attribute15 => p_attribute15
317 ,x_return_status => x_return_status
318 ,x_msg_count => x_msg_count
319 -- ,x_record_version_number => x_record_version_number
320 ,x_msg_data => x_msg_data
321 );
322
323 END IF;
324
325 CLOSE check_record_version;
326 --
327 -- IF the number of messaages is 1 then fetch the message code from the
328 -- stack and return its text
329 --
330 x_msg_count := FND_MSG_PUB.Count_Msg;
331 IF x_msg_count = 1 THEN
332 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
333 ,p_msg_index => 1
334 ,p_data => x_msg_data
335 ,p_msg_index_out => l_msg_index_out
336 );
337 END IF;
338
339
340 -- Reset the error stack when returning to the calling program
341 PA_DEBUG.Reset_Err_Stack;
342
343 -- If g_error_exists is TRUE then set the x_return_status to 'E'
344
345 IF PA_PROJECT_SUBTEAMS_PUB.g_error_exists = FND_API.G_TRUE THEN
346 x_return_status := FND_API.G_RET_STS_ERROR;
347 /***
348 SELECT record_version_number
349 into x_record_version_number
350 FROM pa_project_subteams
351 WHERE project_subteam_id = p_subteam_id;
352
353 ELSE
354 x_record_version_number := p_record_version_number + 1;
355 **/
356 END IF;
357
358 -- Put any message text from message stack into the Message ARRAY
359 EXCEPTION
360 WHEN OTHERS THEN
361 IF p_commit = FND_API.G_TRUE THEN
362 ROLLBACK TO SBT_PUB_UPDATE_SUBTEAM;
363 END IF;
364
365 -- Set the exception Message and the stack
366 FND_MSG_PUB.add_exc_msg ( p_pkg_name => 'PA_PROJECT_SUBTEAMS_PUB.Update_Subteam'
367 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
368 --
369 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
370 RAISE; -- This is optional depending on the needs
371 --
372 END Update_Subteam;
373
374
375
376 PROCEDURE Delete_Subteam
377 (
378 p_api_version IN NUMBER := 1.0,
379 p_init_msg_list IN VARCHAR2 := fnd_api.g_true,
380 p_commit IN VARCHAR2 := FND_API.g_false,
381
382 p_validate_only IN VARCHAR2 := FND_API.g_true,
383
384 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
385
386 p_calling_module IN VARCHAR2
387 := 'SELF_SERVICE',
388
389 p_debug_mode IN VARCHAR2 := 'N',
390
391 p_max_msg_count IN NUMBER := FND_API.g_miss_num,
392
393 p_subteam_row_id IN ROWID := NULL,
394
395 p_subteam_id IN pa_project_subteams.project_subteam_id%TYPE := FND_API.G_MISS_NUM,
396
397 p_object_type IN pa_project_subteams.object_type%TYPE := fnd_api.g_miss_char,
398 p_object_id IN pa_project_subteams.object_id%TYPE := FND_API.g_miss_num,
399
400 p_subteam_name IN pa_project_subteams.name%TYPE := fnd_api.g_miss_char,
401
402 p_record_version_number IN NUMBER := FND_API.G_MISS_NUM ,
403
404 --Bug: 4537865
405 x_return_status OUT NOCOPY VARCHAR2,
406
407 x_msg_count OUT NOCOPY NUMBER,
408
409 x_msg_data OUT NOCOPY VARCHAR2
410 --Bug: 4537865
411 ) IS
412
413 l_subteam_row_id ROWID;
414 l_msg_index_out NUMBER;
415
416 CURSOR check_subteam IS
417 SELECT ROWID
418 FROM pa_project_subteams
419 WHERE (project_subteam_id = p_subteam_id AND p_subteam_id IS NOT NULL)
420 OR (name = p_subteam_name
421 AND p_subteam_name IS NOT NULL
422 AND object_type = p_object_type
423 AND object_id = p_object_id
424 AND p_object_id IS NOT null)
425 OR ROWID = p_subteam_row_id ;
426
427
428 BEGIN
429
430 -- Initialize the Error Stack
431 PA_DEBUG.init_err_stack('PA_PROJECT_SUBTEAMS_PUB.Delete_Subteam');
432
433 -- Initialize the error flag
434 PA_PROJECT_SUBTEAMS_PUB.g_error_exists := FND_API.G_FALSE;
435
436 -- Issue API savepoint if the transaction is to be committed
437 IF p_commit = FND_API.G_TRUE THEN
438 SAVEPOINT SBT_PUB_DELETE_SUBTEAM;
439 END IF;
440
441 --Clear the global PL/SQL message table
442 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
443 FND_MSG_PUB.initialize;
444 END IF;
445
446 OPEN check_subteam;
447
448 FETCH check_subteam INTO l_subteam_row_id;
449
450 IF check_subteam%NOTFOUND THEN
451
452 PA_UTILS.Add_Message( p_app_short_name => 'PA'
453 ,p_msg_name => 'PA_XC_RECORD_CHANGED');
454 PA_PROJECT_SUBTEAMS_PUB.g_error_exists := FND_API.G_TRUE;
455
456 ELSE
457
458 -- Call the private API
459 PA_PROJECT_SUBTEAMS_PVT.Delete_Subteam
460 (
461 p_api_version => p_api_version
462 ,p_init_msg_list => p_init_msg_list
463 ,p_commit => p_commit
464 ,p_validate_only => p_validate_only
465 ,p_validation_level => p_validation_level
466 ,p_calling_module => p_calling_module
467 ,p_debug_mode => p_debug_mode
468 ,p_max_msg_count => p_max_msg_count
469 ,p_subteam_row_id => l_subteam_row_id
470 ,p_subteam_id => p_subteam_id
471 ,p_record_version_number => p_record_version_number
472 ,x_return_status => x_return_status
473 ,x_msg_count => x_msg_count
474 ,x_msg_data => x_msg_data
475 );
476
477
478 END IF;
479
480 CLOSE check_subteam;
481 --
482 -- IF the number of messages is 1 then fetch the message code from the stack and return its text
483 --
484 x_msg_count := FND_MSG_PUB.Count_Msg;
485 IF x_msg_count = 1 THEN
486 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
487 ,p_msg_index => 1
488 ,p_data => x_msg_data
489 ,p_msg_index_out => l_msg_index_out
490 );
491 END IF;
492
493 -- Reset the error stack when returning to the calling program
494 PA_DEBUG.Reset_Err_Stack;
495
496 -- If g_error_exists is TRUE then set the x_return_status to 'E'
497
498 IF PA_PROJECT_SUBTEAMS_PUB.g_error_exists = FND_API.G_TRUE THEN
499
500 x_return_status := FND_API.G_RET_STS_ERROR;
501
502 END IF;
503
504
505 -- Put any message text from message stack into the Message ARRAY
506 --
507 EXCEPTION
508 WHEN OTHERS THEN
509 IF p_commit = FND_API.G_TRUE THEN
510 ROLLBACK TO SBT_PUB_DELETE_SUBTEAM;
511 END IF;
512 -- Set the excetption Message and the stack
513 FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_PROJECT_SUBTEAMS_PUB.Delete_Subteam'
514 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
515 --
516 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
517 RAISE; -- This is optional depending on the needs
518 --
519 END Delete_Subteam;
520
521 PROCEDURE Delete_Subteam_By_Obj
522 (
523 p_api_version IN NUMBER := 1.0,
524 p_init_msg_list IN VARCHAR2 := fnd_api.g_true,
525 p_commit IN VARCHAR2 := FND_API.g_false,
526
527 p_validate_only IN VARCHAR2 := FND_API.g_true,
528
529 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
530
531 p_calling_module IN VARCHAR2
532 := 'SELF_SERVICE',
533
534 p_debug_mode IN VARCHAR2 := 'N',
535
536 p_max_msg_count IN NUMBER := FND_API.g_miss_num,
537
538 p_object_type IN pa_project_subteams.object_type%TYPE := fnd_api.g_miss_char,
539 p_object_id IN pa_project_subteams.object_id%TYPE := FND_API.g_miss_num,
540
541 --Bug: 4537865
542 x_return_status OUT NOCOPY VARCHAR2,
543
544 x_msg_count OUT NOCOPY NUMBER,
545
546 x_msg_data OUT NOCOPY VARCHAR2
547 --Bug: 4537865
548 ) IS
549
550 l_subteam_row_id ROWID;
551 l_msg_index_out NUMBER;
552
553 CURSOR check_subteam IS
554 SELECT ROWID
555 FROM pa_project_subteams
556 WHERE
557 object_type = p_object_type
558 AND object_id = p_object_id ;
559
560
561 BEGIN
562
563 -- Initialize the Error Stack
564 PA_DEBUG.init_err_stack('PA_PROJECT_SUBTEAMS_PUB.Delete_Subteam_By_Obj');
565
566 -- Initialize the error flag
567 PA_PROJECT_SUBTEAMS_PUB.g_error_exists := FND_API.G_FALSE;
568
569 -- Issue API savepoint if the transaction is to be committed
570 IF p_commit = FND_API.G_TRUE THEN
571 SAVEPOINT SBT_PUB_DELETE_SUBTEAM_BY_OBJ;
572 END IF;
573
574 --Clear the global PL/SQL message table
575 IF FND_API.TO_BOOLEAN( p_init_msg_list ) THEN
576 FND_MSG_PUB.initialize;
577 END IF;
578
579 OPEN check_subteam;
580
581 LOOP
582 FETCH check_subteam INTO l_subteam_row_id;
583 EXIT WHEN check_subteam%notfound;
584
585 --IF check_subteam%NOTFOUND THEN
586
587 --PA_UTILS.Add_Message( p_app_short_name => 'PA'
588 -- ,p_msg_name => 'PA_XC_RECORD_CHANGED');
589 --PA_PROJECT_SUBTEAMS_PUB.g_error_exists := FND_API.G_TRUE;
590
591 --ELSE
592
593 -- Call the private API
594 PA_PROJECT_SUBTEAMS_PVT.Delete_Subteam
595 (
596 p_api_version => p_api_version
597 ,p_init_msg_list => p_init_msg_list
598 ,p_commit => p_commit
599 ,p_validate_only => p_validate_only
600 ,p_validation_level => p_validation_level
601 ,p_calling_module => p_calling_module
602 ,p_debug_mode => p_debug_mode
603 ,p_max_msg_count => p_max_msg_count
604 ,p_subteam_row_id => l_subteam_row_id
605 --,p_subteam_id => p_subteam_id
606 --,p_record_version_number => p_record_version_number
607 ,x_return_status => x_return_status
608 ,x_msg_count => x_msg_count
609 ,x_msg_data => x_msg_data
610 );
611 END LOOP;
612
613 CLOSE check_subteam;
614
615 --
616 -- IF the number of messages is 1 then fetch the message code from the stack and return its text
617 --
618 x_msg_count := FND_MSG_PUB.Count_Msg;
619 IF x_msg_count = 1 THEN
620 pa_interface_utils_pub.get_messages ( p_encoded => FND_API.G_TRUE
621 ,p_msg_index => 1
622 ,p_data => x_msg_data
623 ,p_msg_index_out => l_msg_index_out
624 );
625 END IF;
626
627 -- Reset the error stack when returning to the calling program
628 PA_DEBUG.Reset_Err_Stack;
629
630 -- If g_error_exists is TRUE then set the x_return_status to 'E'
631
632 IF PA_PROJECT_SUBTEAMS_PUB.g_error_exists = FND_API.G_TRUE THEN
633
634 x_return_status := FND_API.G_RET_STS_ERROR;
635
636 END IF;
637
638
639 -- Put any message text from message stack into the Message ARRAY
640 --
641 EXCEPTION
642 WHEN OTHERS THEN
643 IF p_commit = FND_API.G_TRUE THEN
644 ROLLBACK TO SBT_PUB_DELETE_SUBTEAM_BY_OBJ;
645 END IF;
646 -- Set the excetption Message and the stack
647 FND_MSG_PUB.add_exc_msg( p_pkg_name => 'PA_PROJECT_SUBTEAMS_PUB.Delete_Subteam_By_Obj'
648 ,p_procedure_name => PA_DEBUG.G_Err_Stack );
649 --
650 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
651 RAISE; -- This is optional depending on the needs
652 --
653 END Delete_Subteam_By_Obj;
654
655 --
656 --
657 END pa_project_subteams_pub;
658 --