32:
33: -- Hint: Primary key needs to be returned.
34: PROCEDURE Create_Metric_Template(
35: p_api_version_number IN NUMBER,
36: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
37: p_commit IN VARCHAR2 := FND_API.G_FALSE,
38: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
39:
40: x_return_status OUT NOCOPY VARCHAR2,
33: -- Hint: Primary key needs to be returned.
34: PROCEDURE Create_Metric_Template(
35: p_api_version_number IN NUMBER,
36: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
37: p_commit IN VARCHAR2 := FND_API.G_FALSE,
38: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
39:
40: x_return_status OUT NOCOPY VARCHAR2,
41: x_msg_count OUT NOCOPY NUMBER,
34: PROCEDURE Create_Metric_Template(
35: p_api_version_number IN NUMBER,
36: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
37: p_commit IN VARCHAR2 := FND_API.G_FALSE,
38: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
39:
40: x_return_status OUT NOCOPY VARCHAR2,
41: x_msg_count OUT NOCOPY NUMBER,
42: x_msg_data OUT NOCOPY VARCHAR2,
48: L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Metric_Template';
49: L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
50: l_return_status_full VARCHAR2(1);
51: l_object_version_number NUMBER := 1;
52: l_org_id NUMBER := FND_API.G_MISS_NUM;
53: l_METRIC_TPL_HEADER_ID NUMBER;
54: l_dummy NUMBER;
55: l_metric_tpl_header_rec metric_tpl_header_rec_type := p_metric_tpl_header_rec;
56:
67: -- Standard Start of API savepoint
68: SAVEPOINT CREATE_Metric_Template_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:
89: END IF;
90:
91:
92: -- Initialize API return status to SUCCESS
93: x_return_status := FND_API.G_RET_STS_SUCCESS;
94:
95: -- Local variable initialization
96:
97: IF l_metric_tpl_header_rec.METRIC_TPL_HEADER_ID IS NULL OR
94:
95: -- Local variable initialization
96:
97: IF l_metric_tpl_header_rec.METRIC_TPL_HEADER_ID IS NULL OR
98: l_metric_tpl_header_rec.METRIC_TPL_HEADER_ID = FND_API.g_miss_num THEN
99: LOOP
100: l_dummy := NULL;
101: OPEN c_id;
102: FETCH c_id INTO l_METRIC_TPL_HEADER_ID;
118:
119: IF FND_GLOBAL.User_Id IS NULL
120: THEN
121: Ams_Utility_Pvt.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
122: RAISE FND_API.G_EXC_ERROR;
123: END IF;
124:
125: IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
126: THEN
121: Ams_Utility_Pvt.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
122: RAISE FND_API.G_EXC_ERROR;
123: END IF;
124:
125: IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
126: THEN
127: -- Debug message
128: IF (AMS_DEBUG_HIGH_ON) THEN
129:
132:
133: -- Invoke validation procedures
134: Validate_metric_template(
135: p_api_version_number => 1.0,
136: p_init_msg_list => FND_API.G_FALSE,
137: p_validation_level => p_validation_level,
138: p_validation_mode => JTF_PLSQL_API.g_create,
139: p_metric_tpl_header_rec => l_metric_tpl_header_rec,
140: x_return_status => x_return_status,
141: x_msg_count => x_msg_count,
142: x_msg_data => x_msg_data);
143: END IF;
144:
145: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
146: RAISE FND_API.G_EXC_ERROR;
147: END IF;
148:
149:
142: x_msg_data => x_msg_data);
143: END IF;
144:
145: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
146: RAISE FND_API.G_EXC_ERROR;
147: END IF;
148:
149:
150: -- Debug Message
172: p_used_by_code => l_metric_tpl_header_rec.used_by_code);
173:
174: x_metric_tpl_header_id := l_metric_tpl_header_id;
175:
176: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
177: RAISE FND_API.G_EXC_ERROR;
178: END IF;
179: --
180: -- End of API body
173:
174: x_metric_tpl_header_id := l_metric_tpl_header_id;
175:
176: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
177: RAISE FND_API.G_EXC_ERROR;
178: END IF;
179: --
180: -- End of API body
181: --
180: -- End of API body
181: --
182:
183: -- Standard check for p_commit
184: IF FND_API.to_Boolean( p_commit )
185: THEN
186: COMMIT WORK;
187: END IF;
188:
200: );
201: EXCEPTION
202:
203: WHEN Ams_Utility_Pvt.resource_locked THEN
204: x_return_status := FND_API.g_ret_sts_error;
205: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
206:
207: WHEN FND_API.G_EXC_ERROR THEN
208: ROLLBACK TO CREATE_Metric_Template_PVT;
203: WHEN Ams_Utility_Pvt.resource_locked THEN
204: x_return_status := FND_API.g_ret_sts_error;
205: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
206:
207: WHEN FND_API.G_EXC_ERROR THEN
208: ROLLBACK TO CREATE_Metric_Template_PVT;
209: x_return_status := FND_API.G_RET_STS_ERROR;
210: -- Standard call to get message count and if count=1, get the message
211: FND_MSG_PUB.Count_And_Get (
205: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
206:
207: WHEN FND_API.G_EXC_ERROR THEN
208: ROLLBACK TO CREATE_Metric_Template_PVT;
209: x_return_status := FND_API.G_RET_STS_ERROR;
210: -- Standard call to get message count and if count=1, get the message
211: FND_MSG_PUB.Count_And_Get (
212: p_encoded => FND_API.G_FALSE,
213: p_count => x_msg_count,
208: ROLLBACK TO CREATE_Metric_Template_PVT;
209: x_return_status := FND_API.G_RET_STS_ERROR;
210: -- Standard call to get message count and if count=1, get the message
211: FND_MSG_PUB.Count_And_Get (
212: p_encoded => FND_API.G_FALSE,
213: p_count => x_msg_count,
214: p_data => x_msg_data
215: );
216:
213: p_count => x_msg_count,
214: p_data => x_msg_data
215: );
216:
217: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
218: ROLLBACK TO CREATE_Metric_Template_PVT;
219: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
220: -- Standard call to get message count and if count=1, get the message
221: FND_MSG_PUB.Count_And_Get (
215: );
216:
217: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
218: ROLLBACK TO CREATE_Metric_Template_PVT;
219: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
220: -- Standard call to get message count and if count=1, get the message
221: FND_MSG_PUB.Count_And_Get (
222: p_encoded => FND_API.G_FALSE,
223: p_count => x_msg_count,
218: ROLLBACK TO CREATE_Metric_Template_PVT;
219: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
220: -- Standard call to get message count and if count=1, get the message
221: FND_MSG_PUB.Count_And_Get (
222: p_encoded => FND_API.G_FALSE,
223: p_count => x_msg_count,
224: p_data => x_msg_data
225: );
226:
225: );
226:
227: WHEN OTHERS THEN
228: ROLLBACK TO CREATE_Metric_Template_PVT;
229: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
230: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
231: THEN
232: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
233: END IF;
232: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
233: END IF;
234: -- Standard call to get message count and if count=1, get the message
235: FND_MSG_PUB.Count_And_Get (
236: p_encoded => FND_API.G_FALSE,
237: p_count => x_msg_count,
238: p_data => x_msg_data
239: );
240: END Create_Metric_Template;
241:
242:
243: PROCEDURE Update_Metric_Template(
244: p_api_version_number IN NUMBER,
245: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
246: p_commit IN VARCHAR2 := FND_API.G_FALSE,
247: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
248:
249: x_return_status OUT NOCOPY VARCHAR2,
242:
243: PROCEDURE Update_Metric_Template(
244: p_api_version_number IN NUMBER,
245: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
246: p_commit IN VARCHAR2 := FND_API.G_FALSE,
247: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
248:
249: x_return_status OUT NOCOPY VARCHAR2,
250: x_msg_count OUT NOCOPY NUMBER,
243: PROCEDURE Update_Metric_Template(
244: p_api_version_number IN NUMBER,
245: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
246: p_commit IN VARCHAR2 := FND_API.G_FALSE,
247: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
248:
249: x_return_status OUT NOCOPY VARCHAR2,
250: x_msg_count OUT NOCOPY NUMBER,
251: x_msg_data OUT NOCOPY VARCHAR2,
288: -- Standard Start of API savepoint
289: SAVEPOINT UPDATE_Metric_Template_PVT;
290:
291: -- Standard call to check for call compatibility.
292: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
293: p_api_version_number,
294: l_api_name,
295: G_PKG_NAME)
296: THEN
293: p_api_version_number,
294: l_api_name,
295: G_PKG_NAME)
296: THEN
297: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
298: END IF;
299:
300: -- Initialize message list if p_init_msg_list is set to TRUE.
301: IF FND_API.to_Boolean( p_init_msg_list )
297: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
298: END IF;
299:
300: -- Initialize message list if p_init_msg_list is set to TRUE.
301: IF FND_API.to_Boolean( p_init_msg_list )
302: THEN
303: FND_MSG_PUB.initialize;
304: END IF;
305:
308: Ams_Utility_Pvt.debug_message('Private API: ' || l_api_name || ': start');
309: END IF;
310:
311: -- Initialize API return status to SUCCESS
312: x_return_status := FND_API.G_RET_STS_SUCCESS;
313:
314: -- Initialize the tar record.
315: l_tar_metric_tpl_header_rec := P_metric_tpl_header_rec;
316:
319: ': ASSOCIATION_TYPE = '|| l_tar_metric_tpl_header_rec.association_type);
320: END IF;
321:
322: IF (l_tar_metric_tpl_header_rec.METRIC_TPL_HEADER_ID IS NULL OR
323: l_tar_metric_tpl_header_rec.METRIC_TPL_HEADER_ID = FND_API.G_MISS_NUM )
324: THEN
325: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD',
326: p_token_name => 'COLUMN',
327: p_token_value => 'METRIC_TPL_HEADER_ID');
324: THEN
325: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_MISSING_FIELD',
326: p_token_name => 'COLUMN',
327: p_token_value => 'METRIC_TPL_HEADER_ID');
328: RAISE FND_API.G_EXC_ERROR;
329: END IF;
330:
331: IF (l_tar_metric_tpl_header_rec.object_version_number IS NULL OR
332: l_tar_metric_tpl_header_rec.object_version_number = FND_API.G_MISS_NUM)
328: RAISE FND_API.G_EXC_ERROR;
329: END IF;
330:
331: IF (l_tar_metric_tpl_header_rec.object_version_number IS NULL OR
332: l_tar_metric_tpl_header_rec.object_version_number = FND_API.G_MISS_NUM)
333: THEN
334: Ams_Utility_Pvt.Error_Message(p_message_name => 'API_VERSION_MISSING',
335: p_token_name => 'COLUMN',
336: p_token_value => 'object_version_number');
333: THEN
334: Ams_Utility_Pvt.Error_Message(p_message_name => 'API_VERSION_MISSING',
335: p_token_name => 'COLUMN',
336: p_token_value => 'object_version_number');
337: RAISE FND_API.G_EXC_ERROR;
338: END IF;
339:
340: OPEN c_get_Metric_Template(l_tar_metric_tpl_header_rec.metric_tpl_header_id);
341:
346: p_message_name => 'API_MISSING_UPDATE_TARGET',
347: p_token_name => 'INFO',
348: p_token_value => 'Metric_Template');
349: CLOSE c_get_Metric_Template;
350: RAISE FND_API.G_EXC_ERROR;
351: END IF;
352:
353: CLOSE c_get_Metric_Template;
354:
357: l_ref_metric_tpl_header_rec.object_version_number) THEN
358: Ams_Utility_Pvt.Error_Message(p_message_name => 'API_RECORD_CHANGED',
359: p_token_name => 'INFO',
360: p_token_value => 'Metric_Template');
361: RAISE FND_API.G_EXC_ERROR;
362: END IF;
363:
364: -- 13-Jan-2005 dmvincen : Changing name, desc, and enabled is allowed.
365: /*************
375: THEN
376: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_METR_TPL_SEEDED_MOD');
377: END IF;
378:
379: RAISE FND_API.G_EXC_ERROR;
380: END IF;
381: END IF;
382: ***************/
383:
385:
386: Complete_metric_tpl_header_Rec(l_ref_metric_tpl_header_rec,
387: l_tar_metric_tpl_header_rec);
388:
389: IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
390: THEN
391: -- Debug message
392: IF (AMS_DEBUG_HIGH_ON) THEN
393:
396:
397: -- Invoke validation procedures
398: Validate_metric_template(
399: p_api_version_number => 1.0,
400: p_init_msg_list => FND_API.G_FALSE,
401: p_validation_level => p_validation_level,
402: p_validation_mode => JTF_PLSQL_API.g_update,
403: p_metric_tpl_header_rec => l_tar_metric_tpl_header_rec,
404: x_return_status => x_return_status,
405: x_msg_count => x_msg_count,
406: x_msg_data => x_msg_data);
407: END IF;
408:
409: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
410: RAISE FND_API.G_EXC_ERROR;
411: END IF;
412:
413: -- Debug Message
406: x_msg_data => x_msg_data);
407: END IF;
408:
409: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
410: RAISE FND_API.G_EXC_ERROR;
411: END IF;
412:
413: -- Debug Message
414: IF (AMS_DEBUG_HIGH_ON) THEN
437: -- End of API body.
438: --
439:
440: -- Standard check for p_commit
441: IF FND_API.to_Boolean( p_commit )
442: THEN
443: COMMIT WORK;
444: END IF;
445:
457: );
458: EXCEPTION
459:
460: WHEN Ams_Utility_Pvt.resource_locked THEN
461: x_return_status := FND_API.g_ret_sts_error;
462: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
463:
464: WHEN FND_API.G_EXC_ERROR THEN
465: ROLLBACK TO UPDATE_Metric_Template_PVT;
460: WHEN Ams_Utility_Pvt.resource_locked THEN
461: x_return_status := FND_API.g_ret_sts_error;
462: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
463:
464: WHEN FND_API.G_EXC_ERROR THEN
465: ROLLBACK TO UPDATE_Metric_Template_PVT;
466: x_return_status := FND_API.G_RET_STS_ERROR;
467: -- Standard call to get message count and if count=1, get the message
468: FND_MSG_PUB.Count_And_Get (
462: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
463:
464: WHEN FND_API.G_EXC_ERROR THEN
465: ROLLBACK TO UPDATE_Metric_Template_PVT;
466: x_return_status := FND_API.G_RET_STS_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_Metric_Template_PVT;
466: x_return_status := FND_API.G_RET_STS_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:
470: p_count => x_msg_count,
471: p_data => x_msg_data
472: );
473:
474: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
475: ROLLBACK TO UPDATE_Metric_Template_PVT;
476: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
477: -- Standard call to get message count and if count=1, get the message
478: FND_MSG_PUB.Count_And_Get (
472: );
473:
474: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
475: ROLLBACK TO UPDATE_Metric_Template_PVT;
476: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
477: -- Standard call to get message count and if count=1, get the message
478: FND_MSG_PUB.Count_And_Get (
479: p_encoded => FND_API.G_FALSE,
480: p_count => x_msg_count,
475: ROLLBACK TO UPDATE_Metric_Template_PVT;
476: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
477: -- Standard call to get message count and if count=1, get the message
478: FND_MSG_PUB.Count_And_Get (
479: p_encoded => FND_API.G_FALSE,
480: p_count => x_msg_count,
481: p_data => x_msg_data
482: );
483:
482: );
483:
484: WHEN OTHERS THEN
485: ROLLBACK TO UPDATE_Metric_Template_PVT;
486: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
487: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
488: THEN
489: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
490: END IF;
489: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
490: END IF;
491: -- Standard call to get message count and if count=1, get the message
492: FND_MSG_PUB.Count_And_Get (
493: p_encoded => FND_API.G_FALSE,
494: p_count => x_msg_count,
495: p_data => x_msg_data
496: );
497: END Update_Metric_Template;
498:
499:
500: PROCEDURE Delete_Metric_Template(
501: p_api_version_number IN NUMBER,
502: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
503: p_commit IN VARCHAR2 := FND_API.G_FALSE,
504: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
505: x_return_status OUT NOCOPY VARCHAR2,
506: x_msg_count OUT NOCOPY NUMBER,
499:
500: PROCEDURE Delete_Metric_Template(
501: p_api_version_number IN NUMBER,
502: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
503: p_commit IN VARCHAR2 := FND_API.G_FALSE,
504: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
505: x_return_status OUT NOCOPY VARCHAR2,
506: x_msg_count OUT NOCOPY NUMBER,
507: x_msg_data OUT NOCOPY VARCHAR2,
500: PROCEDURE Delete_Metric_Template(
501: p_api_version_number IN NUMBER,
502: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
503: p_commit IN VARCHAR2 := FND_API.G_FALSE,
504: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
505: x_return_status OUT NOCOPY VARCHAR2,
506: x_msg_count OUT NOCOPY NUMBER,
507: x_msg_data OUT NOCOPY VARCHAR2,
508: p_metric_tpl_header_id IN NUMBER,
517: -- Standard Start of API savepoint
518: SAVEPOINT DELETE_Metric_Template_PVT;
519:
520: -- Standard call to check for call compatibility.
521: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
522: p_api_version_number,
523: l_api_name,
524: G_PKG_NAME)
525: THEN
522: p_api_version_number,
523: l_api_name,
524: G_PKG_NAME)
525: THEN
526: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
527: END IF;
528:
529: -- Initialize message list if p_init_msg_list is set to TRUE.
530: IF FND_API.to_Boolean( p_init_msg_list )
526: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
527: END IF;
528:
529: -- Initialize message list if p_init_msg_list is set to TRUE.
530: IF FND_API.to_Boolean( p_init_msg_list )
531: THEN
532: FND_MSG_PUB.initialize;
533: END IF;
534:
545: THEN
546: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_METR_TPL_SEEDED');
547: END IF;
548:
549: RAISE FND_API.G_EXC_ERROR;
550: END IF;
551:
552:
553:
551:
552:
553:
554: -- Initialize API return status to SUCCESS
555: x_return_status := FND_API.G_RET_STS_SUCCESS;
556:
557: --
558: -- Api body
559: --
596: -- End of API body
597: --
598:
599: -- Standard check for p_commit
600: IF FND_API.to_Boolean( p_commit )
601: THEN
602: COMMIT WORK;
603: END IF;
604:
616: );
617: EXCEPTION
618:
619: WHEN Ams_Utility_Pvt.resource_locked THEN
620: x_return_status := FND_API.g_ret_sts_error;
621: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
622:
623: WHEN FND_API.G_EXC_ERROR THEN
624: ROLLBACK TO DELETE_Metric_Template_PVT;
619: WHEN Ams_Utility_Pvt.resource_locked THEN
620: x_return_status := FND_API.g_ret_sts_error;
621: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
622:
623: WHEN FND_API.G_EXC_ERROR THEN
624: ROLLBACK TO DELETE_Metric_Template_PVT;
625: x_return_status := FND_API.G_RET_STS_ERROR;
626: -- Standard call to get message count and if count=1, get the message
627: FND_MSG_PUB.Count_And_Get (
621: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
622:
623: WHEN FND_API.G_EXC_ERROR THEN
624: ROLLBACK TO DELETE_Metric_Template_PVT;
625: x_return_status := FND_API.G_RET_STS_ERROR;
626: -- Standard call to get message count and if count=1, get the message
627: FND_MSG_PUB.Count_And_Get (
628: p_encoded => FND_API.G_FALSE,
629: p_count => x_msg_count,
624: ROLLBACK TO DELETE_Metric_Template_PVT;
625: x_return_status := FND_API.G_RET_STS_ERROR;
626: -- Standard call to get message count and if count=1, get the message
627: FND_MSG_PUB.Count_And_Get (
628: p_encoded => FND_API.G_FALSE,
629: p_count => x_msg_count,
630: p_data => x_msg_data
631: );
632:
629: p_count => x_msg_count,
630: p_data => x_msg_data
631: );
632:
633: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
634: ROLLBACK TO DELETE_Metric_Template_PVT;
635: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
636: -- Standard call to get message count and if count=1, get the message
637: FND_MSG_PUB.Count_And_Get (
631: );
632:
633: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
634: ROLLBACK TO DELETE_Metric_Template_PVT;
635: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
636: -- Standard call to get message count and if count=1, get the message
637: FND_MSG_PUB.Count_And_Get (
638: p_encoded => FND_API.G_FALSE,
639: p_count => x_msg_count,
634: ROLLBACK TO DELETE_Metric_Template_PVT;
635: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
636: -- Standard call to get message count and if count=1, get the message
637: FND_MSG_PUB.Count_And_Get (
638: p_encoded => FND_API.G_FALSE,
639: p_count => x_msg_count,
640: p_data => x_msg_data
641: );
642:
641: );
642:
643: WHEN OTHERS THEN
644: ROLLBACK TO DELETE_Metric_Template_PVT;
645: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
646: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
647: THEN
648: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
649: END IF;
648: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
649: END IF;
650: -- Standard call to get message count and if count=1, get the message
651: FND_MSG_PUB.Count_And_Get (
652: p_encoded => FND_API.G_FALSE,
653: p_count => x_msg_count,
654: p_data => x_msg_data
655: );
656: END Delete_Metric_Template;
657:
658: -- Hint: Primary key needs to be returned.
659: PROCEDURE Lock_Metric_Template(
660: p_api_version_number IN NUMBER,
661: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
662:
663: x_return_status OUT NOCOPY VARCHAR2,
664: x_msg_count OUT NOCOPY NUMBER,
665: x_msg_data OUT NOCOPY VARCHAR2,
689: Ams_Utility_Pvt.debug_message('PRIVATE API: ' || l_api_name || 'START');
690: END IF;
691:
692: -- Initialize message list if p_init_msg_list is set to TRUE.
693: IF FND_API.to_Boolean( p_init_msg_list )
694: THEN
695: FND_MSG_PUB.initialize;
696: END IF;
697:
695: FND_MSG_PUB.initialize;
696: END IF;
697:
698: -- Standard call to check for call compatibility.
699: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
700: p_api_version_number,
701: l_api_name,
702: G_PKG_NAME)
703: THEN
700: p_api_version_number,
701: l_api_name,
702: G_PKG_NAME)
703: THEN
704: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
705: END IF;
706:
707:
708: -- Initialize API return status to SUCCESS
705: END IF;
706:
707:
708: -- Initialize API return status to SUCCESS
709: x_return_status := FND_API.G_RET_STS_SUCCESS;
710:
711:
712: ------------------------ lock -------------------------
713:
727: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
728: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
729: FND_MSG_PUB.ADD;
730: END IF;
731: RAISE FND_API.g_exc_error;
732: END IF;
733:
734: CLOSE c_Metric_Template;
735:
734: CLOSE c_Metric_Template;
735:
736: -------------------- finish --------------------------
737: FND_MSG_PUB.count_and_get(
738: p_encoded => FND_API.g_false,
739: p_count => x_msg_count,
740: p_data => x_msg_data);
741: IF (AMS_DEBUG_HIGH_ON) THEN
742:
744: END IF;
745: EXCEPTION
746:
747: WHEN Ams_Utility_Pvt.resource_locked THEN
748: x_return_status := FND_API.g_ret_sts_error;
749: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
750:
751: WHEN FND_API.G_EXC_ERROR THEN
752: ROLLBACK TO LOCK_Metric_Template_PVT;
747: WHEN Ams_Utility_Pvt.resource_locked THEN
748: x_return_status := FND_API.g_ret_sts_error;
749: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
750:
751: WHEN FND_API.G_EXC_ERROR THEN
752: ROLLBACK TO LOCK_Metric_Template_PVT;
753: x_return_status := FND_API.G_RET_STS_ERROR;
754: -- Standard call to get message count and if count=1, get the message
755: FND_MSG_PUB.Count_And_Get (
749: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
750:
751: WHEN FND_API.G_EXC_ERROR THEN
752: ROLLBACK TO LOCK_Metric_Template_PVT;
753: x_return_status := FND_API.G_RET_STS_ERROR;
754: -- Standard call to get message count and if count=1, get the message
755: FND_MSG_PUB.Count_And_Get (
756: p_encoded => FND_API.G_FALSE,
757: p_count => x_msg_count,
752: ROLLBACK TO LOCK_Metric_Template_PVT;
753: x_return_status := FND_API.G_RET_STS_ERROR;
754: -- Standard call to get message count and if count=1, get the message
755: FND_MSG_PUB.Count_And_Get (
756: p_encoded => FND_API.G_FALSE,
757: p_count => x_msg_count,
758: p_data => x_msg_data
759: );
760:
757: p_count => x_msg_count,
758: p_data => x_msg_data
759: );
760:
761: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
762: ROLLBACK TO LOCK_Metric_Template_PVT;
763: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
764: -- Standard call to get message count and if count=1, get the message
765: FND_MSG_PUB.Count_And_Get (
759: );
760:
761: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
762: ROLLBACK TO LOCK_Metric_Template_PVT;
763: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
764: -- Standard call to get message count and if count=1, get the message
765: FND_MSG_PUB.Count_And_Get (
766: p_encoded => FND_API.G_FALSE,
767: p_count => x_msg_count,
762: ROLLBACK TO LOCK_Metric_Template_PVT;
763: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
764: -- Standard call to get message count and if count=1, get the message
765: FND_MSG_PUB.Count_And_Get (
766: p_encoded => FND_API.G_FALSE,
767: p_count => x_msg_count,
768: p_data => x_msg_data
769: );
770:
769: );
770:
771: WHEN OTHERS THEN
772: ROLLBACK TO LOCK_Metric_Template_PVT;
773: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
774: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
775: THEN
776: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
777: END IF;
776: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
777: END IF;
778: -- Standard call to get message count and if count=1, get the message
779: FND_MSG_PUB.Count_And_Get (
780: p_encoded => FND_API.G_FALSE,
781: p_count => x_msg_count,
782: p_data => x_msg_data
783: );
784: END Lock_Metric_Template;
788: p_metric_tpl_header_rec IN metric_tpl_header_rec_type,
789: p_validation_mode IN VARCHAR2 := JTF_PLSQL_API.g_create,
790: x_return_status OUT NOCOPY VARCHAR2)
791: IS
792: l_valid_flag VARCHAR2(1) := FND_API.g_false;
793:
794:
795: /*sunkumar - 20-apr-2004 validations for name of metric template */
796: /* CREATING template WITH THE WORD "AND" RATHER THAN "&" CREATES ERROR */
818:
819: l_count number;
820:
821: BEGIN
822: x_return_status := FND_API.g_ret_sts_success;
823:
824: IF AMS_DEBUG_HIGH_ON THEN
825: Ams_Utility_Pvt.debug_message('PRIVATE API: Check_met_tpl_hdr_UK_items:'
826: || ' name/id=' || p_metric_tpl_header_rec.metric_tpl_header_name
832: l_valid_flag := Ams_Utility_Pvt.check_uniqueness(
833: 'AMS_MET_TPL_HEADERS_VL',
834: 'METRIC_TPL_HEADER_ID = ' || p_metric_tpl_header_rec.METRIC_TPL_HEADER_ID
835: );
836: IF l_valid_flag = FND_API.g_false THEN
837: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_MTH_ID_DUPLICATE');
838: x_return_status := FND_API.g_ret_sts_error;
839: RETURN;
840: END IF;
834: 'METRIC_TPL_HEADER_ID = ' || p_metric_tpl_header_rec.METRIC_TPL_HEADER_ID
835: );
836: IF l_valid_flag = FND_API.g_false THEN
837: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_MTH_ID_DUPLICATE');
838: x_return_status := FND_API.g_ret_sts_error;
839: RETURN;
840: END IF;
841: -- ELSE
842: -- l_valid_flag := Ams_Utility_Pvt.check_uniqueness(
850:
851: /*sunkumar - 20-apr-2004 validations for name of metric template */
852: /* CREATING template WITH THE WORD "AND" RATHER THAN "&" CREATES ERROR */
853:
854: l_valid_flag := FND_API.G_TRUE;
855:
856: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
857:
858: OPEN c_check_header_name(p_metric_tpl_header_rec.Metric_Tpl_header_name);
858: OPEN c_check_header_name(p_metric_tpl_header_rec.Metric_Tpl_header_name);
859: FETCH c_check_header_name INTO l_count;
860: CLOSE c_check_header_name;
861: IF l_count > 0 THEN
862: l_valid_flag := FND_API.G_FALSE;
863: END IF;
864:
865: ELSE
866:
868: p_metric_tpl_header_rec.metric_tpl_header_name);
869: FETCH c_check_header_detail INTO l_count;
870: CLOSE c_check_header_detail;
871: IF l_count > 0 THEN
872: l_valid_flag := FND_API.G_FALSE;
873: END IF;
874:
875: END IF;
876:
875: END IF;
876:
877: /*End changes sunkumar */
878:
879: IF l_valid_flag = FND_API.g_false THEN
880: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_MTH_NAME_DUPLICATE');
881: x_return_status := FND_API.g_ret_sts_error;
882: RETURN;
883: END IF;
877: /*End changes sunkumar */
878:
879: IF l_valid_flag = FND_API.g_false THEN
880: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_MTH_NAME_DUPLICATE');
881: x_return_status := FND_API.g_ret_sts_error;
882: RETURN;
883: END IF;
884:
885: END check_met_tpl_hdr_uk_items;
890: x_return_status OUT NOCOPY VARCHAR2
891: )
892: IS
893: BEGIN
894: x_return_status := FND_API.g_ret_sts_success;
895:
896: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
897:
898: IF p_metric_tpl_header_rec.metric_tpl_header_id IS NULL OR
895:
896: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
897:
898: IF p_metric_tpl_header_rec.metric_tpl_header_id IS NULL OR
899: p_metric_tpl_header_rec.metric_tpl_header_id = FND_API.g_miss_num THEN
900: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
901: FND_MESSAGE.set_token('MISS_FIELD','METRIC_TPL_HEADER_ID');
902: x_return_status := FND_API.g_ret_sts_error;
903: RETURN;
898: IF p_metric_tpl_header_rec.metric_tpl_header_id IS NULL OR
899: p_metric_tpl_header_rec.metric_tpl_header_id = FND_API.g_miss_num THEN
900: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
901: FND_MESSAGE.set_token('MISS_FIELD','METRIC_TPL_HEADER_ID');
902: x_return_status := FND_API.g_ret_sts_error;
903: RETURN;
904: END IF;
905:
906: IF p_metric_tpl_header_rec.enabled_flag IS NULL OR
903: RETURN;
904: END IF;
905:
906: IF p_metric_tpl_header_rec.enabled_flag IS NULL OR
907: p_metric_tpl_header_rec.enabled_flag = FND_API.g_miss_char THEN
908: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
909: FND_MESSAGE.set_token('MISS_FIELD','ENABLED_FLAG');
910: x_return_status := FND_API.g_ret_sts_error;
911: RETURN;
906: IF p_metric_tpl_header_rec.enabled_flag IS NULL OR
907: p_metric_tpl_header_rec.enabled_flag = FND_API.g_miss_char THEN
908: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
909: FND_MESSAGE.set_token('MISS_FIELD','ENABLED_FLAG');
910: x_return_status := FND_API.g_ret_sts_error;
911: RETURN;
912: END IF;
913:
914: IF p_metric_tpl_header_rec.METRIC_TPL_HEADER_NAME IS NULL OR
911: RETURN;
912: END IF;
913:
914: IF p_metric_tpl_header_rec.METRIC_TPL_HEADER_NAME IS NULL OR
915: p_metric_tpl_header_rec.METRIC_TPL_HEADER_NAME = FND_API.g_miss_char THEN
916: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
917: FND_MESSAGE.set_token('MISS_FIELD','METRIC_TPL_HEADER_NAME');
918: x_return_status := FND_API.g_ret_sts_error;
919: RETURN;
914: IF p_metric_tpl_header_rec.METRIC_TPL_HEADER_NAME IS NULL OR
915: p_metric_tpl_header_rec.METRIC_TPL_HEADER_NAME = FND_API.g_miss_char THEN
916: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
917: FND_MESSAGE.set_token('MISS_FIELD','METRIC_TPL_HEADER_NAME');
918: x_return_status := FND_API.g_ret_sts_error;
919: RETURN;
920: END IF;
921:
922: IF p_metric_tpl_header_rec.DESCRIPTION IS NOT NULL AND
919: RETURN;
920: END IF;
921:
922: IF p_metric_tpl_header_rec.DESCRIPTION IS NOT NULL AND
923: p_metric_tpl_header_rec.DESCRIPTION = FND_API.g_miss_char THEN
924: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
925: FND_MESSAGE.set_token('MISS_FIELD','DESCRIPTION');
926: x_return_status := FND_API.g_ret_sts_error;
927: RETURN;
922: IF p_metric_tpl_header_rec.DESCRIPTION IS NOT NULL AND
923: p_metric_tpl_header_rec.DESCRIPTION = FND_API.g_miss_char THEN
924: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
925: FND_MESSAGE.set_token('MISS_FIELD','DESCRIPTION');
926: x_return_status := FND_API.g_ret_sts_error;
927: RETURN;
928: END IF;
929:
930: IF p_metric_tpl_header_rec.ASSOCIATION_TYPE IS NULL OR
927: RETURN;
928: END IF;
929:
930: IF p_metric_tpl_header_rec.ASSOCIATION_TYPE IS NULL OR
931: p_metric_tpl_header_rec.ASSOCIATION_TYPE = FND_API.g_miss_char THEN
932: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
933: FND_MESSAGE.set_token('MISS_FIELD','ASSOCIATION_TYPE');
934: x_return_status := FND_API.g_ret_sts_error;
935: RETURN;
930: IF p_metric_tpl_header_rec.ASSOCIATION_TYPE IS NULL OR
931: p_metric_tpl_header_rec.ASSOCIATION_TYPE = FND_API.g_miss_char THEN
932: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
933: FND_MESSAGE.set_token('MISS_FIELD','ASSOCIATION_TYPE');
934: x_return_status := FND_API.g_ret_sts_error;
935: RETURN;
936: END IF;
937:
938: IF p_metric_tpl_header_rec.ASSOCIATION_TYPE = 'CUSTOM_SETUP' AND
936: END IF;
937:
938: IF p_metric_tpl_header_rec.ASSOCIATION_TYPE = 'CUSTOM_SETUP' AND
939: (p_metric_tpl_header_rec.USED_BY_ID IS NULL OR
940: p_metric_tpl_header_rec.USED_BY_ID = FND_API.g_miss_num) THEN
941: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
942: FND_MESSAGE.set_token('MISS_FIELD','USED_BY_ID');
943: x_return_status := FND_API.g_ret_sts_error;
944: RETURN;
939: (p_metric_tpl_header_rec.USED_BY_ID IS NULL OR
940: p_metric_tpl_header_rec.USED_BY_ID = FND_API.g_miss_num) THEN
941: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
942: FND_MESSAGE.set_token('MISS_FIELD','USED_BY_ID');
943: x_return_status := FND_API.g_ret_sts_error;
944: RETURN;
945: ELSIF p_metric_tpl_header_rec.ASSOCIATION_TYPE = 'OBJECT_TYPE' AND
946: (p_metric_tpl_header_rec.USED_BY_CODE IS NULL OR
947: p_metric_tpl_header_rec.USED_BY_CODE = FND_API.g_miss_char) THEN
943: x_return_status := FND_API.g_ret_sts_error;
944: RETURN;
945: ELSIF p_metric_tpl_header_rec.ASSOCIATION_TYPE = 'OBJECT_TYPE' AND
946: (p_metric_tpl_header_rec.USED_BY_CODE IS NULL OR
947: p_metric_tpl_header_rec.USED_BY_CODE = FND_API.g_miss_char) THEN
948: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
949: FND_MESSAGE.set_token('MISS_FIELD','USED_BY_CODE');
950: x_return_status := FND_API.g_ret_sts_error;
951: RETURN;
946: (p_metric_tpl_header_rec.USED_BY_CODE IS NULL OR
947: p_metric_tpl_header_rec.USED_BY_CODE = FND_API.g_miss_char) THEN
948: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
949: FND_MESSAGE.set_token('MISS_FIELD','USED_BY_CODE');
950: x_return_status := FND_API.g_ret_sts_error;
951: RETURN;
952: END IF;
953:
954: ELSE -- Update
953:
954: ELSE -- Update
955:
956: IF p_metric_tpl_header_rec.metric_tpl_header_id IS NULL OR
957: p_metric_tpl_header_rec.metric_tpl_header_id = FND_API.g_miss_num THEN
958: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_MTH_NO_MET_TPL_HDR_ID');
959: x_return_status := FND_API.g_ret_sts_error;
960: RETURN;
961: END IF;
955:
956: IF p_metric_tpl_header_rec.metric_tpl_header_id IS NULL OR
957: p_metric_tpl_header_rec.metric_tpl_header_id = FND_API.g_miss_num THEN
958: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_MTH_NO_MET_TPL_HDR_ID');
959: x_return_status := FND_API.g_ret_sts_error;
960: RETURN;
961: END IF;
962:
963: IF p_metric_tpl_header_rec.enabled_flag IS NULL OR
960: RETURN;
961: END IF;
962:
963: IF p_metric_tpl_header_rec.enabled_flag IS NULL OR
964: p_metric_tpl_header_rec.enabled_flag = FND_API.g_miss_char THEN
965: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_MTH_NO_ENABLED_FLAG');
966: x_return_status := FND_API.g_ret_sts_error;
967: RETURN;
968: END IF;
962:
963: IF p_metric_tpl_header_rec.enabled_flag IS NULL OR
964: p_metric_tpl_header_rec.enabled_flag = FND_API.g_miss_char THEN
965: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_MTH_NO_ENABLED_FLAG');
966: x_return_status := FND_API.g_ret_sts_error;
967: RETURN;
968: END IF;
969:
970: IF p_metric_tpl_header_rec.METRIC_TPL_HEADER_NAME IS NULL OR
967: RETURN;
968: END IF;
969:
970: IF p_metric_tpl_header_rec.METRIC_TPL_HEADER_NAME IS NULL OR
971: p_metric_tpl_header_rec.METRIC_TPL_HEADER_NAME = FND_API.g_miss_char THEN
972: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
973: FND_MESSAGE.set_token('MISS_FIELD','METRIC_TPL_HEADER_NAME');
974: x_return_status := FND_API.g_ret_sts_error;
975: RETURN;
970: IF p_metric_tpl_header_rec.METRIC_TPL_HEADER_NAME IS NULL OR
971: p_metric_tpl_header_rec.METRIC_TPL_HEADER_NAME = FND_API.g_miss_char THEN
972: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
973: FND_MESSAGE.set_token('MISS_FIELD','METRIC_TPL_HEADER_NAME');
974: x_return_status := FND_API.g_ret_sts_error;
975: RETURN;
976: END IF;
977:
978: IF p_metric_tpl_header_rec.DESCRIPTION IS NOT NULL AND
975: RETURN;
976: END IF;
977:
978: IF p_metric_tpl_header_rec.DESCRIPTION IS NOT NULL AND
979: p_metric_tpl_header_rec.DESCRIPTION = FND_API.g_miss_char THEN
980: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
981: FND_MESSAGE.set_token('MISS_FIELD','DESCRIPTION');
982: x_return_status := FND_API.g_ret_sts_error;
983: RETURN;
978: IF p_metric_tpl_header_rec.DESCRIPTION IS NOT NULL AND
979: p_metric_tpl_header_rec.DESCRIPTION = FND_API.g_miss_char THEN
980: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
981: FND_MESSAGE.set_token('MISS_FIELD','DESCRIPTION');
982: x_return_status := FND_API.g_ret_sts_error;
983: RETURN;
984: END IF;
985:
986: IF p_metric_tpl_header_rec.ASSOCIATION_TYPE IS NULL OR
983: RETURN;
984: END IF;
985:
986: IF p_metric_tpl_header_rec.ASSOCIATION_TYPE IS NULL OR
987: p_metric_tpl_header_rec.ASSOCIATION_TYPE = FND_API.g_miss_char THEN
988: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
989: FND_MESSAGE.set_token('MISS_FIELD','ASSOCIATION_TYPE');
990: x_return_status := FND_API.g_ret_sts_error;
991: RETURN;
986: IF p_metric_tpl_header_rec.ASSOCIATION_TYPE IS NULL OR
987: p_metric_tpl_header_rec.ASSOCIATION_TYPE = FND_API.g_miss_char THEN
988: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
989: FND_MESSAGE.set_token('MISS_FIELD','ASSOCIATION_TYPE');
990: x_return_status := FND_API.g_ret_sts_error;
991: RETURN;
992: END IF;
993:
994: IF p_metric_tpl_header_rec.ASSOCIATION_TYPE = 'CUSTOM_SETUP' AND
992: END IF;
993:
994: IF p_metric_tpl_header_rec.ASSOCIATION_TYPE = 'CUSTOM_SETUP' AND
995: (p_metric_tpl_header_rec.USED_BY_ID IS NULL OR
996: p_metric_tpl_header_rec.USED_BY_ID = FND_API.g_miss_num) THEN
997: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
998: FND_MESSAGE.set_token('MISS_FIELD','USED_BY_ID');
999: x_return_status := FND_API.g_ret_sts_error;
1000: RETURN;
995: (p_metric_tpl_header_rec.USED_BY_ID IS NULL OR
996: p_metric_tpl_header_rec.USED_BY_ID = FND_API.g_miss_num) THEN
997: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
998: FND_MESSAGE.set_token('MISS_FIELD','USED_BY_ID');
999: x_return_status := FND_API.g_ret_sts_error;
1000: RETURN;
1001: ELSIF p_metric_tpl_header_rec.ASSOCIATION_TYPE = 'OBJECT_TYPE' AND
1002: (p_metric_tpl_header_rec.USED_BY_CODE IS NULL OR
1003: p_metric_tpl_header_rec.USED_BY_CODE = FND_API.g_miss_char) THEN
999: x_return_status := FND_API.g_ret_sts_error;
1000: RETURN;
1001: ELSIF p_metric_tpl_header_rec.ASSOCIATION_TYPE = 'OBJECT_TYPE' AND
1002: (p_metric_tpl_header_rec.USED_BY_CODE IS NULL OR
1003: p_metric_tpl_header_rec.USED_BY_CODE = FND_API.g_miss_char) THEN
1004: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
1005: FND_MESSAGE.set_token('MISS_FIELD','USED_BY_CODE');
1006: x_return_status := FND_API.g_ret_sts_error;
1007: RETURN;
1002: (p_metric_tpl_header_rec.USED_BY_CODE IS NULL OR
1003: p_metric_tpl_header_rec.USED_BY_CODE = FND_API.g_miss_char) THEN
1004: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
1005: FND_MESSAGE.set_token('MISS_FIELD','USED_BY_CODE');
1006: x_return_status := FND_API.g_ret_sts_error;
1007: RETURN;
1008: END IF;
1009:
1010: END IF;
1029: AND b.lookup_code = a.object_type;
1030:
1031: l_count NUMBER;
1032: BEGIN
1033: x_return_status := FND_API.g_ret_sts_success;
1034:
1035: IF p_metric_tpl_header_rec.ASSOCIATION_TYPE = 'OBJECT_TYPE' THEN
1036:
1037: IF AMS_DEBUG_HIGH_ON THEN
1044: CLOSE c_checkObjectTYpe;
1045:
1046: IF l_count = 0 THEN
1047: Ams_Utility_Pvt.error_message('AMS_MTH_INVALID_OBJECT_TYPE');
1048: x_return_status := FND_API.g_ret_sts_error;
1049: END IF;
1050:
1051: ELSIF p_metric_tpl_header_rec.ASSOCIATION_TYPE = 'CUSTOM_SETUP' THEN
1052:
1060: CLOSE c_checkCustomSetup;
1061:
1062: IF l_count = 0 THEN
1063: Ams_Utility_Pvt.error_message('AMS_MTH_INVALID_CUSTOM_SETUP');
1064: x_return_status := FND_API.g_ret_sts_error;
1065: END IF;
1066:
1067: END IF;
1068:
1078: x_return_status OUT NOCOPY VARCHAR2
1079: )
1080: IS
1081: BEGIN
1082: x_return_status := FND_API.g_ret_sts_success;
1083:
1084: -- Enter custom code here
1085: IF Ams_Utility_Pvt.is_y_or_n(p_metric_tpl_header_rec.enabled_flag) =
1086: FND_API.G_FALSE THEN
1082: x_return_status := FND_API.g_ret_sts_success;
1083:
1084: -- Enter custom code here
1085: IF Ams_Utility_Pvt.is_y_or_n(p_metric_tpl_header_rec.enabled_flag) =
1086: FND_API.G_FALSE THEN
1087: Ams_Utility_Pvt.error_message(
1088: p_message_name => 'AMS_MTH_BAD_ENABLED_FLAG');
1089: x_return_status := FND_API.g_ret_sts_error;
1090: END IF;
1085: IF Ams_Utility_Pvt.is_y_or_n(p_metric_tpl_header_rec.enabled_flag) =
1086: FND_API.G_FALSE THEN
1087: Ams_Utility_Pvt.error_message(
1088: p_message_name => 'AMS_MTH_BAD_ENABLED_FLAG');
1089: x_return_status := FND_API.g_ret_sts_error;
1090: END IF;
1091:
1092: IF AMS_DEBUG_HIGH_ON THEN
1093: Ams_Utility_Pvt.debug_message('PRIVATE API: Check_met_tpl_hdr_LKP'||
1095: END IF;
1096:
1097: IF AMS_UTILITY_PVT.Check_Lookup_Exists('ams_lookups',
1098: 'AMS_METRIC_TPL_ASSOC_TYPES',
1099: p_metric_tpl_header_rec.ASSOCIATION_TYPE) = FND_API.G_FALSE THEN
1100: Ams_Utility_Pvt.error_message(
1101: p_message_name => 'AMS_MTH_INVALID_ASSOC_TYPE');
1102: x_return_status := FND_API.g_ret_sts_error;
1103: END IF;
1098: 'AMS_METRIC_TPL_ASSOC_TYPES',
1099: p_metric_tpl_header_rec.ASSOCIATION_TYPE) = FND_API.G_FALSE THEN
1100: Ams_Utility_Pvt.error_message(
1101: p_message_name => 'AMS_MTH_INVALID_ASSOC_TYPE');
1102: x_return_status := FND_API.g_ret_sts_error;
1103: END IF;
1104:
1105: END CHECK_met_tpl_hdr_LKP;
1106:
1122: check_met_tpl_hdr_uk_items(
1123: p_metric_tpl_header_rec => p_metric_tpl_header_rec,
1124: p_validation_mode => p_validation_mode,
1125: x_return_status => x_return_status);
1126: IF x_return_status <> FND_API.g_ret_sts_success THEN
1127: RETURN;
1128: END IF;
1129:
1130: -- Check Items Required/NOT NULL API calls
1137: CHECK_met_tpl_hdr_REQ_ITEMS(
1138: p_metric_tpl_header_rec => p_metric_tpl_header_rec,
1139: p_validation_mode => p_validation_mode,
1140: x_return_status => x_return_status);
1141: IF x_return_status <> FND_API.g_ret_sts_success THEN
1142: RETURN;
1143: END IF;
1144:
1145: -- Check Items Lookups
1151:
1152: CHECK_met_tpl_hdr_LKP(
1153: p_metric_tpl_header_rec => p_metric_tpl_header_rec,
1154: x_return_status => x_return_status);
1155: IF x_return_status <> FND_API.g_ret_sts_success THEN
1156: RETURN;
1157: END IF;
1158:
1159: -- Check Items Foreign Keys API calls
1165:
1166: CHECK_met_tpl_hdr_FK_ITEMS(
1167: p_metric_tpl_header_rec => p_metric_tpl_header_rec,
1168: x_return_status => x_return_status);
1169: IF x_return_status <> FND_API.g_ret_sts_success THEN
1170: RETURN;
1171: END IF;
1172:
1173: -- Debug Message
1199: -- FETCH c_complete INTO l_metric_tpl_header_rec;
1200: -- CLOSE c_complete;
1201:
1202: -- metric_tpl_header_id
1203: -- IF p_metric_tpl_header_rec.metric_tpl_header_id = FND_API.g_miss_num THEN
1204: -- x_complete_rec.metric_tpl_header_id := l_metric_tpl_header_rec.metric_tpl_header_id;
1205: -- END IF;
1206:
1207: -- last_update_date
1204: -- x_complete_rec.metric_tpl_header_id := l_metric_tpl_header_rec.metric_tpl_header_id;
1205: -- END IF;
1206:
1207: -- last_update_date
1208: -- IF p_metric_tpl_header_rec.last_update_date = FND_API.g_miss_date THEN
1209: -- x_complete_rec.last_update_date := l_metric_tpl_header_rec.last_update_date;
1210: -- END IF;
1211:
1212: -- last_updated_by
1209: -- x_complete_rec.last_update_date := l_metric_tpl_header_rec.last_update_date;
1210: -- END IF;
1211:
1212: -- last_updated_by
1213: -- IF p_metric_tpl_header_rec.last_updated_by = FND_API.g_miss_num THEN
1214: -- x_complete_rec.last_updated_by := l_metric_tpl_header_rec.last_updated_by;
1215: -- END IF;
1216:
1217: -- creation_date
1214: -- x_complete_rec.last_updated_by := l_metric_tpl_header_rec.last_updated_by;
1215: -- END IF;
1216:
1217: -- creation_date
1218: -- IF p_metric_tpl_header_rec.creation_date = FND_API.g_miss_date THEN
1219: -- x_complete_rec.creation_date := l_metric_tpl_header_rec.creation_date;
1220: -- END IF;
1221:
1222: -- created_by
1219: -- x_complete_rec.creation_date := l_metric_tpl_header_rec.creation_date;
1220: -- END IF;
1221:
1222: -- created_by
1223: -- IF p_metric_tpl_header_rec.created_by = FND_API.g_miss_num THEN
1224: -- x_complete_rec.created_by := l_metric_tpl_header_rec.created_by;
1225: -- END IF;
1226:
1227: -- last_update_login
1224: -- x_complete_rec.created_by := l_metric_tpl_header_rec.created_by;
1225: -- END IF;
1226:
1227: -- last_update_login
1228: -- IF p_metric_tpl_header_rec.last_update_login = FND_API.g_miss_num THEN
1229: -- x_complete_rec.last_update_login := l_metric_tpl_header_rec.last_update_login;
1230: -- END IF;
1231:
1232: -- object_version_number
1229: -- x_complete_rec.last_update_login := l_metric_tpl_header_rec.last_update_login;
1230: -- END IF;
1231:
1232: -- object_version_number
1233: -- IF p_metric_tpl_header_rec.object_version_number = FND_API.g_miss_num THEN
1234: -- x_complete_rec.object_version_number := l_metric_tpl_header_rec.object_version_number;
1235: -- END IF;
1236:
1237: -- enabled_flag
1234: -- x_complete_rec.object_version_number := l_metric_tpl_header_rec.object_version_number;
1235: -- END IF;
1236:
1237: -- enabled_flag
1238: IF x_tar_metric_tpl_header_rec.enabled_flag = FND_API.g_miss_char THEN
1239: x_tar_metric_tpl_header_rec.enabled_flag := p_ref_metric_tpl_header_rec.enabled_flag;
1240: END IF;
1241:
1242: -- application_id
1239: x_tar_metric_tpl_header_rec.enabled_flag := p_ref_metric_tpl_header_rec.enabled_flag;
1240: END IF;
1241:
1242: -- application_id
1243: IF x_tar_metric_tpl_header_rec.application_id = FND_API.g_miss_num THEN
1244: x_tar_metric_tpl_header_rec.application_id := p_ref_metric_tpl_header_rec.application_id;
1245: END IF;
1246:
1247: -- METRIC_TPL_HEADER_NAME
1244: x_tar_metric_tpl_header_rec.application_id := p_ref_metric_tpl_header_rec.application_id;
1245: END IF;
1246:
1247: -- METRIC_TPL_HEADER_NAME
1248: IF x_tar_metric_tpl_header_rec.METRIC_TPL_HEADER_NAME = FND_API.g_miss_char
1249: THEN
1250: x_tar_metric_tpl_header_rec.METRIC_TPL_HEADER_NAME :=
1251: p_ref_metric_tpl_header_rec.METRIC_TPL_HEADER_NAME;
1252: END IF;
1251: p_ref_metric_tpl_header_rec.METRIC_TPL_HEADER_NAME;
1252: END IF;
1253:
1254: -- DESCRIPTION
1255: IF x_tar_metric_tpl_header_rec.DESCRIPTION = FND_API.g_miss_char THEN
1256: x_tar_metric_tpl_header_rec.DESCRIPTION :=
1257: p_ref_metric_tpl_header_rec.DESCRIPTION;
1258: END IF;
1259:
1257: p_ref_metric_tpl_header_rec.DESCRIPTION;
1258: END IF;
1259:
1260: -- ASSOCIATION_TYPE
1261: IF x_tar_metric_tpl_header_rec.ASSOCIATION_TYPE = FND_API.g_miss_char THEN
1262: x_tar_metric_tpl_header_rec.ASSOCIATION_TYPE :=
1263: p_ref_metric_tpl_header_rec.ASSOCIATION_TYPE;
1264: END IF;
1265:
1263: p_ref_metric_tpl_header_rec.ASSOCIATION_TYPE;
1264: END IF;
1265:
1266: -- USED_BY_ID
1267: IF x_tar_metric_tpl_header_rec.USED_BY_ID = FND_API.g_miss_num THEN
1268: x_tar_metric_tpl_header_rec.USED_BY_ID :=
1269: p_ref_metric_tpl_header_rec.USED_BY_ID;
1270: END IF;
1271:
1269: p_ref_metric_tpl_header_rec.USED_BY_ID;
1270: END IF;
1271:
1272: -- USED_BY_CODE
1273: IF x_tar_metric_tpl_header_rec.USED_BY_CODE = FND_API.g_miss_char THEN
1274: x_tar_metric_tpl_header_rec.USED_BY_CODE :=
1275: p_ref_metric_tpl_header_rec.USED_BY_CODE;
1276: END IF;
1277:
1280: END Complete_metric_tpl_header_Rec;
1281:
1282: PROCEDURE Validate_metric_template(
1283: p_api_version_number IN NUMBER,
1284: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1285: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1286: p_metric_tpl_header_rec IN metric_tpl_header_rec_type,
1287: p_validation_mode IN VARCHAR2,
1288: x_return_status OUT NOCOPY VARCHAR2,
1281:
1282: PROCEDURE Validate_metric_template(
1283: p_api_version_number IN NUMBER,
1284: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1285: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1286: p_metric_tpl_header_rec IN metric_tpl_header_rec_type,
1287: p_validation_mode IN VARCHAR2,
1288: x_return_status OUT NOCOPY VARCHAR2,
1289: x_msg_count OUT NOCOPY NUMBER,
1298: -- Standard Start of API savepoint
1299: SAVEPOINT VALIDATE_Metric_Template_;
1300:
1301: -- Standard call to check for call compatibility.
1302: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1303: p_api_version_number,
1304: l_api_name,
1305: G_PKG_NAME)
1306: THEN
1303: p_api_version_number,
1304: l_api_name,
1305: G_PKG_NAME)
1306: THEN
1307: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1308: END IF;
1309:
1310: -- Debug Message
1311: IF AMS_DEBUG_HIGH_ON THEN
1312: Ams_Utility_Pvt.debug_message('PRIVATE API: ' || l_api_name || ': START');
1313: END IF;
1314:
1315: -- Initialize API return status to SUCCESS
1316: x_return_status := FND_API.G_RET_STS_SUCCESS;
1317:
1318: -- Initialize message list if p_init_msg_list is set to TRUE.
1319: IF FND_API.to_Boolean( p_init_msg_list )
1320: THEN
1315: -- Initialize API return status to SUCCESS
1316: x_return_status := FND_API.G_RET_STS_SUCCESS;
1317:
1318: -- Initialize message list if p_init_msg_list is set to TRUE.
1319: IF FND_API.to_Boolean( p_init_msg_list )
1320: THEN
1321: FND_MSG_PUB.initialize;
1322: END IF;
1323:
1332: p_validation_mode => p_validation_mode,
1333: x_return_status => x_return_status
1334: );
1335:
1336: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1337: RAISE FND_API.G_EXC_ERROR;
1338: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1339: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1340: END IF;
1333: x_return_status => x_return_status
1334: );
1335:
1336: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1337: RAISE FND_API.G_EXC_ERROR;
1338: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1339: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1340: END IF;
1341: END IF;
1334: );
1335:
1336: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1337: RAISE FND_API.G_EXC_ERROR;
1338: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1339: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1340: END IF;
1341: END IF;
1342:
1335:
1336: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1337: RAISE FND_API.G_EXC_ERROR;
1338: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1339: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1340: END IF;
1341: END IF;
1342:
1343: IF p_validation_mode = JTF_PLSQL_API.g_update THEN
1349:
1350: IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1351: Validate_met_tpl_hdr_Rec(
1352: p_api_version_number => 1.0,
1353: p_init_msg_list => FND_API.G_FALSE,
1354: x_return_status => x_return_status,
1355: x_msg_count => x_msg_count,
1356: x_msg_data => x_msg_data,
1357: p_metric_tpl_header_rec => p_metric_tpl_header_rec);
1355: x_msg_count => x_msg_count,
1356: x_msg_data => x_msg_data,
1357: p_metric_tpl_header_rec => p_metric_tpl_header_rec);
1358:
1359: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1360: RAISE FND_API.G_EXC_ERROR;
1361: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1362: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1363: END IF;
1356: x_msg_data => x_msg_data,
1357: p_metric_tpl_header_rec => p_metric_tpl_header_rec);
1358:
1359: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1360: RAISE FND_API.G_EXC_ERROR;
1361: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1362: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1363: END IF;
1364: END IF;
1357: p_metric_tpl_header_rec => p_metric_tpl_header_rec);
1358:
1359: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1360: RAISE FND_API.G_EXC_ERROR;
1361: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1362: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1363: END IF;
1364: END IF;
1365: END IF;
1358:
1359: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1360: RAISE FND_API.G_EXC_ERROR;
1361: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1362: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1363: END IF;
1364: END IF;
1365: END IF;
1366:
1376: );
1377: EXCEPTION
1378:
1379: WHEN Ams_Utility_Pvt.resource_locked THEN
1380: x_return_status := FND_API.g_ret_sts_error;
1381: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1382:
1383: WHEN FND_API.G_EXC_ERROR THEN
1384: ROLLBACK TO VALIDATE_Metric_Template_;
1379: WHEN Ams_Utility_Pvt.resource_locked THEN
1380: x_return_status := FND_API.g_ret_sts_error;
1381: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1382:
1383: WHEN FND_API.G_EXC_ERROR THEN
1384: ROLLBACK TO VALIDATE_Metric_Template_;
1385: x_return_status := FND_API.G_RET_STS_ERROR;
1386: -- Standard call to get message count and if count=1, get the message
1387: FND_MSG_PUB.Count_And_Get (
1381: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1382:
1383: WHEN FND_API.G_EXC_ERROR THEN
1384: ROLLBACK TO VALIDATE_Metric_Template_;
1385: x_return_status := FND_API.G_RET_STS_ERROR;
1386: -- Standard call to get message count and if count=1, get the message
1387: FND_MSG_PUB.Count_And_Get (
1388: p_encoded => FND_API.G_FALSE,
1389: p_count => x_msg_count,
1384: ROLLBACK TO VALIDATE_Metric_Template_;
1385: x_return_status := FND_API.G_RET_STS_ERROR;
1386: -- Standard call to get message count and if count=1, get the message
1387: FND_MSG_PUB.Count_And_Get (
1388: p_encoded => FND_API.G_FALSE,
1389: p_count => x_msg_count,
1390: p_data => x_msg_data
1391: );
1392:
1389: p_count => x_msg_count,
1390: p_data => x_msg_data
1391: );
1392:
1393: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1394: ROLLBACK TO VALIDATE_Metric_Template_;
1395: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1396: -- Standard call to get message count and if count=1, get the message
1397: FND_MSG_PUB.Count_And_Get (
1391: );
1392:
1393: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1394: ROLLBACK TO VALIDATE_Metric_Template_;
1395: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1396: -- Standard call to get message count and if count=1, get the message
1397: FND_MSG_PUB.Count_And_Get (
1398: p_encoded => FND_API.G_FALSE,
1399: p_count => x_msg_count,
1394: ROLLBACK TO VALIDATE_Metric_Template_;
1395: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1396: -- Standard call to get message count and if count=1, get the message
1397: FND_MSG_PUB.Count_And_Get (
1398: p_encoded => FND_API.G_FALSE,
1399: p_count => x_msg_count,
1400: p_data => x_msg_data
1401: );
1402:
1401: );
1402:
1403: WHEN OTHERS THEN
1404: ROLLBACK TO VALIDATE_Metric_Template_;
1405: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1406: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1407: THEN
1408: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1409: END IF;
1408: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1409: END IF;
1410: -- Standard call to get message count and if count=1, get the message
1411: FND_MSG_PUB.Count_And_Get (
1412: p_encoded => FND_API.G_FALSE,
1413: p_count => x_msg_count,
1414: p_data => x_msg_data
1415: );
1416: END Validate_Metric_Template;
1417:
1418:
1419: PROCEDURE Validate_met_tpl_hdr_rec(
1420: p_api_version_number IN NUMBER,
1421: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1422: x_return_status OUT NOCOPY VARCHAR2,
1423: x_msg_count OUT NOCOPY NUMBER,
1424: x_msg_data OUT NOCOPY VARCHAR2,
1425: p_metric_tpl_header_rec IN metric_tpl_header_rec_type
1426: )
1427: IS
1428: BEGIN
1429: -- Initialize message list if p_init_msg_list is set to TRUE.
1430: IF FND_API.to_Boolean( p_init_msg_list )
1431: THEN
1432: FND_MSG_PUB.initialize;
1433: END IF;
1434:
1432: FND_MSG_PUB.initialize;
1433: END IF;
1434:
1435: -- Initialize API return status to SUCCESS
1436: x_return_status := FND_API.G_RET_STS_SUCCESS;
1437:
1438: -- Hint: Validate data
1439: -- If data not valid
1440: -- THEN
1437:
1438: -- Hint: Validate data
1439: -- If data not valid
1440: -- THEN
1441: -- x_return_status := FND_API.G_RET_STS_ERROR;
1442:
1443: -- Debug Message
1444: IF (AMS_DEBUG_HIGH_ON) THEN
1445: