92:
93:
94: BEGIN
95:
96: x_return_status:=FND_API.G_RET_STS_SUCCESS;
97:
98: -- Check that enough info is supplied to identify which pm schedule to copy from.
99: if (p_pm_schedule_id is null) then
100: FND_MESSAGE.SET_NAME ('EAM', 'EAM_MT_SUPPLY_PARAMS');
98: -- Check that enough info is supplied to identify which pm schedule to copy from.
99: if (p_pm_schedule_id is null) then
100: FND_MESSAGE.SET_NAME ('EAM', 'EAM_MT_SUPPLY_PARAMS');
101: FND_MSG_PUB.Add;
102: RAISE FND_API.G_EXC_ERROR;
103: end if;
104:
105: begin
106: select
163: exception
164: when no_data_found then
165: FND_MESSAGE.SET_NAME ('EAM', 'EAM_MT_SUPPLY_PARAMS');
166: FND_MSG_PUB.Add;
167: RAISE FND_API.G_EXC_ERROR;
168: end;
169:
170: select eam_pm_schedulings_s.nextval into l_pm_schedule_id from dual;
171:
172: -- If the source pm is not a template, raise error
173: if (not (pm_header_row.tmpl_flag = 'Y')) then
174: FND_MESSAGE.SET_NAME('EAM', 'EAM_PM_INST_NOT_TMPL');
175: FND_MSG_PUB.Add;
176: RAISE FND_API.G_EXC_ERROR;
177: else
178: -- When instantiating, tmpl_flag should be 'N'
179: pm_header_row.tmpl_flag:='N';
180: pm_header_row.source_tmpl_id:=pm_header_row.pm_schedule_id;
196: exception
197: when no_data_found then
198: FND_MESSAGE.SET_NAME ('EAM', 'EAM_MT_SUPPLY_PARAMS');
199: FND_MSG_PUB.Add;
200: RAISE FND_API.G_EXC_ERROR;
201: end;
202: end if;
203:
204:
383: p_pm_schedule_id => l_pm_schedule_id
384: );
385:
386:
387: if x_return_status <> FND_API.G_RET_STS_SUCCESS then
388: l_update_failed := 'Y';
389: RAISE FND_API.G_EXC_ERROR;
390: end if;
391:
385:
386:
387: if x_return_status <> FND_API.G_RET_STS_SUCCESS then
388: l_update_failed := 'Y';
389: RAISE FND_API.G_EXC_ERROR;
390: end if;
391:
392: -- now start copying over the rules
393: for a_pm_rule in pm_rules_csr loop
508: x_msg_data => l_msg_data,
509: p_pm_schedule_id => l_pm_schedule_id
510: );
511:
512: if x_return_status <> FND_API.G_RET_STS_SUCCESS then
513: l_update_failed := 'Y';
514: RAISE FND_API.G_EXC_ERROR;
515: end if;
516:
510: );
511:
512: if x_return_status <> FND_API.G_RET_STS_SUCCESS then
513: l_update_failed := 'Y';
514: RAISE FND_API.G_EXC_ERROR;
515: end if;
516:
517: end if;
518:
519: l_prev_pm_schedule_id := p_pm_schedule_id;
520:
521:
522: EXCEPTION
523: WHEN FND_API.G_EXC_ERROR THEN
524: if l_update_failed = 'Y' then
525: x_return_status := fnd_api.g_ret_sts_error;
526: x_msg_count := 1;
527: x_msg_data := l_msg_data;
521:
522: EXCEPTION
523: WHEN FND_API.G_EXC_ERROR THEN
524: if l_update_failed = 'Y' then
525: x_return_status := fnd_api.g_ret_sts_error;
526: x_msg_count := 1;
527: x_msg_data := l_msg_data;
528: else
529: FND_MSG_PUB.get
534: end if;
535:
536: when others then
537: l_msg_count := 1;
538: x_return_status := fnd_api.g_ret_sts_error;
539: l_error_message := substrb(sqlerrm,1,512);
540: x_msg_data := l_error_message;
541:
542: -- End of API body.
549:
550: PROCEDURE instantiate_PM_Defs
551: (
552: p_api_version IN NUMBER ,
553: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
554: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
555: p_validation_level IN NUMBER :=
556: FND_API.G_VALID_LEVEL_FULL ,
557: x_return_status OUT NOCOPY VARCHAR2 ,
550: PROCEDURE instantiate_PM_Defs
551: (
552: p_api_version IN NUMBER ,
553: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
554: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
555: p_validation_level IN NUMBER :=
556: FND_API.G_VALID_LEVEL_FULL ,
557: x_return_status OUT NOCOPY VARCHAR2 ,
558: x_msg_count OUT NOCOPY NUMBER ,
552: p_api_version IN NUMBER ,
553: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
554: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
555: p_validation_level IN NUMBER :=
556: FND_API.G_VALID_LEVEL_FULL ,
557: x_return_status OUT NOCOPY VARCHAR2 ,
558: x_msg_count OUT NOCOPY NUMBER ,
559: x_msg_data OUT NOCOPY VARCHAR2 ,
560: p_activity_assoc_id_tbl IN EAM_ObjectInstantiation_PUB.Association_Id_Tbl_Type
608: BEGIN
609: -- Standard Start of API savepoint
610: SAVEPOINT instantiate_PM_Defs_pvt;
611: -- Standard call to check for call compatibility.
612: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
613: p_api_version ,
614: l_api_name ,
615: G_PKG_NAME )
616: THEN
613: p_api_version ,
614: l_api_name ,
615: G_PKG_NAME )
616: THEN
617: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
618: END IF;
619: -- Initialize message list if p_init_msg_list is set to TRUE.
620: IF FND_API.to_Boolean( p_init_msg_list ) THEN
621: FND_MSG_PUB.initialize;
616: THEN
617: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
618: END IF;
619: -- Initialize message list if p_init_msg_list is set to TRUE.
620: IF FND_API.to_Boolean( p_init_msg_list ) THEN
621: FND_MSG_PUB.initialize;
622: END IF;
623: -- Initialize API return status to success
624: x_return_status := FND_API.G_RET_STS_SUCCESS;
620: IF FND_API.to_Boolean( p_init_msg_list ) THEN
621: FND_MSG_PUB.initialize;
622: END IF;
623: -- Initialize API return status to success
624: x_return_status := FND_API.G_RET_STS_SUCCESS;
625: -- API body
626:
627:
628: if p_activity_assoc_id_tbl.count>0 then
657: x_msg_count => l_msg_count,
658: x_msg_data => l_msg_data
659: );
660:
661: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
662: x_return_status := l_return_status;
663: x_msg_count := l_msg_count;
664: x_msg_data := l_msg_data;
665: exit;
676:
677: end if;
678: -- End of API body.
679: -- Standard check of p_commit.
680: IF FND_API.To_Boolean( p_commit ) THEN
681: COMMIT WORK;
682: END IF;
683: -- Standard call to get message count and if count is 1, get message info.
684: FND_MSG_PUB.get
686: p_data => x_msg_data
687: );
688: x_msg_data := substr(x_msg_data,1,2000);
689: EXCEPTION
690: WHEN FND_API.G_EXC_ERROR THEN
691: ROLLBACK TO instantiate_PM_Defs_pvt;
692: x_return_status := FND_API.G_RET_STS_ERROR ;
693: FND_MSG_PUB.get
694: ( p_msg_index_out => x_msg_count ,
688: x_msg_data := substr(x_msg_data,1,2000);
689: EXCEPTION
690: WHEN FND_API.G_EXC_ERROR THEN
691: ROLLBACK TO instantiate_PM_Defs_pvt;
692: x_return_status := FND_API.G_RET_STS_ERROR ;
693: FND_MSG_PUB.get
694: ( p_msg_index_out => x_msg_count ,
695: p_data => x_msg_data
696: );
694: ( p_msg_index_out => x_msg_count ,
695: p_data => x_msg_data
696: );
697: x_msg_data := substr(x_msg_data,1,2000);
698: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
699: ROLLBACK TO instantiate_PM_Defs_pvt;
700: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
701: FND_MSG_PUB.get
702: ( p_msg_index_out => x_msg_count ,
696: );
697: x_msg_data := substr(x_msg_data,1,2000);
698: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
699: ROLLBACK TO instantiate_PM_Defs_pvt;
700: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
701: FND_MSG_PUB.get
702: ( p_msg_index_out => x_msg_count ,
703: p_data => x_msg_data
704: );
704: );
705: x_msg_data := substr(x_msg_data,1,2000);
706: WHEN OTHERS THEN
707: ROLLBACK TO instantiate_PM_Defs_pvt;
708: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
709: IF FND_MSG_PUB.Check_Msg_Level
710: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
711: THEN
712: FND_MSG_PUB.Add_Exc_Msg
725:
726:
727: PROCEDURE create_PM_def
728: ( p_api_version IN NUMBER ,
729: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
730: ,
731: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
732: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
733: x_return_status OUT NOCOPY VARCHAR2
727: PROCEDURE create_PM_def
728: ( p_api_version IN NUMBER ,
729: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
730: ,
731: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
732: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
733: x_return_status OUT NOCOPY VARCHAR2
734: ,
735: x_msg_count OUT NOCOPY NUMBER ,
728: ( p_api_version IN NUMBER ,
729: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE
730: ,
731: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
732: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
733: x_return_status OUT NOCOPY VARCHAR2
734: ,
735: x_msg_count OUT NOCOPY NUMBER ,
736: x_msg_data OUT NOCOPY VARCHAR2 ,
758: BEGIN
759: -- Standard Start of API savepoint
760: SAVEPOINT create_PM_def_pub;
761: -- Standard call to check for call compatibility.
762: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
763: p_api_version ,
764: l_api_name ,
765: G_PKG_NAME )
766: THEN
763: p_api_version ,
764: l_api_name ,
765: G_PKG_NAME )
766: THEN
767: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
768: END IF;
769: -- Initialize message list if p_init_msg_list is set to TRUE.
770: IF FND_API.to_Boolean( p_init_msg_list ) THEN
771: FND_MSG_PUB.initialize;
766: THEN
767: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
768: END IF;
769: -- Initialize message list if p_init_msg_list is set to TRUE.
770: IF FND_API.to_Boolean( p_init_msg_list ) THEN
771: FND_MSG_PUB.initialize;
772: END IF;
773: -- Initialize API return status to success
774: x_return_status := FND_API.G_RET_STS_SUCCESS;
770: IF FND_API.to_Boolean( p_init_msg_list ) THEN
771: FND_MSG_PUB.initialize;
772: END IF;
773: -- Initialize API return status to success
774: x_return_status := FND_API.G_RET_STS_SUCCESS;
775:
776:
777: -- API body
778:
790:
791: if (not l_validated) then
792: FND_MESSAGE.SET_NAME ('EAM', l_reason_failed);
793: FND_MSG_PUB.Add;
794: RAISE FND_API.G_EXC_ERROR;
795: end if;
796:
797: l_validated := validate_pm_activities
798: (
805: );
806: if (not l_validated) then
807: FND_MESSAGE.SET_NAME ('EAM', l_reason_failed);
808: FND_MSG_PUB.Add;
809: RAISE FND_API.G_EXC_ERROR;
810: end if;
811: /* Validation generate_next_work_order */
812: if ( not (p_pm_schedule_rec.generate_next_work_order = 'Y'
813: OR p_pm_schedule_rec.generate_next_work_order = 'N'
814: OR p_pm_schedule_rec.generate_next_work_order is null)) then
815:
816: FND_MESSAGE.SET_NAME ('EAM', 'INVALID_GENERATE_NEXT_WORK_ORDER');
817: FND_MSG_PUB.Add;
818: RAISE FND_API.G_EXC_ERROR;
819:
820: end if;
821:
822: /* Validating the DFF */
846: IF (not l_validated) THEN
847: FND_MESSAGE.SET_NAME('EAM', 'EAM_INVALID_DESC_FLEX');
848: FND_MESSAGE.SET_TOKEN('ERROR_MSG', x_error_message);
849: FND_MSG_PUB.Add;
850: RAISE FND_API.G_EXC_ERROR;
851: END IF;
852:
853: select eam_pm_schedulings_s.nextval into l_pm_schedule_id from dual;
854:
1139: -- End of API body.
1140:
1141:
1142: -- Standard check of p_commit.
1143: IF FND_API.To_Boolean( p_commit ) THEN
1144: COMMIT WORK;
1145: END IF;
1146: -- Standard call to get message count and if count is 1, get message info.
1147: FND_MSG_PUB.get
1149: p_data => x_msg_data
1150: );
1151: x_msg_data := substr(x_msg_data,1,2000);
1152: EXCEPTION
1153: WHEN FND_API.G_EXC_ERROR THEN
1154: ROLLBACK TO create_PM_def_pub;
1155: x_return_status := FND_API.G_RET_STS_ERROR ;
1156: FND_MSG_PUB.get
1157: ( p_msg_index_out => x_msg_count ,
1151: x_msg_data := substr(x_msg_data,1,2000);
1152: EXCEPTION
1153: WHEN FND_API.G_EXC_ERROR THEN
1154: ROLLBACK TO create_PM_def_pub;
1155: x_return_status := FND_API.G_RET_STS_ERROR ;
1156: FND_MSG_PUB.get
1157: ( p_msg_index_out => x_msg_count ,
1158: p_data => x_msg_data
1159: );
1157: ( p_msg_index_out => x_msg_count ,
1158: p_data => x_msg_data
1159: );
1160: x_msg_data := substr(x_msg_data,1,2000);
1161: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1162: ROLLBACK TO create_PM_def_pub;
1163: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1164: FND_MSG_PUB.get
1165: ( p_msg_index_out => x_msg_count ,
1159: );
1160: x_msg_data := substr(x_msg_data,1,2000);
1161: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1162: ROLLBACK TO create_PM_def_pub;
1163: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1164: FND_MSG_PUB.get
1165: ( p_msg_index_out => x_msg_count ,
1166: p_data => x_msg_data
1167: );
1167: );
1168: x_msg_data := substr(x_msg_data,1,2000);
1169: WHEN OTHERS THEN
1170: ROLLBACK TO create_PM_def_pub;
1171: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1172: IF FND_MSG_PUB.Check_Msg_Level
1173: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1174: THEN
1175: FND_MSG_PUB.Add_Exc_Msg
1187:
1188:
1189: procedure update_pm_def
1190: ( p_api_version IN NUMBER ,
1191: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
1192: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
1193: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
1194: x_return_status OUT NOCOPY VARCHAR2 ,
1195: x_msg_count OUT NOCOPY NUMBER ,
1188:
1189: procedure update_pm_def
1190: ( p_api_version IN NUMBER ,
1191: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
1192: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
1193: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
1194: x_return_status OUT NOCOPY VARCHAR2 ,
1195: x_msg_count OUT NOCOPY NUMBER ,
1196: x_msg_data OUT NOCOPY VARCHAR2 ,
1189: procedure update_pm_def
1190: ( p_api_version IN NUMBER ,
1191: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
1192: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
1193: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
1194: x_return_status OUT NOCOPY VARCHAR2 ,
1195: x_msg_count OUT NOCOPY NUMBER ,
1196: x_msg_data OUT NOCOPY VARCHAR2 ,
1197: p_pm_schedule_rec IN pm_scheduling_rec_type:=null,
1232: BEGIN
1233: -- Standard Start of API savepoint
1234: SAVEPOINT update_pm_def_pub;
1235: -- Standard call to check for call compatibility.
1236: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
1237: p_api_version ,
1238: l_api_name ,
1239: G_PKG_NAME )
1240: THEN
1237: p_api_version ,
1238: l_api_name ,
1239: G_PKG_NAME )
1240: THEN
1241: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1242: END IF;
1243: -- Initialize message list if p_init_msg_list is set to TRUE.
1244: IF FND_API.to_Boolean( p_init_msg_list ) THEN
1245: FND_MSG_PUB.initialize;
1240: THEN
1241: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1242: END IF;
1243: -- Initialize message list if p_init_msg_list is set to TRUE.
1244: IF FND_API.to_Boolean( p_init_msg_list ) THEN
1245: FND_MSG_PUB.initialize;
1246: END IF;
1247: -- Initialize API return status to success
1248: x_return_status := FND_API.G_RET_STS_SUCCESS;
1244: IF FND_API.to_Boolean( p_init_msg_list ) THEN
1245: FND_MSG_PUB.initialize;
1246: END IF;
1247: -- Initialize API return status to success
1248: x_return_status := FND_API.G_RET_STS_SUCCESS;
1249: -- API body
1250:
1251: if (p_pm_schedule_rec.pm_schedule_id is null) then
1252: FND_MESSAGE.SET_NAME ('EAM', 'EAM_PM_SCHEDULE_ID_MISSING');
1250:
1251: if (p_pm_schedule_rec.pm_schedule_id is null) then
1252: FND_MESSAGE.SET_NAME ('EAM', 'EAM_PM_SCHEDULE_ID_MISSING');
1253: FND_MSG_PUB.Add;
1254: RAISE FND_API.G_EXC_ERROR;
1255: else
1256: l_pm_schedule_id:=p_pm_schedule_rec.pm_schedule_id;
1257: end if;
1258:
1262: OR p_pm_schedule_rec.generate_next_work_order = 'N'
1263: OR p_pm_schedule_rec.generate_next_work_order is null)) then
1264: FND_MESSAGE.SET_NAME ('EAM', 'INVALID_GENERATE_NEXT_WORK_ORDER');
1265: FND_MSG_PUB.Add;
1266: RAISE FND_API.G_EXC_ERROR;
1267:
1268: end if;
1269: /* Validating the DFF */
1270:
1291: x_error_message => x_error_message);
1292: IF (not l_validated) THEN
1293: FND_MESSAGE.SET_NAME ('EAM', x_error_message);
1294: FND_MSG_PUB.Add;
1295: RAISE FND_API.G_EXC_ERROR;
1296: END IF;
1297:
1298:
1299:
1456:
1457: else -- rules did not validate
1458: FND_MESSAGE.SET_NAME ('EAM', l_reason_failed);
1459: FND_MSG_PUB.Add;
1460: RAISE FND_API.G_EXC_ERROR;
1461: end if;
1462:
1463: -- End of API body.
1464: -- Standard check of p_commit.
1461: end if;
1462:
1463: -- End of API body.
1464: -- Standard check of p_commit.
1465: IF FND_API.To_Boolean( p_commit ) THEN
1466: COMMIT WORK;
1467: END IF;
1468: -- Standard call to get message count and if count is 1, get message info.
1469: FND_MSG_PUB.get
1471: p_data => x_msg_data
1472: );
1473: x_msg_data := substr(x_msg_data,1,2000);
1474: EXCEPTION
1475: WHEN FND_API.G_EXC_ERROR THEN
1476: ROLLBACK TO update_pm_def_pub;
1477: x_return_status := FND_API.G_RET_STS_ERROR ;
1478: FND_MSG_PUB.get
1479: ( p_msg_index_out => x_msg_count ,
1473: x_msg_data := substr(x_msg_data,1,2000);
1474: EXCEPTION
1475: WHEN FND_API.G_EXC_ERROR THEN
1476: ROLLBACK TO update_pm_def_pub;
1477: x_return_status := FND_API.G_RET_STS_ERROR ;
1478: FND_MSG_PUB.get
1479: ( p_msg_index_out => x_msg_count ,
1480: p_data => x_msg_data
1481: );
1479: ( p_msg_index_out => x_msg_count ,
1480: p_data => x_msg_data
1481: );
1482: x_msg_data := substr(x_msg_data,1,2000);
1483: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1484: ROLLBACK TO update_pm_def_pub;
1485: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1486: FND_MSG_PUB.get
1487: ( p_msg_index_out => x_msg_count ,
1481: );
1482: x_msg_data := substr(x_msg_data,1,2000);
1483: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1484: ROLLBACK TO update_pm_def_pub;
1485: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1486: FND_MSG_PUB.get
1487: ( p_msg_index_out => x_msg_count ,
1488: p_data => x_msg_data
1489: );
1489: );
1490: x_msg_data := substr(x_msg_data,1,2000);
1491: WHEN OTHERS THEN
1492: ROLLBACK TO update_pm_def_pub;
1493: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1494: IF FND_MSG_PUB.Check_Msg_Level
1495: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1496: THEN
1497: FND_MSG_PUB.Add_Exc_Msg
2922: -- Check that enough info is supplied to identify which pm schedule to copy from.
2923: if (p_pm_schedule_id is null) then
2924: FND_MESSAGE.SET_NAME ('EAM', 'EAM_MT_SUPPLY_PARAMS');
2925: FND_MSG_PUB.Add;
2926: RAISE FND_API.G_EXC_ERROR;
2927: end if;
2928:
2929: --getting the scheduling option for the pm schedule
2930:
2935: --mandatory checking for rescheduling and current interval values
2936: if (l_rescheduling_point is null) then
2937: FND_MESSAGE.SET_NAME ('EAM', 'EAM_PM_NO_RESCHED');
2938: FND_MSG_PUB.Add;
2939: RAISE FND_API.G_EXC_ERROR;
2940: end if;
2941:
2942: if (l_current_seq is null) then
2943: FND_MESSAGE.SET_NAME ('EAM', 'EAM_PM_NO_CURRENTSEQ');
2941:
2942: if (l_current_seq is null) then
2943: FND_MESSAGE.SET_NAME ('EAM', 'EAM_PM_NO_CURRENTSEQ');
2944: FND_MSG_PUB.Add;
2945: RAISE FND_API.G_EXC_ERROR;
2946: end if;
2947:
2948: --based on current sequence retrieve
2949:
3039: --assigning the last activity
3040: p_activity_association_id := l_act_assoc_id;
3041:
3042: EXCEPTION
3043: WHEN FND_API.G_EXC_ERROR THEN
3044: x_return_status := FND_API.G_RET_STS_ERROR ;
3045: FND_MSG_PUB.get
3046: ( p_msg_index_out => x_msg_count ,
3047: p_data => x_msg_data
3040: p_activity_association_id := l_act_assoc_id;
3041:
3042: EXCEPTION
3043: WHEN FND_API.G_EXC_ERROR THEN
3044: x_return_status := FND_API.G_RET_STS_ERROR ;
3045: FND_MSG_PUB.get
3046: ( p_msg_index_out => x_msg_count ,
3047: p_data => x_msg_data
3048: );
3048: );
3049: x_msg_data := substr(x_msg_data,1,2000);
3050: WHEN OTHERS THEN
3051: x_msg_count := 1;
3052: x_return_status := fnd_api.g_ret_sts_error;
3053: l_error_message := substrb(sqlerrm,1,512);
3054: x_msg_data := l_error_message;
3055: END get_pm_last_activity;
3056:
3058:
3059:
3060: procedure update_pm_last_cyclic_act
3061: ( p_api_version IN NUMBER ,
3062: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
3063: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
3064: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
3065: x_return_status OUT NOCOPY VARCHAR2 ,
3066: x_msg_count OUT NOCOPY NUMBER ,
3059:
3060: procedure update_pm_last_cyclic_act
3061: ( p_api_version IN NUMBER ,
3062: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
3063: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
3064: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
3065: x_return_status OUT NOCOPY VARCHAR2 ,
3066: x_msg_count OUT NOCOPY NUMBER ,
3067: x_msg_data OUT NOCOPY VARCHAR2 ,
3060: procedure update_pm_last_cyclic_act
3061: ( p_api_version IN NUMBER ,
3062: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
3063: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
3064: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
3065: x_return_status OUT NOCOPY VARCHAR2 ,
3066: x_msg_count OUT NOCOPY NUMBER ,
3067: x_msg_data OUT NOCOPY VARCHAR2 ,
3068: p_pm_schedule_id IN NUMBER
3087: l_pm_schedule_id := p_pm_schedule_id;
3088: -- Standard Start of API savepoint
3089: SAVEPOINT update_pm_last_cyclic_act;
3090:
3091: x_return_status := FND_API.G_RET_STS_SUCCESS;
3092:
3093: --mandatory checking
3094: if (p_pm_schedule_id is null) then
3095: FND_MESSAGE.SET_NAME ('EAM', 'EAM_PM_SCHEDULE_ID_MISSING');
3093: --mandatory checking
3094: if (p_pm_schedule_id is null) then
3095: FND_MESSAGE.SET_NAME ('EAM', 'EAM_PM_SCHEDULE_ID_MISSING');
3096: FND_MSG_PUB.Add;
3097: RAISE FND_API.G_EXC_ERROR;
3098: end if;
3099:
3100: --call to get the last activity of the pm schedule
3101:
3104: x_return_status => l_return_status,
3105: x_msg_count => l_msg_count,
3106: x_msg_data => l_msg_data);
3107:
3108: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
3109: l_get_failed := 'Y';
3110: RAISE FND_API.G_EXC_ERROR;
3111: end if;
3112:
3106: x_msg_data => l_msg_data);
3107:
3108: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
3109: l_get_failed := 'Y';
3110: RAISE FND_API.G_EXC_ERROR;
3111: end if;
3112:
3113: -- updating the eam_last_cyclic_act field
3114:
3121: pm_schedule_id = p_pm_schedule_id;
3122:
3123: --standard commit to be checked
3124:
3125: IF FND_API.To_Boolean( p_commit ) THEN
3126: COMMIT WORK;
3127: END IF;
3128:
3129: EXCEPTION
3127: END IF;
3128:
3129: EXCEPTION
3130:
3131: WHEN FND_API.G_EXC_ERROR THEN
3132: ROLLBACK TO update_pm_last_cyclic_act;
3133: x_return_status := FND_API.G_RET_STS_ERROR ;
3134:
3135: if l_get_failed = 'Y' then
3129: EXCEPTION
3130:
3131: WHEN FND_API.G_EXC_ERROR THEN
3132: ROLLBACK TO update_pm_last_cyclic_act;
3133: x_return_status := FND_API.G_RET_STS_ERROR ;
3134:
3135: if l_get_failed = 'Y' then
3136: x_msg_count := l_msg_count;
3137: x_msg_data := l_msg_data;
3141: p_data => x_msg_data
3142: );
3143: x_msg_data := substr(x_msg_data,1,2000);
3144: end if;
3145: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3146: ROLLBACK TO update_pm_last_cyclic_act;
3147: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3148: FND_MSG_PUB.get
3149: ( p_msg_index_out => x_msg_count ,
3143: x_msg_data := substr(x_msg_data,1,2000);
3144: end if;
3145: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3146: ROLLBACK TO update_pm_last_cyclic_act;
3147: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3148: FND_MSG_PUB.get
3149: ( p_msg_index_out => x_msg_count ,
3150: p_data => x_msg_data
3151: );
3151: );
3152: x_msg_data := substr(x_msg_data,1,2000);
3153: WHEN OTHERS THEN
3154: ROLLBACK TO update_pm_last_cyclic_act;
3155: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3156: IF FND_MSG_PUB.Check_Msg_Level
3157: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3158: THEN
3159: FND_MSG_PUB.Add_Exc_Msg
3169: END update_pm_last_cyclic_act;
3170:
3171: procedure update_pm_last_service_reading
3172: ( p_api_version IN NUMBER ,
3173: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
3174: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
3175: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
3176: x_return_status OUT NOCOPY VARCHAR2 ,
3177: x_msg_count OUT NOCOPY NUMBER ,
3170:
3171: procedure update_pm_last_service_reading
3172: ( p_api_version IN NUMBER ,
3173: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
3174: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
3175: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
3176: x_return_status OUT NOCOPY VARCHAR2 ,
3177: x_msg_count OUT NOCOPY NUMBER ,
3178: x_msg_data OUT NOCOPY VARCHAR2 ,
3171: procedure update_pm_last_service_reading
3172: ( p_api_version IN NUMBER ,
3173: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
3174: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
3175: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
3176: x_return_status OUT NOCOPY VARCHAR2 ,
3177: x_msg_count OUT NOCOPY NUMBER ,
3178: x_msg_data OUT NOCOPY VARCHAR2 ,
3179: p_pm_schedule_id IN NUMBER
3207:
3208: -- Standard Start of API savepoint
3209: SAVEPOINT update_pm_last_service_reading;
3210:
3211: x_return_status := FND_API.G_RET_STS_SUCCESS;
3212:
3213: --mandatory checking
3214:
3215: if (p_pm_schedule_id is null) then
3214:
3215: if (p_pm_schedule_id is null) then
3216: FND_MESSAGE.SET_NAME ('EAM', 'EAM_PM_SCHEDULE_ID_MISSING');
3217: FND_MSG_PUB.Add;
3218: RAISE FND_API.G_EXC_ERROR;
3219: end if;
3220:
3221: --call to get the last activity of the pm schedule
3222:
3225: x_return_status => l_return_status,
3226: x_msg_count => l_msg_count,
3227: x_msg_data => l_msg_data);
3228:
3229: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
3230: l_get_failed := 'Y';
3231: RAISE FND_API.G_EXC_ERROR;
3232: end if;
3233:
3227: x_msg_data => l_msg_data);
3228:
3229: if l_return_status <> FND_API.G_RET_STS_SUCCESS then
3230: l_get_failed := 'Y';
3231: RAISE FND_API.G_EXC_ERROR;
3232: end if;
3233:
3234: --get the last service reading and update the same in epsr
3235:
3251:
3252: end loop;
3253:
3254: --standard commit to be checked
3255: IF FND_API.To_Boolean( p_commit ) THEN
3256: COMMIT WORK;
3257: END IF;
3258:
3259: EXCEPTION
3256: COMMIT WORK;
3257: END IF;
3258:
3259: EXCEPTION
3260: WHEN FND_API.G_EXC_ERROR THEN
3261: ROLLBACK TO update_pm_last_service_reading;
3262: x_return_status := FND_API.G_RET_STS_ERROR ;
3263: if l_get_failed = 'Y' then
3264: x_msg_count := l_msg_count;
3258:
3259: EXCEPTION
3260: WHEN FND_API.G_EXC_ERROR THEN
3261: ROLLBACK TO update_pm_last_service_reading;
3262: x_return_status := FND_API.G_RET_STS_ERROR ;
3263: if l_get_failed = 'Y' then
3264: x_msg_count := l_msg_count;
3265: x_msg_data := l_msg_data;
3266: else
3269: p_data => x_msg_data
3270: );
3271: x_msg_data := substr(x_msg_data,1,2000);
3272: end if;
3273: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3274: ROLLBACK TO update_pm_last_service_reading;
3275: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3276: FND_MSG_PUB.get
3277: ( p_msg_index_out => x_msg_count ,
3271: x_msg_data := substr(x_msg_data,1,2000);
3272: end if;
3273: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3274: ROLLBACK TO update_pm_last_service_reading;
3275: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3276: FND_MSG_PUB.get
3277: ( p_msg_index_out => x_msg_count ,
3278: p_data => x_msg_data
3279: );
3279: );
3280: x_msg_data := substr(x_msg_data,1,2000);
3281: WHEN OTHERS THEN
3282: ROLLBACK TO update_pm_last_service_reading;
3283: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3284: IF FND_MSG_PUB.Check_Msg_Level
3285: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
3286: THEN
3287: FND_MSG_PUB.Add_Exc_Msg