14: -- ended for 16525236
15:
16: PROCEDURE Create_Association
17: ( p_api_version IN NUMBER ,
18: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
19: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
20: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
21: x_return_status OUT NOCOPY VARCHAR2 ,
22: x_msg_count OUT NOCOPY NUMBER ,
15:
16: PROCEDURE Create_Association
17: ( p_api_version IN NUMBER ,
18: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
19: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
20: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
21: x_return_status OUT NOCOPY VARCHAR2 ,
22: x_msg_count OUT NOCOPY NUMBER ,
23: x_msg_data OUT NOCOPY VARCHAR2 ,
16: PROCEDURE Create_Association
17: ( p_api_version IN NUMBER ,
18: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
19: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
20: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL ,
21: x_return_status OUT NOCOPY VARCHAR2 ,
22: x_msg_count OUT NOCOPY NUMBER ,
23: x_msg_data OUT NOCOPY VARCHAR2 ,
24:
133: -- Standard Start of API savepoint
134: SAVEPOINT Create_Association_PVT;
135:
136: -- Standard call to check for call compatibility.
137: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
138: p_api_version ,
139: l_api_name ,
140: G_PKG_NAME )
141: THEN
138: p_api_version ,
139: l_api_name ,
140: G_PKG_NAME )
141: THEN
142: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
143: END IF;
144:
145: -- Initialize message list if p_init_msg_list is set to TRUE.
146: IF FND_API.to_Boolean( p_init_msg_list ) THEN
142: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
143: END IF;
144:
145: -- Initialize message list if p_init_msg_list is set to TRUE.
146: IF FND_API.to_Boolean( p_init_msg_list ) THEN
147: FND_MSG_PUB.initialize;
148: END IF;
149:
150: -- Initialize API return status to success
147: FND_MSG_PUB.initialize;
148: END IF;
149:
150: -- Initialize API return status to success
151: x_return_status := FND_API.G_RET_STS_SUCCESS;
152:
153: -- API body
154:
155: -- ============================================================
189:
190: -- Validate l_source_org_id should not be Null
191: IF l_source_org_id IS NULL THEN
192: EAM_ActivityUtilities_PVT.Write_Debug('l_source_ord_id should not be NULL');
193: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
194: END IF;
195:
196: -- After this point l_source_activity_id and l_source_org_id are defined,
197: -- should use them instead of p_source_activity_id and p_source_org_id.
245: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
246: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_ACT_PROPERTIES');
247: FND_MSG_PUB.ADD;
248: END IF;
249: RAISE FND_API.G_EXC_ERROR;
250: END;
251:
252: if (l_plog) then FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
253: 'l_activity_cause_code=' || l_activity_cause_code
334: if (l_plog) then FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
335: 'Copy CURRENT: unexpected Work Order Item/Serial Number inputs.');
336: end if;
337:
338: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
339: END IF;
340:
341: ELSIF p_association_copy_option = 3 THEN
342: -- copy option = 3 (ALL)
382: if (l_plog) then FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
383: 'Copy ALL: unexpected Work Order Item/Serial Number inputs.');
384: end if;
385:
386: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
387: END IF;
388:
389: ELSE
390: -- copy option outside of valid range, shouldn't be here.
391: if (l_plog) then FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
392: 'Create_Association: unexpected Association Copy Option');
393: end if;
394:
395: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
396: END IF;
397: END IF;
398:
399:
497: -- assign outputs
498: x_activity_association_tbl := l_x_activity_association_tbl;
499:
500: -- Handle errors
501: IF l_x_assoc_return_status <> FND_API.G_RET_STS_SUCCESS THEN
502: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_AN_ASSOC_FAILED');
503: -- FND_MESSAGE.SET_ENCODED('Failed to create Asset Number Associations.');
504: EAM_ActivityUtilities_PVT.Add_Message(FND_MSG_PUB.G_MSG_LVL_ERROR);
505: RAISE FND_API.G_EXC_ERROR;
501: IF l_x_assoc_return_status <> FND_API.G_RET_STS_SUCCESS THEN
502: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_AN_ASSOC_FAILED');
503: -- FND_MESSAGE.SET_ENCODED('Failed to create Asset Number Associations.');
504: EAM_ActivityUtilities_PVT.Add_Message(FND_MSG_PUB.G_MSG_LVL_ERROR);
505: RAISE FND_API.G_EXC_ERROR;
506: END IF;
507:
508: -- Bug # 4089189 : Need to default WAC and dept from WO to the Activity Association with the Asset in WO.
509: IF p_wip_entity_id IS NOT NULL THEN
535: 'EAM_ActivityAssociation_PVT.Create_Association: unexpected error.'
536: || 'p_wip_entity_id=' || p_wip_entity_id);
537: end if;
538:
539: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
540: END;
541:
542: END IF;
543:
548: -- ============================================================
549:
550: -- End of API body.
551: -- Standard check of p_commit.
552: IF FND_API.To_Boolean( p_commit ) THEN
553: COMMIT WORK;
554: END IF;
555: -- Standard call to get message count and if count is 1, get message info.
556: FND_MSG_PUB.Count_And_Get
558: p_data => x_msg_data
559: );
560: x_msg_data := substr(x_msg_data,1,4000);
561: EXCEPTION
562: WHEN FND_API.G_EXC_ERROR THEN
563: ROLLBACK TO Create_Association_PVT;
564: x_return_status := FND_API.G_RET_STS_ERROR ;
565: FND_MSG_PUB.Count_And_Get
566: ( p_count => x_msg_count ,
560: x_msg_data := substr(x_msg_data,1,4000);
561: EXCEPTION
562: WHEN FND_API.G_EXC_ERROR THEN
563: ROLLBACK TO Create_Association_PVT;
564: x_return_status := FND_API.G_RET_STS_ERROR ;
565: FND_MSG_PUB.Count_And_Get
566: ( p_count => x_msg_count ,
567: p_data => x_msg_data
568: );
566: ( p_count => x_msg_count ,
567: p_data => x_msg_data
568: );
569: x_msg_data := substr(x_msg_data,1,4000);
570: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
571: ROLLBACK TO Create_Association_PVT;
572: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
573: FND_MSG_PUB.Count_And_Get
574: ( p_count => x_msg_count ,
568: );
569: x_msg_data := substr(x_msg_data,1,4000);
570: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
571: ROLLBACK TO Create_Association_PVT;
572: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
573: FND_MSG_PUB.Count_And_Get
574: ( p_count => x_msg_count ,
575: p_data => x_msg_data
576: );
576: );
577: x_msg_data := substr(x_msg_data,1,4000);
578: WHEN OTHERS THEN
579: ROLLBACK TO Create_Association_PVT;
580: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
581: IF FND_MSG_PUB.Check_Msg_Level
582: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
583: THEN
584: FND_MSG_PUB.Add_Exc_Msg
595:
596:
597: PROCEDURE Create_AssetNumberAssoc
598: ( p_api_version IN NUMBER ,
599: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
600: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
601: p_validation_level IN NUMBER :=
602: FND_API.G_VALID_LEVEL_FULL ,
603: x_return_status OUT NOCOPY VARCHAR2 ,
596:
597: PROCEDURE Create_AssetNumberAssoc
598: ( p_api_version IN NUMBER ,
599: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
600: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
601: p_validation_level IN NUMBER :=
602: FND_API.G_VALID_LEVEL_FULL ,
603: x_return_status OUT NOCOPY VARCHAR2 ,
604: x_msg_count OUT NOCOPY NUMBER ,
598: ( p_api_version IN NUMBER ,
599: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
600: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
601: p_validation_level IN NUMBER :=
602: FND_API.G_VALID_LEVEL_FULL ,
603: x_return_status OUT NOCOPY VARCHAR2 ,
604: x_msg_count OUT NOCOPY NUMBER ,
605: x_msg_data OUT NOCOPY VARCHAR2 ,
606:
640: -- Standard Start of API savepoint
641: SAVEPOINT Create_AssetNumberAssoc_PVT;
642:
643: -- Standard call to check for call compatibility.
644: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
645: p_api_version ,
646: l_api_name ,
647: G_PKG_NAME )
648: THEN
645: p_api_version ,
646: l_api_name ,
647: G_PKG_NAME )
648: THEN
649: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
650: END IF;
651:
652: -- Initialize message list if p_init_msg_list is set to TRUE.
653: IF FND_API.to_Boolean( p_init_msg_list ) THEN
649: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
650: END IF;
651:
652: -- Initialize message list if p_init_msg_list is set to TRUE.
653: IF FND_API.to_Boolean( p_init_msg_list ) THEN
654: FND_MSG_PUB.initialize;
655: END IF;
656: -- Initialize API return status to success
657:
654: FND_MSG_PUB.initialize;
655: END IF;
656: -- Initialize API return status to success
657:
658: x_return_status := FND_API.G_RET_STS_SUCCESS;
659:
660: -- API body
661: -- ============================================================
662: if (l_plog) then FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
692: FROM wip_eam_parameters
693: WHERE organization_id = l_act_assoc_tbl(l_act_assoc_tbl_index).Organization_Id;
694:
695: IF l_count <> 1 THEN
696: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
697: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_ORG_ID');
698: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
699:
700: if (l_plog) then FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
716: AND inventory_item_id = l_act_assoc_tbl(l_act_assoc_tbl_index).Asset_Activity_Id
717: AND eam_item_type = 2;
718:
719: IF l_count <> 1 THEN
720: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
721: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_ACTIVITY_ID');
722: -- FND_MESSAGE.SET_ENCODED('Invalid Activity Id.');
723: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
724:
741: -- Start Date and End Date
742: IF l_act_assoc_tbl(l_act_assoc_tbl_index).End_Date_Active <
743: l_act_assoc_tbl(l_act_assoc_tbl_index).Start_Date_Active
744: THEN
745: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
746: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_START_END_DATE');
747: -- FND_MESSAGE.SET_ENCODED('End Date cannot be before Start Date.');
748: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
749:
774: and nvl(enabled_flag, 'N') = 'Y'
775: and lookup_code = l_act_assoc_tbl(l_act_assoc_tbl_index).Priority_Code;
776:
777: IF l_count <> 1 THEN
778: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
779: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_ACT_PRI_CODE');
780: -- FND_MESSAGE.SET_ENCODED('Invalid Activity Priority Code.');
781: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
782:
801: and (disable_date IS NULL
802: or disable_date > sysdate);
803:
804: IF l_count <> 1 THEN
805: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
806: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_OWN_DEPT_ID');
807: -- FND_MESSAGE.SET_ENCODED('Invalid Owning Department Id.');
808: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
809:
830: and nvl(enabled_flag, 'N') = 'Y'
831: and lookup_code = l_act_assoc_tbl(l_act_assoc_tbl_index).Activity_Type_Code;
832:
833: IF l_count <> 1 THEN
834: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
835: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_ACT_TYPE_CODE');
836: -- FND_MESSAGE.SET_ENCODED('Invalid Activity Type Code.');
837: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
838:
858: and nvl(enabled_flag, 'N') = 'Y'
859: and lookup_code = l_act_assoc_tbl(l_act_assoc_tbl_index).Activity_Cause_Code;
860:
861: IF l_count <> 1 THEN
862: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
863: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_ACT_CAUSE_CODE');
864: -- FND_MESSAGE.SET_ENCODED('Invalid Activity Cause Code.');
865: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
866:
886: and nvl(enabled_flag, 'N') = 'Y'
887: and lookup_code = l_act_assoc_tbl(l_act_assoc_tbl_index).Activity_Source_Code;
888:
889: IF l_count <> 1 THEN
890: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
891: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_ACT_SRC_CODE');
892: -- FND_MESSAGE.SET_ENCODED('Invalid Activity Source Code.');
893: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
894:
915: and nvl(enabled_flag, 'N') = 'Y'
916: and lookup_code = l_act_assoc_tbl(l_act_assoc_tbl_index).Work_Order_Type;
917:
918: IF l_count <> 1 THEN
919: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
920: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_WO_TYPE_CODE');
921: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
922:
923: if (l_plog) then FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
942: and nvl(enabled_flag, 'N') = 'Y'
943: and lookup_code = l_act_assoc_tbl(l_act_assoc_tbl_index).Planner;
944:
945: IF l_count <> 1 THEN
946: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
947: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_PLANNER_CODE');
948: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
949:
950: if (l_plog) then FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
970: and nvl(enabled_flag, 'N') = 'Y'
971: and lookup_code = l_act_assoc_tbl(l_act_assoc_tbl_index).Shutdown_Type_Code;
972:
973: IF l_count <> 1 THEN
974: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
975: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_SHUTDOWN_CODE');
976: -- FND_MESSAGE.SET_ENCODED('Invalid Activity Shutdown Type Code.');
977: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
978:
996: and class_type = 6
997: and (disable_date is null or sysdate < disable_date);
998:
999: IF l_count <> 1 THEN
1000: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
1001: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_CLASS_CODE');
1002: -- FND_MESSAGE.SET_ENCODED('Invalid Wip Accounting Class Code.');
1003: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
1004:
1018: IF l_act_assoc_tbl(l_act_assoc_tbl_index).Tagging_Required_Flag IS NOT NULL AND
1019: l_act_assoc_tbl(l_act_assoc_tbl_index).Tagging_Required_Flag <> 'Y' AND
1020: l_act_assoc_tbl(l_act_assoc_tbl_index).Tagging_Required_Flag <> 'N'
1021: THEN
1022: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
1023: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_TAG_REQ_FLAG');
1024: -- FND_MESSAGE.SET_ENCODED('Tagging Required Flag should be either Y, N, or NULL.');
1025: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
1026:
1055:
1056: l_act_assoc_tbl(l_act_assoc_tbl_index).maintenance_object_id := l_maintenance_object_id;
1057: l_act_assoc_tbl(l_act_assoc_tbl_index).maintenance_object_type := l_maintenance_object_type;
1058:
1059: IF l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
1060:
1061: if (l_plog) then FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
1062: 'Failed Validate Serial Number: Instance_number, or Inventory_Item_Id + Serial_Number'
1063: || 'Return_Status=' || l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status ||
1075: -- Validate Maintenance Object Type
1076: -- Can only be 3 or 2.
1077: IF l_act_assoc_tbl(l_act_assoc_tbl_index).Maintenance_Object_Type NOT IN (3, 2)
1078: THEN
1079: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
1080: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_MAINT_OBJ_TYPE');
1081: -- FND_MESSAGE.SET_ENCODED('Maintenance Object Type should be 1 or 2.');
1082: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
1083:
1108: AND nvl(cii.active_start_date, sysdate-1) <= sysdate
1109: AND nvl(cii.active_end_date, sysdate+1) >= sysdate;
1110:
1111: IF l_count <> 1 THEN
1112: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
1113: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVLD_MT_GEN_OBJ_ID');
1114: -- FND_MESSAGE.SET_ENCODED('Maintenance Object Id should be a valid gen_object_id.');
1115: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
1116:
1136: AND mp.organization_id = msi.organization_id
1137: AND msi.eam_item_type in (1,3);
1138:
1139: IF l_count < 1 THEN
1140: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
1141: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVLD_MT_ITM_OBJ_ID');
1142: -- FND_MESSAGE.SET_ENCODED('Maintenance Object Id should be a valid inventory_item_id.');
1143: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
1144:
1154: GOTO next_in_loop;
1155: END IF;
1156: ELSE
1157: -- Shouldn't be here
1158: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
1159:
1160: if (l_plog) then FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
1161: 'Maintenance_Object_Type is neither 1 nor 2');
1162: end if;
1170: IF l_act_assoc_tbl(l_act_assoc_tbl_index).Tmpl_Flag IS NOT NULL
1171: THEN
1172: IF l_act_assoc_tbl(l_act_assoc_tbl_index).Tmpl_Flag NOT IN ('Y', 'N')
1173: THEN
1174: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
1175: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_TMPL_FLAG');
1176: -- FND_MESSAGE.SET_ENCODED('Tmpl Flag should be Y, N, or NULL.');
1177: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
1178:
1192:
1193:
1194: IF l_act_assoc_tbl(l_act_assoc_tbl_index).Tmpl_Flag = 'Y' THEN
1195: IF l_act_assoc_tbl(l_act_assoc_tbl_index).Maintenance_Object_Type <> 2 THEN
1196: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
1197: FND_MESSAGE.SET_NAME('EAM', 'EAM_IAA_INV_TEML_FLAG');
1198: -- FND_MESSAGE.SET_ENCODED(' Invalid Template flag value.');
1199: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
1200:
1213: WHERE msi.inventory_item_id = l_act_assoc_tbl(l_act_assoc_tbl_index).Maintenance_Object_Id
1214: AND rownum = 1;
1215:
1216: IF l_count = 1 THEN
1217: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
1218: FND_MESSAGE.SET_NAME('EAM', 'EAM_NON_SERIAL_REBUILD_ASSOC');
1219: -- FND_MESSAGE.SET_ENCODED('Cannot assoicate Non-Serialized Rebuildables to Templates.');
1220: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
1221:
1238: WHERE msi.inventory_item_id = l_act_assoc_tbl(l_act_assoc_tbl_index).Maintenance_Object_Id
1239: AND rownum = 1;
1240:
1241: IF l_count <> 1 THEN
1242: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
1243: FND_MESSAGE.SET_NAME('EAM', 'EAM_IAA_INV_TEML_FLAG');
1244: -- FND_MESSAGE.SET_ENCODED(' Invalid Template flag value.');
1245: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
1246:
1287: );
1288: */
1289:
1290: if l_count >= 1 then
1291: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
1292: fnd_message.set_name('EAM','EAM_DUPLICATE_ASSET_ACTIVITIES');
1293: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
1294:
1295:
1315: FROM dual;
1316: EXCEPTION
1317: WHEN OTHERS THEN
1318:
1319: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
1320: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_ACT_ASSOC_ID');
1321: -- FND_MESSAGE.SET_ENCODED('Error creating Activity_Association_Id.');
1322: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
1323:
1396:
1397: EXCEPTION
1398: WHEN OTHERS THEN
1399:
1400: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_ERROR;
1401: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INSERT_ASSOC');
1402: -- FND_MESSAGE.SET_ENCODED('Error inserting Activity Association record.');
1403: l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg := FND_MESSAGE.GET;
1404:
1441: ,x_msg_data => l_act_assoc_tbl(l_act_assoc_tbl_index).Error_Mesg
1442: );
1443:
1444:
1445: IF l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status <> FND_API.G_RET_STS_SUCCESS THEN
1446:
1447: if (l_plog) then FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
1448: 'Failed during insert in EOMD' ||
1449: 'Return_Status=' || l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status ||
1455: END IF;
1456:
1457: -- ----------------------------------------------------------------------
1458: -- If reach here, successful
1459: l_act_assoc_tbl(l_act_assoc_tbl_index).Return_Status := FND_API.G_RET_STS_SUCCESS;
1460:
1461:
1462: <
1463: l_act_assoc_tbl_index := l_act_assoc_tbl.NEXT(l_act_assoc_tbl_index);
1465:
1466: -- Assign outputs
1467: x_activity_association_tbl := l_act_assoc_tbl;
1468: IF l_failed THEN
1469: l_x_return_status := FND_API.G_RET_STS_ERROR;
1470: ELSE
1471: l_x_return_status := FND_API.G_RET_STS_SUCCESS;
1472: END IF;
1473:
1467: x_activity_association_tbl := l_act_assoc_tbl;
1468: IF l_failed THEN
1469: l_x_return_status := FND_API.G_RET_STS_ERROR;
1470: ELSE
1471: l_x_return_status := FND_API.G_RET_STS_SUCCESS;
1472: END IF;
1473:
1474: if (l_plog) then FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
1475: 'l_x_return_status=' || l_x_return_status ||
1481: -- ============================================================
1482:
1483: -- End of API body.
1484: -- Standard check of p_commit.
1485: IF FND_API.To_Boolean( p_commit ) THEN
1486: COMMIT WORK;
1487: END IF;
1488: -- Standard call to get message count and if count is 1, get message info.
1489: FND_MSG_PUB.Count_And_Get
1491: p_data => x_msg_data
1492: );
1493: x_msg_data := substr(x_msg_data,1,4000);
1494: EXCEPTION
1495: WHEN FND_API.G_EXC_ERROR THEN
1496: ROLLBACK TO Create_AssetNumberAssoc_PVT;
1497: x_return_status := FND_API.G_RET_STS_ERROR ;
1498: FND_MSG_PUB.Count_And_Get
1499: ( p_count => x_msg_count ,
1493: x_msg_data := substr(x_msg_data,1,4000);
1494: EXCEPTION
1495: WHEN FND_API.G_EXC_ERROR THEN
1496: ROLLBACK TO Create_AssetNumberAssoc_PVT;
1497: x_return_status := FND_API.G_RET_STS_ERROR ;
1498: FND_MSG_PUB.Count_And_Get
1499: ( p_count => x_msg_count ,
1500: p_data => x_msg_data
1501: );
1499: ( p_count => x_msg_count ,
1500: p_data => x_msg_data
1501: );
1502: x_msg_data := substr(x_msg_data,1,4000);
1503: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1504: ROLLBACK TO Create_AssetNumberAssoc_PVT;
1505: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1506: FND_MSG_PUB.Count_And_Get
1507: ( p_count => x_msg_count ,
1501: );
1502: x_msg_data := substr(x_msg_data,1,4000);
1503: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1504: ROLLBACK TO Create_AssetNumberAssoc_PVT;
1505: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1506: FND_MSG_PUB.Count_And_Get
1507: ( p_count => x_msg_count ,
1508: p_data => x_msg_data
1509: );
1509: );
1510: x_msg_data := substr(x_msg_data,1,4000);
1511: WHEN OTHERS THEN
1512: ROLLBACK TO Create_AssetNumberAssoc_PVT;
1513: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1514: IF FND_MSG_PUB.Check_Msg_Level
1515: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1516: THEN
1517: FND_MSG_PUB.Add_Exc_Msg
1530: -- ======================================================================
1531:
1532: PROCEDURE Inst_Activity_Template(
1533: p_api_version IN NUMBER ,
1534: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
1535: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
1536: p_validation_level IN NUMBER :=
1537: FND_API.G_VALID_LEVEL_FULL ,
1538: x_return_status OUT NOCOPY VARCHAR2 ,
1531:
1532: PROCEDURE Inst_Activity_Template(
1533: p_api_version IN NUMBER ,
1534: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
1535: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
1536: p_validation_level IN NUMBER :=
1537: FND_API.G_VALID_LEVEL_FULL ,
1538: x_return_status OUT NOCOPY VARCHAR2 ,
1539: x_msg_count OUT NOCOPY NUMBER ,
1533: p_api_version IN NUMBER ,
1534: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
1535: p_commit IN VARCHAR2 := FND_API.G_FALSE ,
1536: p_validation_level IN NUMBER :=
1537: FND_API.G_VALID_LEVEL_FULL ,
1538: x_return_status OUT NOCOPY VARCHAR2 ,
1539: x_msg_count OUT NOCOPY NUMBER ,
1540: x_msg_data OUT NOCOPY VARCHAR2 ,
1541:
1616: -- Standard Start of API savepoint
1617: SAVEPOINT Inst_Activity_Template_PVT;
1618:
1619: -- Standard call to check for call compatibility.
1620: IF NOT FND_API.Compatible_API_Call ( l_api_version ,
1621: p_api_version ,
1622: l_api_name ,
1623: G_PKG_NAME )
1624: THEN
1621: p_api_version ,
1622: l_api_name ,
1623: G_PKG_NAME )
1624: THEN
1625: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1626: END IF;
1627:
1628: -- Initialize message list if p_init_msg_list is set to TRUE.
1629: IF FND_API.to_Boolean( p_init_msg_list ) THEN
1625: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1626: END IF;
1627:
1628: -- Initialize message list if p_init_msg_list is set to TRUE.
1629: IF FND_API.to_Boolean( p_init_msg_list ) THEN
1630: FND_MSG_PUB.initialize;
1631: END IF;
1632:
1633: -- Initialize API return status to success
1630: FND_MSG_PUB.initialize;
1631: END IF;
1632:
1633: -- Initialize API return status to success
1634: x_return_status := FND_API.G_RET_STS_SUCCESS;
1635:
1636:
1637: -- API body
1638:
1642: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1643: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVALID_MAINT_OBJ_TYPE');
1644: FND_MSG_PUB.ADD;
1645: END IF;
1646: RAISE FND_API.G_EXC_ERROR;
1647: END IF;
1648:
1649: -- I: Find out the inventory_item_id
1650: BEGIN
1658: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1659: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INVLD_MT_GEN_OBJ_ID');
1660: FND_MSG_PUB.ADD;
1661: END IF;
1662: RAISE FND_API.G_EXC_ERROR;
1663: END;
1664:
1665: if (l_plog) then FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
1666: 'l_inventory_item_id=' || l_inventory_item_id);
1680: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1681: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_ACT_ASSOC_ID');
1682: FND_MSG_PUB.ADD;
1683: END IF;
1684: RAISE FND_API.G_EXC_ERROR;
1685: END;
1686:
1687: if (l_plog) then FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
1688: 'l_next_association_id=' || l_next_association_id);
1796: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1797: FND_MESSAGE.SET_NAME('EAM', 'EAM_ABO_INSERT_ASSOC');
1798: FND_MSG_PUB.ADD;
1799: END IF;
1800: RAISE FND_API.G_EXC_ERROR;
1801: END;
1802:
1803: IF l_asset_activity_row.organization_id IS NOT NULL THEN
1804:
1826: ,x_msg_data => x_msg_data
1827: );
1828: END IF;
1829:
1830: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1831: RAISE FND_API.G_EXC_ERROR;
1832: END IF;
1833:
1834: -- 3: Record outputs
1827: );
1828: END IF;
1829:
1830: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1831: RAISE FND_API.G_EXC_ERROR;
1832: END IF;
1833:
1834: -- 3: Record outputs
1835: l_next_row := NVL(l_activity_association_id_tbl.LAST, 0) + 1;
1844: -- End of API body.
1845:
1846:
1847: -- Standard check of p_commit.
1848: IF FND_API.To_Boolean( p_commit ) THEN
1849: COMMIT WORK;
1850: END IF;
1851: -- Standard call to get message count and if count is 1, get message info.
1852: FND_MSG_PUB.Count_And_Get
1862:
1863:
1864:
1865: EXCEPTION
1866: WHEN FND_API.G_EXC_ERROR THEN
1867: ROLLBACK TO Inst_Activity_Template_PVT;
1868: x_return_status := FND_API.G_RET_STS_ERROR ;
1869: FND_MSG_PUB.Count_And_Get
1870: ( p_count => x_msg_count ,
1864:
1865: EXCEPTION
1866: WHEN FND_API.G_EXC_ERROR THEN
1867: ROLLBACK TO Inst_Activity_Template_PVT;
1868: x_return_status := FND_API.G_RET_STS_ERROR ;
1869: FND_MSG_PUB.Count_And_Get
1870: ( p_count => x_msg_count ,
1871: p_data => x_msg_data
1872: );
1870: ( p_count => x_msg_count ,
1871: p_data => x_msg_data
1872: );
1873: x_msg_data := substr(x_msg_data,1,4000);
1874: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1875: ROLLBACK TO Inst_Activity_Template_PVT;
1876: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1877: FND_MSG_PUB.Count_And_Get
1878: ( p_count => x_msg_count ,
1872: );
1873: x_msg_data := substr(x_msg_data,1,4000);
1874: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1875: ROLLBACK TO Inst_Activity_Template_PVT;
1876: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1877: FND_MSG_PUB.Count_And_Get
1878: ( p_count => x_msg_count ,
1879: p_data => x_msg_data
1880: );
1880: );
1881: x_msg_data := substr(x_msg_data,1,4000);
1882: WHEN OTHERS THEN
1883: ROLLBACK TO Inst_Activity_Template_PVT;
1884: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1885: IF FND_MSG_PUB.Check_Msg_Level
1886: (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1887: THEN
1888: FND_MSG_PUB.Add_Exc_Msg