1: PACKAGE BODY GMD_ROUTINGS_PUB AS
2: /* $Header: GMDPROUB.pls 120.4.12010000.4 2010/02/03 19:37:49 plowe ship $ */
3:
4:
5: --Bug 3222090, NSRIVAST 20-FEB-2004, BEGIN
23: /* */
24: /* DESCRIPTION: */
25: /* */
26: /* API returns (x_return_code) = 'S' if the insert into routing */
27: /* header (fm_rout_hdr or gmd_routings) table is successfully. */
28: /* */
29: /* History : */
30: /* Shyam 07/29/2002 Initial implementation */
31: /* P.Raghu 08/27/2003 Bug#3068013 K is intialized with 1. */
41: (
42: p_api_version IN NUMBER := 1
43: , p_init_msg_list IN BOOLEAN := TRUE
44: , p_commit IN BOOLEAN := FALSE
45: , p_routings IN gmd_routings%ROWTYPE
46: , p_routings_step_tbl IN GMD_ROUTINGS_PUB.gmd_routings_step_tab
47: , p_routings_step_dep_tbl IN GMD_ROUTINGS_PUB.gmd_routings_step_dep_tab
48: , x_message_count OUT NOCOPY NUMBER
49: , x_message_list OUT NOCOPY VARCHAR2
42: p_api_version IN NUMBER := 1
43: , p_init_msg_list IN BOOLEAN := TRUE
44: , p_commit IN BOOLEAN := FALSE
45: , p_routings IN gmd_routings%ROWTYPE
46: , p_routings_step_tbl IN GMD_ROUTINGS_PUB.gmd_routings_step_tab
47: , p_routings_step_dep_tbl IN GMD_ROUTINGS_PUB.gmd_routings_step_dep_tab
48: , x_message_count OUT NOCOPY NUMBER
49: , x_message_list OUT NOCOPY VARCHAR2
50: , x_return_status OUT NOCOPY VARCHAR2
43: , p_init_msg_list IN BOOLEAN := TRUE
44: , p_commit IN BOOLEAN := FALSE
45: , p_routings IN gmd_routings%ROWTYPE
46: , p_routings_step_tbl IN GMD_ROUTINGS_PUB.gmd_routings_step_tab
47: , p_routings_step_dep_tbl IN GMD_ROUTINGS_PUB.gmd_routings_step_dep_tab
48: , x_message_count OUT NOCOPY NUMBER
49: , x_message_list OUT NOCOPY VARCHAR2
50: , x_return_status OUT NOCOPY VARCHAR2
51: ) IS
61: l_oprn_vers gmd_operations.oprn_vers%TYPE;
62: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
63: l_return_from_routing_hdr VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
64: l_return_from_routing_step VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
65: l_routing_qty gmd_routings.routing_qty%TYPE := 0;
66: l_process_loss gmd_routings.process_loss%TYPE := 0;
67: l_routing_class_um fm_rout_cls.uom%TYPE;
68: l_stepdep_tbl GMD_ROUTINGS_PUB.gmd_routings_step_dep_tab;
69: l_step_dep_tab GMD_ROUTINGS_PUB.gmd_routings_step_dep_tab;
62: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
63: l_return_from_routing_hdr VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
64: l_return_from_routing_step VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
65: l_routing_qty gmd_routings.routing_qty%TYPE := 0;
66: l_process_loss gmd_routings.process_loss%TYPE := 0;
67: l_routing_class_um fm_rout_cls.uom%TYPE;
68: l_stepdep_tbl GMD_ROUTINGS_PUB.gmd_routings_step_dep_tab;
69: l_step_dep_tab GMD_ROUTINGS_PUB.gmd_routings_step_dep_tab;
70:
64: l_return_from_routing_step VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
65: l_routing_qty gmd_routings.routing_qty%TYPE := 0;
66: l_process_loss gmd_routings.process_loss%TYPE := 0;
67: l_routing_class_um fm_rout_cls.uom%TYPE;
68: l_stepdep_tbl GMD_ROUTINGS_PUB.gmd_routings_step_dep_tab;
69: l_step_dep_tab GMD_ROUTINGS_PUB.gmd_routings_step_dep_tab;
70:
71: --kkillams,bug 3408799
72: l_entity_status GMD_API_GRP.status_rec_type;
65: l_routing_qty gmd_routings.routing_qty%TYPE := 0;
66: l_process_loss gmd_routings.process_loss%TYPE := 0;
67: l_routing_class_um fm_rout_cls.uom%TYPE;
68: l_stepdep_tbl GMD_ROUTINGS_PUB.gmd_routings_step_dep_tab;
69: l_step_dep_tab GMD_ROUTINGS_PUB.gmd_routings_step_dep_tab;
70:
71: --kkillams,bug 3408799
72: l_entity_status GMD_API_GRP.status_rec_type;
73:
111: l_routing_qty_cnv NUMBER;
112:
113:
114: /* get a record type */
115: l_routings_rec gmd_routings%ROWTYPE;
116:
117: /* Define Exceptions */
118: routing_creation_failure EXCEPTION;
119: routing_step_creation_failure EXCEPTION;
153: RAISE setup_failure;
154: END IF;
155:
156: /* Make sure we are call compatible */
157: IF NOT FND_API.compatible_api_call ( gmd_routings_PUB.m_api_version
158: ,p_api_version
159: ,'INSERT_ROUTING'
160: ,gmd_routings_PUB.m_pkg_name) THEN
161: RAISE invalid_version;
156: /* Make sure we are call compatible */
157: IF NOT FND_API.compatible_api_call ( gmd_routings_PUB.m_api_version
158: ,p_api_version
159: ,'INSERT_ROUTING'
160: ,gmd_routings_PUB.m_pkg_name) THEN
161: RAISE invalid_version;
162: END IF;
163:
164: IF p_routings.routing_no IS NULL THEN
258: END IF;
259:
260: /* Validation 1. Check if this routing that is created does not exists
261: in the the database. The routing_id is the PK or Routing_no and version is
262: the unique key for this table (gmd_routings_b). */
263: GMDRTVAL_PUB.check_routing(pRouting_no => p_routings.routing_no
264: ,pRouting_vers => p_routings.routing_vers
265: ,xRouting_id => l_routing_id
266: ,xReturn_status => l_return_status);
399: to create step dependencies for this routing. Routing details/Steps API
400: should take care of this. */
401: IF (p_routings_step_tbl.count > 0) THEN
402: /* Step 1 : Create Routing header */
403: GMD_ROUTINGS_PVT.insert_routing
404: ( p_routings => l_routings_rec
405: , x_message_count => x_message_count
406: , x_message_list => x_message_list
407: , x_return_status => x_return_status
522: --Getting the default status for the owner orgn code or null orgn of recipe from parameters table
523: gmd_api_grp.get_status_details (V_entity_type => 'ROUTING',
524: V_orgn_id => p_routings.owner_organization_id, --W.r.t. bug 4004501
525: X_entity_status => l_entity_status);
526: --Add this code after the call to gmd_routings_pkg.insert_row.
527: IF (l_entity_status.entity_status > 100) THEN
528: Gmd_status_pub.modify_status ( p_api_version => 1
529: , p_init_msg_list => TRUE
530: , p_entity_name =>'ROUTING'
587: ,p_data => x_message_list);
588: WHEN OTHERS THEN
589: ROLLBACK TO SAVEPOINT create_routing;
590: x_return_status := FND_API.g_ret_sts_unexp_error;
591: fnd_msg_pub.add_exc_msg (gmd_routings_PUB.m_pkg_name, l_api_name);
592: IF (l_debug = 'Y') THEN
593: gmd_debug.put_line (m_pkg_name||'.'||l_api_name||':'||'When others exception:'||SQLERRM);
594: END IF;
595: fnd_msg_pub.count_and_get (
604: /* */
605: /* DESCRIPTION: */
606: /* */
607: /* API returns (x_return_code) = 'S' if the update into routing */
608: /* header (fm_rout_hdr or gmd_routings) table is successfully. */
609: /* */
610: /* History : */
611: /* Shyam 07/29/2002 Initial implementation */
612: /* RLNAGARA 25-Apr-2008 B6997624 Check if the fixed process loss uom is valid*/
616: PROCEDURE update_routing
617: ( p_api_version IN NUMBER := 1
618: , p_init_msg_list IN BOOLEAN := TRUE
619: , p_commit IN BOOLEAN := FALSE
620: , p_routing_id IN gmd_routings.routing_id%TYPE := NULL
621: , p_routing_no IN gmd_routings.routing_no%TYPE := NULL
622: , p_routing_vers IN gmd_routings.routing_vers%TYPE := NULL
623: , p_update_table IN update_tbl_type
624: , x_message_count OUT NOCOPY NUMBER
617: ( p_api_version IN NUMBER := 1
618: , p_init_msg_list IN BOOLEAN := TRUE
619: , p_commit IN BOOLEAN := FALSE
620: , p_routing_id IN gmd_routings.routing_id%TYPE := NULL
621: , p_routing_no IN gmd_routings.routing_no%TYPE := NULL
622: , p_routing_vers IN gmd_routings.routing_vers%TYPE := NULL
623: , p_update_table IN update_tbl_type
624: , x_message_count OUT NOCOPY NUMBER
625: , x_message_list OUT NOCOPY VARCHAR2
618: , p_init_msg_list IN BOOLEAN := TRUE
619: , p_commit IN BOOLEAN := FALSE
620: , p_routing_id IN gmd_routings.routing_id%TYPE := NULL
621: , p_routing_no IN gmd_routings.routing_no%TYPE := NULL
622: , p_routing_vers IN gmd_routings.routing_vers%TYPE := NULL
623: , p_update_table IN update_tbl_type
624: , x_message_count OUT NOCOPY NUMBER
625: , x_message_list OUT NOCOPY VARCHAR2
626: , x_return_status OUT NOCOPY VARCHAR2
627: ) IS
628:
629: /* Local variable section */
630: l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_ROUTING';
631: l_routing_id gmd_routings.routing_id%TYPE;
632: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
633: l_cur_status gmd_status.status_code%TYPE;
634: l_owner_id gmd_routings.owner_id%TYPE;
635: l_owner_orgn_id NUMBER;
630: l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_ROUTING';
631: l_routing_id gmd_routings.routing_id%TYPE;
632: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
633: l_cur_status gmd_status.status_code%TYPE;
634: l_owner_id gmd_routings.owner_id%TYPE;
635: l_owner_orgn_id NUMBER;
636:
637: /* Define record type that hold the routing data */
638: l_old_routing_rec gmd_routings%ROWTYPE;
634: l_owner_id gmd_routings.owner_id%TYPE;
635: l_owner_orgn_id NUMBER;
636:
637: /* Define record type that hold the routing data */
638: l_old_routing_rec gmd_routings%ROWTYPE;
639:
640: /* Cursor section */
641: Cursor get_cur_status(vRouting_id gmd_routings.routing_id%TYPE ) IS
642: Select routing_status
637: /* Define record type that hold the routing data */
638: l_old_routing_rec gmd_routings%ROWTYPE;
639:
640: /* Cursor section */
641: Cursor get_cur_status(vRouting_id gmd_routings.routing_id%TYPE ) IS
642: Select routing_status
643: From gmd_routings
644: Where routing_id = vRouting_id;
645:
639:
640: /* Cursor section */
641: Cursor get_cur_status(vRouting_id gmd_routings.routing_id%TYPE ) IS
642: Select routing_status
643: From gmd_routings
644: Where routing_id = vRouting_id;
645:
646: CURSOR get_old_routing_rec(vRouting_id gmd_routings.routing_id%TYPE) IS
647: Select *
642: Select routing_status
643: From gmd_routings
644: Where routing_id = vRouting_id;
645:
646: CURSOR get_old_routing_rec(vRouting_id gmd_routings.routing_id%TYPE) IS
647: Select *
648: From gmd_routings
649: Where Routing_id = vRouting_id;
650:
644: Where routing_id = vRouting_id;
645:
646: CURSOR get_old_routing_rec(vRouting_id gmd_routings.routing_id%TYPE) IS
647: Select *
648: From gmd_routings
649: Where Routing_id = vRouting_id;
650:
651: /* B9314021 user id cursor to check the valid user */
652: CURSOR Cur_user_id (p_owner_id NUMBER) IS
686: RAISE setup_failure;
687: END IF;
688:
689: /* Make sure we are call compatible */
690: IF NOT FND_API.compatible_api_call ( GMD_ROUTINGS_PUB.m_api_version
691: ,p_api_version
692: ,l_api_name
693: ,GMD_ROUTINGS_PUB.m_pkg_name) THEN
694: RAISE invalid_version;
689: /* Make sure we are call compatible */
690: IF NOT FND_API.compatible_api_call ( GMD_ROUTINGS_PUB.m_api_version
691: ,p_api_version
692: ,l_api_name
693: ,GMD_ROUTINGS_PUB.m_pkg_name) THEN
694: RAISE invalid_version;
695: END IF;
696:
697: /* Validation 1. Check if this routing that is updated does exists
695: END IF;
696:
697: /* Validation 1. Check if this routing that is updated does exists
698: in the the database. The routing_id is the PK or Routing_no and version is
699: the unique key for this table (gmd_routings_b). */
700: IF p_routing_id IS NOT NULL THEN
701: l_routing_id := p_routing_id;
702: ELSE
703: GMDRTVAL_PUB.check_routing(pRouting_no => p_routing_no
828: END IF;
829: END LOOP;
830:
831: /* Call the Routing Pvt API */
832: GMD_ROUTINGS_PVT.update_routing
833: ( p_routing_id => l_routing_id
834: , p_update_table => p_update_table
835: , x_message_count => x_message_count
836: , x_message_list => x_message_list
882: ,p_data => x_message_list);
883: WHEN OTHERS THEN
884: ROLLBACK TO SAVEPOINT update_routing;
885: x_return_status := FND_API.g_ret_sts_unexp_error;
886: fnd_msg_pub.add_exc_msg (gmd_routings_PUB.m_pkg_name, l_api_name);
887: IF (l_debug = 'Y') THEN
888: gmd_debug.put_line (m_pkg_name||'.'||l_api_name||':'||'When others exception:'||SQLERRM);
889: END IF;
890: fnd_msg_pub.count_and_get (
899: /* */
900: /* DESCRIPTION: */
901: /* */
902: /* API returns (x_return_code) = 'S' if the delete into routing */
903: /* header (fm_rout_hdr or gmd_routings) table is successfully. */
904: /* */
905: /* History : */
906: /* Shyam 07/29/2002 Initial implementation */
907: /* kkillams 02/17/2004 Added new validation which checks whether */
911: PROCEDURE delete_routing
912: ( p_api_version IN NUMBER := 1
913: , p_init_msg_list IN BOOLEAN := TRUE
914: , p_commit IN BOOLEAN := FALSE
915: , p_routing_id IN gmd_routings.routing_id%TYPE := NULL
916: , p_routing_no IN gmd_routings.routing_no%TYPE := NULL
917: , p_routing_vers IN gmd_routings.routing_vers%TYPE := NULL
918: , x_message_count OUT NOCOPY NUMBER
919: , x_message_list OUT NOCOPY VARCHAR2
912: ( p_api_version IN NUMBER := 1
913: , p_init_msg_list IN BOOLEAN := TRUE
914: , p_commit IN BOOLEAN := FALSE
915: , p_routing_id IN gmd_routings.routing_id%TYPE := NULL
916: , p_routing_no IN gmd_routings.routing_no%TYPE := NULL
917: , p_routing_vers IN gmd_routings.routing_vers%TYPE := NULL
918: , x_message_count OUT NOCOPY NUMBER
919: , x_message_list OUT NOCOPY VARCHAR2
920: , x_return_status OUT NOCOPY VARCHAR2
913: , p_init_msg_list IN BOOLEAN := TRUE
914: , p_commit IN BOOLEAN := FALSE
915: , p_routing_id IN gmd_routings.routing_id%TYPE := NULL
916: , p_routing_no IN gmd_routings.routing_no%TYPE := NULL
917: , p_routing_vers IN gmd_routings.routing_vers%TYPE := NULL
918: , x_message_count OUT NOCOPY NUMBER
919: , x_message_list OUT NOCOPY VARCHAR2
920: , x_return_status OUT NOCOPY VARCHAR2
921: ) IS
926: WHERE routing_id = cp_routing_id
927: AND delete_mark = 0;
928: /* Local variable section */
929: l_api_name CONSTANT VARCHAR2(30) := 'DELETE_ROUTING';
930: l_routing_id gmd_routings.routing_id%TYPE;
931: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
932: l_count NUMBER;
933:
934: /* Define a table type */
931: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
932: l_count NUMBER;
933:
934: /* Define a table type */
935: l_update_table GMD_ROUTINGS_PUB.UPDATE_TBL_TYPE;
936:
937:
938: /* Define Exceptions */
939: routing_delete_failure EXCEPTION;
962: RAISE setup_failure;
963: END IF;
964:
965: /* Make sure we are call compatible */
966: IF NOT FND_API.compatible_api_call ( GMD_ROUTINGS_PUB.m_api_version
967: ,p_api_version
968: ,l_api_name
969: ,GMD_ROUTINGS_PUB.m_pkg_name) THEN
970: x_return_status := FND_API.G_RET_STS_ERROR;
965: /* Make sure we are call compatible */
966: IF NOT FND_API.compatible_api_call ( GMD_ROUTINGS_PUB.m_api_version
967: ,p_api_version
968: ,l_api_name
969: ,GMD_ROUTINGS_PUB.m_pkg_name) THEN
970: x_return_status := FND_API.G_RET_STS_ERROR;
971: RAISE invalid_version;
972: END IF;
973:
972: END IF;
973:
974: /* Validation :. Check if this routing that is deleted does exists
975: in the the database. The routing_id is the PK or Routing_no and version is
976: the unique key for this table (gmd_routings_b). */
977: IF p_routing_id IS NOT NULL THEN
978: l_routing_id := p_routing_id;
979: ELSE
980: GMDRTVAL_PUB.check_routing(pRouting_no => p_routing_no
1003:
1004: l_update_table(1).P_COL_TO_UPDATE := 'DELETE_MARK';
1005: l_update_table(1).P_VALUE := '1';
1006:
1007: GMD_ROUTINGS_PUB.update_routing
1008: ( p_routing_id => l_routing_id
1009: , p_update_table => l_update_table
1010: , p_commit => FALSE
1011: , x_message_count => x_message_count
1058: ,p_data => x_message_list);
1059: WHEN OTHERS THEN
1060: ROLLBACK TO SAVEPOINT delete_routing;
1061: x_return_status := FND_API.g_ret_sts_unexp_error;
1062: fnd_msg_pub.add_exc_msg (gmd_routings_PUB.m_pkg_name, l_api_name);
1063: IF (l_debug = 'Y') THEN
1064: gmd_debug.put_line (m_pkg_name||'.'||l_api_name||':'||'When others exception:'||SQLERRM);
1065: END IF;
1066: fnd_msg_pub.count_and_get (
1075: /* */
1076: /* DESCRIPTION: */
1077: /* */
1078: /* API returns (x_return_code) = 'S' if the delete into routing */
1079: /* header (fm_rout_hdr or gmd_routings) table is successfully. */
1080: /* */
1081: /* History : */
1082: /* Shyam 07/29/2002 Initial implementation */
1083: /* =============================================================== */
1084: PROCEDURE undelete_routing
1085: ( p_api_version IN NUMBER := 1
1086: , p_init_msg_list IN BOOLEAN := TRUE
1087: , p_commit IN BOOLEAN := FALSE
1088: , p_routing_id IN gmd_routings.routing_id%TYPE := NULL
1089: , p_routing_no IN gmd_routings.routing_no%TYPE := NULL
1090: , p_routing_vers IN gmd_routings.routing_vers%TYPE := NULL
1091: , x_message_count OUT NOCOPY NUMBER
1092: , x_message_list OUT NOCOPY VARCHAR2
1085: ( p_api_version IN NUMBER := 1
1086: , p_init_msg_list IN BOOLEAN := TRUE
1087: , p_commit IN BOOLEAN := FALSE
1088: , p_routing_id IN gmd_routings.routing_id%TYPE := NULL
1089: , p_routing_no IN gmd_routings.routing_no%TYPE := NULL
1090: , p_routing_vers IN gmd_routings.routing_vers%TYPE := NULL
1091: , x_message_count OUT NOCOPY NUMBER
1092: , x_message_list OUT NOCOPY VARCHAR2
1093: , x_return_status OUT NOCOPY VARCHAR2
1086: , p_init_msg_list IN BOOLEAN := TRUE
1087: , p_commit IN BOOLEAN := FALSE
1088: , p_routing_id IN gmd_routings.routing_id%TYPE := NULL
1089: , p_routing_no IN gmd_routings.routing_no%TYPE := NULL
1090: , p_routing_vers IN gmd_routings.routing_vers%TYPE := NULL
1091: , x_message_count OUT NOCOPY NUMBER
1092: , x_message_list OUT NOCOPY VARCHAR2
1093: , x_return_status OUT NOCOPY VARCHAR2
1094: ) IS
1094: ) IS
1095:
1096: /* Local variable section */
1097: l_api_name CONSTANT VARCHAR2(30) := 'UNDELETE_ROUTING';
1098: l_routing_id gmd_routings.routing_id%TYPE;
1099: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1100:
1101: /* Define a table type */
1102: l_update_table GMD_ROUTINGS_PUB.UPDATE_TBL_TYPE;
1098: l_routing_id gmd_routings.routing_id%TYPE;
1099: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1100:
1101: /* Define a table type */
1102: l_update_table GMD_ROUTINGS_PUB.UPDATE_TBL_TYPE;
1103:
1104: /* Define Exceptions */
1105: routing_undelete_failure EXCEPTION;
1106: invalid_version EXCEPTION;
1127: RAISE setup_failure;
1128: END IF;
1129:
1130: /* Make sure we are call compatible */
1131: IF NOT FND_API.compatible_api_call ( GMD_ROUTINGS_PUB.m_api_version
1132: ,p_api_version
1133: ,l_api_name
1134: ,GMD_ROUTINGS_PUB.m_pkg_name) THEN
1135: x_return_status := FND_API.G_RET_STS_ERROR;
1130: /* Make sure we are call compatible */
1131: IF NOT FND_API.compatible_api_call ( GMD_ROUTINGS_PUB.m_api_version
1132: ,p_api_version
1133: ,l_api_name
1134: ,GMD_ROUTINGS_PUB.m_pkg_name) THEN
1135: x_return_status := FND_API.G_RET_STS_ERROR;
1136: RAISE invalid_version;
1137: END IF;
1138:
1137: END IF;
1138:
1139: /* Validation :. Check if this routing that is deleted does exists
1140: in the the database. The routing_id is the PK or Routing_no and version is
1141: the unique key for this table (gmd_routings_b). */
1142: IF p_routing_id IS NOT NULL THEN
1143: l_routing_id := p_routing_id;
1144: ELSE
1145: GMDRTVAL_PUB.check_routing(pRouting_no => p_routing_no
1154: RAISE routing_undelete_failure;
1155: END IF;
1156: END IF;
1157:
1158: UPDATE gmd_routings_b
1159: SET delete_mark = 0
1160: WHERE routing_id = l_routing_id;
1161:
1162: fnd_msg_pub.count_and_get (
1199: ,p_data => x_message_list);
1200: WHEN OTHERS THEN
1201: ROLLBACK TO SAVEPOINT undelete_routing;
1202: x_return_status := FND_API.g_ret_sts_unexp_error;
1203: fnd_msg_pub.add_exc_msg (gmd_routings_PUB.m_pkg_name, l_api_name);
1204: IF (l_debug = 'Y') THEN
1205: gmd_debug.put_line (m_pkg_name||'.'||l_api_name||':'||'When others exception:'||SQLERRM);
1206: END IF;
1207: fnd_msg_pub.count_and_get (
1210: ,p_data => x_message_list);
1211: END undelete_routing;
1212:
1213:
1214: END GMD_ROUTINGS_PUB;