[Home] [Help]
PACKAGE BODY: APPS.JTF_TASK_CONFIRMATION_PUB
Source
1 PACKAGE BODY JTF_TASK_CONFIRMATION_PUB AS
2 /* $Header: jtfptcfb.pls 120.2.12020000.3 2012/10/08 06:55:54 kramini ship $ */
3 g_pkg_name CONSTANT VARCHAR2(30) := 'JTF_TASK_CONFIRMATION_PUB';
4
5 /*Procedure used internally*/
6 PROCEDURE SET_COUNTER_STATUS (
7 p_api_version IN NUMBER,
8 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
9 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
10 x_return_status OUT NOCOPY VARCHAR2,
11 x_msg_count OUT NOCOPY NUMBER,
12 x_msg_data OUT NOCOPY VARCHAR2,
13 p_object_version_number IN OUT NOCOPY NUMBER,
14 p_task_id IN NUMBER,
15 p_task_confirmation_status IN VARCHAR2,
16 p_task_confirmation_counter IN NUMBER
17 )
18 IS
19 l_api_version CONSTANT NUMBER
20 := 1.0;
21 l_api_name CONSTANT VARCHAR2(30)
22 := 'SET_COUNTER_STATUS';
23 BEGIN
24 SAVEPOINT SET_COUNTER_STATUS_1;
25 x_return_status := fnd_api.g_ret_sts_success;
26
27 IF fnd_api.to_boolean (p_init_msg_list)
28 THEN
29 fnd_msg_pub.initialize;
30 END IF;
31
32 IF NOT fnd_api.compatible_api_call (
33 l_api_version,
34 p_api_version,
35 l_api_name,
36 g_pkg_name
37 )
38 THEN
39 RAISE fnd_api.g_exc_unexpected_error;
40 END IF;
41
42 SET_COUNTER_STATUS(
43 p_api_version => p_api_version
44 , p_init_msg_list => p_init_msg_list
45 , p_commit => p_commit
46 , x_return_status => x_return_status
47 , x_msg_count => x_msg_count
48 , x_msg_data => x_msg_data
49 , p_object_version_number => p_object_version_number
50 , p_task_id => p_task_id
51 , p_task_confirmation_status => p_task_confirmation_status
52 , p_task_confirmation_counter => p_task_confirmation_counter
53 , p_skip_events => fnd_api.g_false
54 );
55
56 IF NOT(x_return_status = fnd_api.g_ret_sts_success) THEN
57 x_return_status := fnd_api.g_ret_sts_unexp_error;
58 RAISE fnd_api.g_exc_unexpected_error;
59 END IF;
60
61 IF fnd_api.to_boolean(p_commit) THEN
62 COMMIT WORK;
63 END IF;
64
65 fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
66 EXCEPTION
67 WHEN fnd_api.g_exc_unexpected_error THEN
68 ROLLBACK TO SET_COUNTER_STATUS_1;
69 x_return_status := fnd_api.g_ret_sts_unexp_error;
70 fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
71 WHEN OTHERS THEN
72 ROLLBACK TO SET_COUNTER_STATUS_1;
73 fnd_message.set_name('JTF', 'JTF_TASK_UNKNOWN_ERROR');
74 fnd_message.set_token('P_TEXT', SQLCODE || SQLERRM);
75 fnd_msg_pub.ADD;
76 x_return_status := fnd_api.g_ret_sts_unexp_error;
77 fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
78
79 END SET_COUNTER_STATUS;
80
81 PROCEDURE RESET_COUNTER (
82 p_api_version IN NUMBER,
83 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
84 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
85 x_return_status OUT NOCOPY VARCHAR2,
86 x_msg_count OUT NOCOPY NUMBER,
87 x_msg_data OUT NOCOPY VARCHAR2,
88 p_object_version_number IN OUT NOCOPY NUMBER,
89 p_task_id IN NUMBER
90 )
91 IS
92 l_api_version CONSTANT NUMBER
93 := 1.0;
94 l_api_name CONSTANT VARCHAR2(30)
95 := 'RESET_COUNTER';
96 BEGIN
97 SAVEPOINT RESET_COUNTER;
98 x_return_status := fnd_api.g_ret_sts_success;
99
100 IF fnd_api.to_boolean (p_init_msg_list)
101 THEN
102 fnd_msg_pub.initialize;
103 END IF;
104
105 IF NOT fnd_api.compatible_api_call (
106 l_api_version,
107 p_api_version,
108 l_api_name,
109 g_pkg_name
110 )
111 THEN
112 RAISE fnd_api.g_exc_unexpected_error;
113 END IF;
114
115 SET_COUNTER_STATUS
116 (
117 p_api_version => p_api_version,
118 p_init_msg_list => p_init_msg_list,
119 p_commit => p_commit,
120 x_return_status => x_return_status,
121 x_msg_count => x_msg_count,
122 x_msg_data => x_msg_data,
123 p_object_version_number => p_object_version_number,
124 p_task_id => p_task_id,
125 p_task_confirmation_status => jtf_task_utl.g_miss_char,
126 p_task_confirmation_counter => 0
127 );
128
129 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
130 THEN
131 RAISE fnd_api.g_exc_unexpected_error;
132 END IF;
133
134 IF fnd_api.to_boolean (p_commit)
135 THEN
136 COMMIT WORK;
137 END IF;
138
139 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
140 EXCEPTION
141 WHEN fnd_api.g_exc_unexpected_error
142 THEN
143 ROLLBACK TO RESET_COUNTER;
144 x_return_status := fnd_api.G_RET_STS_UNEXP_ERROR;
145 fnd_msg_pub.count_and_get (
146 p_count => x_msg_count,
147 p_data => x_msg_data
148 );
149 WHEN fnd_api.g_exc_error
150 THEN
151 ROLLBACK TO RESET_COUNTER;
152 x_return_status := fnd_api.G_RET_STS_ERROR;
153 fnd_msg_pub.count_and_get (
154 p_count => x_msg_count,
155 p_data => x_msg_data
156 );
157 WHEN OTHERS
158 THEN
159 ROLLBACK TO RESET_COUNTER;
160 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
161 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
162 fnd_msg_pub.add;
163 x_return_status := fnd_api.g_ret_sts_unexp_error;
164 fnd_msg_pub.count_and_get (
165 p_count => x_msg_count,
166 p_data => x_msg_data
167 );
168
169 END RESET_COUNTER;
170
171 FUNCTION get_conf_counter (p_task_id IN NUMBER)
172 RETURN NUMBER
173 IS
174 l_conf_counter NUMBER;
175 BEGIN
176 SELECT nvl(task_confirmation_counter, 0)
177 INTO l_conf_counter
178 FROM jtf_tasks_b
179 WHERE task_id = p_task_id;
180
181 RETURN l_conf_counter;
182 EXCEPTION
183 WHEN OTHERS
184 THEN
185 RETURN NULL;
186 END;
187
188 PROCEDURE INCREASE_COUNTER (
189 p_api_version IN NUMBER,
190 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
191 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
192 x_return_status OUT NOCOPY VARCHAR2,
193 x_msg_count OUT NOCOPY NUMBER,
194 x_msg_data OUT NOCOPY VARCHAR2,
195 p_object_version_number IN OUT NOCOPY NUMBER,
196 p_task_id IN NUMBER
197 )
198 IS
199 l_api_version CONSTANT NUMBER
200 := 1.0;
201 l_api_name CONSTANT VARCHAR2(30)
202 := 'RESET_COUNTER';
203 l_conf_counter NUMBER;
204 l_ovn NUMBER := p_object_version_number;
205
206 BEGIN
207 SAVEPOINT INCREASE_COUNTER;
208 x_return_status := fnd_api.g_ret_sts_success;
209
210 IF fnd_api.to_boolean (p_init_msg_list)
211 THEN
212 fnd_msg_pub.initialize;
213 END IF;
214
215 IF NOT fnd_api.compatible_api_call (
216 l_api_version,
217 p_api_version,
218 l_api_name,
219 g_pkg_name
220 )
221 THEN
222 RAISE fnd_api.g_exc_unexpected_error;
223 END IF;
224
225 l_conf_counter := get_conf_counter (p_task_id);
226
227 SET_COUNTER_STATUS
228 (
229 p_api_version => p_api_version,
230 p_init_msg_list => p_init_msg_list,
231 p_commit => p_commit,
232 x_return_status => x_return_status,
233 x_msg_count => x_msg_count,
234 x_msg_data => x_msg_data,
235 p_object_version_number => p_object_version_number,
236 p_task_id => p_task_id,
237 p_task_confirmation_status => jtf_task_utl.g_miss_char,
238 p_task_confirmation_counter => nvl(l_conf_counter,0) + 1
239 );
240
241 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
242 THEN
243 RAISE fnd_api.g_exc_unexpected_error;
244 END IF;
245
246 IF fnd_api.to_boolean (p_commit)
247 THEN
248 COMMIT WORK;
249 END IF;
250
251 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
252 EXCEPTION
253 WHEN fnd_api.g_exc_unexpected_error
254 THEN
255 ROLLBACK TO INCREASE_COUNTER;
256 x_return_status := fnd_api.g_ret_sts_unexp_error;
257 fnd_msg_pub.count_and_get (
258 p_count => x_msg_count,
259 p_data => x_msg_data
260 );
261 WHEN fnd_api.g_exc_error
262 THEN
263 ROLLBACK TO INCREASE_COUNTER;
264 x_return_status := fnd_api.G_RET_STS_ERROR;
265 fnd_msg_pub.count_and_get (
266 p_count => x_msg_count,
267 p_data => x_msg_data
268 );
269 WHEN OTHERS
270 THEN
271 ROLLBACK TO INCREASE_COUNTER;
272 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
273 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
274 fnd_msg_pub.add;
275 x_return_status := fnd_api.g_ret_sts_unexp_error;
276 fnd_msg_pub.count_and_get (
277 p_count => x_msg_count,
278 p_data => x_msg_data
279 );
280
281 END INCREASE_COUNTER;
282
283 PROCEDURE DECREASE_COUNTER (
284 p_api_version IN NUMBER,
285 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
286 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
287 x_return_status OUT NOCOPY VARCHAR2,
288 x_msg_count OUT NOCOPY NUMBER,
289 x_msg_data OUT NOCOPY VARCHAR2,
290 p_object_version_number IN OUT NOCOPY NUMBER,
291 p_task_id IN NUMBER
292 )
293 IS
294 l_api_version CONSTANT NUMBER
295 := 1.0;
296 l_api_name CONSTANT VARCHAR2(30)
297 := 'DECREASE_COUNTER';
298
299 l_conf_counter NUMBER;
300
301 BEGIN
302 SAVEPOINT DECREASE_COUNTER;
303 x_return_status := fnd_api.g_ret_sts_success;
304
305 IF fnd_api.to_boolean (p_init_msg_list)
306 THEN
307 fnd_msg_pub.initialize;
308 END IF;
309
310 IF NOT fnd_api.compatible_api_call (
311 l_api_version,
312 p_api_version,
313 l_api_name,
314 g_pkg_name
315 )
316 THEN
317 RAISE fnd_api.g_exc_unexpected_error;
318 END IF;
319
320 l_conf_counter := get_conf_counter (p_task_id);
321
322 SET_COUNTER_STATUS
323 (
324 p_api_version => p_api_version,
325 p_init_msg_list => p_init_msg_list,
326 p_commit => p_commit,
327 x_return_status => x_return_status,
328 x_msg_count => x_msg_count,
329 x_msg_data => x_msg_data,
330 p_object_version_number => p_object_version_number,
331 p_task_id => p_task_id,
332 p_task_confirmation_status => jtf_task_utl.g_miss_char,
333 p_task_confirmation_counter => nvl(l_conf_counter,0) - 1
334 );
335
336 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
337 THEN
338 RAISE fnd_api.g_exc_unexpected_error;
339 END IF;
340
341 IF fnd_api.to_boolean (p_commit)
342 THEN
343 COMMIT WORK;
344 END IF;
345
346 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
347 EXCEPTION
348 WHEN fnd_api.g_exc_unexpected_error
349 THEN
350 ROLLBACK TO DECREASE_COUNTER;
351 x_return_status := fnd_api.g_ret_sts_unexp_error;
352 fnd_msg_pub.count_and_get (
353 p_count => x_msg_count,
354 p_data => x_msg_data
355 );
356 WHEN fnd_api.g_exc_error
357 THEN
358 ROLLBACK TO DECREASE_COUNTER;
359 x_return_status := fnd_api.G_RET_STS_ERROR;
360 fnd_msg_pub.count_and_get (
361 p_count => x_msg_count,
362 p_data => x_msg_data
363 );
364 WHEN OTHERS
365 THEN
366 ROLLBACK TO DECREASE_COUNTER;
367 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
368 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
369 fnd_msg_pub.add;
370 x_return_status := fnd_api.g_ret_sts_unexp_error;
371 fnd_msg_pub.count_and_get (
372 p_count => x_msg_count,
373 p_data => x_msg_data
374 );
375
376 END DECREASE_COUNTER;
377
378 PROCEDURE CHANGE_COUNTER_SIGN (
379 p_api_version IN NUMBER,
380 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
381 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
382 x_return_status OUT NOCOPY VARCHAR2,
383 x_msg_count OUT NOCOPY NUMBER,
384 x_msg_data OUT NOCOPY VARCHAR2,
385 p_object_version_number IN OUT NOCOPY NUMBER,
386 p_task_id IN NUMBER
387 )
388 IS
389 l_api_version CONSTANT NUMBER
390 := 1.0;
391 l_api_name CONSTANT VARCHAR2(30)
392 := 'CHANGE_COUNTER_SIGN';
393
394 l_conf_counter NUMBER;
395
396 BEGIN
397 SAVEPOINT CHANGE_COUNTER_SIGN;
398 x_return_status := fnd_api.g_ret_sts_success;
399
400 IF fnd_api.to_boolean (p_init_msg_list)
401 THEN
402 fnd_msg_pub.initialize;
403 END IF;
404
405 IF NOT fnd_api.compatible_api_call (
406 l_api_version,
407 p_api_version,
408 l_api_name,
409 g_pkg_name
410 )
411 THEN
412 RAISE fnd_api.g_exc_unexpected_error;
413 END IF;
414
415 l_conf_counter := get_conf_counter (p_task_id);
416
417 SET_COUNTER_STATUS
418 (
419 p_api_version => p_api_version,
420 p_init_msg_list => p_init_msg_list,
421 p_commit => p_commit,
422 x_return_status => x_return_status,
423 x_msg_count => x_msg_count,
424 x_msg_data => x_msg_data,
425 p_object_version_number => p_object_version_number,
426 p_task_id => p_task_id,
427 p_task_confirmation_status => jtf_task_utl.g_miss_char,
428 p_task_confirmation_counter => nvl(l_conf_counter,0)*(-1)
429 );
430
431 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
432 THEN
433 RAISE fnd_api.g_exc_unexpected_error;
434 END IF;
435
436 IF fnd_api.to_boolean (p_commit)
437 THEN
438 COMMIT WORK;
439 END IF;
440
441 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
442 EXCEPTION
443 WHEN fnd_api.g_exc_unexpected_error
444 THEN
445 ROLLBACK TO CHANGE_COUNTER_SIGN;
446 x_return_status := fnd_api.g_ret_sts_unexp_error;
447 fnd_msg_pub.count_and_get (
448 p_count => x_msg_count,
449 p_data => x_msg_data
450 );
451 WHEN fnd_api.g_exc_error
452 THEN
453 ROLLBACK TO CHANGE_COUNTER_SIGN;
454 x_return_status := fnd_api.G_RET_STS_ERROR;
455 fnd_msg_pub.count_and_get (
456 p_count => x_msg_count,
457 p_data => x_msg_data
458 );
459 WHEN OTHERS
460 THEN
461 ROLLBACK TO CHANGE_COUNTER_SIGN;
462 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
463 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
464 fnd_msg_pub.add;
465 x_return_status := fnd_api.g_ret_sts_unexp_error;
466 fnd_msg_pub.count_and_get (
467 p_count => x_msg_count,
468 p_data => x_msg_data
469 );
470
471 END CHANGE_COUNTER_SIGN;
472
473 PROCEDURE RESET_CONFIRMATION_STATUS (
474 p_api_version IN NUMBER,
475 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
476 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
477 x_return_status OUT NOCOPY VARCHAR2,
478 x_msg_count OUT NOCOPY NUMBER,
479 x_msg_data OUT NOCOPY VARCHAR2,
480 p_object_version_number IN OUT NOCOPY NUMBER,
481 p_task_id IN NUMBER
482 )
483 IS
484 l_api_version CONSTANT NUMBER
485 := 1.0;
486 l_api_name CONSTANT VARCHAR2(30)
487 := 'SET_CONFIRMATION_REQUIRED';
488 BEGIN
489 SAVEPOINT RESET_CONFIRMATION_STATUS_1;
490 x_return_status := fnd_api.g_ret_sts_success;
491
492 IF fnd_api.to_boolean (p_init_msg_list)
493 THEN
494 fnd_msg_pub.initialize;
495 END IF;
496
497 IF NOT fnd_api.compatible_api_call (
498 l_api_version,
499 p_api_version,
500 l_api_name,
501 g_pkg_name
502 )
503 THEN
504 RAISE fnd_api.g_exc_unexpected_error;
505 END IF;
506
507 RESET_CONFIRMATION_STATUS(
508 p_api_version => p_api_version
509 , p_init_msg_list => p_init_msg_list
510 , p_commit => p_commit
511 , x_return_status => x_return_status
512 , x_msg_count => x_msg_count
513 , x_msg_data => x_msg_data
514 , p_object_version_number => p_object_version_number
515 , p_task_id => p_task_id
516 , p_skip_events => fnd_api.g_false
517 );
518
519 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
520 THEN
521 RAISE fnd_api.g_exc_unexpected_error;
522 END IF;
523
524 IF fnd_api.to_boolean (p_commit)
525 THEN
526 COMMIT WORK;
527 END IF;
528
529 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
530 EXCEPTION
531 WHEN fnd_api.g_exc_unexpected_error
532 THEN
533 ROLLBACK TO RESET_CONFIRMATION_STATUS_1;
534 x_return_status := fnd_api.g_ret_sts_unexp_error;
535 fnd_msg_pub.count_and_get (
536 p_count => x_msg_count,
537 p_data => x_msg_data
538 );
539 WHEN fnd_api.g_exc_error
540 THEN
541 ROLLBACK TO RESET_CONFIRMATION_STATUS_1;
542 x_return_status := fnd_api.G_RET_STS_ERROR;
543 fnd_msg_pub.count_and_get (
544 p_count => x_msg_count,
545 p_data => x_msg_data
546 );
547 WHEN OTHERS
548 THEN
549 ROLLBACK TO RESET_CONFIRMATION_STATUS_1;
550 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
551 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
552 fnd_msg_pub.add;
553 x_return_status := fnd_api.g_ret_sts_unexp_error;
554 fnd_msg_pub.count_and_get (
555 p_count => x_msg_count,
556 p_data => x_msg_data
557 );
558
559 END RESET_CONFIRMATION_STATUS;
560
561 PROCEDURE SET_CONFIRMATION_REQUIRED (
562 p_api_version IN NUMBER,
563 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
564 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
565 x_return_status OUT NOCOPY VARCHAR2,
566 x_msg_count OUT NOCOPY NUMBER,
567 x_msg_data OUT NOCOPY VARCHAR2,
568 p_object_version_number IN OUT NOCOPY NUMBER,
569 p_task_id IN NUMBER
570 )
571 IS
572 l_api_version CONSTANT NUMBER
573 := 1.0;
574 l_api_name CONSTANT VARCHAR2(30)
575 := 'SET_CONFIRMATION_REQUIRED';
576
577 BEGIN
578 SAVEPOINT SET_CONFIRMATION_REQUIRED_1;
579 x_return_status := fnd_api.g_ret_sts_success;
580
581 IF fnd_api.to_boolean (p_init_msg_list)
582 THEN
583 fnd_msg_pub.initialize;
584 END IF;
585
586 IF NOT fnd_api.compatible_api_call (
587 l_api_version,
588 p_api_version,
589 l_api_name,
590 g_pkg_name
591 )
592 THEN
593 RAISE fnd_api.g_exc_unexpected_error;
594 END IF;
595
596 SET_CONFIRMATION_REQUIRED(
597 p_api_version => p_api_version
598 , p_init_msg_list => p_init_msg_list
599 , p_commit => p_commit
600 , x_return_status => x_return_status
601 , x_msg_count => x_msg_count
602 , x_msg_data => x_msg_data
603 , p_object_version_number => p_object_version_number
604 , p_task_id => p_task_id
605 , p_skip_events => fnd_api.g_false
606 );
607
608
609 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
610 THEN
611 RAISE fnd_api.g_exc_unexpected_error;
612 END IF;
613
614 IF fnd_api.to_boolean (p_commit)
615 THEN
616 COMMIT WORK;
617 END IF;
618
619 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
620 EXCEPTION
621 WHEN fnd_api.g_exc_unexpected_error
622 THEN
623 ROLLBACK TO SET_CONFIRMATION_REQUIRED_1;
624 x_return_status := fnd_api.g_ret_sts_unexp_error;
625 fnd_msg_pub.count_and_get (
626 p_count => x_msg_count,
627 p_data => x_msg_data
628 );
629 WHEN fnd_api.g_exc_error
630 THEN
631 ROLLBACK TO SET_CONFIRMATION_REQUIRED_1;
632 x_return_status := fnd_api.G_RET_STS_ERROR;
633 fnd_msg_pub.count_and_get (
634 p_count => x_msg_count,
635 p_data => x_msg_data
636 );
637 WHEN OTHERS
638 THEN
639 ROLLBACK TO SET_CONFIRMATION_REQUIRED_1;
640 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
641 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
642 fnd_msg_pub.add;
643 x_return_status := fnd_api.g_ret_sts_unexp_error;
644 fnd_msg_pub.count_and_get (
645 p_count => x_msg_count,
646 p_data => x_msg_data
647 );
648
649 END SET_CONFIRMATION_REQUIRED;
650
651 PROCEDURE SET_CONFIRMATION_CONFIRMED (
652 p_api_version IN NUMBER,
653 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
654 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
655 x_return_status OUT NOCOPY VARCHAR2,
656 x_msg_count OUT NOCOPY NUMBER,
657 x_msg_data OUT NOCOPY VARCHAR2,
658 p_object_version_number IN OUT NOCOPY NUMBER,
659 p_task_id IN NUMBER
660 )
661 IS
662 l_api_version CONSTANT NUMBER
663 := 1.0;
664 l_api_name CONSTANT VARCHAR2(30)
665 := 'SET_CONFIRMATION_CONFIRMED';
666
667
668
669 BEGIN
670 SAVEPOINT SET_CONFIRMATION_CONFIRMED_1;
671 x_return_status := fnd_api.g_ret_sts_success;
672
673 IF fnd_api.to_boolean (p_init_msg_list)
674 THEN
675 fnd_msg_pub.initialize;
676 END IF;
677
678 IF NOT fnd_api.compatible_api_call (
679 l_api_version,
680 p_api_version,
681 l_api_name,
682 g_pkg_name
683 )
684 THEN
685 RAISE fnd_api.g_exc_unexpected_error;
686 END IF;
687
688 SET_CONFIRMATION_CONFIRMED(
689 p_api_version => p_api_version
690 , p_init_msg_list => p_init_msg_list
691 , p_commit => p_commit
692 , x_return_status => x_return_status
693 , x_msg_count => x_msg_count
694 , x_msg_data => x_msg_data
695 , p_object_version_number => p_object_version_number
696 , p_task_id => p_task_id
697 , p_skip_events => fnd_api.g_false
698 );
699
700 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
701 THEN
702 RAISE fnd_api.g_exc_unexpected_error;
703 END IF;
704
705 IF fnd_api.to_boolean (p_commit)
706 THEN
707 COMMIT WORK;
708 END IF;
709
710 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
711 EXCEPTION
712 WHEN fnd_api.g_exc_unexpected_error
713 THEN
714 ROLLBACK TO SET_CONFIRMATION_CONFIRMED_1;
715 x_return_status := fnd_api.g_ret_sts_unexp_error;
716 fnd_msg_pub.count_and_get (
717 p_count => x_msg_count,
718 p_data => x_msg_data
719 );
720 WHEN fnd_api.g_exc_error
721 THEN
722 ROLLBACK TO SET_CONFIRMATION_CONFIRMED_1;
723 x_return_status := fnd_api.G_RET_STS_ERROR;
724 fnd_msg_pub.count_and_get (
725 p_count => x_msg_count,
726 p_data => x_msg_data
727 );
728 WHEN OTHERS
729 THEN
730 ROLLBACK TO SET_CONFIRMATION_CONFIRMED_1;
731 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
732 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
733 fnd_msg_pub.add;
734 x_return_status := fnd_api.g_ret_sts_unexp_error;
735 fnd_msg_pub.count_and_get (
736 p_count => x_msg_count,
737 p_data => x_msg_data
738 );
739
740 END SET_CONFIRMATION_CONFIRMED;
741
742 /* new overloaded procedures to handle new skip_events flag */
743 /*Procedure used internally*/
744 PROCEDURE UpdateTaskConfirmation(
745 p_object_version_number IN OUT NOCOPY NUMBER,
746 p_task_id IN NUMBER,
747 p_task_confirmation_status IN VARCHAR2,
748 p_task_confirmation_counter IN NUMBER
749 )
750 IS
751 CURSOR c_task IS
752 SELECT DECODE(
753 p_task_confirmation_status
754 , jtf_task_utl.g_miss_char, task_confirmation_status
755 , p_task_confirmation_status
756 ) task_confirmation_status
757 , DECODE(
758 p_task_confirmation_counter
759 , jtf_task_utl.g_miss_number, task_confirmation_counter
760 , p_task_confirmation_counter
761 ) task_confirmation_counter
762 FROM jtf_tasks_b
763 WHERE task_id = p_task_id;
764
765 tasks c_task%ROWTYPE;
766
767 BEGIN
768
769 jtf_tasks_pkg.lock_row(x_task_id => p_task_id , x_object_version_number => p_object_version_number);
770
771 OPEN c_task;
772 FETCH c_task INTO tasks;
773 IF c_task%NOTFOUND THEN
774 CLOSE c_task;
775 fnd_message.set_name('JTF', 'JTF_TASK_INVALID_TASK_ID');
776 fnd_message.set_token('P_TASK_ID', p_task_id);
777 fnd_msg_pub.ADD;
778 RAISE fnd_api.g_exc_unexpected_error;
779 END IF;
780 CLOSE c_task;
781
782 IF NOT p_task_confirmation_status IN('N', 'C', 'R', fnd_api.g_miss_char) THEN
783 fnd_message.set_name('JTF', 'JTF_TASK_CONSTRUCT_ID');
784 fnd_message.set_token('%P_SHITF_CONSTRUCT_ID', 'task confirmation status');
785 fnd_msg_pub.ADD;
786 RAISE fnd_api.g_exc_unexpected_error;
787 END IF;
788
789
790 Update jtf_tasks_b set
791 task_confirmation_status = tasks.task_confirmation_status,
792 task_confirmation_counter = tasks.task_confirmation_counter
793 where task_id=p_task_id;
794
795
796 IF (SQL%NOTFOUND) THEN
797 RAISE NO_DATA_FOUND;
798 END IF;
799
800 END UpdateTaskConfirmation;
801
802 /*Procedure used internally*/
803 PROCEDURE SET_COUNTER_STATUS (
804 p_api_version IN NUMBER,
805 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
806 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
807 x_return_status OUT NOCOPY VARCHAR2,
808 x_msg_count OUT NOCOPY NUMBER,
809 x_msg_data OUT NOCOPY VARCHAR2,
810 p_object_version_number IN OUT NOCOPY NUMBER,
811 p_task_id IN NUMBER,
812 p_task_confirmation_status IN VARCHAR2,
813 p_task_confirmation_counter IN NUMBER,
814 p_skip_events IN VARCHAR2
815 )
816 IS
817 l_api_version CONSTANT NUMBER
818 := 1.0;
819 l_api_name CONSTANT VARCHAR2(30)
820 := 'SET_COUNTER_STATUS';
821
822 Cursor C_Task Is
823 Select * from jtf_tasks_vl
824 Where task_id=p_task_id;
825
826 l_task C_Task%Rowtype;
827
828 BEGIN
829 SAVEPOINT SET_COUNTER_STATUS;
830 x_return_status := fnd_api.g_ret_sts_success;
831
832 IF fnd_api.to_boolean (p_init_msg_list)
833 THEN
834 fnd_msg_pub.initialize;
835 END IF;
836
837 IF NOT fnd_api.compatible_api_call (
838 l_api_version,
839 p_api_version,
840 l_api_name,
841 g_pkg_name
842 )
843 THEN
844 RAISE fnd_api.g_exc_unexpected_error;
845 END IF;
846
847 IF NOT fnd_api.to_boolean (p_skip_events)
848 THEN
849
850 Open C_Task;
851 Fetch C_Task Into l_task;
852 Close C_Task;
853
854 jtf_tasks_pvt.update_task (
855 p_api_version => 1.0,
856 p_init_msg_list => fnd_api.g_false,
857 p_commit => fnd_api.g_false,
858 p_object_version_number => p_object_version_number,
859 p_task_id => p_task_id,
860 p_enable_workflow => jtf_task_utl.g_miss_char,
861 p_abort_workflow => jtf_task_utl.g_miss_char,
862 p_change_mode => jtf_task_utl.g_miss_char,
863 p_free_busy_type => jtf_task_utl.g_miss_char,
864 p_task_confirmation_status => p_task_confirmation_status,
865 p_task_confirmation_counter => p_task_confirmation_counter,
866 p_task_split_flag => jtf_task_utl.g_miss_char,
867 -- p_child_position => NULL,
868 -- p_child_sequence_num => NULL,
869 x_return_status => x_return_status,
870 x_msg_count => x_msg_count,
871 x_msg_data => x_msg_data,
872 p_location_id => l_task.location_id
873 );
874
875 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
876 THEN
877 RAISE fnd_api.g_exc_unexpected_error;
878 END IF;
879
880 ELSE
881 UpdateTaskConfirmation(
882 p_object_version_number => p_object_version_number,
883 p_task_id => p_task_id,
884 p_task_confirmation_status => p_task_confirmation_status,
885 p_task_confirmation_counter => p_task_confirmation_counter
886 );
887
888 END IF;
889
890 IF fnd_api.to_boolean (p_commit)
891 THEN
892 COMMIT WORK;
893 END IF;
894
895 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
896 EXCEPTION
897 WHEN fnd_api.g_exc_unexpected_error
898 THEN
899 ROLLBACK TO SET_COUNTER_STATUS;
900 x_return_status := fnd_api.g_ret_sts_unexp_error;
901 fnd_msg_pub.count_and_get (
902 p_count => x_msg_count,
903 p_data => x_msg_data
904 );
905 WHEN fnd_api.g_exc_error
906 THEN
907 ROLLBACK TO SET_COUNTER_STATUS;
908 x_return_status := fnd_api.G_RET_STS_ERROR;
909 fnd_msg_pub.count_and_get (
910 p_count => x_msg_count,
911 p_data => x_msg_data
912 );
913 WHEN OTHERS
914 THEN
915 ROLLBACK TO SET_COUNTER_STATUS;
916 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
917 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
918 fnd_msg_pub.add;
919 x_return_status := fnd_api.g_ret_sts_unexp_error;
920 fnd_msg_pub.count_and_get (
921 p_count => x_msg_count,
922 p_data => x_msg_data
923 );
924
925 END SET_COUNTER_STATUS;
926
927
928 PROCEDURE RESET_CONFIRMATION_STATUS (
929 p_api_version IN NUMBER,
930 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
931 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
932 x_return_status OUT NOCOPY VARCHAR2,
933 x_msg_count OUT NOCOPY NUMBER,
934 x_msg_data OUT NOCOPY VARCHAR2,
935 p_object_version_number IN OUT NOCOPY NUMBER,
936 p_task_id IN NUMBER,
937 p_skip_events IN VARCHAR2
938 )
939 IS
940 l_api_version CONSTANT NUMBER
941 := 1.0;
942 l_api_name CONSTANT VARCHAR2(30)
943 := 'RESET_CONFIRMATION_STATUS';
944
945 BEGIN
946 SAVEPOINT RESET_CONFIRMATION_STATUS;
947 x_return_status := fnd_api.g_ret_sts_success;
948
949 IF fnd_api.to_boolean (p_init_msg_list)
950 THEN
951 fnd_msg_pub.initialize;
952 END IF;
953
954 IF NOT fnd_api.compatible_api_call (
955 l_api_version,
956 p_api_version,
957 l_api_name,
958 g_pkg_name
959 )
960 THEN
961 RAISE fnd_api.g_exc_unexpected_error;
962 END IF;
963
964 SET_COUNTER_STATUS
965 (
966 p_api_version => p_api_version,
967 p_init_msg_list => p_init_msg_list,
968 p_commit => p_commit,
969 x_return_status => x_return_status,
970 x_msg_count => x_msg_count,
971 x_msg_data => x_msg_data,
972 p_object_version_number => p_object_version_number,
973 p_task_id => p_task_id,
974 p_task_confirmation_status => 'N',
975 p_task_confirmation_counter => 0 ,
976 p_skip_events => p_skip_events
977 );
978
979 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
980 THEN
981 RAISE fnd_api.g_exc_unexpected_error;
982 END IF;
983
984 IF fnd_api.to_boolean (p_commit)
985 THEN
986 COMMIT WORK;
987 END IF;
988
989 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
990 EXCEPTION
991 WHEN fnd_api.g_exc_unexpected_error
992 THEN
993 ROLLBACK TO RESET_CONFIRMATION_STATUS;
994 x_return_status := fnd_api.g_ret_sts_unexp_error;
995 fnd_msg_pub.count_and_get (
996 p_count => x_msg_count,
997 p_data => x_msg_data
998 );
999 WHEN fnd_api.g_exc_error
1000 THEN
1001 ROLLBACK TO RESET_CONFIRMATION_STATUS;
1002 x_return_status := fnd_api.G_RET_STS_ERROR;
1003 fnd_msg_pub.count_and_get (
1004 p_count => x_msg_count,
1005 p_data => x_msg_data
1006 );
1007 WHEN OTHERS
1008 THEN
1009 ROLLBACK TO RESET_CONFIRMATION_STATUS;
1010 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
1011 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
1012 fnd_msg_pub.add;
1013 x_return_status := fnd_api.g_ret_sts_unexp_error;
1014 fnd_msg_pub.count_and_get (
1015 p_count => x_msg_count,
1016 p_data => x_msg_data
1017 );
1018
1019 END RESET_CONFIRMATION_STATUS;
1020
1021 PROCEDURE SET_CONFIRMATION_REQUIRED (
1022 p_api_version IN NUMBER,
1023 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
1024 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
1025 x_return_status OUT NOCOPY VARCHAR2,
1026 x_msg_count OUT NOCOPY NUMBER,
1027 x_msg_data OUT NOCOPY VARCHAR2,
1028 p_object_version_number IN OUT NOCOPY NUMBER,
1029 p_task_id IN NUMBER,
1030 p_skip_events IN VARCHAR2
1031 )
1032 IS
1033 l_api_version CONSTANT NUMBER
1034 := 1.0;
1035 l_api_name CONSTANT VARCHAR2(30)
1036 := 'SET_CONFIRMATION_REQUIRED';
1037
1038 BEGIN
1039 SAVEPOINT SET_CONFIRMATION_REQUIRED;
1040 x_return_status := fnd_api.g_ret_sts_success;
1041
1042 IF fnd_api.to_boolean (p_init_msg_list)
1043 THEN
1044 fnd_msg_pub.initialize;
1045 END IF;
1046
1047 IF NOT fnd_api.compatible_api_call (
1048 l_api_version,
1049 p_api_version,
1050 l_api_name,
1051 g_pkg_name
1052 )
1053 THEN
1054 RAISE fnd_api.g_exc_unexpected_error;
1055 END IF;
1056
1057 SET_COUNTER_STATUS
1058 (
1059 p_api_version => p_api_version,
1060 p_init_msg_list => p_init_msg_list,
1061 p_commit => p_commit,
1062 x_return_status => x_return_status,
1063 x_msg_count => x_msg_count,
1064 x_msg_data => x_msg_data,
1065 p_object_version_number => p_object_version_number,
1066 p_task_id => p_task_id,
1067 p_task_confirmation_status => 'R',
1068 p_task_confirmation_counter => jtf_task_utl.g_miss_number,
1069 p_skip_events => p_skip_events
1070 );
1071
1072
1073 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1074 THEN
1075 RAISE fnd_api.g_exc_unexpected_error;
1076 END IF;
1077
1078 IF fnd_api.to_boolean (p_commit)
1079 THEN
1080 COMMIT WORK;
1081 END IF;
1082
1083 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
1084 EXCEPTION
1085 WHEN fnd_api.g_exc_unexpected_error
1086 THEN
1087 ROLLBACK TO SET_CONFIRMATION_REQUIRED;
1088 x_return_status := fnd_api.g_ret_sts_unexp_error;
1089 fnd_msg_pub.count_and_get (
1090 p_count => x_msg_count,
1091 p_data => x_msg_data
1092 );
1093 WHEN fnd_api.g_exc_error
1094 THEN
1095 ROLLBACK TO SET_CONFIRMATION_REQUIRED;
1096 x_return_status := fnd_api.G_RET_STS_ERROR;
1097 fnd_msg_pub.count_and_get (
1098 p_count => x_msg_count,
1099 p_data => x_msg_data
1100 );
1101 WHEN OTHERS
1102 THEN
1103 ROLLBACK TO SET_CONFIRMATION_REQUIRED;
1104 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
1105 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
1106 fnd_msg_pub.add;
1107 x_return_status := fnd_api.g_ret_sts_unexp_error;
1108 fnd_msg_pub.count_and_get (
1109 p_count => x_msg_count,
1110 p_data => x_msg_data
1111 );
1112
1113 END SET_CONFIRMATION_REQUIRED;
1114
1115 PROCEDURE SET_CONFIRMATION_CONFIRMED (
1116 p_api_version IN NUMBER,
1117 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
1118 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
1119 x_return_status OUT NOCOPY VARCHAR2,
1120 x_msg_count OUT NOCOPY NUMBER,
1121 x_msg_data OUT NOCOPY VARCHAR2,
1122 p_object_version_number IN OUT NOCOPY NUMBER,
1123 p_task_id IN NUMBER,
1124 p_skip_events IN VARCHAR2
1125 )
1126 IS
1127 l_api_version CONSTANT NUMBER
1128 := 1.0;
1129 l_api_name CONSTANT VARCHAR2(30)
1130 := 'SET_CONFIRMATION_CONFIRMED';
1131
1132 l_conf_counter NUMBER;
1133
1134
1135 BEGIN
1136 SAVEPOINT SET_CONFIRMATION_CONFIRMED;
1137 x_return_status := fnd_api.g_ret_sts_success;
1138
1139 IF fnd_api.to_boolean (p_init_msg_list)
1140 THEN
1141 fnd_msg_pub.initialize;
1142 END IF;
1143
1144 IF NOT fnd_api.compatible_api_call (
1145 l_api_version,
1146 p_api_version,
1147 l_api_name,
1148 g_pkg_name
1149 )
1150 THEN
1151 RAISE fnd_api.g_exc_unexpected_error;
1152 END IF;
1153
1154 l_conf_counter := get_conf_counter (p_task_id);
1155
1156 SET_COUNTER_STATUS
1157 (
1158 p_api_version => p_api_version,
1159 p_init_msg_list => p_init_msg_list,
1160 p_commit => p_commit,
1161 x_return_status => x_return_status,
1162 x_msg_count => x_msg_count,
1163 x_msg_data => x_msg_data,
1164 p_object_version_number => p_object_version_number,
1165 p_task_id => p_task_id,
1166 p_task_confirmation_status => 'C',
1167 p_task_confirmation_counter => nvl(l_conf_counter,0),
1168 p_skip_events => p_skip_events
1169 );
1170
1171 IF NOT (x_return_status = fnd_api.g_ret_sts_success)
1172 THEN
1173 RAISE fnd_api.g_exc_unexpected_error;
1174 END IF;
1175
1176 IF fnd_api.to_boolean (p_commit)
1177 THEN
1178 COMMIT WORK;
1179 END IF;
1180
1181 fnd_msg_pub.count_and_get (p_count => x_msg_count, p_data => x_msg_data);
1182 EXCEPTION
1183 WHEN fnd_api.g_exc_unexpected_error
1184 THEN
1185 ROLLBACK TO SET_CONFIRMATION_CONFIRMED;
1186 x_return_status := fnd_api.g_ret_sts_unexp_error;
1187 fnd_msg_pub.count_and_get (
1188 p_count => x_msg_count,
1189 p_data => x_msg_data
1190 );
1191 WHEN fnd_api.g_exc_error
1192 THEN
1193 ROLLBACK TO SET_CONFIRMATION_CONFIRMED;
1194 x_return_status := fnd_api.G_RET_STS_ERROR;
1195 fnd_msg_pub.count_and_get (
1196 p_count => x_msg_count,
1197 p_data => x_msg_data
1198 );
1199 WHEN OTHERS
1200 THEN
1201 ROLLBACK TO SET_CONFIRMATION_CONFIRMED;
1202 fnd_message.set_name ('JTF', 'JTF_TASK_UNKNOWN_ERROR');
1203 fnd_message.set_token ('P_TEXT', SQLCODE || SQLERRM);
1204 fnd_msg_pub.add;
1205 x_return_status := fnd_api.g_ret_sts_unexp_error;
1206 fnd_msg_pub.count_and_get (
1207 p_count => x_msg_count,
1208 p_data => x_msg_data
1209 );
1210
1211 END SET_CONFIRMATION_CONFIRMED;
1212
1213
1214 END;