30:
31: -- Hint: Primary key needs to be returned.
32: PROCEDURE Create_Met_Tpl_Dtl(
33: p_api_version_number IN NUMBER,
34: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
35: p_commit IN VARCHAR2 := FND_API.G_FALSE,
36: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
37:
38: x_return_status OUT NOCOPY VARCHAR2,
31: -- Hint: Primary key needs to be returned.
32: PROCEDURE Create_Met_Tpl_Dtl(
33: p_api_version_number IN NUMBER,
34: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
35: p_commit IN VARCHAR2 := FND_API.G_FALSE,
36: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
37:
38: x_return_status OUT NOCOPY VARCHAR2,
39: x_msg_count OUT NOCOPY NUMBER,
32: PROCEDURE Create_Met_Tpl_Dtl(
33: p_api_version_number IN NUMBER,
34: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
35: p_commit IN VARCHAR2 := FND_API.G_FALSE,
36: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
37:
38: x_return_status OUT NOCOPY VARCHAR2,
39: x_msg_count OUT NOCOPY NUMBER,
40: x_msg_data OUT NOCOPY VARCHAR2,
47: L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Met_Tpl_Dtl';
48: L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
49: l_return_status_full VARCHAR2(1);
50: l_object_version_number NUMBER := 1;
51: l_org_id NUMBER := FND_API.G_MISS_NUM;
52: l_METRIC_TEMPLATE_DETAIL_ID NUMBER;
53: l_dummy NUMBER;
54:
55: CURSOR c_id IS
67: -- Standard Start of API savepoint
68: SAVEPOINT CREATE_Met_Tpl_Dtl_PVT;
69:
70: -- Standard call to check for call compatibility.
71: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
72: p_api_version_number,
73: l_api_name,
74: G_PKG_NAME)
75: THEN
72: p_api_version_number,
73: l_api_name,
74: G_PKG_NAME)
75: THEN
76: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
77: END IF;
78:
79: -- Initialize message list if p_init_msg_list is set to TRUE.
80: IF FND_API.to_Boolean( p_init_msg_list )
76: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
77: END IF;
78:
79: -- Initialize message list if p_init_msg_list is set to TRUE.
80: IF FND_API.to_Boolean( p_init_msg_list )
81: THEN
82: FND_MSG_PUB.initialize;
83: END IF;
84:
95: THEN
96: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_METR_TPL_SEEDED');
97: END IF;
98:
99: RAISE FND_API.G_EXC_ERROR;
100: END IF; */
101:
102:
103: -- Initialize API return status to SUCCESS
100: END IF; */
101:
102:
103: -- Initialize API return status to SUCCESS
104: x_return_status := FND_API.G_RET_STS_SUCCESS;
105:
106: -- Local variable initialization
107:
108: IF l_met_tpl_dtl_rec.METRIC_TEMPLATE_DETAIL_ID IS NULL OR
105:
106: -- Local variable initialization
107:
108: IF l_met_tpl_dtl_rec.METRIC_TEMPLATE_DETAIL_ID IS NULL OR
109: l_met_tpl_dtl_rec.METRIC_TEMPLATE_DETAIL_ID = FND_API.g_miss_num THEN
110: LOOP
111: l_dummy := NULL;
112: OPEN c_id;
113: FETCH c_id INTO l_METRIC_TEMPLATE_DETAIL_ID;
127:
128: IF FND_GLOBAL.User_Id IS NULL
129: THEN
130: Ams_Utility_Pvt.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
131: RAISE FND_API.G_EXC_ERROR;
132: END IF;
133:
134: IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
135: THEN
130: Ams_Utility_Pvt.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
131: RAISE FND_API.G_EXC_ERROR;
132: END IF;
133:
134: IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
135: THEN
136: -- Debug message
137: IF (AMS_DEBUG_HIGH_ON) THEN
138:
141:
142: -- Invoke validation procedures
143: Validate_met_tpl_dtl(
144: p_api_version_number => 1.0,
145: p_init_msg_list => FND_API.G_FALSE,
146: p_validation_level => p_validation_level,
147: p_validation_mode => JTF_PLSQL_API.g_create,
148: p_met_tpl_dtl_rec => l_met_tpl_dtl_rec,
149: x_return_status => x_return_status,
150: x_msg_count => x_msg_count,
151: x_msg_data => x_msg_data);
152: END IF;
153:
154: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
155: RAISE FND_API.G_EXC_ERROR;
156: END IF;
157:
158:
151: x_msg_data => x_msg_data);
152: END IF;
153:
154: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
155: RAISE FND_API.G_EXC_ERROR;
156: END IF;
157:
158:
159: -- Debug Message
175: p_metric_id => p_met_tpl_dtl_rec.metric_id,
176: p_enabled_flag => p_met_tpl_dtl_rec.enabled_flag);
177:
178: x_metric_template_detail_id := l_metric_template_detail_id;
179: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
180: RAISE FND_API.G_EXC_ERROR;
181: END IF;
182: --
183: -- End of API body
176: p_enabled_flag => p_met_tpl_dtl_rec.enabled_flag);
177:
178: x_metric_template_detail_id := l_metric_template_detail_id;
179: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
180: RAISE FND_API.G_EXC_ERROR;
181: END IF;
182: --
183: -- End of API body
184: --
183: -- End of API body
184: --
185:
186: -- Standard check for p_commit
187: IF FND_API.to_Boolean( p_commit )
188: THEN
189: COMMIT WORK;
190: END IF;
191:
203: );
204: EXCEPTION
205:
206: WHEN Ams_Utility_Pvt.resource_locked THEN
207: x_return_status := FND_API.g_ret_sts_error;
208: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
209:
210: WHEN FND_API.G_EXC_ERROR THEN
211: ROLLBACK TO CREATE_Met_Tpl_Dtl_PVT;
206: WHEN Ams_Utility_Pvt.resource_locked THEN
207: x_return_status := FND_API.g_ret_sts_error;
208: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
209:
210: WHEN FND_API.G_EXC_ERROR THEN
211: ROLLBACK TO CREATE_Met_Tpl_Dtl_PVT;
212: x_return_status := FND_API.G_RET_STS_ERROR;
213: -- Standard call to get message count and if count=1, get the message
214: FND_MSG_PUB.Count_And_Get (
208: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
209:
210: WHEN FND_API.G_EXC_ERROR THEN
211: ROLLBACK TO CREATE_Met_Tpl_Dtl_PVT;
212: x_return_status := FND_API.G_RET_STS_ERROR;
213: -- Standard call to get message count and if count=1, get the message
214: FND_MSG_PUB.Count_And_Get (
215: p_encoded => FND_API.G_FALSE,
216: p_count => x_msg_count,
211: ROLLBACK TO CREATE_Met_Tpl_Dtl_PVT;
212: x_return_status := FND_API.G_RET_STS_ERROR;
213: -- Standard call to get message count and if count=1, get the message
214: FND_MSG_PUB.Count_And_Get (
215: p_encoded => FND_API.G_FALSE,
216: p_count => x_msg_count,
217: p_data => x_msg_data
218: );
219:
216: p_count => x_msg_count,
217: p_data => x_msg_data
218: );
219:
220: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
221: ROLLBACK TO CREATE_Met_Tpl_Dtl_PVT;
222: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
223: -- Standard call to get message count and if count=1, get the message
224: FND_MSG_PUB.Count_And_Get (
218: );
219:
220: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
221: ROLLBACK TO CREATE_Met_Tpl_Dtl_PVT;
222: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
223: -- Standard call to get message count and if count=1, get the message
224: FND_MSG_PUB.Count_And_Get (
225: p_encoded => FND_API.G_FALSE,
226: p_count => x_msg_count,
221: ROLLBACK TO CREATE_Met_Tpl_Dtl_PVT;
222: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
223: -- Standard call to get message count and if count=1, get the message
224: FND_MSG_PUB.Count_And_Get (
225: p_encoded => FND_API.G_FALSE,
226: p_count => x_msg_count,
227: p_data => x_msg_data
228: );
229:
228: );
229:
230: WHEN OTHERS THEN
231: ROLLBACK TO CREATE_Met_Tpl_Dtl_PVT;
232: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
233: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
234: THEN
235: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
236: END IF;
235: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
236: END IF;
237: -- Standard call to get message count and if count=1, get the message
238: FND_MSG_PUB.Count_And_Get (
239: p_encoded => FND_API.G_FALSE,
240: p_count => x_msg_count,
241: p_data => x_msg_data
242: );
243: END Create_Met_Tpl_Dtl;
244:
245:
246: PROCEDURE Update_Met_Tpl_Dtl(
247: p_api_version_number IN NUMBER,
248: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
249: p_commit IN VARCHAR2 := FND_API.G_FALSE,
250: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
251:
252: x_return_status OUT NOCOPY VARCHAR2,
245:
246: PROCEDURE Update_Met_Tpl_Dtl(
247: p_api_version_number IN NUMBER,
248: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
249: p_commit IN VARCHAR2 := FND_API.G_FALSE,
250: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
251:
252: x_return_status OUT NOCOPY VARCHAR2,
253: x_msg_count OUT NOCOPY NUMBER,
246: PROCEDURE Update_Met_Tpl_Dtl(
247: p_api_version_number IN NUMBER,
248: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
249: p_commit IN VARCHAR2 := FND_API.G_FALSE,
250: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
251:
252: x_return_status OUT NOCOPY VARCHAR2,
253: x_msg_count OUT NOCOPY NUMBER,
254: x_msg_data OUT NOCOPY VARCHAR2,
285: -- Standard Start of API savepoint
286: SAVEPOINT UPDATE_Met_Tpl_Dtl_PVT;
287:
288: -- Standard call to check for call compatibility.
289: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
290: p_api_version_number,
291: l_api_name,
292: G_PKG_NAME)
293: THEN
290: p_api_version_number,
291: l_api_name,
292: G_PKG_NAME)
293: THEN
294: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
295: END IF;
296:
297: -- Initialize message list if p_init_msg_list is set to TRUE.
298: IF FND_API.to_Boolean( p_init_msg_list )
294: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
295: END IF;
296:
297: -- Initialize message list if p_init_msg_list is set to TRUE.
298: IF FND_API.to_Boolean( p_init_msg_list )
299: THEN
300: FND_MSG_PUB.initialize;
301: END IF;
302:
307: END IF;
308:
309:
310: -- Initialize API return status to SUCCESS
311: x_return_status := FND_API.G_RET_STS_SUCCESS;
312:
313: -- Debug Message
314: IF (AMS_DEBUG_HIGH_ON) THEN
315:
324: CLOSE c_get_Met_Tpl_Dtl;
325: Ams_Utility_Pvt.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
326: p_token_name => 'INFO',
327: p_token_value => 'Met_Tpl_Dtl');
328: RAISE FND_API.G_EXC_ERROR;
329: END IF;
330:
331: -- Debug Message
332: IF (AMS_DEBUG_HIGH_ON) THEN
337:
338: Complete_met_tpl_dtl_rec(l_ref_met_tpl_dtl_rec, l_tar_met_tpl_dtl_rec);
339:
340: IF (l_tar_met_tpl_dtl_rec.object_version_number IS NULL OR
341: l_tar_met_tpl_dtl_rec.object_version_number = FND_API.G_MISS_NUM ) THEN
342: Ams_Utility_Pvt.Error_Message(p_message_name => 'API_VERSION_MISSING',
343: p_token_name => 'COLUMN',
344: p_token_value => 'Last_Update_Date');
345: RAISE FND_API.G_EXC_ERROR;
341: l_tar_met_tpl_dtl_rec.object_version_number = FND_API.G_MISS_NUM ) THEN
342: Ams_Utility_Pvt.Error_Message(p_message_name => 'API_VERSION_MISSING',
343: p_token_name => 'COLUMN',
344: p_token_value => 'Last_Update_Date');
345: RAISE FND_API.G_EXC_ERROR;
346: END IF;
347:
348: -- Check Whether record has been changed by someone else
349: IF (l_tar_met_tpl_dtl_rec.object_version_number <> l_ref_met_tpl_dtl_rec.object_version_number) THEN
349: IF (l_tar_met_tpl_dtl_rec.object_version_number <> l_ref_met_tpl_dtl_rec.object_version_number) THEN
350: Ams_Utility_Pvt.Error_Message(p_message_name => 'API_RECORD_CHANGED',
351: p_token_name => 'INFO',
352: p_token_value => 'Met_Tpl_Dtl');
353: RAISE FND_API.G_EXC_ERROR;
354: END IF;
355:
356:
357: --sunkumar 30/01/2003
366: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_METR_TPL_SEEDED_MOD');
367: END IF;
368:
369:
370: RAISE FND_API.G_EXC_ERROR;
371: END IF;
372: END IF;
373:
374:
373:
374:
375:
376:
377: IF ( p_validation_level >= FND_API.G_VALID_LEVEL_FULL)
378: THEN
379: -- Debug message
380: IF (AMS_DEBUG_HIGH_ON) THEN
381:
384:
385: -- Invoke validation procedures
386: Validate_met_tpl_dtl(
387: p_api_version_number => 1.0,
388: p_init_msg_list => FND_API.G_FALSE,
389: p_validation_level => p_validation_level,
390: p_validation_mode => JTF_PLSQL_API.g_update,
391: p_met_tpl_dtl_rec => l_tar_met_tpl_dtl_rec,
392: x_return_status => x_return_status,
398: Ams_Utility_Pvt.debug_message('Private API: Validate_Met_Tpl_Dtl: return status='||x_return_status);
399: END IF;
400: END IF;
401:
402: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
403: RAISE FND_API.G_EXC_ERROR;
404: END IF;
405:
406: l_object_version_number :=
399: END IF;
400: END IF;
401:
402: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
403: RAISE FND_API.G_EXC_ERROR;
404: END IF;
405:
406: l_object_version_number :=
407: l_ref_met_tpl_dtl_rec.object_version_number + 1;
427: -- End of API body.
428: --
429:
430: -- Standard check for p_commit
431: IF FND_API.to_Boolean( p_commit )
432: THEN
433: COMMIT WORK;
434: END IF;
435:
447: );
448: EXCEPTION
449:
450: WHEN Ams_Utility_Pvt.resource_locked THEN
451: x_return_status := FND_API.g_ret_sts_error;
452: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
453:
454: WHEN FND_API.G_EXC_ERROR THEN
455: ROLLBACK TO UPDATE_Met_Tpl_Dtl_PVT;
450: WHEN Ams_Utility_Pvt.resource_locked THEN
451: x_return_status := FND_API.g_ret_sts_error;
452: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
453:
454: WHEN FND_API.G_EXC_ERROR THEN
455: ROLLBACK TO UPDATE_Met_Tpl_Dtl_PVT;
456: x_return_status := FND_API.G_RET_STS_ERROR;
457: -- Standard call to get message count and if count=1, get the message
458: FND_MSG_PUB.Count_And_Get (
452: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
453:
454: WHEN FND_API.G_EXC_ERROR THEN
455: ROLLBACK TO UPDATE_Met_Tpl_Dtl_PVT;
456: x_return_status := FND_API.G_RET_STS_ERROR;
457: -- Standard call to get message count and if count=1, get the message
458: FND_MSG_PUB.Count_And_Get (
459: p_encoded => FND_API.G_FALSE,
460: p_count => x_msg_count,
455: ROLLBACK TO UPDATE_Met_Tpl_Dtl_PVT;
456: x_return_status := FND_API.G_RET_STS_ERROR;
457: -- Standard call to get message count and if count=1, get the message
458: FND_MSG_PUB.Count_And_Get (
459: p_encoded => FND_API.G_FALSE,
460: p_count => x_msg_count,
461: p_data => x_msg_data
462: );
463:
460: p_count => x_msg_count,
461: p_data => x_msg_data
462: );
463:
464: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
465: ROLLBACK TO UPDATE_Met_Tpl_Dtl_PVT;
466: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
467: -- Standard call to get message count and if count=1, get the message
468: FND_MSG_PUB.Count_And_Get (
462: );
463:
464: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
465: ROLLBACK TO UPDATE_Met_Tpl_Dtl_PVT;
466: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
467: -- Standard call to get message count and if count=1, get the message
468: FND_MSG_PUB.Count_And_Get (
469: p_encoded => FND_API.G_FALSE,
470: p_count => x_msg_count,
465: ROLLBACK TO UPDATE_Met_Tpl_Dtl_PVT;
466: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
467: -- Standard call to get message count and if count=1, get the message
468: FND_MSG_PUB.Count_And_Get (
469: p_encoded => FND_API.G_FALSE,
470: p_count => x_msg_count,
471: p_data => x_msg_data
472: );
473:
472: );
473:
474: WHEN OTHERS THEN
475: ROLLBACK TO UPDATE_Met_Tpl_Dtl_PVT;
476: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
477: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
478: THEN
479: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
480: END IF;
479: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
480: END IF;
481: -- Standard call to get message count and if count=1, get the message
482: FND_MSG_PUB.Count_And_Get (
483: p_encoded => FND_API.G_FALSE,
484: p_count => x_msg_count,
485: p_data => x_msg_data
486: );
487: END Update_Met_Tpl_Dtl;
488:
489:
490: PROCEDURE Delete_Met_Tpl_Dtl(
491: p_api_version_number IN NUMBER,
492: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
493: p_commit IN VARCHAR2 := FND_API.G_FALSE,
494: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
495: x_return_status OUT NOCOPY VARCHAR2,
496: x_msg_count OUT NOCOPY NUMBER,
489:
490: PROCEDURE Delete_Met_Tpl_Dtl(
491: p_api_version_number IN NUMBER,
492: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
493: p_commit IN VARCHAR2 := FND_API.G_FALSE,
494: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
495: x_return_status OUT NOCOPY VARCHAR2,
496: x_msg_count OUT NOCOPY NUMBER,
497: x_msg_data OUT NOCOPY VARCHAR2,
490: PROCEDURE Delete_Met_Tpl_Dtl(
491: p_api_version_number IN NUMBER,
492: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
493: p_commit IN VARCHAR2 := FND_API.G_FALSE,
494: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
495: x_return_status OUT NOCOPY VARCHAR2,
496: x_msg_count OUT NOCOPY NUMBER,
497: x_msg_data OUT NOCOPY VARCHAR2,
498: p_metric_template_detail_id IN NUMBER,
508: -- Standard Start of API savepoint
509: SAVEPOINT DELETE_Met_Tpl_Dtl_PVT;
510:
511: -- Standard call to check for call compatibility.
512: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
513: p_api_version_number,
514: l_api_name,
515: G_PKG_NAME)
516: THEN
513: p_api_version_number,
514: l_api_name,
515: G_PKG_NAME)
516: THEN
517: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
518: END IF;
519:
520: -- Initialize message list if p_init_msg_list is set to TRUE.
521: IF FND_API.to_Boolean( p_init_msg_list )
517: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
518: END IF;
519:
520: -- Initialize message list if p_init_msg_list is set to TRUE.
521: IF FND_API.to_Boolean( p_init_msg_list )
522: THEN
523: FND_MSG_PUB.initialize;
524: END IF;
525:
536: THEN
537: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_METR_TPL_SEEDED');
538: END IF;
539:
540: RAISE FND_API.G_EXC_ERROR;
541: END IF;
542:
543: -- Initialize API return status to SUCCESS
544: x_return_status := FND_API.G_RET_STS_SUCCESS;
540: RAISE FND_API.G_EXC_ERROR;
541: END IF;
542:
543: -- Initialize API return status to SUCCESS
544: x_return_status := FND_API.G_RET_STS_SUCCESS;
545:
546: --
547: -- Api body
548: --
559: -- End of API body
560: --
561:
562: -- Standard check for p_commit
563: IF FND_API.to_Boolean( p_commit )
564: THEN
565: COMMIT WORK;
566: END IF;
567:
579: );
580: EXCEPTION
581:
582: WHEN Ams_Utility_Pvt.resource_locked THEN
583: x_return_status := FND_API.g_ret_sts_error;
584: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
585:
586: WHEN FND_API.G_EXC_ERROR THEN
587: ROLLBACK TO DELETE_Met_Tpl_Dtl_PVT;
582: WHEN Ams_Utility_Pvt.resource_locked THEN
583: x_return_status := FND_API.g_ret_sts_error;
584: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
585:
586: WHEN FND_API.G_EXC_ERROR THEN
587: ROLLBACK TO DELETE_Met_Tpl_Dtl_PVT;
588: x_return_status := FND_API.G_RET_STS_ERROR;
589: -- Standard call to get message count and if count=1, get the message
590: FND_MSG_PUB.Count_And_Get (
584: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
585:
586: WHEN FND_API.G_EXC_ERROR THEN
587: ROLLBACK TO DELETE_Met_Tpl_Dtl_PVT;
588: x_return_status := FND_API.G_RET_STS_ERROR;
589: -- Standard call to get message count and if count=1, get the message
590: FND_MSG_PUB.Count_And_Get (
591: p_encoded => FND_API.G_FALSE,
592: p_count => x_msg_count,
587: ROLLBACK TO DELETE_Met_Tpl_Dtl_PVT;
588: x_return_status := FND_API.G_RET_STS_ERROR;
589: -- Standard call to get message count and if count=1, get the message
590: FND_MSG_PUB.Count_And_Get (
591: p_encoded => FND_API.G_FALSE,
592: p_count => x_msg_count,
593: p_data => x_msg_data
594: );
595:
592: p_count => x_msg_count,
593: p_data => x_msg_data
594: );
595:
596: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
597: ROLLBACK TO DELETE_Met_Tpl_Dtl_PVT;
598: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
599: -- Standard call to get message count and if count=1, get the message
600: FND_MSG_PUB.Count_And_Get (
594: );
595:
596: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
597: ROLLBACK TO DELETE_Met_Tpl_Dtl_PVT;
598: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
599: -- Standard call to get message count and if count=1, get the message
600: FND_MSG_PUB.Count_And_Get (
601: p_encoded => FND_API.G_FALSE,
602: p_count => x_msg_count,
597: ROLLBACK TO DELETE_Met_Tpl_Dtl_PVT;
598: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
599: -- Standard call to get message count and if count=1, get the message
600: FND_MSG_PUB.Count_And_Get (
601: p_encoded => FND_API.G_FALSE,
602: p_count => x_msg_count,
603: p_data => x_msg_data
604: );
605:
604: );
605:
606: WHEN OTHERS THEN
607: ROLLBACK TO DELETE_Met_Tpl_Dtl_PVT;
608: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
609: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
610: THEN
611: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
612: END IF;
611: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
612: END IF;
613: -- Standard call to get message count and if count=1, get the message
614: FND_MSG_PUB.Count_And_Get (
615: p_encoded => FND_API.G_FALSE,
616: p_count => x_msg_count,
617: p_data => x_msg_data
618: );
619: END Delete_Met_Tpl_Dtl;
622:
623: -- Hint: Primary key needs to be returned.
624: PROCEDURE Lock_Met_Tpl_Dtl(
625: p_api_version_number IN NUMBER,
626: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
627:
628: x_return_status OUT NOCOPY VARCHAR2,
629: x_msg_count OUT NOCOPY NUMBER,
630: x_msg_data OUT NOCOPY VARCHAR2,
654: Ams_Utility_Pvt.debug_message('Private API: ' || l_api_name || ': start');
655: END IF;
656:
657: -- Initialize message list if p_init_msg_list is set to TRUE.
658: IF FND_API.to_Boolean( p_init_msg_list )
659: THEN
660: FND_MSG_PUB.initialize;
661: END IF;
662:
660: FND_MSG_PUB.initialize;
661: END IF;
662:
663: -- Standard call to check for call compatibility.
664: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
665: p_api_version_number,
666: l_api_name,
667: G_PKG_NAME)
668: THEN
665: p_api_version_number,
666: l_api_name,
667: G_PKG_NAME)
668: THEN
669: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
670: END IF;
671:
672:
673: -- Initialize API return status to SUCCESS
670: END IF;
671:
672:
673: -- Initialize API return status to SUCCESS
674: x_return_status := FND_API.G_RET_STS_SUCCESS;
675:
676:
677: ------------------------ lock -------------------------
678:
692: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
693: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
694: FND_MSG_PUB.ADD;
695: END IF;
696: RAISE FND_API.g_exc_error;
697: END IF;
698:
699: CLOSE c_Met_Tpl_Dtl;
700:
699: CLOSE c_Met_Tpl_Dtl;
700:
701: -------------------- finish --------------------------
702: FND_MSG_PUB.count_and_get(
703: p_encoded => FND_API.g_false,
704: p_count => x_msg_count,
705: p_data => x_msg_data);
706: IF (AMS_DEBUG_HIGH_ON) THEN
707:
709: END IF;
710: EXCEPTION
711:
712: WHEN Ams_Utility_Pvt.resource_locked THEN
713: x_return_status := FND_API.g_ret_sts_error;
714: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
715:
716: WHEN FND_API.G_EXC_ERROR THEN
717: ROLLBACK TO LOCK_Met_Tpl_Dtl_PVT;
712: WHEN Ams_Utility_Pvt.resource_locked THEN
713: x_return_status := FND_API.g_ret_sts_error;
714: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
715:
716: WHEN FND_API.G_EXC_ERROR THEN
717: ROLLBACK TO LOCK_Met_Tpl_Dtl_PVT;
718: x_return_status := FND_API.G_RET_STS_ERROR;
719: -- Standard call to get message count and if count=1, get the message
720: FND_MSG_PUB.Count_And_Get (
714: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
715:
716: WHEN FND_API.G_EXC_ERROR THEN
717: ROLLBACK TO LOCK_Met_Tpl_Dtl_PVT;
718: x_return_status := FND_API.G_RET_STS_ERROR;
719: -- Standard call to get message count and if count=1, get the message
720: FND_MSG_PUB.Count_And_Get (
721: p_encoded => FND_API.G_FALSE,
722: p_count => x_msg_count,
717: ROLLBACK TO LOCK_Met_Tpl_Dtl_PVT;
718: x_return_status := FND_API.G_RET_STS_ERROR;
719: -- Standard call to get message count and if count=1, get the message
720: FND_MSG_PUB.Count_And_Get (
721: p_encoded => FND_API.G_FALSE,
722: p_count => x_msg_count,
723: p_data => x_msg_data
724: );
725:
722: p_count => x_msg_count,
723: p_data => x_msg_data
724: );
725:
726: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
727: ROLLBACK TO LOCK_Met_Tpl_Dtl_PVT;
728: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
729: -- Standard call to get message count and if count=1, get the message
730: FND_MSG_PUB.Count_And_Get (
724: );
725:
726: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
727: ROLLBACK TO LOCK_Met_Tpl_Dtl_PVT;
728: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
729: -- Standard call to get message count and if count=1, get the message
730: FND_MSG_PUB.Count_And_Get (
731: p_encoded => FND_API.G_FALSE,
732: p_count => x_msg_count,
727: ROLLBACK TO LOCK_Met_Tpl_Dtl_PVT;
728: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
729: -- Standard call to get message count and if count=1, get the message
730: FND_MSG_PUB.Count_And_Get (
731: p_encoded => FND_API.G_FALSE,
732: p_count => x_msg_count,
733: p_data => x_msg_data
734: );
735:
734: );
735:
736: WHEN OTHERS THEN
737: ROLLBACK TO LOCK_Met_Tpl_Dtl_PVT;
738: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
739: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
740: THEN
741: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
742: END IF;
741: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
742: END IF;
743: -- Standard call to get message count and if count=1, get the message
744: FND_MSG_PUB.Count_And_Get (
745: p_encoded => FND_API.G_FALSE,
746: p_count => x_msg_count,
747: p_data => x_msg_data
748: );
749: END Lock_Met_Tpl_Dtl;
762: WHERE METRIC_TPL_HEADER_ID = p_METRIC_TPL_HEADER_ID
763: AND METRIC_ID = p_METRIC_ID;
764:
765: BEGIN
766: x_return_status := FND_API.g_ret_sts_success;
767: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
768: l_valid_flag := Ams_Utility_Pvt.check_uniqueness(
769: 'AMS_MET_TPL_DETAILS',
770: 'METRIC_TEMPLATE_DETAIL_ID = ' || p_met_tpl_dtl_rec.METRIC_TEMPLATE_DETAIL_ID
770: 'METRIC_TEMPLATE_DETAIL_ID = ' || p_met_tpl_dtl_rec.METRIC_TEMPLATE_DETAIL_ID
771: );
772: END IF;
773:
774: IF l_valid_flag = FND_API.g_false THEN
775: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_MTD_ID_DUP');
776: x_return_status := FND_API.g_ret_sts_error;
777: RETURN;
778: END IF;
772: END IF;
773:
774: IF l_valid_flag = FND_API.g_false THEN
775: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_MTD_ID_DUP');
776: x_return_status := FND_API.g_ret_sts_error;
777: RETURN;
778: END IF;
779:
780: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
781: OPEN c_check_duplicate(p_met_tpl_dtl_rec.metric_id, p_met_tpl_dtl_rec.metric_tpl_header_id);
782: FETCH c_check_duplicate INTO l_dummy;
783: IF c_check_duplicate%FOUND THEN
784: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_MTD_DUP_METRIC_ID');
785: x_return_status := FND_API.g_ret_sts_error;
786: END IF;
787: CLOSE c_check_duplicate;
788: END IF;
789:
795: x_return_status OUT NOCOPY VARCHAR2
796: )
797: IS
798: BEGIN
799: x_return_status := FND_API.g_ret_sts_success;
800:
801: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
802:
803: IF p_met_tpl_dtl_rec.metric_template_detail_id = FND_API.g_miss_num OR p_met_tpl_dtl_rec.metric_template_detail_id IS NULL THEN
799: x_return_status := FND_API.g_ret_sts_success;
800:
801: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
802:
803: IF p_met_tpl_dtl_rec.metric_template_detail_id = FND_API.g_miss_num OR p_met_tpl_dtl_rec.metric_template_detail_id IS NULL THEN
804: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
805: FND_MESSAGE.set_token('MISS_FIELD','METRIC_TEMPLATE_DETAIL_ID');
806: x_return_status := FND_API.g_ret_sts_error;
807: RETURN;
802:
803: IF p_met_tpl_dtl_rec.metric_template_detail_id = FND_API.g_miss_num OR p_met_tpl_dtl_rec.metric_template_detail_id IS NULL THEN
804: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
805: FND_MESSAGE.set_token('MISS_FIELD','METRIC_TEMPLATE_DETAIL_ID');
806: x_return_status := FND_API.g_ret_sts_error;
807: RETURN;
808: END IF;
809:
810: IF p_met_tpl_dtl_rec.metric_tpl_header_id = FND_API.g_miss_num OR p_met_tpl_dtl_rec.metric_tpl_header_id IS NULL THEN
806: x_return_status := FND_API.g_ret_sts_error;
807: RETURN;
808: END IF;
809:
810: IF p_met_tpl_dtl_rec.metric_tpl_header_id = FND_API.g_miss_num OR p_met_tpl_dtl_rec.metric_tpl_header_id IS NULL THEN
811: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
812: FND_MESSAGE.set_token('MISS_FIELD','METRIC_TPL_HEADER_ID');
813: x_return_status := FND_API.g_ret_sts_error;
814: RETURN;
809:
810: IF p_met_tpl_dtl_rec.metric_tpl_header_id = FND_API.g_miss_num OR p_met_tpl_dtl_rec.metric_tpl_header_id IS NULL THEN
811: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
812: FND_MESSAGE.set_token('MISS_FIELD','METRIC_TPL_HEADER_ID');
813: x_return_status := FND_API.g_ret_sts_error;
814: RETURN;
815: END IF;
816:
817: IF p_met_tpl_dtl_rec.metric_id = FND_API.g_miss_num OR p_met_tpl_dtl_rec.metric_id IS NULL THEN
813: x_return_status := FND_API.g_ret_sts_error;
814: RETURN;
815: END IF;
816:
817: IF p_met_tpl_dtl_rec.metric_id = FND_API.g_miss_num OR p_met_tpl_dtl_rec.metric_id IS NULL THEN
818: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
819: FND_MESSAGE.set_token('MISS_FIELD','METRIC_ID');
820: x_return_status := FND_API.g_ret_sts_error;
821: RETURN;
816:
817: IF p_met_tpl_dtl_rec.metric_id = FND_API.g_miss_num OR p_met_tpl_dtl_rec.metric_id IS NULL THEN
818: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
819: FND_MESSAGE.set_token('MISS_FIELD','METRIC_ID');
820: x_return_status := FND_API.g_ret_sts_error;
821: RETURN;
822: END IF;
823:
824: IF p_met_tpl_dtl_rec.enabled_flag = FND_API.g_miss_char OR p_met_tpl_dtl_rec.enabled_flag IS NULL THEN
820: x_return_status := FND_API.g_ret_sts_error;
821: RETURN;
822: END IF;
823:
824: IF p_met_tpl_dtl_rec.enabled_flag = FND_API.g_miss_char OR p_met_tpl_dtl_rec.enabled_flag IS NULL THEN
825: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
826: FND_MESSAGE.set_token('MISS_FIELD','ENABLED_FLAG');
827: x_return_status := FND_API.g_ret_sts_error;
828: RETURN;
823:
824: IF p_met_tpl_dtl_rec.enabled_flag = FND_API.g_miss_char OR p_met_tpl_dtl_rec.enabled_flag IS NULL THEN
825: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
826: FND_MESSAGE.set_token('MISS_FIELD','ENABLED_FLAG');
827: x_return_status := FND_API.g_ret_sts_error;
828: RETURN;
829: END IF;
830:
831: ELSE -- Update
831: ELSE -- Update
832:
833: IF p_met_tpl_dtl_rec.metric_template_detail_id IS NULL THEN
834: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_MTD_NO_MET_TPL_DTL_ID');
835: x_return_status := FND_API.g_ret_sts_error;
836: RETURN;
837: END IF;
838:
839: IF p_met_tpl_dtl_rec.metric_tpl_header_id IS NULL THEN
837: END IF;
838:
839: IF p_met_tpl_dtl_rec.metric_tpl_header_id IS NULL THEN
840: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_MTD_NO_METRIC_TPL_HEADER_ID');
841: x_return_status := FND_API.g_ret_sts_error;
842: RETURN;
843: END IF;
844:
845:
844:
845:
846: IF p_met_tpl_dtl_rec.metric_id IS NULL THEN
847: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_MTD_NO_METRIC_ID');
848: x_return_status := FND_API.g_ret_sts_error;
849: RETURN;
850: END IF;
851:
852:
851:
852:
853: IF p_met_tpl_dtl_rec.enabled_flag IS NULL THEN
854: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_MTD_NO_ENABLED_FLAG');
855: x_return_status := FND_API.g_ret_sts_error;
856: RETURN;
857: END IF;
858: END IF;
859:
876: AND metric_calculation_type IN ('FUNCTION', 'MANUAL', 'FORMULA');
877:
878: l_dummy NUMBER;
879: BEGIN
880: x_return_status := FND_API.g_ret_sts_success;
881:
882: -- Enter custom code here
883:
884: -- Validate metric_tpl_header_id exists.
885: OPEN c_check_header_id(p_met_tpl_dtl_rec.metric_tpl_header_id);
886: FETCH c_check_header_id INTO l_dummy;
887: IF c_check_header_id%NOTFOUND THEN
888: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_MTD_BAD_HEADER_ID');
889: x_return_status := FND_API.g_ret_sts_error;
890: END IF;
891: CLOSE c_check_header_id;
892:
893: -- Validate the metric_id exists and is FUNCTION or MANUAL
894: OPEN c_check_metric(p_met_tpl_dtl_rec.metric_id);
895: FETCH c_check_metric INTO l_dummy;
896: IF c_check_metric%NOTFOUND THEN
897: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_MTD_BAD_METRIC_ID');
898: x_return_status := FND_API.g_ret_sts_error;
899: END IF;
900: CLOSE c_check_metric;
901:
902: END check_met_tpl_dtl_FK_items;
906: x_return_status OUT NOCOPY VARCHAR2
907: )
908: IS
909: BEGIN
910: x_return_status := FND_API.g_ret_sts_success;
911:
912: -- Enter custom code here
913: IF Ams_Utility_Pvt.is_y_or_n(p_met_tpl_dtl_rec.enabled_flag) = FND_API.G_FALSE THEN
914: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_MTD_BAD_ENABLED_FLAG');
909: BEGIN
910: x_return_status := FND_API.g_ret_sts_success;
911:
912: -- Enter custom code here
913: IF Ams_Utility_Pvt.is_y_or_n(p_met_tpl_dtl_rec.enabled_flag) = FND_API.G_FALSE THEN
914: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_MTD_BAD_ENABLED_FLAG');
915: x_return_status := FND_API.g_ret_sts_error;
916: END IF;
917:
911:
912: -- Enter custom code here
913: IF Ams_Utility_Pvt.is_y_or_n(p_met_tpl_dtl_rec.enabled_flag) = FND_API.G_FALSE THEN
914: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_MTD_BAD_ENABLED_FLAG');
915: x_return_status := FND_API.g_ret_sts_error;
916: END IF;
917:
918: END check_met_tpl_dtl_Lookup_items;
919:
930: check_met_tpl_dtl_uk_items(
931: p_met_tpl_dtl_rec => p_met_tpl_dtl_rec,
932: p_validation_mode => p_validation_mode,
933: x_return_status => x_return_status);
934: IF x_return_status <> FND_API.g_ret_sts_success THEN
935: RETURN;
936: END IF;
937:
938: -- Check Items Required/NOT NULL API calls
940: check_met_tpl_dtl_req_items(
941: p_met_tpl_dtl_rec => p_met_tpl_dtl_rec,
942: p_validation_mode => p_validation_mode,
943: x_return_status => x_return_status);
944: IF x_return_status <> FND_API.g_ret_sts_success THEN
945: RETURN;
946: END IF;
947: -- Check Items Foreign Keys API calls
948:
948:
949: check_met_tpl_dtl_FK_items(
950: p_met_tpl_dtl_rec => p_met_tpl_dtl_rec,
951: x_return_status => x_return_status);
952: IF x_return_status <> FND_API.g_ret_sts_success THEN
953: RETURN;
954: END IF;
955: -- Check Items Lookups
956:
956:
957: check_met_tpl_dtl_Lookup_items(
958: p_met_tpl_dtl_rec => p_met_tpl_dtl_rec,
959: x_return_status => x_return_status);
960: IF x_return_status <> FND_API.g_ret_sts_success THEN
961: RETURN;
962: END IF;
963:
964: END Check_met_tpl_dtl_Items;
983: -- FETCH c_complete INTO l_met_tpl_dtl_rec;
984: -- CLOSE c_complete;
985:
986: -- metric_template_detail_id
987: -- IF p_met_tpl_dtl_rec.metric_template_detail_id = FND_API.g_miss_num THEN
988: -- x_complete_rec.metric_template_detail_id := l_met_tpl_dtl_rec.metric_template_detail_id;
989: -- END IF;
990:
991: -- last_update_date
988: -- x_complete_rec.metric_template_detail_id := l_met_tpl_dtl_rec.metric_template_detail_id;
989: -- END IF;
990:
991: -- last_update_date
992: -- IF p_met_tpl_dtl_rec.last_update_date = FND_API.g_miss_date THEN
993: -- x_complete_rec.last_update_date := l_met_tpl_dtl_rec.last_update_date;
994: -- END IF;
995:
996: -- last_updated_by
993: -- x_complete_rec.last_update_date := l_met_tpl_dtl_rec.last_update_date;
994: -- END IF;
995:
996: -- last_updated_by
997: -- IF p_met_tpl_dtl_rec.last_updated_by = FND_API.g_miss_num THEN
998: -- x_complete_rec.last_updated_by := l_met_tpl_dtl_rec.last_updated_by;
999: -- END IF;
1000:
1001: -- creation_date
998: -- x_complete_rec.last_updated_by := l_met_tpl_dtl_rec.last_updated_by;
999: -- END IF;
1000:
1001: -- creation_date
1002: -- IF p_met_tpl_dtl_rec.creation_date = FND_API.g_miss_date THEN
1003: -- x_complete_rec.creation_date := l_met_tpl_dtl_rec.creation_date;
1004: -- END IF;
1005:
1006: -- created_by
1003: -- x_complete_rec.creation_date := l_met_tpl_dtl_rec.creation_date;
1004: -- END IF;
1005:
1006: -- created_by
1007: -- IF p_met_tpl_dtl_rec.created_by = FND_API.g_miss_num THEN
1008: -- x_complete_rec.created_by := l_met_tpl_dtl_rec.created_by;
1009: -- END IF;
1010:
1011: -- last_update_login
1008: -- x_complete_rec.created_by := l_met_tpl_dtl_rec.created_by;
1009: -- END IF;
1010:
1011: -- last_update_login
1012: -- IF p_met_tpl_dtl_rec.last_update_login = FND_API.g_miss_num THEN
1013: -- x_complete_rec.last_update_login := l_met_tpl_dtl_rec.last_update_login;
1014: -- END IF;
1015:
1016: -- object_version_number
1013: -- x_complete_rec.last_update_login := l_met_tpl_dtl_rec.last_update_login;
1014: -- END IF;
1015:
1016: -- object_version_number
1017: -- IF p_met_tpl_dtl_rec.object_version_number = FND_API.g_miss_num THEN
1018: -- x_complete_rec.object_version_number := l_met_tpl_dtl_rec.object_version_number;
1019: -- END IF;
1020:
1021: -- metric_tpl_header_id
1018: -- x_complete_rec.object_version_number := l_met_tpl_dtl_rec.object_version_number;
1019: -- END IF;
1020:
1021: -- metric_tpl_header_id
1022: IF x_tar_met_tpl_dtl_rec.metric_tpl_header_id = FND_API.g_miss_num THEN
1023: x_tar_met_tpl_dtl_rec.metric_tpl_header_id := p_ref_met_tpl_dtl_rec.metric_tpl_header_id;
1024: END IF;
1025:
1026: -- metric_id
1023: x_tar_met_tpl_dtl_rec.metric_tpl_header_id := p_ref_met_tpl_dtl_rec.metric_tpl_header_id;
1024: END IF;
1025:
1026: -- metric_id
1027: IF x_tar_met_tpl_dtl_rec.metric_id = FND_API.g_miss_num THEN
1028: x_tar_met_tpl_dtl_rec.metric_id := p_ref_met_tpl_dtl_rec.metric_id;
1029: END IF;
1030:
1031: -- enabled_flag
1028: x_tar_met_tpl_dtl_rec.metric_id := p_ref_met_tpl_dtl_rec.metric_id;
1029: END IF;
1030:
1031: -- enabled_flag
1032: IF x_tar_met_tpl_dtl_rec.enabled_flag = FND_API.g_miss_char THEN
1033: x_tar_met_tpl_dtl_rec.enabled_flag := p_ref_met_tpl_dtl_rec.enabled_flag;
1034: END IF;
1035:
1036: -- Note: Developers need to modify the procedure
1039:
1040:
1041: PROCEDURE Validate_met_tpl_dtl(
1042: p_api_version_number IN NUMBER,
1043: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1044: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1045: p_met_tpl_dtl_rec IN met_tpl_dtl_rec_type,
1046: p_validation_mode IN VARCHAR2,
1047: x_return_status OUT NOCOPY VARCHAR2,
1040:
1041: PROCEDURE Validate_met_tpl_dtl(
1042: p_api_version_number IN NUMBER,
1043: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1044: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1045: p_met_tpl_dtl_rec IN met_tpl_dtl_rec_type,
1046: p_validation_mode IN VARCHAR2,
1047: x_return_status OUT NOCOPY VARCHAR2,
1048: x_msg_count OUT NOCOPY NUMBER,
1058: -- Standard Start of API savepoint
1059: SAVEPOINT VALIDATE_Met_Tpl_Dtl_;
1060:
1061: -- Standard call to check for call compatibility.
1062: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1063: p_api_version_number,
1064: l_api_name,
1065: G_PKG_NAME)
1066: THEN
1063: p_api_version_number,
1064: l_api_name,
1065: G_PKG_NAME)
1066: THEN
1067: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1068: END IF;
1069:
1070: -- Initialize message list if p_init_msg_list is set to TRUE.
1071: IF FND_API.to_Boolean( p_init_msg_list )
1067: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1068: END IF;
1069:
1070: -- Initialize message list if p_init_msg_list is set to TRUE.
1071: IF FND_API.to_Boolean( p_init_msg_list )
1072: THEN
1073: FND_MSG_PUB.initialize;
1074: END IF;
1075: IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1078: p_validation_mode => p_validation_mode,
1079: x_return_status => x_return_status
1080: );
1081:
1082: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1083: RAISE FND_API.G_EXC_ERROR;
1084: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1085: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1086: END IF;
1079: x_return_status => x_return_status
1080: );
1081:
1082: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1083: RAISE FND_API.G_EXC_ERROR;
1084: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1085: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1086: END IF;
1087: END IF;
1080: );
1081:
1082: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1083: RAISE FND_API.G_EXC_ERROR;
1084: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1085: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1086: END IF;
1087: END IF;
1088:
1081:
1082: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1083: RAISE FND_API.G_EXC_ERROR;
1084: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1085: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1086: END IF;
1087: END IF;
1088:
1089: -- Complete_met_tpl_dtl_Rec(
1093:
1094: IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1095: Validate_met_tpl_dtl_Rec(
1096: p_api_version_number => 1.0,
1097: p_init_msg_list => FND_API.G_FALSE,
1098: x_return_status => x_return_status,
1099: x_msg_count => x_msg_count,
1100: x_msg_data => x_msg_data,
1101: p_met_tpl_dtl_rec => l_met_tpl_dtl_rec);
1099: x_msg_count => x_msg_count,
1100: x_msg_data => x_msg_data,
1101: p_met_tpl_dtl_rec => l_met_tpl_dtl_rec);
1102:
1103: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1104: RAISE FND_API.G_EXC_ERROR;
1105: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1106: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1107: END IF;
1100: x_msg_data => x_msg_data,
1101: p_met_tpl_dtl_rec => l_met_tpl_dtl_rec);
1102:
1103: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1104: RAISE FND_API.G_EXC_ERROR;
1105: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1106: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1107: END IF;
1108: END IF;
1101: p_met_tpl_dtl_rec => l_met_tpl_dtl_rec);
1102:
1103: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1104: RAISE FND_API.G_EXC_ERROR;
1105: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1106: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1107: END IF;
1108: END IF;
1109:
1102:
1103: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1104: RAISE FND_API.G_EXC_ERROR;
1105: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1106: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1107: END IF;
1108: END IF;
1109:
1110:
1115: END IF;
1116:
1117:
1118: -- Initialize API return status to SUCCESS
1119: x_return_status := FND_API.G_RET_STS_SUCCESS;
1120:
1121:
1122: -- Debug Message
1123: IF (AMS_DEBUG_HIGH_ON) THEN
1132: );
1133: EXCEPTION
1134:
1135: WHEN Ams_Utility_Pvt.resource_locked THEN
1136: x_return_status := FND_API.g_ret_sts_error;
1137: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1138:
1139: WHEN FND_API.G_EXC_ERROR THEN
1140: ROLLBACK TO VALIDATE_Met_Tpl_Dtl_;
1135: WHEN Ams_Utility_Pvt.resource_locked THEN
1136: x_return_status := FND_API.g_ret_sts_error;
1137: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1138:
1139: WHEN FND_API.G_EXC_ERROR THEN
1140: ROLLBACK TO VALIDATE_Met_Tpl_Dtl_;
1141: x_return_status := FND_API.G_RET_STS_ERROR;
1142: -- Standard call to get message count and if count=1, get the message
1143: FND_MSG_PUB.Count_And_Get (
1137: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1138:
1139: WHEN FND_API.G_EXC_ERROR THEN
1140: ROLLBACK TO VALIDATE_Met_Tpl_Dtl_;
1141: x_return_status := FND_API.G_RET_STS_ERROR;
1142: -- Standard call to get message count and if count=1, get the message
1143: FND_MSG_PUB.Count_And_Get (
1144: p_encoded => FND_API.G_FALSE,
1145: p_count => x_msg_count,
1140: ROLLBACK TO VALIDATE_Met_Tpl_Dtl_;
1141: x_return_status := FND_API.G_RET_STS_ERROR;
1142: -- Standard call to get message count and if count=1, get the message
1143: FND_MSG_PUB.Count_And_Get (
1144: p_encoded => FND_API.G_FALSE,
1145: p_count => x_msg_count,
1146: p_data => x_msg_data
1147: );
1148:
1145: p_count => x_msg_count,
1146: p_data => x_msg_data
1147: );
1148:
1149: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1150: ROLLBACK TO VALIDATE_Met_Tpl_Dtl_;
1151: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1152: -- Standard call to get message count and if count=1, get the message
1153: FND_MSG_PUB.Count_And_Get (
1147: );
1148:
1149: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1150: ROLLBACK TO VALIDATE_Met_Tpl_Dtl_;
1151: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1152: -- Standard call to get message count and if count=1, get the message
1153: FND_MSG_PUB.Count_And_Get (
1154: p_encoded => FND_API.G_FALSE,
1155: p_count => x_msg_count,
1150: ROLLBACK TO VALIDATE_Met_Tpl_Dtl_;
1151: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1152: -- Standard call to get message count and if count=1, get the message
1153: FND_MSG_PUB.Count_And_Get (
1154: p_encoded => FND_API.G_FALSE,
1155: p_count => x_msg_count,
1156: p_data => x_msg_data
1157: );
1158:
1157: );
1158:
1159: WHEN OTHERS THEN
1160: ROLLBACK TO VALIDATE_Met_Tpl_Dtl_;
1161: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1162: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1163: THEN
1164: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1165: END IF;
1164: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1165: END IF;
1166: -- Standard call to get message count and if count=1, get the message
1167: FND_MSG_PUB.Count_And_Get (
1168: p_encoded => FND_API.G_FALSE,
1169: p_count => x_msg_count,
1170: p_data => x_msg_data
1171: );
1172: END Validate_Met_Tpl_Dtl;
1173:
1174:
1175: PROCEDURE Validate_met_tpl_dtl_rec(
1176: p_api_version_number IN NUMBER,
1177: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1178: x_return_status OUT NOCOPY VARCHAR2,
1179: x_msg_count OUT NOCOPY NUMBER,
1180: x_msg_data OUT NOCOPY VARCHAR2,
1181: p_met_tpl_dtl_rec IN met_tpl_dtl_rec_type
1182: )
1183: IS
1184: BEGIN
1185: -- Initialize message list if p_init_msg_list is set to TRUE.
1186: IF FND_API.to_Boolean( p_init_msg_list )
1187: THEN
1188: FND_MSG_PUB.initialize;
1189: END IF;
1190:
1188: FND_MSG_PUB.initialize;
1189: END IF;
1190:
1191: -- Initialize API return status to SUCCESS
1192: x_return_status := FND_API.G_RET_STS_SUCCESS;
1193:
1194: -- Hint: Validate data
1195: -- If data not valid
1196: -- THEN
1193:
1194: -- Hint: Validate data
1195: -- If data not valid
1196: -- THEN
1197: -- x_return_status := FND_API.G_RET_STS_ERROR;
1198:
1199: -- Debug Message
1200: IF (AMS_DEBUG_HIGH_ON) THEN
1201: