41: *********************************************************************/
42: PROCEDURE Add_WO_To_Network
43: (
44: p_api_version IN NUMBER,
45: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
46: p_commit IN VARCHAR2 := FND_API.G_FALSE,
47: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
48:
49: p_child_object_id IN NUMBER,
42: PROCEDURE Add_WO_To_Network
43: (
44: p_api_version IN NUMBER,
45: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
46: p_commit IN VARCHAR2 := FND_API.G_FALSE,
47: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
48:
49: p_child_object_id IN NUMBER,
50: p_child_object_type_id IN NUMBER,
43: (
44: p_api_version IN NUMBER,
45: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
46: p_commit IN VARCHAR2 := FND_API.G_FALSE,
47: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
48:
49: p_child_object_id IN NUMBER,
50: p_child_object_type_id IN NUMBER,
51: p_parent_object_id IN NUMBER,
49: p_child_object_id IN NUMBER,
50: p_child_object_type_id IN NUMBER,
51: p_parent_object_id IN NUMBER,
52: p_parent_object_type_id IN NUMBER,
53: p_adjust_parent IN VARCHAR2 := FND_API.G_FALSE,
54: p_relationship_type IN NUMBER := 1,
55:
56: x_return_status OUT NOCOPY VARCHAR2,
57: x_msg_count OUT NOCOPY NUMBER,
67: l_work_object_id NUMBER;
68: l_work_object_type_id NUMBER;
69:
70: l_stmt_num NUMBER;
71: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
72: l_msg_count NUMBER;
73: l_msg_data VARCHAR2(1000);
74:
75: l_exception_msg VARCHAR2(1000);
131: -- Standard Start of API savepoint
132: SAVEPOINT EAM_WN_ADD_WO;
133:
134: -- Standard call to check for call compatibility.
135: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
136: p_api_version ,
137: l_api_name ,
138: G_PKG_NAME )
139: THEN
136: p_api_version ,
137: l_api_name ,
138: G_PKG_NAME )
139: THEN
140: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
141: END IF;
142: -- Initialize message list if p_init_msg_list is set to TRUE.
143: IF FND_API.to_Boolean( p_init_msg_list ) THEN
144: FND_MSG_PUB.initialize;
139: THEN
140: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
141: END IF;
142: -- Initialize message list if p_init_msg_list is set to TRUE.
143: IF FND_API.to_Boolean( p_init_msg_list ) THEN
144: FND_MSG_PUB.initialize;
145: END IF;
146: -- Initialize API return status to success
147: x_return_status := FND_API.G_RET_STS_SUCCESS;
143: IF FND_API.to_Boolean( p_init_msg_list ) THEN
144: FND_MSG_PUB.initialize;
145: END IF;
146: -- Initialize API return status to success
147: x_return_status := FND_API.G_RET_STS_SUCCESS;
148: -- API body
149:
150:
151: x_return_status := l_return_status;
330: );
331:
332: x_mesg_token_tbl := l_out_mesg_token_tbl;
333:
334: x_return_status := FND_API.G_RET_STS_ERROR;
335: return;
336: END IF;
337:
338: --fix for 3433757.added validation so that relationships can't be created if either
359: l_mesg_token_tbl := l_out_mesg_token_tbl;
360:
361: x_mesg_token_tbl := l_out_mesg_token_tbl;
362:
363: x_return_status := FND_API.G_RET_STS_ERROR;
364: return;
365: END IF;
366:
367:
454: x_return_status => l_return_status,
455: x_msg_count => l_msg_count,
456: x_msg_data => l_msg_data,
457: p_api_version => 1.0,
458: p_init_msg_list => FND_API.G_FALSE,
459: p_commit => FND_API.G_FALSE);
460:
461: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
462:
455: x_msg_count => l_msg_count,
456: x_msg_data => l_msg_data,
457: p_api_version => 1.0,
458: p_init_msg_list => FND_API.G_FALSE,
459: p_commit => FND_API.G_FALSE);
460:
461: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
462:
463: l_token_tbl(1).token_name := 'Parent Object Id';
457: p_api_version => 1.0,
458: p_init_msg_list => FND_API.G_FALSE,
459: p_commit => FND_API.G_FALSE);
460:
461: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
462:
463: l_token_tbl(1).token_name := 'Parent Object Id';
464: l_token_tbl(1).token_value := l_parent_object_id;
465:
643:
644: EAM_WO_NETWORK_VALIDATE_PVT.Validate_Structure
645: (
646: p_api_version => 1.0,
647: p_init_msg_list => FND_API.G_FALSE,
648: p_commit => FND_API.G_FALSE,
649: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
650:
651: p_work_object_id => l_child_object_id,
644: EAM_WO_NETWORK_VALIDATE_PVT.Validate_Structure
645: (
646: p_api_version => 1.0,
647: p_init_msg_list => FND_API.G_FALSE,
648: p_commit => FND_API.G_FALSE,
649: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
650:
651: p_work_object_id => l_child_object_id,
652: p_work_object_type_id => l_child_object_type_id,
645: (
646: p_api_version => 1.0,
647: p_init_msg_list => FND_API.G_FALSE,
648: p_commit => FND_API.G_FALSE,
649: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
650:
651: p_work_object_id => l_child_object_id,
652: p_work_object_type_id => l_child_object_type_id,
653: p_exception_logging => 'Y',
664: --dbms_output.put_line('After VALIDATE_STRUCTURE:ret stat ='||l_return_status);
665:
666:
667:
668: IF l_return_status = FND_API.G_RET_STS_ERROR OR
669: l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
670:
671: l_token_tbl(1).token_name := 'Parent_WorkOrder';
672: l_token_tbl(1).token_value := l_parent_workorder;
665:
666:
667:
668: IF l_return_status = FND_API.G_RET_STS_ERROR OR
669: l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
670:
671: l_token_tbl(1).token_name := 'Parent_WorkOrder';
672: l_token_tbl(1).token_value := l_parent_workorder;
673: l_token_tbl(2).token_name := 'Child_WorkOrder';
691: x_return_status := l_return_status;
692:
693: -- End of API body.
694: -- Standard check of p_commit.
695: IF FND_API.To_Boolean( p_commit ) THEN
696: --dbms_output.put_line('committing');
697: COMMIT WORK;
698: END IF;
699:
703: WHEN OTHERS THEN
704:
705: rollback to EAM_WN_ADD_WO;
706:
707: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
708:
709: l_token_tbl(1).token_name := 'Parent_WorkOrder';
710: l_token_tbl(1).token_value := l_parent_workorder;
711: l_token_tbl(2).token_name := 'Child_WorkOrder';
821: /*Bug3521886: Pass requested start date and due date*/
822: PROCEDURE Resize_WO
823: (
824: p_api_version IN NUMBER,
825: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
826: p_commit IN VARCHAR2 := FND_API.G_FALSE,
827: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
828: p_object_id IN NUMBER,
829: p_object_type_id IN NUMBER,
822: PROCEDURE Resize_WO
823: (
824: p_api_version IN NUMBER,
825: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
826: p_commit IN VARCHAR2 := FND_API.G_FALSE,
827: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
828: p_object_id IN NUMBER,
829: p_object_type_id IN NUMBER,
830: p_start_date IN DATE,
823: (
824: p_api_version IN NUMBER,
825: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
826: p_commit IN VARCHAR2 := FND_API.G_FALSE,
827: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
828: p_object_id IN NUMBER,
829: p_object_type_id IN NUMBER,
830: p_start_date IN DATE,
831: p_completion_date IN DATE,
845: l_object_type_id NUMBER := p_object_type_id;
846: l_start_date DATE := p_start_date;
847: l_completion_date DATE := p_completion_date;
848:
849: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
850: l_msg_count NUMBER;
851: l_msg_data VARCHAR2(1000);
852:
853: l_date_chk_return_status VARCHAR2(1);
969: );
970:
971: /* if the status returned is sucess then commit the work in case caller wants it to be committed. Else * raise exception
972: */
973: IF (l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
974: IF FND_API.TO_BOOLEAN(p_commit)THEN
975: COMMIT WORK;
976: END IF;
977: ELSE
970:
971: /* if the status returned is sucess then commit the work in case caller wants it to be committed. Else * raise exception
972: */
973: IF (l_return_status = FND_API.G_RET_STS_SUCCESS) THEN
974: IF FND_API.TO_BOOLEAN(p_commit)THEN
975: COMMIT WORK;
976: END IF;
977: ELSE
978: RAISE FND_API.G_EXC_ERROR;
974: IF FND_API.TO_BOOLEAN(p_commit)THEN
975: COMMIT WORK;
976: END IF;
977: ELSE
978: RAISE FND_API.G_EXC_ERROR;
979: END IF;
980:
981: EXCEPTION
982: when others then
979: END IF;
980:
981: EXCEPTION
982: when others then
983: x_return_status := FND_API.G_RET_STS_ERROR;
984: return;
985:
986:
987: END Resize_WO;
992:
993: PROCEDURE Delete_Dependency
994: (
995: p_api_version IN NUMBER,
996: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
997: p_commit IN VARCHAR2 := FND_API.G_FALSE,
998: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
999:
1000: p_prior_object_id IN NUMBER,
993: PROCEDURE Delete_Dependency
994: (
995: p_api_version IN NUMBER,
996: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
997: p_commit IN VARCHAR2 := FND_API.G_FALSE,
998: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
999:
1000: p_prior_object_id IN NUMBER,
1001: p_prior_object_type_id IN NUMBER,
994: (
995: p_api_version IN NUMBER,
996: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
997: p_commit IN VARCHAR2 := FND_API.G_FALSE,
998: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
999:
1000: p_prior_object_id IN NUMBER,
1001: p_prior_object_type_id IN NUMBER,
1002: p_next_object_id IN NUMBER,
1016: l_count_prior NUMBER := 0;
1017: l_count_next NUMBER := 0;
1018: l_status_type NUMBER := 0;
1019:
1020: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1021: l_msg_count NUMBER;
1022: l_msg_data VARCHAR2(1000);
1023: l_sched_relationship_id NUMBER;
1024:
1130: x_return_status => l_return_status,
1131: x_msg_count => l_msg_count,
1132: x_msg_data => l_msg_data,
1133: p_api_version => 1.0,
1134: p_init_msg_list => FND_API.G_FALSE,
1135: p_commit => FND_API.G_FALSE);
1136:
1137: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1138:
1131: x_msg_count => l_msg_count,
1132: x_msg_data => l_msg_data,
1133: p_api_version => 1.0,
1134: p_init_msg_list => FND_API.G_FALSE,
1135: p_commit => FND_API.G_FALSE);
1136:
1137: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1138:
1139: l_token_tbl(1).token_name := 'Parent Object Id';
1133: p_api_version => 1.0,
1134: p_init_msg_list => FND_API.G_FALSE,
1135: p_commit => FND_API.G_FALSE);
1136:
1137: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1138:
1139: l_token_tbl(1).token_name := 'Parent Object Id';
1140: l_token_tbl(1).token_value := l_prior_object_id;
1141:
1161: and child_object_id = l_next_object_id
1162: and child_object_type_id = l_next_object_type_id
1163: and parent_relationship_type = 2;
1164:
1165: x_return_status := FND_API.G_RET_STS_SUCCESS;
1166:
1167: EXCEPTION
1168: when others then
1169:
1184: l_mesg_token_tbl := l_out_mesg_token_tbl;
1185:
1186: x_mesg_token_tbl := l_out_mesg_token_tbl;
1187:
1188: x_return_status := FND_API.G_RET_STS_ERROR;
1189: return;
1190:
1191: END Delete_Dependency;
1192:
1195:
1196: PROCEDURE Add_Dependency
1197: (
1198: p_api_version IN NUMBER,
1199: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1200: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1201: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1202:
1203: p_prior_object_id IN NUMBER,
1196: PROCEDURE Add_Dependency
1197: (
1198: p_api_version IN NUMBER,
1199: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1200: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1201: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1202:
1203: p_prior_object_id IN NUMBER,
1204: p_prior_object_type_id IN NUMBER,
1197: (
1198: p_api_version IN NUMBER,
1199: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1200: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1201: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1202:
1203: p_prior_object_id IN NUMBER,
1204: p_prior_object_type_id IN NUMBER,
1205: p_next_object_id IN NUMBER,
1231: l_relationship_status NUMBER := 0; -- pending validation
1232:
1233: l_count NUMBER := 0;
1234: l_status_type NUMBER := 0;
1235: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1236: l_msg_count NUMBER;
1237: l_msg_data VARCHAR2(1000);
1238: l_err_text VARCHAR2(2000) := NULL;
1239: l_Mesg_Token_Tbl EAM_ERROR_MESSAGE_PVT.Mesg_Token_Tbl_Type;
1470: l_mesg_token_tbl := l_out_mesg_token_tbl;
1471:
1472: x_mesg_token_tbl := l_out_mesg_token_tbl;
1473:
1474: x_return_status := FND_API.G_RET_STS_ERROR;
1475: return;
1476: END IF;
1477:
1478: wip_sched_relation_grp.insertRow(
1485: x_return_status => l_return_status,
1486: x_msg_count => l_msg_count,
1487: x_msg_data => l_msg_data,
1488: p_api_version => 1.0,
1489: p_init_msg_list => FND_API.G_FALSE,
1490: p_commit => FND_API.G_FALSE);
1491:
1492: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1493:
1486: x_msg_count => l_msg_count,
1487: x_msg_data => l_msg_data,
1488: p_api_version => 1.0,
1489: p_init_msg_list => FND_API.G_FALSE,
1490: p_commit => FND_API.G_FALSE);
1491:
1492: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1493:
1494: l_token_tbl(1).token_name := 'Parent Object Id';
1488: p_api_version => 1.0,
1489: p_init_msg_list => FND_API.G_FALSE,
1490: p_commit => FND_API.G_FALSE);
1491:
1492: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1493:
1494: l_token_tbl(1).token_name := 'Parent Object Id';
1495: l_token_tbl(1).token_value := l_prior_object_id;
1496:
1546:
1547: EAM_WO_NETWORK_VALIDATE_PVT.Validate_Structure
1548: (
1549: p_api_version => 1.0,
1550: p_init_msg_list => FND_API.G_FALSE,
1551: p_commit => FND_API.G_FALSE,
1552: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1553:
1554: p_work_object_id => l_prior_object_id,
1547: EAM_WO_NETWORK_VALIDATE_PVT.Validate_Structure
1548: (
1549: p_api_version => 1.0,
1550: p_init_msg_list => FND_API.G_FALSE,
1551: p_commit => FND_API.G_FALSE,
1552: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1553:
1554: p_work_object_id => l_prior_object_id,
1555: p_work_object_type_id => l_prior_object_type_id,
1548: (
1549: p_api_version => 1.0,
1550: p_init_msg_list => FND_API.G_FALSE,
1551: p_commit => FND_API.G_FALSE,
1552: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1553:
1554: p_work_object_id => l_prior_object_id,
1555: p_work_object_type_id => l_prior_object_type_id,
1556: p_exception_logging => 'Y',
1564: x_wo_relationship_exc_tbl => l_wo_relationship_exc_tbl
1565: );
1566:
1567:
1568: IF l_return_status = FND_API.G_RET_STS_ERROR OR
1569: l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1570:
1571: l_token_tbl(1).token_name := 'Prior_WorkOrder';
1572: l_token_tbl(1).token_value := l_prior_workorder;
1565: );
1566:
1567:
1568: IF l_return_status = FND_API.G_RET_STS_ERROR OR
1569: l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1570:
1571: l_token_tbl(1).token_name := 'Prior_WorkOrder';
1572: l_token_tbl(1).token_value := l_prior_workorder;
1573: l_token_tbl(2).token_name := 'Next_WorkOrder';
1609: l_mesg_token_tbl := l_out_mesg_token_tbl;
1610:
1611: x_mesg_token_tbl := l_out_mesg_token_tbl;
1612:
1613: x_return_status := FND_API.G_RET_STS_ERROR;
1614: return;
1615:
1616: END Add_Dependency;
1617:
1620:
1621: PROCEDURE Delink_Child_From_Parent
1622: (
1623: p_api_version IN NUMBER,
1624: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1625: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1626: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1627:
1628: p_child_object_id IN NUMBER,
1621: PROCEDURE Delink_Child_From_Parent
1622: (
1623: p_api_version IN NUMBER,
1624: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1625: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1626: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1627:
1628: p_child_object_id IN NUMBER,
1629: p_child_object_type_id IN NUMBER,
1622: (
1623: p_api_version IN NUMBER,
1624: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1625: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1626: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1627:
1628: p_child_object_id IN NUMBER,
1629: p_child_object_type_id IN NUMBER,
1630: p_parent_object_id IN NUMBER,
1646: l_parent_object_id NUMBER := p_parent_object_id;
1647: l_parent_object_type_id NUMBER := p_parent_object_type_id;
1648:
1649: l_relationship_status NUMBER := 0;
1650: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1651:
1652: l_sched_relationship_id NUMBER;
1653: l_msg_count NUMBER;
1654: l_msg_data VARCHAR2(1000);
1687: BEGIN
1688:
1689: savepoint EAM_WN_DELINK_PAR_CH;
1690:
1691: x_return_status := FND_API.G_RET_STS_SUCCESS;
1692:
1693: SELECT wip_entity_name into l_parent_workorder
1694: FROM wip_entities we
1695: WHERE we.wip_entity_id = l_parent_object_id;
1737: x_return_status => l_return_status,
1738: x_msg_count => l_msg_count,
1739: x_msg_data => l_msg_data,
1740: p_api_version => 1.0,
1741: p_init_msg_list => FND_API.G_FALSE,
1742: p_commit => FND_API.G_FALSE);
1743:
1744: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1745:
1738: x_msg_count => l_msg_count,
1739: x_msg_data => l_msg_data,
1740: p_api_version => 1.0,
1741: p_init_msg_list => FND_API.G_FALSE,
1742: p_commit => FND_API.G_FALSE);
1743:
1744: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1745:
1746: l_token_tbl(1).token_name := 'Parent Object Id';
1740: p_api_version => 1.0,
1741: p_init_msg_list => FND_API.G_FALSE,
1742: p_commit => FND_API.G_FALSE);
1743:
1744: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
1745:
1746: l_token_tbl(1).token_name := 'Parent Object Id';
1747: l_token_tbl(1).token_value := l_parent_object_id;
1748:
1782: l_mesg_token_tbl := l_out_mesg_token_tbl;
1783:
1784: x_mesg_token_tbl := l_out_mesg_token_tbl;
1785:
1786: x_return_status := FND_API.G_RET_STS_ERROR;
1787: return;
1788: end if;
1789:
1790: IF l_relationship_type = 1 THEN
1896: l_mesg_token_tbl := l_out_mesg_token_tbl;
1897:
1898: x_mesg_token_tbl := l_out_mesg_token_tbl;
1899:
1900: x_return_status := FND_API.G_RET_STS_ERROR;
1901: return;
1902:
1903: END Delink_Child_From_Parent;
1904:
1910:
1911: PROCEDURE Check_Wo_Negative_Dates
1912: (
1913: p_api_version IN NUMBER,
1914: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1915: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1916: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1917: p_wip_entity_id IN NUMBER,
1918: p_organization_id IN NUMBER,
1911: PROCEDURE Check_Wo_Negative_Dates
1912: (
1913: p_api_version IN NUMBER,
1914: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1915: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1916: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1917: p_wip_entity_id IN NUMBER,
1918: p_organization_id IN NUMBER,
1919: x_return_status OUT NOCOPY VARCHAR2,
1912: (
1913: p_api_version IN NUMBER,
1914: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1915: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1916: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1917: p_wip_entity_id IN NUMBER,
1918: p_organization_id IN NUMBER,
1919: x_return_status OUT NOCOPY VARCHAR2,
1920: x_msg_count OUT NOCOPY NUMBER,
1993:
1994:
1995: -- check if work order has -ve duration
1996: IF l_wo_start_date > l_wo_completion_date THEN
1997: x_return_status := FND_API.G_RET_STS_ERROR;
1998: RETURN;
1999: END IF;
2000:
2001:
2014: LOOP FETCH l_op_records_cur into
2015: l_op_record;
2016:
2017: IF l_op_record.first_unit_start_date > l_op_record.last_unit_completion_date THEN
2018: x_return_status := FND_API.G_RET_STS_ERROR;
2019: RETURN;
2020: END IF;
2021:
2022: EXIT WHEN l_op_records_cur%NOTFOUND;
2028: OPEN l_op_resources;
2029: LOOP FETCH l_op_resources into l_resource_record;
2030:
2031: IF l_resource_record.res_start_date > l_resource_record.res_completion_date THEN
2032: x_return_status := FND_API.G_RET_STS_ERROR;
2033: RETURN;
2034: END IF;
2035:
2036: EXIT WHEN l_op_resources%NOTFOUND;
2042: OPEN l_resource_instances;
2043: LOOP FETCH l_resource_instances into l_resource_inst_record;
2044:
2045: IF l_resource_inst_record.resinst_start_date > l_resource_inst_record.resinst_completion_date THEN
2046: x_return_status := FND_API.G_RET_STS_ERROR;
2047: RETURN;
2048: END IF;
2049:
2050: EXIT WHEN l_resource_instances%NOTFOUND;
2056: OPEN l_op_sub_resources;
2057: LOOP FETCH l_op_sub_resources into l_sub_resource_record;
2058:
2059: IF l_sub_resource_record.res_start_date > l_sub_resource_record.res_completion_date THEN
2060: x_return_status := FND_API.G_RET_STS_ERROR;
2061: RETURN;
2062: END IF;
2063:
2064: EXIT WHEN l_op_sub_resources%NOTFOUND;
2066:
2067: CLOSE l_op_sub_resources;
2068:
2069:
2070: x_return_status := FND_API.G_RET_STS_SUCCESS;
2071:
2072: EXCEPTION
2073: when others then
2074: x_return_status := FND_API.G_RET_STS_ERROR;
2070: x_return_status := FND_API.G_RET_STS_SUCCESS;
2071:
2072: EXCEPTION
2073: when others then
2074: x_return_status := FND_API.G_RET_STS_ERROR;
2075: return;
2076:
2077: END Check_Wo_Negative_Dates;
2078:
2082: -- This procedure can be used while moving or resizing work orders
2083: PROCEDURE Check_WO_Dates
2084: (
2085: p_api_version IN NUMBER,
2086: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2087: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2088: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2089:
2090: p_wip_entity_id IN NUMBER,
2083: PROCEDURE Check_WO_Dates
2084: (
2085: p_api_version IN NUMBER,
2086: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2087: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2088: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2089:
2090: p_wip_entity_id IN NUMBER,
2091:
2084: (
2085: p_api_version IN NUMBER,
2086: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2087: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2088: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2089:
2090: p_wip_entity_id IN NUMBER,
2091:
2092: x_return_status OUT NOCOPY VARCHAR2,
2211: l_operation_record;
2212:
2213: IF l_operation_record.first_unit_start_date < l_wo_start_date OR
2214: l_operation_record.last_unit_completion_date > l_wo_completion_date THEN
2215: x_return_status := FND_API.G_RET_STS_ERROR;
2216: RETURN;
2217: END IF;
2218:
2219: EXIT WHEN l_wo_operations%NOTFOUND;
2226: LOOP FETCH l_op_resources into l_resource_record;
2227:
2228: IF l_resource_record.res_start_date < l_resource_record.op_start_date OR
2229: l_resource_record.res_completion_date > l_resource_record.op_completion_date THEN
2230: x_return_status := FND_API.G_RET_STS_ERROR;
2231: RETURN;
2232: END IF;
2233:
2234: EXIT WHEN l_op_resources%NOTFOUND;
2241: LOOP FETCH l_resource_instances into l_resource_inst_record;
2242:
2243: IF l_resource_inst_record.resinst_start_date < l_resource_inst_record.res_start_date OR
2244: l_resource_inst_record.resinst_completion_date > l_resource_inst_record.res_completion_date THEN
2245: x_return_status := FND_API.G_RET_STS_ERROR;
2246: RETURN;
2247: END IF;
2248:
2249: EXIT WHEN l_resource_instances%NOTFOUND;
2256: LOOP FETCH l_res_usages into l_res_usages_record;
2257:
2258: IF l_res_usages_record.res_start_date > l_res_usages_record.res_usg_start_date OR
2259: l_res_usages_record.res_usg_completion_date > l_res_usages_record.res_completion_date THEN
2260: x_return_status := FND_API.G_RET_STS_ERROR;
2261: RETURN;
2262: END IF;
2263:
2264: EXIT WHEN l_res_usages%NOTFOUND;
2271: LOOP FETCH l_res_usage_instances into l_res_usage_inst_record;
2272:
2273: IF l_res_usage_inst_record.resinst_start_date > l_res_usage_inst_record.res_usg_start_date OR
2274: l_res_usage_inst_record.res_usg_completion_date > l_res_usage_inst_record.resinst_completion_date THEN
2275: x_return_status := FND_API.G_RET_STS_ERROR;
2276: RETURN;
2277: END IF;
2278:
2279: EXIT WHEN l_res_usage_instances%NOTFOUND;
2281:
2282: CLOSE l_res_usage_instances;
2283:
2284:
2285: x_return_status := FND_API.G_RET_STS_SUCCESS;
2286:
2287: EXCEPTION
2288: when others then
2289: x_return_status := FND_API.G_RET_STS_ERROR;
2285: x_return_status := FND_API.G_RET_STS_SUCCESS;
2286:
2287: EXCEPTION
2288: when others then
2289: x_return_status := FND_API.G_RET_STS_ERROR;
2290: return;
2291:
2292: END Check_WO_Dates;
2293:
2294: -- To check dates of wori,woru,wor
2295: PROCEDURE Check_Resource_Dates
2296: (
2297: p_api_version IN NUMBER,
2298: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2299: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2300: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2301:
2302: p_wip_entity_id IN NUMBER,
2295: PROCEDURE Check_Resource_Dates
2296: (
2297: p_api_version IN NUMBER,
2298: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2299: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2300: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2301:
2302: p_wip_entity_id IN NUMBER,
2303:
2296: (
2297: p_api_version IN NUMBER,
2298: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
2299: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2300: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2301:
2302: p_wip_entity_id IN NUMBER,
2303:
2304: x_return_status OUT NOCOPY VARCHAR2,
2411: END LOOP;
2412:
2413: CLOSE l_res_usage_instances;
2414:
2415: x_return_status := FND_API.G_RET_STS_SUCCESS;
2416:
2417: EXCEPTION
2418: when others then
2419: x_return_status := FND_API.G_RET_STS_ERROR;
2415: x_return_status := FND_API.G_RET_STS_SUCCESS;
2416:
2417: EXCEPTION
2418: when others then
2419: x_return_status := FND_API.G_RET_STS_ERROR;
2420: return;
2421:
2422: END Check_Resource_Dates;
2423:
2436:
2437: PROCEDURE Snap_Right
2438: (
2439: p_api_version IN NUMBER,
2440: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2441: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2442: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2443:
2444: p_work_object_id IN NUMBER,
2437: PROCEDURE Snap_Right
2438: (
2439: p_api_version IN NUMBER,
2440: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2441: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2442: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2443:
2444: p_work_object_id IN NUMBER,
2445: p_work_object_type_id IN NUMBER,
2438: (
2439: p_api_version IN NUMBER,
2440: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2441: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2442: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2443:
2444: p_work_object_id IN NUMBER,
2445: p_work_object_type_id IN NUMBER,
2446:
2469: BEGIN
2470: -- Standard Start of API savepoint
2471: SAVEPOINT EAM_WO_NETWORK_DEFAULT_PVT;
2472: -- Standard call to check for call compatibility.
2473: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
2474: p_api_version ,
2475: l_api_name ,
2476: G_PKG_NAME )
2477: THEN
2474: p_api_version ,
2475: l_api_name ,
2476: G_PKG_NAME )
2477: THEN
2478: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2479: END IF;
2480: -- Initialize message list if p_init_msg_list is set to TRUE.
2481: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2482: FND_MSG_PUB.initialize;
2477: THEN
2478: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2479: END IF;
2480: -- Initialize message list if p_init_msg_list is set to TRUE.
2481: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2482: FND_MSG_PUB.initialize;
2483: END IF;
2484: -- Initialize API return status to success
2485: x_return_status := FND_API.G_RET_STS_SUCCESS;
2481: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2482: FND_MSG_PUB.initialize;
2483: END IF;
2484: -- Initialize API return status to success
2485: x_return_status := FND_API.G_RET_STS_SUCCESS;
2486: -- API body
2487:
2488: /* Initialize the local variables */
2489: l_stmt_num := 10;
2488: /* Initialize the local variables */
2489: l_stmt_num := 10;
2490: l_work_object_id := p_work_object_id;
2491: l_work_object_type_id := p_work_object_type_id;
2492: l_return_status := FND_API.G_RET_STS_SUCCESS;
2493: l_msg_count := 0 ;
2494: l_msg_data := NULL;
2495:
2496:
2506: x_msg_count => l_msg_count,
2507: x_msg_data => l_msg_data
2508: );
2509:
2510: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2511: x_return_status := FND_API.G_RET_STS_ERROR;
2512: RETURN;
2513:
2514: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2507: x_msg_data => l_msg_data
2508: );
2509:
2510: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2511: x_return_status := FND_API.G_RET_STS_ERROR;
2512: RETURN;
2513:
2514: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2515: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2510: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2511: x_return_status := FND_API.G_RET_STS_ERROR;
2512: RETURN;
2513:
2514: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2515: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2516: RETURN;
2517: END IF;
2518:
2511: x_return_status := FND_API.G_RET_STS_ERROR;
2512: RETURN;
2513:
2514: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2515: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2516: RETURN;
2517: END IF;
2518:
2519: /* Initialize the local variables */
2517: END IF;
2518:
2519: /* Initialize the local variables */
2520: l_stmt_num := 10;
2521: l_return_status := FND_API.G_RET_STS_SUCCESS;
2522: l_msg_count := 0 ;
2523: l_msg_data := NULL;
2524:
2525:
2540: x_msg_data => l_msg_data
2541:
2542: );
2543:
2544: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2545: x_return_status := FND_API.G_RET_STS_ERROR;
2546: RETURN;
2547:
2548: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2541:
2542: );
2543:
2544: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2545: x_return_status := FND_API.G_RET_STS_ERROR;
2546: RETURN;
2547:
2548: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2549: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2544: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2545: x_return_status := FND_API.G_RET_STS_ERROR;
2546: RETURN;
2547:
2548: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2549: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2550: RETURN;
2551: END IF;
2552:
2545: x_return_status := FND_API.G_RET_STS_ERROR;
2546: RETURN;
2547:
2548: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2549: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2550: RETURN;
2551: END IF;
2552:
2553:
2553:
2554:
2555: -- End of API body.
2556: -- Standard check of p_commit.
2557: IF FND_API.To_Boolean( p_commit ) THEN
2558: --dbms_output.put_line('committing');
2559: COMMIT WORK;
2560: END IF;
2561: -- Standard call to get message count and if count is 1, get message info.
2563: ( p_count => x_msg_count ,
2564: p_data => x_msg_data
2565: );
2566: EXCEPTION
2567: WHEN FND_API.G_EXC_ERROR THEN
2568: x_return_status := FND_API.G_RET_STS_ERROR ;
2569: FND_MSG_PUB.Count_And_Get
2570: ( p_count => x_msg_count ,
2571: p_data => x_msg_data
2564: p_data => x_msg_data
2565: );
2566: EXCEPTION
2567: WHEN FND_API.G_EXC_ERROR THEN
2568: x_return_status := FND_API.G_RET_STS_ERROR ;
2569: FND_MSG_PUB.Count_And_Get
2570: ( p_count => x_msg_count ,
2571: p_data => x_msg_data
2572: );
2571: p_data => x_msg_data
2572: );
2573:
2574:
2575: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2576: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2577: FND_MSG_PUB.Count_And_Get
2578: (
2579: p_count => x_msg_count,
2572: );
2573:
2574:
2575: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2576: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2577: FND_MSG_PUB.Count_And_Get
2578: (
2579: p_count => x_msg_count,
2580: p_data => x_msg_data
2580: p_data => x_msg_data
2581: );
2582:
2583: WHEN OTHERS THEN
2584: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2585: IF FND_MSG_PUB.Check_Msg_Level
2586: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2587: THEN
2588: FND_MSG_PUB.Add_Exc_Msg
2612:
2613: PROCEDURE Snap_Left
2614: (
2615: p_api_version IN NUMBER,
2616: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2617: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2618: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2619:
2620: p_work_object_id IN NUMBER,
2613: PROCEDURE Snap_Left
2614: (
2615: p_api_version IN NUMBER,
2616: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2617: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2618: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2619:
2620: p_work_object_id IN NUMBER,
2621: p_work_object_type_id IN NUMBER,
2614: (
2615: p_api_version IN NUMBER,
2616: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2617: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2618: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2619:
2620: p_work_object_id IN NUMBER,
2621: p_work_object_type_id IN NUMBER,
2622:
2645: BEGIN
2646: -- Standard Start of API savepoint
2647: SAVEPOINT EAM_WO_NETWORK_DEFAULT_PVT;
2648: -- Standard call to check for call compatibility.
2649: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
2650: p_api_version ,
2651: l_api_name ,
2652: G_PKG_NAME )
2653: THEN
2650: p_api_version ,
2651: l_api_name ,
2652: G_PKG_NAME )
2653: THEN
2654: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2655: END IF;
2656: -- Initialize message list if p_init_msg_list is set to TRUE.
2657: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2658: FND_MSG_PUB.initialize;
2653: THEN
2654: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2655: END IF;
2656: -- Initialize message list if p_init_msg_list is set to TRUE.
2657: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2658: FND_MSG_PUB.initialize;
2659: END IF;
2660: -- Initialize API return status to success
2661: x_return_status := FND_API.G_RET_STS_SUCCESS;
2657: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2658: FND_MSG_PUB.initialize;
2659: END IF;
2660: -- Initialize API return status to success
2661: x_return_status := FND_API.G_RET_STS_SUCCESS;
2662: -- API body
2663:
2664: /* Initialize the local variables */
2665: l_stmt_num := 10;
2665: l_stmt_num := 10;
2666: l_work_object_id := p_work_object_id;
2667: l_work_object_type_id := p_work_object_type_id;
2668: l_left_snap_window := 0;
2669: l_return_status := FND_API.G_RET_STS_SUCCESS;
2670: l_msg_count := 0 ;
2671: l_msg_data := NULL;
2672:
2673:
2683: x_msg_count => l_msg_count,
2684: x_msg_data => l_msg_data
2685: );
2686:
2687: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2688: x_return_status := FND_API.G_RET_STS_ERROR;
2689: RETURN;
2690:
2691: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2684: x_msg_data => l_msg_data
2685: );
2686:
2687: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2688: x_return_status := FND_API.G_RET_STS_ERROR;
2689: RETURN;
2690:
2691: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2692: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2687: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2688: x_return_status := FND_API.G_RET_STS_ERROR;
2689: RETURN;
2690:
2691: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2692: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2693: RETURN;
2694: END IF;
2695:
2688: x_return_status := FND_API.G_RET_STS_ERROR;
2689: RETURN;
2690:
2691: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2692: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2693: RETURN;
2694: END IF;
2695:
2696: /* Initialize the local variables */
2694: END IF;
2695:
2696: /* Initialize the local variables */
2697: l_stmt_num := 10;
2698: l_return_status := FND_API.G_RET_STS_SUCCESS;
2699: l_msg_count := 0 ;
2700: l_msg_data := NULL;
2701:
2702:
2717: x_msg_data => l_msg_data
2718:
2719: );
2720:
2721: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2722: x_return_status := FND_API.G_RET_STS_ERROR;
2723: RETURN;
2724:
2725: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2718:
2719: );
2720:
2721: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2722: x_return_status := FND_API.G_RET_STS_ERROR;
2723: RETURN;
2724:
2725: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2726: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2721: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2722: x_return_status := FND_API.G_RET_STS_ERROR;
2723: RETURN;
2724:
2725: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2726: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2727: RETURN;
2728: END IF;
2729:
2722: x_return_status := FND_API.G_RET_STS_ERROR;
2723: RETURN;
2724:
2725: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2726: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2727: RETURN;
2728: END IF;
2729:
2730:
2730:
2731:
2732: -- End of API body.
2733: -- Standard check of p_commit.
2734: IF FND_API.To_Boolean( p_commit ) THEN
2735: --dbms_output.put_line('committing');
2736: COMMIT WORK;
2737: END IF;
2738: -- Standard call to get message count and if count is 1, get message info.
2740: ( p_count => x_msg_count ,
2741: p_data => x_msg_data
2742: );
2743: EXCEPTION
2744: WHEN FND_API.G_EXC_ERROR THEN
2745: x_return_status := FND_API.G_RET_STS_ERROR ;
2746: FND_MSG_PUB.Count_And_Get
2747: ( p_count => x_msg_count ,
2748: p_data => x_msg_data
2741: p_data => x_msg_data
2742: );
2743: EXCEPTION
2744: WHEN FND_API.G_EXC_ERROR THEN
2745: x_return_status := FND_API.G_RET_STS_ERROR ;
2746: FND_MSG_PUB.Count_And_Get
2747: ( p_count => x_msg_count ,
2748: p_data => x_msg_data
2749: );
2748: p_data => x_msg_data
2749: );
2750:
2751:
2752: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2753: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2754: FND_MSG_PUB.Count_And_Get
2755: (
2756: p_count => x_msg_count,
2749: );
2750:
2751:
2752: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2753: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2754: FND_MSG_PUB.Count_And_Get
2755: (
2756: p_count => x_msg_count,
2757: p_data => x_msg_data
2757: p_data => x_msg_data
2758: );
2759:
2760: WHEN OTHERS THEN
2761: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2762: IF FND_MSG_PUB.Check_Msg_Level
2763: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
2764: THEN
2765: FND_MSG_PUB.Add_Exc_Msg
2788: *********************************************************************/
2789: PROCEDURE Snap_Right_Window
2790: (
2791: p_api_version IN NUMBER,
2792: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2793: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2794: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2795:
2796: p_work_object_id IN NUMBER,
2789: PROCEDURE Snap_Right_Window
2790: (
2791: p_api_version IN NUMBER,
2792: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2793: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2794: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2795:
2796: p_work_object_id IN NUMBER,
2797: p_work_object_type_id IN NUMBER,
2790: (
2791: p_api_version IN NUMBER,
2792: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
2793: p_commit IN VARCHAR2 := FND_API.G_FALSE,
2794: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
2795:
2796: p_work_object_id IN NUMBER,
2797: p_work_object_type_id IN NUMBER,
2798:
2828: BEGIN
2829: -- Standard Start of API savepoint
2830: SAVEPOINT EAM_WO_NETWORK_DEFAULT_PVT;
2831: -- Standard call to check for call compatibility.
2832: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
2833: p_api_version ,
2834: l_api_name ,
2835: G_PKG_NAME )
2836: THEN
2833: p_api_version ,
2834: l_api_name ,
2835: G_PKG_NAME )
2836: THEN
2837: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2838: END IF;
2839: -- Initialize message list if p_init_msg_list is set to TRUE.
2840: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2841: FND_MSG_PUB.initialize;
2836: THEN
2837: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2838: END IF;
2839: -- Initialize message list if p_init_msg_list is set to TRUE.
2840: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2841: FND_MSG_PUB.initialize;
2842: END IF;
2843: -- Initialize API return status to success
2844: x_return_status := FND_API.G_RET_STS_SUCCESS;
2840: IF FND_API.to_Boolean( p_init_msg_list ) THEN
2841: FND_MSG_PUB.initialize;
2842: END IF;
2843: -- Initialize API return status to success
2844: x_return_status := FND_API.G_RET_STS_SUCCESS;
2845: -- API body
2846:
2847: /* Initialize the local variables */
2848: l_stmt_num := 10;
3012:
3013:
3014: -- End of API body.
3015: -- Standard check of p_commit.
3016: IF FND_API.To_Boolean( p_commit ) THEN
3017: --dbms_output.put_line('committing');
3018: COMMIT WORK;
3019: END IF;
3020: -- Standard call to get message count and if count is 1, get message info.
3022: ( p_count => x_msg_count ,
3023: p_data => x_msg_data
3024: );
3025: EXCEPTION
3026: WHEN FND_API.G_EXC_ERROR THEN
3027: x_return_status := FND_API.G_RET_STS_ERROR ;
3028: FND_MSG_PUB.Count_And_Get
3029: ( p_count => x_msg_count ,
3030: p_data => x_msg_data
3023: p_data => x_msg_data
3024: );
3025: EXCEPTION
3026: WHEN FND_API.G_EXC_ERROR THEN
3027: x_return_status := FND_API.G_RET_STS_ERROR ;
3028: FND_MSG_PUB.Count_And_Get
3029: ( p_count => x_msg_count ,
3030: p_data => x_msg_data
3031: );
3030: p_data => x_msg_data
3031: );
3032:
3033:
3034: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3035: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3036: FND_MSG_PUB.Count_And_Get
3037: (
3038: p_count => x_msg_count,
3031: );
3032:
3033:
3034: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3035: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3036: FND_MSG_PUB.Count_And_Get
3037: (
3038: p_count => x_msg_count,
3039: p_data => x_msg_data
3039: p_data => x_msg_data
3040: );
3041:
3042: WHEN OTHERS THEN
3043: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3044: IF FND_MSG_PUB.Check_Msg_Level
3045: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3046: THEN
3047: FND_MSG_PUB.Add_Exc_Msg
3071: *********************************************************************/
3072: PROCEDURE Snap_Left_Window
3073: (
3074: p_api_version IN NUMBER,
3075: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
3076: p_commit IN VARCHAR2 := FND_API.G_FALSE,
3077: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
3078:
3079: p_work_object_id IN NUMBER,
3072: PROCEDURE Snap_Left_Window
3073: (
3074: p_api_version IN NUMBER,
3075: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
3076: p_commit IN VARCHAR2 := FND_API.G_FALSE,
3077: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
3078:
3079: p_work_object_id IN NUMBER,
3080: p_work_object_type_id IN NUMBER,
3073: (
3074: p_api_version IN NUMBER,
3075: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
3076: p_commit IN VARCHAR2 := FND_API.G_FALSE,
3077: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
3078:
3079: p_work_object_id IN NUMBER,
3080: p_work_object_type_id IN NUMBER,
3081:
3111: BEGIN
3112: -- Standard Start of API savepoint
3113: SAVEPOINT EAM_WO_NETWORK_DEFAULT_PVT;
3114: -- Standard call to check for call compatibility.
3115: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
3116: p_api_version ,
3117: l_api_name ,
3118: G_PKG_NAME )
3119: THEN
3116: p_api_version ,
3117: l_api_name ,
3118: G_PKG_NAME )
3119: THEN
3120: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3121: END IF;
3122: -- Initialize message list if p_init_msg_list is set to TRUE.
3123: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3124: FND_MSG_PUB.initialize;
3119: THEN
3120: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3121: END IF;
3122: -- Initialize message list if p_init_msg_list is set to TRUE.
3123: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3124: FND_MSG_PUB.initialize;
3125: END IF;
3126: -- Initialize API return status to success
3127: x_return_status := FND_API.G_RET_STS_SUCCESS;
3123: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3124: FND_MSG_PUB.initialize;
3125: END IF;
3126: -- Initialize API return status to success
3127: x_return_status := FND_API.G_RET_STS_SUCCESS;
3128: -- API body
3129:
3130: /* Initialize the local variables */
3131: l_stmt_num := 10;
3293:
3294:
3295: -- End of API body.
3296: -- Standard check of p_commit.
3297: IF FND_API.To_Boolean( p_commit ) THEN
3298: --dbms_output.put_line('committing');
3299: COMMIT WORK;
3300: END IF;
3301: -- Standard call to get message count and if count is 1, get message info.
3303: ( p_count => x_msg_count ,
3304: p_data => x_msg_data
3305: );
3306: EXCEPTION
3307: WHEN FND_API.G_EXC_ERROR THEN
3308: x_return_status := FND_API.G_RET_STS_ERROR ;
3309: FND_MSG_PUB.Count_And_Get
3310: ( p_count => x_msg_count ,
3311: p_data => x_msg_data
3304: p_data => x_msg_data
3305: );
3306: EXCEPTION
3307: WHEN FND_API.G_EXC_ERROR THEN
3308: x_return_status := FND_API.G_RET_STS_ERROR ;
3309: FND_MSG_PUB.Count_And_Get
3310: ( p_count => x_msg_count ,
3311: p_data => x_msg_data
3312: );
3311: p_data => x_msg_data
3312: );
3313:
3314:
3315: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3316: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3317: FND_MSG_PUB.Count_And_Get
3318: (
3319: p_count => x_msg_count,
3312: );
3313:
3314:
3315: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3316: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3317: FND_MSG_PUB.Count_And_Get
3318: (
3319: p_count => x_msg_count,
3320: p_data => x_msg_data
3320: p_data => x_msg_data
3321: );
3322:
3323: WHEN OTHERS THEN
3324: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3325: IF FND_MSG_PUB.Check_Msg_Level
3326: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3327: THEN
3328: FND_MSG_PUB.Add_Exc_Msg
3354:
3355: PROCEDURE Find_Right_Snap_Window
3356: (
3357: p_api_version IN NUMBER,
3358: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
3359: p_commit IN VARCHAR2 := FND_API.G_FALSE,
3360: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
3361:
3362: p_starting_object_id IN NUMBER,
3355: PROCEDURE Find_Right_Snap_Window
3356: (
3357: p_api_version IN NUMBER,
3358: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
3359: p_commit IN VARCHAR2 := FND_API.G_FALSE,
3360: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
3361:
3362: p_starting_object_id IN NUMBER,
3363: p_starting_obj_type_id IN NUMBER,
3356: (
3357: p_api_version IN NUMBER,
3358: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
3359: p_commit IN VARCHAR2 := FND_API.G_FALSE,
3360: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
3361:
3362: p_starting_object_id IN NUMBER,
3363: p_starting_obj_type_id IN NUMBER,
3364: p_parent_object_id IN NUMBER,
3404: BEGIN
3405: -- Standard Start of API savepoint
3406:
3407: -- Standard call to check for call compatibility.
3408: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
3409: p_api_version ,
3410: l_api_name ,
3411: G_PKG_NAME )
3412: THEN
3409: p_api_version ,
3410: l_api_name ,
3411: G_PKG_NAME )
3412: THEN
3413: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3414: END IF;
3415: -- Initialize message list if p_init_msg_list is set to TRUE.
3416: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3417: FND_MSG_PUB.initialize;
3412: THEN
3413: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3414: END IF;
3415: -- Initialize message list if p_init_msg_list is set to TRUE.
3416: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3417: FND_MSG_PUB.initialize;
3418: END IF;
3419: -- Initialize API return status to success
3420: x_return_status := FND_API.G_RET_STS_SUCCESS;
3416: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3417: FND_MSG_PUB.initialize;
3418: END IF;
3419: -- Initialize API return status to success
3420: x_return_status := FND_API.G_RET_STS_SUCCESS;
3421: -- API body
3422:
3423: /* Initialize the local variables */
3424: l_stmt_num := 10;
3517: x_msg_count => l_msg_count,
3518: x_msg_data => l_msg_data
3519: );
3520:
3521: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3522: x_return_status := FND_API.G_RET_STS_ERROR;
3523:
3524: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3525: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3518: x_msg_data => l_msg_data
3519: );
3520:
3521: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3522: x_return_status := FND_API.G_RET_STS_ERROR;
3523:
3524: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3525: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3526:
3520:
3521: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3522: x_return_status := FND_API.G_RET_STS_ERROR;
3523:
3524: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3525: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3526:
3527: END IF;
3528:
3521: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3522: x_return_status := FND_API.G_RET_STS_ERROR;
3523:
3524: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3525: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3526:
3527: END IF;
3528:
3529:
3543: */
3544:
3545: -- End of API body.
3546: -- Standard check of p_commit.
3547: IF FND_API.To_Boolean( p_commit ) THEN
3548: --dbms_output.put_line('committing');
3549: COMMIT WORK;
3550: END IF;
3551: -- Standard call to get message count and if count is 1, get message info.
3553: ( p_count => x_msg_count ,
3554: p_data => x_msg_data
3555: );
3556: EXCEPTION
3557: WHEN FND_API.G_EXC_ERROR THEN
3558: x_return_status := FND_API.G_RET_STS_ERROR ;
3559: FND_MSG_PUB.Count_And_Get
3560: ( p_count => x_msg_count ,
3561: p_data => x_msg_data
3554: p_data => x_msg_data
3555: );
3556: EXCEPTION
3557: WHEN FND_API.G_EXC_ERROR THEN
3558: x_return_status := FND_API.G_RET_STS_ERROR ;
3559: FND_MSG_PUB.Count_And_Get
3560: ( p_count => x_msg_count ,
3561: p_data => x_msg_data
3562: );
3561: p_data => x_msg_data
3562: );
3563:
3564: RETURN;
3565: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3566:
3567: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3568: FND_MSG_PUB.Count_And_Get
3569: (
3563:
3564: RETURN;
3565: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3566:
3567: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3568: FND_MSG_PUB.Count_And_Get
3569: (
3570: p_count => x_msg_count,
3571: p_data => x_msg_data
3572: );
3573:
3574: RETURN;
3575: WHEN OTHERS THEN
3576: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3577: IF FND_MSG_PUB.Check_Msg_Level
3578: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3579: THEN
3580: FND_MSG_PUB.Add_Exc_Msg
3608:
3609: PROCEDURE Find_Left_Snap_Window
3610: (
3611: p_api_version IN NUMBER,
3612: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
3613: p_commit IN VARCHAR2 := FND_API.G_FALSE,
3614: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
3615:
3616: p_starting_object_id IN NUMBER,
3609: PROCEDURE Find_Left_Snap_Window
3610: (
3611: p_api_version IN NUMBER,
3612: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
3613: p_commit IN VARCHAR2 := FND_API.G_FALSE,
3614: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
3615:
3616: p_starting_object_id IN NUMBER,
3617: p_starting_obj_type_id IN NUMBER,
3610: (
3611: p_api_version IN NUMBER,
3612: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
3613: p_commit IN VARCHAR2 := FND_API.G_FALSE,
3614: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
3615:
3616: p_starting_object_id IN NUMBER,
3617: p_starting_obj_type_id IN NUMBER,
3618: p_parent_object_id IN NUMBER,
3658: BEGIN
3659: -- Standard Start of API savepoint
3660:
3661: -- Standard call to check for call compatibility.
3662: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
3663: p_api_version ,
3664: l_api_name ,
3665: G_PKG_NAME )
3666: THEN
3663: p_api_version ,
3664: l_api_name ,
3665: G_PKG_NAME )
3666: THEN
3667: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3668: END IF;
3669: -- Initialize message list if p_init_msg_list is set to TRUE.
3670: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3671: FND_MSG_PUB.initialize;
3666: THEN
3667: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3668: END IF;
3669: -- Initialize message list if p_init_msg_list is set to TRUE.
3670: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3671: FND_MSG_PUB.initialize;
3672: END IF;
3673: -- Initialize API return status to success
3674: x_return_status := FND_API.G_RET_STS_SUCCESS;
3670: IF FND_API.to_Boolean( p_init_msg_list ) THEN
3671: FND_MSG_PUB.initialize;
3672: END IF;
3673: -- Initialize API return status to success
3674: x_return_status := FND_API.G_RET_STS_SUCCESS;
3675: -- API body
3676:
3677: /* Initialize the local variables */
3678: l_stmt_num := 10;
3771: x_msg_count => l_msg_count,
3772: x_msg_data => l_msg_data
3773: );
3774:
3775: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3776: x_return_status := FND_API.G_RET_STS_ERROR;
3777:
3778: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3779: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3772: x_msg_data => l_msg_data
3773: );
3774:
3775: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3776: x_return_status := FND_API.G_RET_STS_ERROR;
3777:
3778: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3779: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3780:
3774:
3775: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3776: x_return_status := FND_API.G_RET_STS_ERROR;
3777:
3778: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3779: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3780:
3781: END IF;
3782:
3775: IF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3776: x_return_status := FND_API.G_RET_STS_ERROR;
3777:
3778: ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3779: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3780:
3781: END IF;
3782:
3783:
3798:
3799:
3800: -- End of API body.
3801: -- Standard check of p_commit.
3802: IF FND_API.To_Boolean( p_commit ) THEN
3803: --dbms_output.put_line('committing');
3804: COMMIT WORK;
3805: END IF;
3806: -- Standard call to get message count and if count is 1, get message info.
3808: ( p_count => x_msg_count ,
3809: p_data => x_msg_data
3810: );
3811: EXCEPTION
3812: WHEN FND_API.G_EXC_ERROR THEN
3813: x_return_status := FND_API.G_RET_STS_ERROR ;
3814: FND_MSG_PUB.Count_And_Get
3815: ( p_count => x_msg_count ,
3816: p_data => x_msg_data
3809: p_data => x_msg_data
3810: );
3811: EXCEPTION
3812: WHEN FND_API.G_EXC_ERROR THEN
3813: x_return_status := FND_API.G_RET_STS_ERROR ;
3814: FND_MSG_PUB.Count_And_Get
3815: ( p_count => x_msg_count ,
3816: p_data => x_msg_data
3817: );
3816: p_data => x_msg_data
3817: );
3818:
3819: RETURN;
3820: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3821:
3822: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3823: FND_MSG_PUB.Count_And_Get
3824: (
3818:
3819: RETURN;
3820: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3821:
3822: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3823: FND_MSG_PUB.Count_And_Get
3824: (
3825: p_count => x_msg_count,
3826: p_data => x_msg_data
3827: );
3828:
3829: RETURN;
3830: WHEN OTHERS THEN
3831: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3832: IF FND_MSG_PUB.Check_Msg_Level
3833: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3834: THEN
3835: FND_MSG_PUB.Add_Exc_Msg