62: RAISE fnd_api.g_exc_unexpected_error;
63: END IF;
64:
65: IF fnd_api.to_boolean(p_init_msg_list) THEN
66: fnd_msg_pub.initialize;
67: END IF;
68:
69: --Check for Required Parameters
70: --Resource subtype
70: --Resource subtype
71: IF l_resource_type_code IS NULL THEN
72: x_return_status := fnd_api.g_ret_sts_unexp_error;
73: fnd_message.set_name('JTF', 'JTF_TASK_NULL_RES_TYPE_CODE');
74: fnd_msg_pub.ADD;
75: RAISE fnd_api.g_exc_unexpected_error;
76: END IF;
77:
78: --Required Units
78: --Required Units
79: IF l_required_units IS NULL THEN
80: x_return_status := fnd_api.g_ret_sts_unexp_error;
81: fnd_message.set_name('JTF', 'JTF_TASK_NULL_REQ_UNIT');
82: fnd_msg_pub.ADD;
83: RAISE fnd_api.g_exc_unexpected_error;
84: END IF;
85:
86: --- Validate enabled flag
150: IF l_task_id IS NULL THEN
151: x_return_status := fnd_api.g_ret_sts_unexp_error;
152: fnd_message.set_name('JTF', 'JTF_TASK_INVALID_TASK_ID');
153: fnd_message.set_token('TASK_ID', p_task_id);
154: fnd_msg_pub.ADD;
155: RAISE fnd_api.g_exc_unexpected_error;
156: END IF;
157: ELSIF(p_task_type_id <> fnd_api.g_miss_num OR p_task_type_name <> fnd_api.g_miss_char) THEN
158: SELECT DECODE(p_task_type_id, fnd_api.g_miss_num, NULL, p_task_type_id)
180: IF l_task_type_id IS NULL THEN
181: x_return_status := fnd_api.g_ret_sts_unexp_error;
182: fnd_message.set_name('JTF', 'JTF_TASK_INVALID_TYPE_ID');
183: fnd_message.set_token('TASK_ID', p_task_type_id);
184: fnd_msg_pub.ADD;
185: RAISE fnd_api.g_exc_unexpected_error;
186: END IF;
187: ELSIF (l_task_template_id IS NULL) AND(l_task_id IS NULL) AND(l_task_type_id IS NULL) THEN
188: x_return_status := fnd_api.g_ret_sts_unexp_error;
186: END IF;
187: ELSIF (l_task_template_id IS NULL) AND(l_task_id IS NULL) AND(l_task_type_id IS NULL) THEN
188: x_return_status := fnd_api.g_ret_sts_unexp_error;
189: fnd_message.set_name('JTF', 'JTF_TASK_INV_INPUT');
190: fnd_msg_pub.ADD;
191: RAISE fnd_api.g_exc_unexpected_error;
192: ELSIF (l_task_template_id IS NOT NULL)
193: AND (l_task_id IS NOT NULL)
194: AND (l_task_type_id IS NOT NULL) THEN
193: AND (l_task_id IS NOT NULL)
194: AND (l_task_type_id IS NOT NULL) THEN
195: x_return_status := fnd_api.g_ret_sts_unexp_error;
196: fnd_message.set_name('JTF', 'JTF_TASK_INV_INPUT');
197: fnd_msg_pub.ADD;
198: RAISE fnd_api.g_exc_unexpected_error;
199: ELSIF (l_task_template_id IS NOT NULL) AND(l_task_id IS NOT NULL) THEN
200: x_return_status := fnd_api.g_ret_sts_unexp_error;
201: fnd_message.set_name('JTF', 'JTF_TASK_INV_INPUT');
198: RAISE fnd_api.g_exc_unexpected_error;
199: ELSIF (l_task_template_id IS NOT NULL) AND(l_task_id IS NOT NULL) THEN
200: x_return_status := fnd_api.g_ret_sts_unexp_error;
201: fnd_message.set_name('JTF', 'JTF_TASK_INV_INPUT');
202: fnd_msg_pub.ADD;
203: RAISE fnd_api.g_exc_unexpected_error;
204: ELSIF (l_task_id IS NOT NULL) AND(l_task_type_id IS NOT NULL) THEN
205: x_return_status := fnd_api.g_ret_sts_unexp_error;
206: fnd_message.set_name('JTF', 'JTF_TASK_INV_INPUT');
203: RAISE fnd_api.g_exc_unexpected_error;
204: ELSIF (l_task_id IS NOT NULL) AND(l_task_type_id IS NOT NULL) THEN
205: x_return_status := fnd_api.g_ret_sts_unexp_error;
206: fnd_message.set_name('JTF', 'JTF_TASK_INV_INPUT');
207: fnd_msg_pub.ADD;
208: RAISE fnd_api.g_exc_unexpected_error;
209: ELSIF (l_task_template_id IS NOT NULL) AND(l_task_type_id IS NOT NULL) THEN
210: x_return_status := fnd_api.g_ret_sts_unexp_error;
211: fnd_message.set_name('JTF', 'JTF_TASK_INV_INPUT');
208: RAISE fnd_api.g_exc_unexpected_error;
209: ELSIF (l_task_template_id IS NOT NULL) AND(l_task_type_id IS NOT NULL) THEN
210: x_return_status := fnd_api.g_ret_sts_unexp_error;
211: fnd_message.set_name('JTF', 'JTF_TASK_INV_INPUT');
212: fnd_msg_pub.ADD;
213: RAISE fnd_api.g_exc_unexpected_error;
214: END IF;
215:
216: IF NOT jtf_task_resources_pvt.validate_resource_type_code(p_resource_type_code => l_resource_type_code) THEN
279: IF fnd_api.to_boolean(p_commit) THEN
280: COMMIT WORK;
281: END IF;
282:
283: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
284: EXCEPTION
285: WHEN fnd_api.g_exc_error THEN
286: ROLLBACK TO create_task_rsrc_req;
287: x_return_status := fnd_api.g_ret_sts_error;
284: EXCEPTION
285: WHEN fnd_api.g_exc_error THEN
286: ROLLBACK TO create_task_rsrc_req;
287: x_return_status := fnd_api.g_ret_sts_error;
288: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
289: WHEN fnd_api.g_exc_unexpected_error THEN
290: ROLLBACK TO create_task_rsrc_req;
291: x_return_status := fnd_api.g_ret_sts_unexp_error;
292: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
288: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
289: WHEN fnd_api.g_exc_unexpected_error THEN
290: ROLLBACK TO create_task_rsrc_req;
291: x_return_status := fnd_api.g_ret_sts_unexp_error;
292: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
293: WHEN OTHERS THEN
294: ROLLBACK TO create_task_rsrc_req;
295: x_return_status := fnd_api.g_ret_sts_unexp_error;
296: /* if fnd_msg_pub.check_msg_level ( fnd_msg_pub.g_msg_lvl_unexp_error )
292: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
293: WHEN OTHERS THEN
294: ROLLBACK TO create_task_rsrc_req;
295: x_return_status := fnd_api.g_ret_sts_unexp_error;
296: /* if fnd_msg_pub.check_msg_level ( fnd_msg_pub.g_msg_lvl_unexp_error )
297: then
298: fnd_msg_pub.add_exc_msg(g_pkg_name,l_api_name) ;
299: end if ;*/
300: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
294: ROLLBACK TO create_task_rsrc_req;
295: x_return_status := fnd_api.g_ret_sts_unexp_error;
296: /* if fnd_msg_pub.check_msg_level ( fnd_msg_pub.g_msg_lvl_unexp_error )
297: then
298: fnd_msg_pub.add_exc_msg(g_pkg_name,l_api_name) ;
299: end if ;*/
300: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
301: END;
302:
296: /* if fnd_msg_pub.check_msg_level ( fnd_msg_pub.g_msg_lvl_unexp_error )
297: then
298: fnd_msg_pub.add_exc_msg(g_pkg_name,l_api_name) ;
299: end if ;*/
300: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
301: END;
302:
303: --Procedure to Update the Task Resource Requirements
304: PROCEDURE update_task_rscr_req(
396: RAISE fnd_api.g_exc_unexpected_error;
397: END IF;
398:
399: IF fnd_api.to_boolean(p_init_msg_list) THEN
400: fnd_msg_pub.initialize;
401: END IF;
402:
403: -- check if the resource requirement is invalid or null.
404: IF (l_resource_req_id IS NULL) THEN
402:
403: -- check if the resource requirement is invalid or null.
404: IF (l_resource_req_id IS NULL) THEN
405: fnd_message.set_name('JTF', 'JTF_TASK_NULL_RES_REQ_ID');
406: fnd_msg_pub.ADD;
407: x_return_status := fnd_api.g_ret_sts_unexp_error;
408: RAISE fnd_api.g_exc_unexpected_error;
409: END IF;
410:
415:
416: IF jtf_rsrc_req_cur%NOTFOUND THEN
417: fnd_message.set_name('JTF', 'JTF_TASK_INV_RES_REQ_ID');
418: fnd_message.set_token('RESOURCE_REQ_ID', p_resource_req_id);
419: fnd_msg_pub.ADD;
420: x_return_status := fnd_api.g_ret_sts_unexp_error;
421: RAISE fnd_api.g_exc_unexpected_error;
422: END IF;
423:
463: IF l_task_id IS NULL THEN
464: x_return_status := fnd_api.g_ret_sts_unexp_error;
465: fnd_message.set_name('JTF', 'JTF_TASK_INVALID_TASK_ID');
466: fnd_message.set_token('TASK_ID', p_task_id);
467: fnd_msg_pub.ADD;
468: RAISE fnd_api.g_exc_unexpected_error;
469: END IF;
470: ELSE
471: l_task_id := task_rsrc_req_rec.task_id;
538: IF jtf_rsrc_req_cur%ISOPEN THEN
539: CLOSE jtf_rsrc_req_cur;
540: END IF;
541:
542: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
543: EXCEPTION
544: WHEN fnd_api.g_exc_error THEN
545: ROLLBACK TO update_task_rsrc_req;
546:
548: CLOSE jtf_rsrc_req_cur;
549: END IF;
550:
551: x_return_status := fnd_api.g_ret_sts_error;
552: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
553: WHEN fnd_api.g_exc_unexpected_error THEN
554: ROLLBACK TO update_task_rsrc_req;
555:
556: IF jtf_rsrc_req_cur%ISOPEN THEN
557: CLOSE jtf_rsrc_req_cur;
558: END IF;
559:
560: x_return_status := fnd_api.g_ret_sts_unexp_error;
561: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
562: WHEN OTHERS THEN
563: ROLLBACK TO update_task_rsrc_req;
564:
565: IF jtf_rsrc_req_cur%ISOPEN THEN
567: END IF;
568:
569: x_return_status := fnd_api.g_ret_sts_unexp_error;
570:
571: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
572: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
573: END IF;
574:
575: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
568:
569: x_return_status := fnd_api.g_ret_sts_unexp_error;
570:
571: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
572: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
573: END IF;
574:
575: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
576: END;
571: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
572: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
573: END IF;
574:
575: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
576: END;
577:
578: --Procedure to Delete the Task Resource Requirements
579: PROCEDURE delete_task_rsrc_req(
607: RAISE fnd_api.g_exc_unexpected_error;
608: END IF;
609:
610: IF fnd_api.to_boolean(p_init_msg_list) THEN
611: fnd_msg_pub.initialize;
612: END IF;
613:
614: ---- if resource req is null, then it is an error
615: IF (l_resource_req_id IS NULL) THEN
614: ---- if resource req is null, then it is an error
615: IF (l_resource_req_id IS NULL) THEN
616: fnd_message.set_name('JTF', 'JTF_TASK_DELETING_RES_REQ_ID');
617: fnd_message.set_token('RESOURCE_REQ_ID', p_resource_req_id);
618: fnd_msg_pub.ADD;
619: x_return_status := fnd_api.g_ret_sts_unexp_error;
620: RAISE fnd_api.g_exc_unexpected_error;
621: END IF;
622:
628:
629: IF jtf_task_rsc_req_u_cur%NOTFOUND THEN
630: fnd_message.set_name('JTF', 'JTF_TASK_INV_RES_REQ_ID');
631: fnd_message.set_token('TASK_ID', p_resource_req_id);
632: fnd_msg_pub.ADD;
633: x_return_status := fnd_api.g_ret_sts_unexp_error;
634: RAISE fnd_api.g_exc_unexpected_error;
635: ELSE
636: jtf_task_resources_pub.lock_task_resources
676: IF fnd_api.to_boolean(p_commit) THEN
677: COMMIT WORK;
678: END IF;
679:
680: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
681: EXCEPTION
682: WHEN fnd_api.g_exc_error THEN
683: ROLLBACK TO delete_task_rsrc_req;
684:
686: CLOSE jtf_task_rsc_req_u_cur;
687: END IF;
688:
689: x_return_status := fnd_api.g_ret_sts_error;
690: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
691: WHEN fnd_api.g_exc_unexpected_error THEN
692: ROLLBACK TO delete_task_rsrc_req;
693:
694: IF jtf_task_rsc_req_u_cur%ISOPEN THEN
695: CLOSE jtf_task_rsc_req_u_cur;
696: END IF;
697:
698: x_return_status := fnd_api.g_ret_sts_unexp_error;
699: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
700: WHEN OTHERS THEN
701: ROLLBACK TO delete_task_rsrc_req;
702:
703: IF jtf_task_rsc_req_u_cur%ISOPEN THEN
704: CLOSE jtf_task_rsc_req_u_cur;
705: END IF;
706:
707: x_return_status := fnd_api.g_ret_sts_unexp_error;
708: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
709: END;
710:
711: --Procedure to get the Task Resource Req
712: PROCEDURE get_task_rsrc_req(
761: END IF;
762:
763: -- initialize message list i p_init_msg_list is set to true
764: IF (fnd_api.to_boolean(p_init_msg_list)) THEN
765: fnd_msg_pub.initialize;
766: END IF;
767:
768: -- required parameters to control records returned
769:
769:
770: -- p_query_or_next_code should be Q or N
771: IF (p_query_or_next_code NOT IN('Q', 'N')) OR(p_query_or_next_code IS NULL) THEN
772: fnd_message.set_name('JTF', 'JTF_TK_INV_QRY_NXT');
773: fnd_msg_pub.ADD;
774: RAISE fnd_api.g_exc_error;
775: END IF;
776:
777: -- p_show_all should be Y or N
776:
777: -- p_show_all should be Y or N
778: IF (p_show_all NOT IN('Y', 'N')) OR(p_show_all IS NULL) THEN
779: fnd_message.set_name('JTF', 'JTF_TK_INV_SHOW_ALL');
780: fnd_msg_pub.ADD;
781: RAISE fnd_api.g_exc_error;
782: END IF;
783:
784: IF (p_show_all = 'N') THEN
783:
784: IF (p_show_all = 'N') THEN
785: IF (p_start_pointer IS NULL) THEN
786: fnd_message.set_name('JTF', 'JTF_TK_NULL_STRT_PTR');
787: fnd_msg_pub.ADD;
788: RAISE fnd_api.g_exc_error;
789: END IF;
790:
791: IF (p_rec_wanted IS NULL) THEN
789: END IF;
790:
791: IF (p_rec_wanted IS NULL) THEN
792: fnd_message.set_name('JTF', 'JTF_TK_NULL_REC_WANT');
793: fnd_msg_pub.ADD;
794: RAISE fnd_api.g_exc_error;
795: END IF;
796: END IF;
797:
825: EXCEPTION
826: WHEN fnd_api.g_exc_error THEN
827: ROLLBACK TO get_task_rsrc_req;
828: x_return_status := fnd_api.g_ret_sts_error;
829: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
830: WHEN fnd_api.g_exc_unexpected_error THEN
831: ROLLBACK TO get_task_rsrc_req;
832: x_return_status := fnd_api.g_ret_sts_unexp_error;
833: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
829: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
830: WHEN fnd_api.g_exc_unexpected_error THEN
831: ROLLBACK TO get_task_rsrc_req;
832: x_return_status := fnd_api.g_ret_sts_unexp_error;
833: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
834: WHEN OTHERS THEN
835: ROLLBACK TO get_task_rsrc_req;
836: x_return_status := fnd_api.g_ret_sts_unexp_error;
837:
834: WHEN OTHERS THEN
835: ROLLBACK TO get_task_rsrc_req;
836: x_return_status := fnd_api.g_ret_sts_unexp_error;
837:
838: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
839: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
840: END IF;
841:
842: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
835: ROLLBACK TO get_task_rsrc_req;
836: x_return_status := fnd_api.g_ret_sts_unexp_error;
837:
838: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
839: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
840: END IF;
841:
842: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
843: END;
838: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
839: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
840: END IF;
841:
842: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
843: END;
844:
845: PROCEDURE lock_task_resources(
846: p_api_version IN NUMBER
864: RAISE fnd_api.g_exc_unexpected_error;
865: END IF;
866:
867: IF fnd_api.to_boolean(p_init_msg_list) THEN
868: fnd_msg_pub.initialize;
869: END IF;
870:
871: x_return_status := fnd_api.g_ret_sts_success;
872: jtf_task_rsc_reqs_pkg.lock_row(
872: jtf_task_rsc_reqs_pkg.lock_row(
873: x_resource_req_id => p_resource_requirement_id
874: , x_object_version_number => p_object_version_number
875: );
876: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
877: EXCEPTION
878: WHEN resource_locked THEN
879: ROLLBACK TO lock_task_resources_pub;
880: fnd_message.set_name('JTF', 'JTF_TASK_RESOURCE_LOCKED');
879: ROLLBACK TO lock_task_resources_pub;
880: fnd_message.set_name('JTF', 'JTF_TASK_RESOURCE_LOCKED');
881: fnd_message.set_token('P_LOCKED_RESOURCE', 'Resources');
882: x_return_status := fnd_api.g_ret_sts_unexp_error;
883: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
884: WHEN fnd_api.g_exc_unexpected_error THEN
885: ROLLBACK TO lock_task_resources_pub;
886: x_return_status := fnd_api.g_ret_sts_unexp_error;
887: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
883: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
884: WHEN fnd_api.g_exc_unexpected_error THEN
885: ROLLBACK TO lock_task_resources_pub;
886: x_return_status := fnd_api.g_ret_sts_unexp_error;
887: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
888: WHEN OTHERS THEN
889: ROLLBACK TO lock_task_resources_pub;
890: fnd_message.set_name('JTF', 'JTF_TASK_UNKNOWN_ERROR');
891: fnd_message.set_token('P_TEXT', SQLCODE || SQLERRM);
889: ROLLBACK TO lock_task_resources_pub;
890: fnd_message.set_name('JTF', 'JTF_TASK_UNKNOWN_ERROR');
891: fnd_message.set_token('P_TEXT', SQLCODE || SQLERRM);
892: x_return_status := fnd_api.g_ret_sts_unexp_error;
893: fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
894: END;
895: END;