70:
71: -- Hint: Primary key needs to be returned.
72: PROCEDURE Create_Metric_Formula(
73: p_api_version_number IN NUMBER,
74: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
75: p_commit IN VARCHAR2 := FND_API.G_FALSE,
76: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
77:
78: x_return_status OUT nocopy VARCHAR2,
71: -- Hint: Primary key needs to be returned.
72: PROCEDURE Create_Metric_Formula(
73: p_api_version_number IN NUMBER,
74: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
75: p_commit IN VARCHAR2 := FND_API.G_FALSE,
76: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
77:
78: x_return_status OUT nocopy VARCHAR2,
79: x_msg_count OUT nocopy NUMBER,
72: PROCEDURE Create_Metric_Formula(
73: p_api_version_number IN NUMBER,
74: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
75: p_commit IN VARCHAR2 := FND_API.G_FALSE,
76: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
77:
78: x_return_status OUT nocopy VARCHAR2,
79: x_msg_count OUT nocopy NUMBER,
80: x_msg_data OUT nocopy VARCHAR2,
113: -- Standard Start of API savepoint
114: SAVEPOINT CREATE_metric_formula_SP;
115:
116: -- Standard call to check for call compatibility.
117: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
118: p_api_version_number,
119: l_api_name,
120: G_PKG_NAME)
121: THEN
118: p_api_version_number,
119: l_api_name,
120: G_PKG_NAME)
121: THEN
122: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
123: END IF;
124:
125: -- Initialize message list if p_init_msg_list is set to TRUE.
126: IF FND_API.to_Boolean( p_init_msg_list )
122: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
123: END IF;
124:
125: -- Initialize message list if p_init_msg_list is set to TRUE.
126: IF FND_API.to_Boolean( p_init_msg_list )
127: THEN
128: FND_MSG_PUB.initialize;
129: END IF;
130:
141: THEN
142: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_METR_TPL_SEEDED');
143: END IF;
144:
145: RAISE FND_API.G_EXC_ERROR;
146: END IF; */
147:
148:
149: -- Initialize API return status to SUCCESS
146: END IF; */
147:
148:
149: -- Initialize API return status to SUCCESS
150: x_return_status := FND_API.G_RET_STS_SUCCESS;
151:
152: -- Local variable initialization
153:
154: IF l_metric_formula_rec.METRIC_FORMULA_ID IS NULL OR
151:
152: -- Local variable initialization
153:
154: IF l_metric_formula_rec.METRIC_FORMULA_ID IS NULL OR
155: l_metric_formula_rec.METRIC_FORMULA_ID = FND_API.g_miss_num THEN
156: LOOP
157: l_dummy := NULL;
158: OPEN c_id;
159: FETCH c_id INTO l_METRIC_FORMULA_ID;
178:
179: IF FND_GLOBAL.User_Id IS NULL
180: THEN
181: Ams_Utility_Pvt.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
182: RAISE FND_API.G_EXC_ERROR;
183: END IF;
184:
185: if l_metric_formula_rec.sequence is null then
186: open c_get_max_sequence(l_metric_formula_rec.metric_id);
189: l_metric_formula_rec.sequence :=
190: nvl(l_max_sequence,0) + G_SEQUENCE_INCREMENT;
191: end if;
192:
193: IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
194: THEN
195: -- Debug message
196: IF (AMS_DEBUG_HIGH_ON) THEN
197:
200:
201: -- Invoke validation procedures
202: Validate_metric_formula(
203: p_api_version_number => 1.0,
204: p_init_msg_list => FND_API.G_FALSE,
205: p_validation_level => p_validation_level,
206: p_validation_mode => JTF_PLSQL_API.g_create,
207: p_metric_formula_rec => l_metric_formula_rec,
208: x_return_status => x_return_status,
209: x_msg_count => x_msg_count,
210: x_msg_data => x_msg_data);
211: END IF;
212:
213: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
214: RAISE FND_API.G_EXC_ERROR;
215: END IF;
216:
217:
210: x_msg_data => x_msg_data);
211: END IF;
212:
213: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
214: RAISE FND_API.G_EXC_ERROR;
215: END IF;
216:
217:
218: -- Debug Message
246: Ams_Utility_Pvt.debug_message( 'Private API: return_status='||x_return_status||', x_metric_formula_id='||x_metric_formula_id);
247: END IF;
248:
249: x_METRIC_FORMULA_ID := l_METRIC_FORMULA_ID;
250: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
251: RAISE FND_API.G_EXC_ERROR;
252: END IF;
253: --
254: -- End of API body
247: END IF;
248:
249: x_METRIC_FORMULA_ID := l_METRIC_FORMULA_ID;
250: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
251: RAISE FND_API.G_EXC_ERROR;
252: END IF;
253: --
254: -- End of API body
255: --
254: -- End of API body
255: --
256:
257: -- Standard check for p_commit
258: IF FND_API.to_Boolean( p_commit )
259: THEN
260: COMMIT WORK;
261: END IF;
262:
274: );
275: EXCEPTION
276:
277: WHEN Ams_Utility_Pvt.resource_locked THEN
278: x_return_status := FND_API.g_ret_sts_error;
279: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
280:
281: WHEN FND_API.G_EXC_ERROR THEN
282: ROLLBACK TO CREATE_metric_formula_SP;
277: WHEN Ams_Utility_Pvt.resource_locked THEN
278: x_return_status := FND_API.g_ret_sts_error;
279: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
280:
281: WHEN FND_API.G_EXC_ERROR THEN
282: ROLLBACK TO CREATE_metric_formula_SP;
283: x_return_status := FND_API.G_RET_STS_ERROR;
284: -- Standard call to get message count and if count=1, get the message
285: FND_MSG_PUB.Count_And_Get (
279: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
280:
281: WHEN FND_API.G_EXC_ERROR THEN
282: ROLLBACK TO CREATE_metric_formula_SP;
283: x_return_status := FND_API.G_RET_STS_ERROR;
284: -- Standard call to get message count and if count=1, get the message
285: FND_MSG_PUB.Count_And_Get (
286: p_encoded => FND_API.G_FALSE,
287: p_count => x_msg_count,
282: ROLLBACK TO CREATE_metric_formula_SP;
283: x_return_status := FND_API.G_RET_STS_ERROR;
284: -- Standard call to get message count and if count=1, get the message
285: FND_MSG_PUB.Count_And_Get (
286: p_encoded => FND_API.G_FALSE,
287: p_count => x_msg_count,
288: p_data => x_msg_data
289: );
290:
287: p_count => x_msg_count,
288: p_data => x_msg_data
289: );
290:
291: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
292: ROLLBACK TO CREATE_metric_formula_SP;
293: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
294: -- Standard call to get message count and if count=1, get the message
295: FND_MSG_PUB.Count_And_Get (
289: );
290:
291: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
292: ROLLBACK TO CREATE_metric_formula_SP;
293: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
294: -- Standard call to get message count and if count=1, get the message
295: FND_MSG_PUB.Count_And_Get (
296: p_encoded => FND_API.G_FALSE,
297: p_count => x_msg_count,
292: ROLLBACK TO CREATE_metric_formula_SP;
293: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
294: -- Standard call to get message count and if count=1, get the message
295: FND_MSG_PUB.Count_And_Get (
296: p_encoded => FND_API.G_FALSE,
297: p_count => x_msg_count,
298: p_data => x_msg_data
299: );
300:
299: );
300:
301: WHEN OTHERS THEN
302: ROLLBACK TO CREATE_metric_formula_SP;
303: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
304: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
305: THEN
306: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
307: END IF;
306: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
307: END IF;
308: -- Standard call to get message count and if count=1, get the message
309: FND_MSG_PUB.Count_And_Get (
310: p_encoded => FND_API.G_FALSE,
311: p_count => x_msg_count,
312: p_data => x_msg_data
313: );
314: END Create_metric_formula;
315:
316:
317: PROCEDURE Update_Metric_Formula(
318: p_api_version_number IN NUMBER,
319: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
320: p_commit IN VARCHAR2 := FND_API.G_FALSE,
321: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
322:
323: x_return_status OUT nocopy VARCHAR2,
316:
317: PROCEDURE Update_Metric_Formula(
318: p_api_version_number IN NUMBER,
319: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
320: p_commit IN VARCHAR2 := FND_API.G_FALSE,
321: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
322:
323: x_return_status OUT nocopy VARCHAR2,
324: x_msg_count OUT nocopy NUMBER,
317: PROCEDURE Update_Metric_Formula(
318: p_api_version_number IN NUMBER,
319: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
320: p_commit IN VARCHAR2 := FND_API.G_FALSE,
321: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
322:
323: x_return_status OUT nocopy VARCHAR2,
324: x_msg_count OUT nocopy NUMBER,
325: x_msg_data OUT nocopy VARCHAR2,
368: -- Standard Start of API savepoint
369: SAVEPOINT UPDATE_metric_formula_sp;
370:
371: -- Standard call to check for call compatibility.
372: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
373: p_api_version_number,
374: l_api_name,
375: G_PKG_NAME)
376: THEN
373: p_api_version_number,
374: l_api_name,
375: G_PKG_NAME)
376: THEN
377: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
378: END IF;
379:
380: -- Initialize message list if p_init_msg_list is set to TRUE.
381: IF FND_API.to_Boolean( p_init_msg_list )
377: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
378: END IF;
379:
380: -- Initialize message list if p_init_msg_list is set to TRUE.
381: IF FND_API.to_Boolean( p_init_msg_list )
382: THEN
383: FND_MSG_PUB.initialize;
384: END IF;
385:
389: Ams_Utility_Pvt.debug_message('Private API: ' || l_api_name || ': start');
390: END IF;
391:
392: -- Initialize API return status to SUCCESS
393: x_return_status := FND_API.G_RET_STS_SUCCESS;
394:
395: -- Debug Message
396: IF (AMS_DEBUG_HIGH_ON) THEN
397: Ams_Utility_Pvt.debug_message('Private API: - Open Cursor to Select');
405: CLOSE c_get_metric_formula;
406: Ams_Utility_Pvt.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
407: p_token_name => 'INFO',
408: p_token_value => 'metric_formula_id='||l_tar_metric_formula_rec.METRIC_FORMULA_ID);
409: RAISE FND_API.G_EXC_ERROR;
410: END IF;
411:
412: -- Debug Message
413: IF (AMS_DEBUG_HIGH_ON) THEN
417:
418: Complete_metric_formula_rec(l_ref_metric_formula_rec, l_tar_metric_formula_rec);
419:
420: IF (l_tar_metric_formula_rec.object_version_number IS NULL OR
421: l_tar_metric_formula_rec.object_version_number = FND_API.G_MISS_NUM ) THEN
422: Ams_Utility_Pvt.Error_Message(p_message_name => 'API_VERSION_MISSING',
423: p_token_name => 'COLUMN',
424: p_token_value => 'OBJECT_VERSION_NUMBER');
425: RAISE FND_API.G_EXC_ERROR;
421: l_tar_metric_formula_rec.object_version_number = FND_API.G_MISS_NUM ) THEN
422: Ams_Utility_Pvt.Error_Message(p_message_name => 'API_VERSION_MISSING',
423: p_token_name => 'COLUMN',
424: p_token_value => 'OBJECT_VERSION_NUMBER');
425: RAISE FND_API.G_EXC_ERROR;
426: END IF;
427:
428: -- Check Whether record has been changed by someone else
429: IF (l_tar_metric_formula_rec.object_version_number <> l_ref_metric_formula_rec.object_version_number) THEN
429: IF (l_tar_metric_formula_rec.object_version_number <> l_ref_metric_formula_rec.object_version_number) THEN
430: Ams_Utility_Pvt.Error_Message(p_message_name => 'API_RECORD_CHANGED',
431: p_token_name => 'INFO',
432: p_token_value => 'metric_formula_id='||l_tar_metric_formula_rec.METRIC_FORMULA_ID);
433: RAISE FND_API.G_EXC_ERROR;
434: END IF;
435:
436: --check if we are trying to update a seeded metric formula
437: IF l_tar_metric_formula_rec.metric_id < 10000 THEN
441: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
442: THEN
443: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_METR_SEEDED_METR');
444: END IF;
445: RAISE FND_API.G_EXC_ERROR;
446: END IF;
447: END IF;
448:
449: if l_tar_metric_formula_rec.sequence is null then
456: l_tar_metric_formula_rec.sequence := nvl(l_max_sequence,G_SEQUENCE_INCREMENT);
457: end if;
458: end if;
459:
460: IF ( p_validation_level >= FND_API.G_VALID_LEVEL_FULL)
461: THEN
462: -- Debug message
463: IF (AMS_DEBUG_HIGH_ON) THEN
464: Ams_Utility_Pvt.debug_message('Private API: Validate_metric_formula');
466:
467: -- Invoke validation procedures
468: Validate_metric_formula(
469: p_api_version_number => 1.0,
470: p_init_msg_list => FND_API.G_FALSE,
471: p_validation_level => p_validation_level,
472: p_validation_mode => JTF_PLSQL_API.g_update,
473: p_metric_formula_rec => l_tar_metric_formula_rec,
474: x_return_status => x_return_status,
479: Ams_Utility_Pvt.debug_message('Private API: Validate_metric_formula: return status='||x_return_status);
480: END IF;
481: END IF;
482:
483: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
484: RAISE FND_API.G_EXC_ERROR;
485: END IF;
486:
487: l_object_version_number :=
480: END IF;
481: END IF;
482:
483: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
484: RAISE FND_API.G_EXC_ERROR;
485: END IF;
486:
487: l_object_version_number :=
488: l_ref_metric_formula_rec.object_version_number + 1;
513: -- End of API body.
514: --
515:
516: -- Standard check for p_commit
517: IF FND_API.to_Boolean( p_commit )
518: THEN
519: COMMIT WORK;
520: END IF;
521:
533: );
534: EXCEPTION
535:
536: WHEN Ams_Utility_Pvt.resource_locked THEN
537: x_return_status := FND_API.g_ret_sts_error;
538: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
539:
540: WHEN FND_API.G_EXC_ERROR THEN
541: ROLLBACK TO UPDATE_metric_formula_sp;
536: WHEN Ams_Utility_Pvt.resource_locked THEN
537: x_return_status := FND_API.g_ret_sts_error;
538: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
539:
540: WHEN FND_API.G_EXC_ERROR THEN
541: ROLLBACK TO UPDATE_metric_formula_sp;
542: x_return_status := FND_API.G_RET_STS_ERROR;
543: -- Standard call to get message count and if count=1, get the message
544: FND_MSG_PUB.Count_And_Get (
538: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
539:
540: WHEN FND_API.G_EXC_ERROR THEN
541: ROLLBACK TO UPDATE_metric_formula_sp;
542: x_return_status := FND_API.G_RET_STS_ERROR;
543: -- Standard call to get message count and if count=1, get the message
544: FND_MSG_PUB.Count_And_Get (
545: p_encoded => FND_API.G_FALSE,
546: p_count => x_msg_count,
541: ROLLBACK TO UPDATE_metric_formula_sp;
542: x_return_status := FND_API.G_RET_STS_ERROR;
543: -- Standard call to get message count and if count=1, get the message
544: FND_MSG_PUB.Count_And_Get (
545: p_encoded => FND_API.G_FALSE,
546: p_count => x_msg_count,
547: p_data => x_msg_data
548: );
549:
546: p_count => x_msg_count,
547: p_data => x_msg_data
548: );
549:
550: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
551: ROLLBACK TO UPDATE_metric_formula_sp;
552: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
553: -- Standard call to get message count and if count=1, get the message
554: FND_MSG_PUB.Count_And_Get (
548: );
549:
550: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
551: ROLLBACK TO UPDATE_metric_formula_sp;
552: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
553: -- Standard call to get message count and if count=1, get the message
554: FND_MSG_PUB.Count_And_Get (
555: p_encoded => FND_API.G_FALSE,
556: p_count => x_msg_count,
551: ROLLBACK TO UPDATE_metric_formula_sp;
552: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
553: -- Standard call to get message count and if count=1, get the message
554: FND_MSG_PUB.Count_And_Get (
555: p_encoded => FND_API.G_FALSE,
556: p_count => x_msg_count,
557: p_data => x_msg_data
558: );
559:
558: );
559:
560: WHEN OTHERS THEN
561: ROLLBACK TO UPDATE_metric_formula_sp;
562: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
563: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
564: THEN
565: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
566: END IF;
565: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
566: END IF;
567: -- Standard call to get message count and if count=1, get the message
568: FND_MSG_PUB.Count_And_Get (
569: p_encoded => FND_API.G_FALSE,
570: p_count => x_msg_count,
571: p_data => x_msg_data
572: );
573: END Update_metric_formula;
574:
575:
576: PROCEDURE Delete_Metric_Formula(
577: p_api_version_number IN NUMBER,
578: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
579: p_commit IN VARCHAR2 := FND_API.G_FALSE,
580: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
581: x_return_status OUT nocopy VARCHAR2,
582: x_msg_count OUT nocopy NUMBER,
575:
576: PROCEDURE Delete_Metric_Formula(
577: p_api_version_number IN NUMBER,
578: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
579: p_commit IN VARCHAR2 := FND_API.G_FALSE,
580: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
581: x_return_status OUT nocopy VARCHAR2,
582: x_msg_count OUT nocopy NUMBER,
583: x_msg_data OUT nocopy VARCHAR2,
576: PROCEDURE Delete_Metric_Formula(
577: p_api_version_number IN NUMBER,
578: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
579: p_commit IN VARCHAR2 := FND_API.G_FALSE,
580: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
581: x_return_status OUT nocopy VARCHAR2,
582: x_msg_count OUT nocopy NUMBER,
583: x_msg_data OUT nocopy VARCHAR2,
584: p_metric_formula_id IN NUMBER,
594: -- Standard Start of API savepoint
595: SAVEPOINT DELETE_metric_formula_SP;
596:
597: -- Standard call to check for call compatibility.
598: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
599: p_api_version_number,
600: l_api_name,
601: G_PKG_NAME)
602: THEN
599: p_api_version_number,
600: l_api_name,
601: G_PKG_NAME)
602: THEN
603: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
604: END IF;
605:
606: -- Initialize message list if p_init_msg_list is set to TRUE.
607: IF FND_API.to_Boolean( p_init_msg_list )
603: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
604: END IF;
605:
606: -- Initialize message list if p_init_msg_list is set to TRUE.
607: IF FND_API.to_Boolean( p_init_msg_list )
608: THEN
609: FND_MSG_PUB.initialize;
610: END IF;
611:
621: THEN
622: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_METR_SEEDED_METR');
623: END IF;
624:
625: RAISE FND_API.G_EXC_ERROR;
626: END IF;
627:
628: -- Initialize API return status to SUCCESS
629: x_return_status := FND_API.G_RET_STS_SUCCESS;
625: RAISE FND_API.G_EXC_ERROR;
626: END IF;
627:
628: -- Initialize API return status to SUCCESS
629: x_return_status := FND_API.G_RET_STS_SUCCESS;
630:
631: --
632: -- Api body
633: --
644: -- End of API body
645: --
646:
647: -- Standard check for p_commit
648: IF FND_API.to_Boolean( p_commit )
649: THEN
650: COMMIT WORK;
651: END IF;
652:
664: );
665: EXCEPTION
666:
667: WHEN Ams_Utility_Pvt.resource_locked THEN
668: x_return_status := FND_API.g_ret_sts_error;
669: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
670:
671: WHEN FND_API.G_EXC_ERROR THEN
672: ROLLBACK TO DELETE_metric_formula_SP;
667: WHEN Ams_Utility_Pvt.resource_locked THEN
668: x_return_status := FND_API.g_ret_sts_error;
669: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
670:
671: WHEN FND_API.G_EXC_ERROR THEN
672: ROLLBACK TO DELETE_metric_formula_SP;
673: x_return_status := FND_API.G_RET_STS_ERROR;
674: -- Standard call to get message count and if count=1, get the message
675: FND_MSG_PUB.Count_And_Get (
669: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
670:
671: WHEN FND_API.G_EXC_ERROR THEN
672: ROLLBACK TO DELETE_metric_formula_SP;
673: x_return_status := FND_API.G_RET_STS_ERROR;
674: -- Standard call to get message count and if count=1, get the message
675: FND_MSG_PUB.Count_And_Get (
676: p_encoded => FND_API.G_FALSE,
677: p_count => x_msg_count,
672: ROLLBACK TO DELETE_metric_formula_SP;
673: x_return_status := FND_API.G_RET_STS_ERROR;
674: -- Standard call to get message count and if count=1, get the message
675: FND_MSG_PUB.Count_And_Get (
676: p_encoded => FND_API.G_FALSE,
677: p_count => x_msg_count,
678: p_data => x_msg_data
679: );
680:
677: p_count => x_msg_count,
678: p_data => x_msg_data
679: );
680:
681: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
682: ROLLBACK TO DELETE_metric_formula_SP;
683: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
684: -- Standard call to get message count and if count=1, get the message
685: FND_MSG_PUB.Count_And_Get (
679: );
680:
681: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
682: ROLLBACK TO DELETE_metric_formula_SP;
683: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
684: -- Standard call to get message count and if count=1, get the message
685: FND_MSG_PUB.Count_And_Get (
686: p_encoded => FND_API.G_FALSE,
687: p_count => x_msg_count,
682: ROLLBACK TO DELETE_metric_formula_SP;
683: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
684: -- Standard call to get message count and if count=1, get the message
685: FND_MSG_PUB.Count_And_Get (
686: p_encoded => FND_API.G_FALSE,
687: p_count => x_msg_count,
688: p_data => x_msg_data
689: );
690:
689: );
690:
691: WHEN OTHERS THEN
692: ROLLBACK TO DELETE_metric_formula_SP;
693: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
694: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
695: THEN
696: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
697: END IF;
696: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
697: END IF;
698: -- Standard call to get message count and if count=1, get the message
699: FND_MSG_PUB.Count_And_Get (
700: p_encoded => FND_API.G_FALSE,
701: p_count => x_msg_count,
702: p_data => x_msg_data
703: );
704: END Delete_metric_formula;
707:
708: -- Hint: Primary key needs to be returned.
709: PROCEDURE Lock_Metric_Formula(
710: p_api_version_number IN NUMBER,
711: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
712:
713: x_return_status OUT nocopy VARCHAR2,
714: x_msg_count OUT nocopy NUMBER,
715: x_msg_data OUT nocopy VARCHAR2,
740: Ams_Utility_Pvt.debug_message('Private API: ' || l_api_name || ': start');
741: END IF;
742:
743: -- Initialize message list if p_init_msg_list is set to TRUE.
744: IF FND_API.to_Boolean( p_init_msg_list )
745: THEN
746: FND_MSG_PUB.initialize;
747: END IF;
748:
746: FND_MSG_PUB.initialize;
747: END IF;
748:
749: -- Standard call to check for call compatibility.
750: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
751: p_api_version_number,
752: l_api_name,
753: G_PKG_NAME)
754: THEN
751: p_api_version_number,
752: l_api_name,
753: G_PKG_NAME)
754: THEN
755: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
756: END IF;
757:
758:
759: -- Initialize API return status to SUCCESS
756: END IF;
757:
758:
759: -- Initialize API return status to SUCCESS
760: x_return_status := FND_API.G_RET_STS_SUCCESS;
761:
762: ------------------------ lock -------------------------
763:
764: IF (AMS_DEBUG_HIGH_ON) THEN
774: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
775: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
776: FND_MSG_PUB.ADD;
777: END IF;
778: RAISE FND_API.g_exc_error;
779: END IF;
780:
781: CLOSE c_metric_formula;
782:
781: CLOSE c_metric_formula;
782:
783: -------------------- finish --------------------------
784: FND_MSG_PUB.count_and_get(
785: p_encoded => FND_API.g_false,
786: p_count => x_msg_count,
787: p_data => x_msg_data);
788: IF (AMS_DEBUG_HIGH_ON) THEN
789: Ams_Utility_Pvt.debug_message(l_full_name ||': end');
790: END IF;
791: EXCEPTION
792:
793: WHEN Ams_Utility_Pvt.resource_locked THEN
794: x_return_status := FND_API.g_ret_sts_error;
795: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
796:
797: WHEN FND_API.G_EXC_ERROR THEN
798: ROLLBACK TO LOCK_metric_formula_SP;
793: WHEN Ams_Utility_Pvt.resource_locked THEN
794: x_return_status := FND_API.g_ret_sts_error;
795: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
796:
797: WHEN FND_API.G_EXC_ERROR THEN
798: ROLLBACK TO LOCK_metric_formula_SP;
799: x_return_status := FND_API.G_RET_STS_ERROR;
800: -- Standard call to get message count and if count=1, get the message
801: FND_MSG_PUB.Count_And_Get (
795: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
796:
797: WHEN FND_API.G_EXC_ERROR THEN
798: ROLLBACK TO LOCK_metric_formula_SP;
799: x_return_status := FND_API.G_RET_STS_ERROR;
800: -- Standard call to get message count and if count=1, get the message
801: FND_MSG_PUB.Count_And_Get (
802: p_encoded => FND_API.G_FALSE,
803: p_count => x_msg_count,
798: ROLLBACK TO LOCK_metric_formula_SP;
799: x_return_status := FND_API.G_RET_STS_ERROR;
800: -- Standard call to get message count and if count=1, get the message
801: FND_MSG_PUB.Count_And_Get (
802: p_encoded => FND_API.G_FALSE,
803: p_count => x_msg_count,
804: p_data => x_msg_data
805: );
806:
803: p_count => x_msg_count,
804: p_data => x_msg_data
805: );
806:
807: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
808: ROLLBACK TO LOCK_metric_formula_SP;
809: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
810: -- Standard call to get message count and if count=1, get the message
811: FND_MSG_PUB.Count_And_Get (
805: );
806:
807: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
808: ROLLBACK TO LOCK_metric_formula_SP;
809: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
810: -- Standard call to get message count and if count=1, get the message
811: FND_MSG_PUB.Count_And_Get (
812: p_encoded => FND_API.G_FALSE,
813: p_count => x_msg_count,
808: ROLLBACK TO LOCK_metric_formula_SP;
809: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
810: -- Standard call to get message count and if count=1, get the message
811: FND_MSG_PUB.Count_And_Get (
812: p_encoded => FND_API.G_FALSE,
813: p_count => x_msg_count,
814: p_data => x_msg_data
815: );
816:
815: );
816:
817: WHEN OTHERS THEN
818: ROLLBACK TO LOCK_metric_formula_SP;
819: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
820: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
821: THEN
822: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
823: END IF;
822: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
823: END IF;
824: -- Standard call to get message count and if count=1, get the message
825: FND_MSG_PUB.Count_And_Get (
826: p_encoded => FND_API.G_FALSE,
827: p_count => x_msg_count,
828: p_data => x_msg_data
829: );
830: END Lock_metric_formula;
856: -- Debug Message
857: IF (AMS_DEBUG_HIGH_ON) THEN
858: Ams_Utility_Pvt.debug_message('PRIVATE API: check_metric_formula_uk_items : START');
859: END IF;
860: x_return_status := FND_API.g_ret_sts_success;
861: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
862: l_valid_flag := Ams_Utility_Pvt.check_uniqueness(
863: 'AMS_METRIC_FORMULAS',
864: 'METRIC_FORMULA_ID = ' || p_metric_formula_rec.METRIC_FORMULA_ID
864: 'METRIC_FORMULA_ID = ' || p_metric_formula_rec.METRIC_FORMULA_ID
865: );
866: END IF;
867:
868: IF l_valid_flag = FND_API.g_false THEN
869: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_METR_FORMULA_ID_DUP');
870: x_return_status := FND_API.g_ret_sts_error;
871: RETURN;
872: END IF;
866: END IF;
867:
868: IF l_valid_flag = FND_API.g_false THEN
869: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_METR_FORMULA_ID_DUP');
870: x_return_status := FND_API.g_ret_sts_error;
871: RETURN;
872: END IF;
873: /*
874: l_dummy := 0;
885: END IF;
886:
887: IF l_dummy > 0 THEN
888: AMS_UTILITY_PVT.ERROR_MESSAGE(p_message_name => 'AMS_METR_INVALID_SEQUENCE');
889: x_return_status := FND_API.g_ret_sts_error;
890: RETURN;
891: END IF;
892: */
893: -- Debug Message
906: -- Debug Message
907: IF (AMS_DEBUG_HIGH_ON) THEN
908: Ams_Utility_Pvt.debug_message('PRIVATE API: check_metric_formula_req_items : START');
909: END IF;
910: x_return_status := FND_API.g_ret_sts_success;
911:
912: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
913:
914: -- Debug Message
914: -- Debug Message
915: IF (AMS_DEBUG_HIGH_ON) THEN
916: Ams_Utility_Pvt.debug_message('PRIVATE API: check_metric_formula_req_items : metric_id='||p_metric_formula_rec.metric_id);
917: END IF;
918: IF p_metric_formula_rec.metric_id = FND_API.g_miss_num OR p_metric_formula_rec.metric_id IS NULL THEN
919: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
920: FND_MESSAGE.set_token('MISS_FIELD','METRIC_ID');
921: x_return_status := FND_API.g_ret_sts_error;
922: RETURN;
917: END IF;
918: IF p_metric_formula_rec.metric_id = FND_API.g_miss_num OR p_metric_formula_rec.metric_id IS NULL THEN
919: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
920: FND_MESSAGE.set_token('MISS_FIELD','METRIC_ID');
921: x_return_status := FND_API.g_ret_sts_error;
922: RETURN;
923: END IF;
924:
925: -- Debug Message
925: -- Debug Message
926: IF (AMS_DEBUG_HIGH_ON) THEN
927: Ams_Utility_Pvt.debug_message('PRIVATE API: check_metric_formula_req_items : source_type='||p_metric_formula_rec.source_type);
928: END IF;
929: IF p_metric_formula_rec.source_type = FND_API.G_MISS_CHAR OR p_metric_formula_rec.source_type IS NULL THEN
930: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
931: FND_MESSAGE.set_token('MISS_FIELD','SOURCE_TYPE');
932: x_return_status := FND_API.g_ret_sts_error;
933: RETURN;
928: END IF;
929: IF p_metric_formula_rec.source_type = FND_API.G_MISS_CHAR OR p_metric_formula_rec.source_type IS NULL THEN
930: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
931: FND_MESSAGE.set_token('MISS_FIELD','SOURCE_TYPE');
932: x_return_status := FND_API.g_ret_sts_error;
933: RETURN;
934: END IF;
935:
936: IF p_metric_formula_rec.source_type IN ('METRIC','CATEGORY') THEN
937: -- Debug Message
938: IF (AMS_DEBUG_HIGH_ON) THEN
939: Ams_Utility_Pvt.debug_message('PRIVATE API: check_metric_formula_req_items : source_id='||p_metric_formula_rec.source_id);
940: END IF;
941: IF p_metric_formula_rec.source_id IS NULL OR p_metric_formula_rec.source_id = FND_API.G_MISS_NUM THEN
942: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
943: FND_MESSAGE.set_token('MISS_FIELD','SOURCE_ID');
944: x_return_status := FND_API.g_ret_sts_error;
945: RETURN;
940: END IF;
941: IF p_metric_formula_rec.source_id IS NULL OR p_metric_formula_rec.source_id = FND_API.G_MISS_NUM THEN
942: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
943: FND_MESSAGE.set_token('MISS_FIELD','SOURCE_ID');
944: x_return_status := FND_API.g_ret_sts_error;
945: RETURN;
946: END IF;
947: -- Debug Message
948: IF (AMS_DEBUG_HIGH_ON) THEN
948: IF (AMS_DEBUG_HIGH_ON) THEN
949: Ams_Utility_Pvt.debug_message('PRIVATE API: check_metric_formula_req_items : use_sub_id_flag='||p_metric_formula_rec.use_sub_id_flag);
950: END IF;
951: IF p_metric_formula_rec.source_type = 'CATEGORY' AND
952: (p_metric_formula_rec.use_sub_id_flag IS NULL OR p_metric_formula_rec.use_sub_id_flag = FND_API.G_MISS_CHAR) THEN
953: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
954: FND_MESSAGE.set_token('MISS_FIELD','USE_SUB_ID_FLAG');
955: x_return_status := FND_API.g_ret_sts_error;
956: RETURN;
951: IF p_metric_formula_rec.source_type = 'CATEGORY' AND
952: (p_metric_formula_rec.use_sub_id_flag IS NULL OR p_metric_formula_rec.use_sub_id_flag = FND_API.G_MISS_CHAR) THEN
953: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
954: FND_MESSAGE.set_token('MISS_FIELD','USE_SUB_ID_FLAG');
955: x_return_status := FND_API.g_ret_sts_error;
956: RETURN;
957: END IF;
958: ELSIF p_metric_formula_rec.source_type = 'OPERAND' and
959: (p_metric_formula_rec.TOKEN IS NULL OR p_metric_formula_rec.TOKEN = FND_API.G_MISS_CHAR) THEN
955: x_return_status := FND_API.g_ret_sts_error;
956: RETURN;
957: END IF;
958: ELSIF p_metric_formula_rec.source_type = 'OPERAND' and
959: (p_metric_formula_rec.TOKEN IS NULL OR p_metric_formula_rec.TOKEN = FND_API.G_MISS_CHAR) THEN
960: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
961: FND_MESSAGE.set_token('MISS_FIELD','TOKEN');
962: x_return_status := FND_API.g_ret_sts_error;
963: RETURN;
958: ELSIF p_metric_formula_rec.source_type = 'OPERAND' and
959: (p_metric_formula_rec.TOKEN IS NULL OR p_metric_formula_rec.TOKEN = FND_API.G_MISS_CHAR) THEN
960: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
961: FND_MESSAGE.set_token('MISS_FIELD','TOKEN');
962: x_return_status := FND_API.g_ret_sts_error;
963: RETURN;
964: ELSIF p_metric_formula_rec.source_type = 'NUMBER' and
965: (p_metric_formula_rec.source_value IS NULL OR p_metric_formula_rec.source_value = FND_API.G_MISS_NUM) THEN
966: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
961: FND_MESSAGE.set_token('MISS_FIELD','TOKEN');
962: x_return_status := FND_API.g_ret_sts_error;
963: RETURN;
964: ELSIF p_metric_formula_rec.source_type = 'NUMBER' and
965: (p_metric_formula_rec.source_value IS NULL OR p_metric_formula_rec.source_value = FND_API.G_MISS_NUM) THEN
966: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
967: FND_MESSAGE.set_token('MISS_FIELD','SOURCE_VALUE');
968: x_return_status := FND_API.g_ret_sts_error;
969: RETURN;
964: ELSIF p_metric_formula_rec.source_type = 'NUMBER' and
965: (p_metric_formula_rec.source_value IS NULL OR p_metric_formula_rec.source_value = FND_API.G_MISS_NUM) THEN
966: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
967: FND_MESSAGE.set_token('MISS_FIELD','SOURCE_VALUE');
968: x_return_status := FND_API.g_ret_sts_error;
969: RETURN;
970: END IF;
971:
972: -- Debug Message
972: -- Debug Message
973: IF (AMS_DEBUG_HIGH_ON) THEN
974: Ams_Utility_Pvt.debug_message('PRIVATE API: check_metric_formula_req_items : notation_type='||p_metric_formula_rec.notation_type);
975: END IF;
976: IF p_metric_formula_rec.notation_type = FND_API.g_miss_char OR p_metric_formula_rec.notation_type IS NULL THEN
977: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
978: FND_MESSAGE.set_token('MISS_FIELD','NOTATION_TYPE');
979: x_return_status := FND_API.g_ret_sts_error;
980: RETURN;
975: END IF;
976: IF p_metric_formula_rec.notation_type = FND_API.g_miss_char OR p_metric_formula_rec.notation_type IS NULL THEN
977: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
978: FND_MESSAGE.set_token('MISS_FIELD','NOTATION_TYPE');
979: x_return_status := FND_API.g_ret_sts_error;
980: RETURN;
981: END IF;
982:
983: ELSE -- Update
981: END IF;
982:
983: ELSE -- Update
984:
985: IF p_metric_formula_rec.METRIC_FORMULA_ID = FND_API.g_miss_num OR p_metric_formula_rec.METRIC_FORMULA_ID IS NULL THEN
986: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
987: FND_MESSAGE.set_token('MISS_FIELD','METRIC_FORMULA_ID');
988: x_return_status := FND_API.g_ret_sts_error;
989: RETURN;
984:
985: IF p_metric_formula_rec.METRIC_FORMULA_ID = FND_API.g_miss_num OR p_metric_formula_rec.METRIC_FORMULA_ID IS NULL THEN
986: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
987: FND_MESSAGE.set_token('MISS_FIELD','METRIC_FORMULA_ID');
988: x_return_status := FND_API.g_ret_sts_error;
989: RETURN;
990: END IF;
991:
992: IF p_metric_formula_rec.sequence = FND_API.g_miss_num OR p_metric_formula_rec.sequence IS NULL THEN
988: x_return_status := FND_API.g_ret_sts_error;
989: RETURN;
990: END IF;
991:
992: IF p_metric_formula_rec.sequence = FND_API.g_miss_num OR p_metric_formula_rec.sequence IS NULL THEN
993: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
994: FND_MESSAGE.set_token('MISS_FIELD','SEQUENCE');
995: x_return_status := FND_API.g_ret_sts_error;
996: RETURN;
991:
992: IF p_metric_formula_rec.sequence = FND_API.g_miss_num OR p_metric_formula_rec.sequence IS NULL THEN
993: FND_MESSAGE.set_name('AMS', 'AMS_API_MISSING_FIELD');
994: FND_MESSAGE.set_token('MISS_FIELD','SEQUENCE');
995: x_return_status := FND_API.g_ret_sts_error;
996: RETURN;
997: END IF;
998:
999: END IF;
1034: l_object_type VARCHAR2(30);
1035: l_calculation_type VARCHAR2(30);
1036: l_source_object_type VARCHAR2(30);
1037: BEGIN
1038: x_return_status := FND_API.g_ret_sts_success;
1039:
1040: -- Enter custom code here
1041:
1042: -- Validate metric_id exists.
1045: IF c_check_metric_parent%NOTFOUND THEN
1046: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_METRIC_ID',
1047: p_token_name => 'METRIC_ID',
1048: p_token_value => p_metric_formula_rec.metric_id);
1049: x_return_status := FND_API.g_ret_sts_error;
1050: elsif l_calculation_type <> 'FORMULA' THEN
1051: Ams_Utility_pvt.error_message(p_message_name => 'AMS_METR_INVALID_FORMULA_TYPE');
1052: x_return_status := FND_API.g_ret_sts_error;
1053: END IF;
1048: p_token_value => p_metric_formula_rec.metric_id);
1049: x_return_status := FND_API.g_ret_sts_error;
1050: elsif l_calculation_type <> 'FORMULA' THEN
1051: Ams_Utility_pvt.error_message(p_message_name => 'AMS_METR_INVALID_FORMULA_TYPE');
1052: x_return_status := FND_API.g_ret_sts_error;
1053: END IF;
1054: CLOSE c_check_metric_parent;
1055:
1056: -- Validate the metric_id exists
1058: OPEN c_check_metric_source(p_metric_formula_rec.SOURCE_id);
1059: FETCH c_check_metric_source INTO l_source_object_type;
1060: IF c_check_metric_source%NOTFOUND THEN
1061: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_METRIC_SOURCE');
1062: x_return_status := FND_API.g_ret_sts_error;
1063: ELSIF l_object_type = 'ANY' and l_source_object_type <> 'ANY' then
1064: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_METRIC_SOURCE');
1065: x_return_status := FND_API.g_ret_sts_error;
1066: ELSIF l_object_type <> 'ANY' and l_source_object_type NOT in ('ANY', l_object_type) THEN
1061: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_METRIC_SOURCE');
1062: x_return_status := FND_API.g_ret_sts_error;
1063: ELSIF l_object_type = 'ANY' and l_source_object_type <> 'ANY' then
1064: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_METRIC_SOURCE');
1065: x_return_status := FND_API.g_ret_sts_error;
1066: ELSIF l_object_type <> 'ANY' and l_source_object_type NOT in ('ANY', l_object_type) THEN
1067: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_METRIC_SOURCE');
1068: x_return_status := FND_API.g_ret_sts_error;
1069: END IF;
1064: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_METRIC_SOURCE');
1065: x_return_status := FND_API.g_ret_sts_error;
1066: ELSIF l_object_type <> 'ANY' and l_source_object_type NOT in ('ANY', l_object_type) THEN
1067: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_METRIC_SOURCE');
1068: x_return_status := FND_API.g_ret_sts_error;
1069: END IF;
1070: CLOSE c_check_metric_source;
1071: ELSIF p_metric_formula_rec.source_type = 'CATEGORY' THEN
1072: OPEN c_check_category(p_metric_formula_rec.source_id);
1073: FETCH c_check_category INTO l_dummy;
1074: CLOSE c_check_category;
1075: IF l_dummy <> 1 then
1076: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_CATEGORY_SRC');
1077: x_return_status := FND_API.g_ret_sts_error;
1078: ELSE
1079: IF p_metric_formula_rec.use_sub_id_flag = 'Y' AND
1080: p_metric_formula_rec.source_sub_id is not null THEN
1081: open c_check_sub_category(p_metric_formula_rec.source_id, p_metric_formula_rec.source_sub_id);
1082: fetch c_check_sub_category into l_dummy;
1083: close c_check_sub_category;
1084: IF l_dummy <> 1 then
1085: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_CATEGORY_SRC');
1086: x_return_status := FND_API.g_ret_sts_error;
1087: END IF;
1088: end if;
1089: END IF;
1090: END IF;
1096: x_return_status OUT NOCOPY VARCHAR2
1097: )
1098: IS
1099: BEGIN
1100: x_return_status := FND_API.g_ret_sts_success;
1101:
1102: -- Enter custom code here
1103: IF p_metric_formula_rec.use_sub_id_flag is not null and
1104: Ams_Utility_Pvt.is_y_or_n(p_metric_formula_rec.use_sub_id_flag) = FND_API.G_FALSE THEN
1100: x_return_status := FND_API.g_ret_sts_success;
1101:
1102: -- Enter custom code here
1103: IF p_metric_formula_rec.use_sub_id_flag is not null and
1104: Ams_Utility_Pvt.is_y_or_n(p_metric_formula_rec.use_sub_id_flag) = FND_API.G_FALSE THEN
1105: Ams_Utility_Pvt.error_message(p_message_name=>'AMS_METR_INVALID_USE_SUB_ID',
1106: p_token_name => 'USE_SUB_ID_FLAG',
1107: p_token_value=>p_metric_formula_rec.use_sub_id_flag);
1108: x_return_status := FND_API.g_ret_sts_error;
1104: Ams_Utility_Pvt.is_y_or_n(p_metric_formula_rec.use_sub_id_flag) = FND_API.G_FALSE THEN
1105: Ams_Utility_Pvt.error_message(p_message_name=>'AMS_METR_INVALID_USE_SUB_ID',
1106: p_token_name => 'USE_SUB_ID_FLAG',
1107: p_token_value=>p_metric_formula_rec.use_sub_id_flag);
1108: x_return_status := FND_API.g_ret_sts_error;
1109: END IF;
1110:
1111: IF ams_utility_pvt.check_lookup_exists('AMS_LOOKUPS','AMS_METRIC_SOURCE_TYPE',p_metric_formula_rec.source_type) = FND_API.G_FALSE THEN
1112: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_SOURCE_TYPE',
1107: p_token_value=>p_metric_formula_rec.use_sub_id_flag);
1108: x_return_status := FND_API.g_ret_sts_error;
1109: END IF;
1110:
1111: IF ams_utility_pvt.check_lookup_exists('AMS_LOOKUPS','AMS_METRIC_SOURCE_TYPE',p_metric_formula_rec.source_type) = FND_API.G_FALSE THEN
1112: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_SOURCE_TYPE',
1113: p_token_name => 'SOURCE_TYPE',
1114: p_token_value => p_metric_formula_rec.source_type);
1115: x_return_status := FND_API.g_ret_sts_error;
1111: IF ams_utility_pvt.check_lookup_exists('AMS_LOOKUPS','AMS_METRIC_SOURCE_TYPE',p_metric_formula_rec.source_type) = FND_API.G_FALSE THEN
1112: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_SOURCE_TYPE',
1113: p_token_name => 'SOURCE_TYPE',
1114: p_token_value => p_metric_formula_rec.source_type);
1115: x_return_status := FND_API.g_ret_sts_error;
1116: END IF;
1117:
1118: IF ams_utility_pvt.check_lookup_exists('AMS_LOOKUPS','AMS_METRIC_NOTATION_TYPE',p_metric_formula_rec.notation_type) = FND_API.G_FALSE THEN
1119: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_NOTATION_TYPE',
1114: p_token_value => p_metric_formula_rec.source_type);
1115: x_return_status := FND_API.g_ret_sts_error;
1116: END IF;
1117:
1118: IF ams_utility_pvt.check_lookup_exists('AMS_LOOKUPS','AMS_METRIC_NOTATION_TYPE',p_metric_formula_rec.notation_type) = FND_API.G_FALSE THEN
1119: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_NOTATION_TYPE',
1120: p_token_name => 'NOTATION_TYPE',
1121: p_token_value => p_metric_formula_rec.notation_type);
1122: x_return_status := FND_API.g_ret_sts_error;
1118: IF ams_utility_pvt.check_lookup_exists('AMS_LOOKUPS','AMS_METRIC_NOTATION_TYPE',p_metric_formula_rec.notation_type) = FND_API.G_FALSE THEN
1119: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_NOTATION_TYPE',
1120: p_token_name => 'NOTATION_TYPE',
1121: p_token_value => p_metric_formula_rec.notation_type);
1122: x_return_status := FND_API.g_ret_sts_error;
1123: END IF;
1124:
1125: IF p_metric_formula_rec.source_type = 'OPERATOR' and p_metric_formula_rec.TOKEN is not null and
1126: ams_utility_pvt.check_lookup_exists('AMS_LOOKUPS','AMS_METRIC_OPERAND_TYPE',p_metric_formula_rec.token) = FND_API.G_FALSE THEN
1122: x_return_status := FND_API.g_ret_sts_error;
1123: END IF;
1124:
1125: IF p_metric_formula_rec.source_type = 'OPERATOR' and p_metric_formula_rec.TOKEN is not null and
1126: ams_utility_pvt.check_lookup_exists('AMS_LOOKUPS','AMS_METRIC_OPERAND_TYPE',p_metric_formula_rec.token) = FND_API.G_FALSE THEN
1127: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_OPERATOR',
1128: p_token_name => 'OPERATOR',
1129: p_token_value => p_metric_formula_rec.token);
1130: x_return_status := FND_API.g_ret_sts_error;
1126: ams_utility_pvt.check_lookup_exists('AMS_LOOKUPS','AMS_METRIC_OPERAND_TYPE',p_metric_formula_rec.token) = FND_API.G_FALSE THEN
1127: Ams_Utility_Pvt.error_message(p_message_name => 'AMS_METR_INVALID_OPERATOR',
1128: p_token_name => 'OPERATOR',
1129: p_token_value => p_metric_formula_rec.token);
1130: x_return_status := FND_API.g_ret_sts_error;
1131: END IF;
1132:
1133: END check_metric_formula_lookups;
1134:
1149: check_metric_formula_uk_items(
1150: p_metric_formula_rec => p_metric_formula_rec,
1151: p_validation_mode => p_validation_mode,
1152: x_return_status => x_return_status);
1153: IF x_return_status <> FND_API.g_ret_sts_success THEN
1154: RETURN;
1155: END IF;
1156:
1157: -- Check Items Required/NOT NULL API calls
1159: check_metric_formula_req_items(
1160: p_metric_formula_rec => p_metric_formula_rec,
1161: p_validation_mode => p_validation_mode,
1162: x_return_status => x_return_status);
1163: IF x_return_status <> FND_API.g_ret_sts_success THEN
1164: RETURN;
1165: END IF;
1166: -- Check Items Foreign Keys API calls
1167:
1167:
1168: check_metric_formula_FK_items(
1169: p_metric_formula_rec => p_metric_formula_rec,
1170: x_return_status => x_return_status);
1171: IF x_return_status <> FND_API.g_ret_sts_success THEN
1172: RETURN;
1173: END IF;
1174: -- Check Items Lookups
1175:
1175:
1176: check_metric_formula_lookups(
1177: p_metric_formula_rec => p_metric_formula_rec,
1178: x_return_status => x_return_status);
1179: IF x_return_status <> FND_API.g_ret_sts_success THEN
1180: RETURN;
1181: END IF;
1182:
1183: -- Debug Message
1198: -- WHERE METRIC_FORMULA_ID = p_metric_formula_rec.METRIC_FORMULA_ID;
1199: -- l_metric_formula_rec c_complete%ROWTYPE;
1200: BEGIN
1201: -- metric_id
1202: IF x_tar_metric_formula_rec.metric_id = FND_API.g_miss_num THEN
1203: x_tar_metric_formula_rec.metric_id := p_ref_metric_formula_rec.metric_id;
1204: END IF;
1205:
1206: -- source_type
1203: x_tar_metric_formula_rec.metric_id := p_ref_metric_formula_rec.metric_id;
1204: END IF;
1205:
1206: -- source_type
1207: IF x_tar_metric_formula_rec.source_type = FND_API.G_MISS_CHAR THEN
1208: x_tar_metric_formula_rec.source_type := p_ref_metric_formula_rec.source_type;
1209: END IF;
1210:
1211: -- source_id
1208: x_tar_metric_formula_rec.source_type := p_ref_metric_formula_rec.source_type;
1209: END IF;
1210:
1211: -- source_id
1212: IF x_tar_metric_formula_rec.source_id = FND_API.g_miss_num THEN
1213: x_tar_metric_formula_rec.source_id := p_ref_metric_formula_rec.source_id;
1214: END IF;
1215:
1216: -- source_sub_id
1213: x_tar_metric_formula_rec.source_id := p_ref_metric_formula_rec.source_id;
1214: END IF;
1215:
1216: -- source_sub_id
1217: IF x_tar_metric_formula_rec.source_sub_id = FND_API.g_miss_num THEN
1218: x_tar_metric_formula_rec.source_sub_id := p_ref_metric_formula_rec.source_sub_id;
1219: END IF;
1220:
1221: -- source_value
1218: x_tar_metric_formula_rec.source_sub_id := p_ref_metric_formula_rec.source_sub_id;
1219: END IF;
1220:
1221: -- source_value
1222: IF x_tar_metric_formula_rec.source_value = FND_API.g_miss_num THEN
1223: x_tar_metric_formula_rec.source_value := p_ref_metric_formula_rec.source_value;
1224: END IF;
1225:
1226: -- use_sub_id_flag
1223: x_tar_metric_formula_rec.source_value := p_ref_metric_formula_rec.source_value;
1224: END IF;
1225:
1226: -- use_sub_id_flag
1227: IF x_tar_metric_formula_rec.use_sub_id_flag = FND_API.g_miss_char THEN
1228: x_tar_metric_formula_rec.use_sub_id_flag := p_ref_metric_formula_rec.use_sub_id_flag;
1229: END IF;
1230:
1231: -- token
1228: x_tar_metric_formula_rec.use_sub_id_flag := p_ref_metric_formula_rec.use_sub_id_flag;
1229: END IF;
1230:
1231: -- token
1232: IF x_tar_metric_formula_rec.token = FND_API.g_miss_char THEN
1233: x_tar_metric_formula_rec.token := p_ref_metric_formula_rec.token;
1234: END IF;
1235:
1236: -- sequence
1233: x_tar_metric_formula_rec.token := p_ref_metric_formula_rec.token;
1234: END IF;
1235:
1236: -- sequence
1237: IF x_tar_metric_formula_rec.sequence = FND_API.g_miss_num THEN
1238: x_tar_metric_formula_rec.sequence := p_ref_metric_formula_rec.sequence;
1239: END IF;
1240:
1241: -- notation_type
1238: x_tar_metric_formula_rec.sequence := p_ref_metric_formula_rec.sequence;
1239: END IF;
1240:
1241: -- notation_type
1242: IF x_tar_metric_formula_rec.notation_type = FND_API.g_miss_char THEN
1243: x_tar_metric_formula_rec.notation_type := p_ref_metric_formula_rec.notation_type;
1244: END IF;
1245:
1246: -- Note: Developers need to modify the procedure
1249:
1250:
1251: PROCEDURE Validate_metric_formula(
1252: p_api_version_number IN NUMBER,
1253: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1254: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1255: p_metric_formula_rec IN met_formula_rec_type,
1256: p_validation_mode IN VARCHAR2,
1257: x_return_status OUT NOCOPY VARCHAR2,
1250:
1251: PROCEDURE Validate_metric_formula(
1252: p_api_version_number IN NUMBER,
1253: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1254: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1255: p_metric_formula_rec IN met_formula_rec_type,
1256: p_validation_mode IN VARCHAR2,
1257: x_return_status OUT NOCOPY VARCHAR2,
1258: x_msg_count OUT NOCOPY NUMBER,
1268: -- Standard Start of API savepoint
1269: -- SAVEPOINT VALIDATE_metric_formula_SP;
1270:
1271: -- Standard call to check for call compatibility.
1272: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1273: p_api_version_number,
1274: l_api_name,
1275: G_PKG_NAME)
1276: THEN
1273: p_api_version_number,
1274: l_api_name,
1275: G_PKG_NAME)
1276: THEN
1277: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1278: END IF;
1279:
1280: -- Initialize message list if p_init_msg_list is set to TRUE.
1281: IF FND_API.to_Boolean( p_init_msg_list )
1277: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1278: END IF;
1279:
1280: -- Initialize message list if p_init_msg_list is set to TRUE.
1281: IF FND_API.to_Boolean( p_init_msg_list )
1282: THEN
1283: FND_MSG_PUB.initialize;
1284: END IF;
1285:
1289: END IF;
1290:
1291:
1292: -- Initialize API return status to SUCCESS
1293: x_return_status := FND_API.G_RET_STS_SUCCESS;
1294:
1295:
1296: IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1297: Check_metric_formula_Items(
1299: p_validation_mode => p_validation_mode,
1300: x_return_status => x_return_status
1301: );
1302:
1303: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1304: RAISE FND_API.G_EXC_ERROR;
1305: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1306: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1307: END IF;
1300: x_return_status => x_return_status
1301: );
1302:
1303: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1304: RAISE FND_API.G_EXC_ERROR;
1305: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1306: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1307: END IF;
1308: END IF;
1301: );
1302:
1303: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1304: RAISE FND_API.G_EXC_ERROR;
1305: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1306: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1307: END IF;
1308: END IF;
1309:
1302:
1303: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1304: RAISE FND_API.G_EXC_ERROR;
1305: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1306: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1307: END IF;
1308: END IF;
1309:
1310: -- Complete_metric_formula_Rec(
1314:
1315: IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1316: Validate_metric_formula_Rec(
1317: p_api_version_number => 1.0,
1318: p_init_msg_list => FND_API.G_FALSE,
1319: x_return_status => x_return_status,
1320: x_msg_count => x_msg_count,
1321: x_msg_data => x_msg_data,
1322: p_metric_formula_rec => l_metric_formula_rec);
1320: x_msg_count => x_msg_count,
1321: x_msg_data => x_msg_data,
1322: p_metric_formula_rec => l_metric_formula_rec);
1323:
1324: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1325: RAISE FND_API.G_EXC_ERROR;
1326: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1327: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1328: END IF;
1321: x_msg_data => x_msg_data,
1322: p_metric_formula_rec => l_metric_formula_rec);
1323:
1324: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1325: RAISE FND_API.G_EXC_ERROR;
1326: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1327: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1328: END IF;
1329: END IF;
1322: p_metric_formula_rec => l_metric_formula_rec);
1323:
1324: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1325: RAISE FND_API.G_EXC_ERROR;
1326: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1327: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1328: END IF;
1329: END IF;
1330:
1323:
1324: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1325: RAISE FND_API.G_EXC_ERROR;
1326: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1327: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1328: END IF;
1329: END IF;
1330:
1331:
1341: );
1342: EXCEPTION
1343:
1344: WHEN Ams_Utility_Pvt.resource_locked THEN
1345: x_return_status := FND_API.g_ret_sts_error;
1346: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1347:
1348: WHEN FND_API.G_EXC_ERROR THEN
1349: -- ROLLBACK TO VALIDATE_metric_formula_sp;
1344: WHEN Ams_Utility_Pvt.resource_locked THEN
1345: x_return_status := FND_API.g_ret_sts_error;
1346: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1347:
1348: WHEN FND_API.G_EXC_ERROR THEN
1349: -- ROLLBACK TO VALIDATE_metric_formula_sp;
1350: x_return_status := FND_API.G_RET_STS_ERROR;
1351: -- Standard call to get message count and if count=1, get the message
1352: FND_MSG_PUB.Count_And_Get (
1346: Ams_Utility_Pvt.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1347:
1348: WHEN FND_API.G_EXC_ERROR THEN
1349: -- ROLLBACK TO VALIDATE_metric_formula_sp;
1350: x_return_status := FND_API.G_RET_STS_ERROR;
1351: -- Standard call to get message count and if count=1, get the message
1352: FND_MSG_PUB.Count_And_Get (
1353: p_encoded => FND_API.G_FALSE,
1354: p_count => x_msg_count,
1349: -- ROLLBACK TO VALIDATE_metric_formula_sp;
1350: x_return_status := FND_API.G_RET_STS_ERROR;
1351: -- Standard call to get message count and if count=1, get the message
1352: FND_MSG_PUB.Count_And_Get (
1353: p_encoded => FND_API.G_FALSE,
1354: p_count => x_msg_count,
1355: p_data => x_msg_data
1356: );
1357:
1354: p_count => x_msg_count,
1355: p_data => x_msg_data
1356: );
1357:
1358: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1359: -- ROLLBACK TO VALIDATE_metric_formula_sp;
1360: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1361: -- Standard call to get message count and if count=1, get the message
1362: FND_MSG_PUB.Count_And_Get (
1356: );
1357:
1358: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1359: -- ROLLBACK TO VALIDATE_metric_formula_sp;
1360: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1361: -- Standard call to get message count and if count=1, get the message
1362: FND_MSG_PUB.Count_And_Get (
1363: p_encoded => FND_API.G_FALSE,
1364: p_count => x_msg_count,
1359: -- ROLLBACK TO VALIDATE_metric_formula_sp;
1360: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1361: -- Standard call to get message count and if count=1, get the message
1362: FND_MSG_PUB.Count_And_Get (
1363: p_encoded => FND_API.G_FALSE,
1364: p_count => x_msg_count,
1365: p_data => x_msg_data
1366: );
1367:
1366: );
1367:
1368: WHEN OTHERS THEN
1369: -- ROLLBACK TO VALIDATE_metric_formula_sp;
1370: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1371: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1372: THEN
1373: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1374: END IF;
1373: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1374: END IF;
1375: -- Standard call to get message count and if count=1, get the message
1376: FND_MSG_PUB.Count_And_Get (
1377: p_encoded => FND_API.G_FALSE,
1378: p_count => x_msg_count,
1379: p_data => x_msg_data
1380: );
1381: END Validate_metric_formula;
1382:
1383:
1384: PROCEDURE Validate_metric_formula_rec(
1385: p_api_version_number IN NUMBER,
1386: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1387: x_return_status OUT NOCOPY VARCHAR2,
1388: x_msg_count OUT NOCOPY NUMBER,
1389: x_msg_data OUT NOCOPY VARCHAR2,
1390: p_metric_formula_rec IN met_formula_rec_type
1391: )
1392: IS
1393: BEGIN
1394: -- Initialize message list if p_init_msg_list is set to TRUE.
1395: IF FND_API.to_Boolean( p_init_msg_list )
1396: THEN
1397: FND_MSG_PUB.initialize;
1398: END IF;
1399:
1397: FND_MSG_PUB.initialize;
1398: END IF;
1399:
1400: -- Initialize API return status to SUCCESS
1401: x_return_status := FND_API.G_RET_STS_SUCCESS;
1402:
1403: -- Hint: Validate data
1404: -- If data not valid
1405: -- THEN
1402:
1403: -- Hint: Validate data
1404: -- If data not valid
1405: -- THEN
1406: -- x_return_status := FND_API.G_RET_STS_ERROR;
1407:
1408: -- Debug Message
1409: IF (AMS_DEBUG_HIGH_ON) THEN
1410: Ams_Utility_Pvt.debug_message('PRIVATE API: Validate_metric_formula_rec');
1647: end transform_formula;
1648:
1649: PROCEDURE VALIDATE_FORMULA(
1650: p_api_version_number IN NUMBER,
1651: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1652: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1653: x_return_status OUT NOCOPY VARCHAR2,
1654: x_msg_count OUT NOCOPY NUMBER,
1655: x_msg_data OUT NOCOPY VARCHAR2,
1648:
1649: PROCEDURE VALIDATE_FORMULA(
1650: p_api_version_number IN NUMBER,
1651: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1652: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1653: x_return_status OUT NOCOPY VARCHAR2,
1654: x_msg_count OUT NOCOPY NUMBER,
1655: x_msg_data OUT NOCOPY VARCHAR2,
1656: p_metric_id IN NUMBER,
1708: IF (AMS_DEBUG_HIGH_ON) THEN
1709: Ams_Utility_Pvt.debug_message('PRIVATE API: VALIDATE_FORMULA');
1710: END IF;
1711: -- Initialize message list if p_init_msg_list is set to TRUE.
1712: IF FND_API.to_Boolean( p_init_msg_list )
1713: THEN
1714: FND_MSG_PUB.initialize;
1715: END IF;
1716:
1714: FND_MSG_PUB.initialize;
1715: END IF;
1716:
1717: -- Initialize API return status to SUCCESS
1718: x_return_status := FND_API.G_RET_STS_SUCCESS;
1719:
1720: g_infix_tbl.delete;
1721: g_current_sequence := null;
1722: open c_get_formula(p_metric_id);
1743: FND_MSG_PUB.add;
1744: END IF;
1745:
1746: x_msg_data := g_infix_formula;
1747: x_return_status := FND_API.g_ret_sts_error;
1748:
1749:
1750: RAISE FND_API.G_EXC_ERROR;
1751: else
1746: x_msg_data := g_infix_formula;
1747: x_return_status := FND_API.g_ret_sts_error;
1748:
1749:
1750: RAISE FND_API.G_EXC_ERROR;
1751: else
1752:
1753: ams_metric_pvt_w.update_metric(
1754: p_api_version => 1,
1751: else
1752:
1753: ams_metric_pvt_w.update_metric(
1754: p_api_version => 1,
1755: p_init_msg_list => FND_API.G_FALSE,
1756: p_commit => FND_API.G_FALSE,
1757: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1758: x_return_status => l_return_status,
1759: x_msg_count => l_msg_count,
1752:
1753: ams_metric_pvt_w.update_metric(
1754: p_api_version => 1,
1755: p_init_msg_list => FND_API.G_FALSE,
1756: p_commit => FND_API.G_FALSE,
1757: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1758: x_return_status => l_return_status,
1759: x_msg_count => l_msg_count,
1760: x_msg_data => l_msg_data,
1753: ams_metric_pvt_w.update_metric(
1754: p_api_version => 1,
1755: p_init_msg_list => FND_API.G_FALSE,
1756: p_commit => FND_API.G_FALSE,
1757: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1758: x_return_status => l_return_status,
1759: x_msg_count => l_msg_count,
1760: x_msg_data => l_msg_data,
1761: p7_a0 => p_metric_id,
1809:
1810: end if;
1811:
1812: -- Standard check for p_commit
1813: IF FND_API.to_Boolean( p_commit )
1814: THEN
1815: COMMIT WORK;
1816: END IF;
1817:
1829:
1830: EXCEPTION
1831:
1832:
1833: WHEN FND_API.G_EXC_ERROR THEN
1834: -- ROLLBACK TO VALIDATE_metric_formula_sp;
1835: x_return_status := FND_API.G_RET_STS_ERROR;
1836: -- Standard call to get message count and if count=1, get the message
1837: FND_MSG_PUB.Count_And_Get (
1831:
1832:
1833: WHEN FND_API.G_EXC_ERROR THEN
1834: -- ROLLBACK TO VALIDATE_metric_formula_sp;
1835: x_return_status := FND_API.G_RET_STS_ERROR;
1836: -- Standard call to get message count and if count=1, get the message
1837: FND_MSG_PUB.Count_And_Get (
1838: p_encoded => FND_API.G_FALSE,
1839: p_count => x_msg_count,
1834: -- ROLLBACK TO VALIDATE_metric_formula_sp;
1835: x_return_status := FND_API.G_RET_STS_ERROR;
1836: -- Standard call to get message count and if count=1, get the message
1837: FND_MSG_PUB.Count_And_Get (
1838: p_encoded => FND_API.G_FALSE,
1839: p_count => x_msg_count,
1840: p_data => x_msg_data
1841: );
1842: END VALIDATE_FORMULA;