47:
48: l_count NUMBER;
49:
50: BEGIN
51: FND_MSG_PUB.Initialize;
52: x_return_status := FND_API.G_RET_STS_SUCCESS;
53: SAVEPOINT BSCKPIGrpPVT;
54:
55: -- This procedure "Creates" a new Kpi Group, and also "Creates" an assignment of a KPI
65:
66: IF l_count = 0 THEN
67: FND_MESSAGE.SET_NAME('BSC','BSC_INVALID_KGROUP_ID');
68: FND_MESSAGE.SET_TOKEN('BSC_KGROUP', p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Id);
69: FND_MSG_PUB.ADD;
70: RAISE FND_API.G_EXC_ERROR;
71: END IF;
72: ELSE
73: FND_MESSAGE.SET_NAME('BSC','BSC_NO_KGROUP_ID_ENTERED');
71: END IF;
72: ELSE
73: FND_MESSAGE.SET_NAME('BSC','BSC_NO_KGROUP_ID_ENTERED');
74: FND_MESSAGE.SET_TOKEN('BSC_KGROUP', p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Id);
75: FND_MSG_PUB.ADD;
76: RAISE FND_API.G_EXC_ERROR;
77: END IF;
78:
79: -- Check that valid Tab id was entered.
85:
86: IF l_count = 0 THEN
87: FND_MESSAGE.SET_NAME('BSC','BSC_INVALID_TAB_ID');
88: FND_MESSAGE.SET_TOKEN('BSC_TAB', p_Bsc_Kpi_Group_Rec.Bsc_Tab_Id);
89: FND_MSG_PUB.ADD;
90: RAISE FND_API.G_EXC_ERROR;
91: END IF;
92: ELSE
93: FND_MESSAGE.SET_NAME('BSC','BSC_NO_TAB_ID_ENTERED');
91: END IF;
92: ELSE
93: FND_MESSAGE.SET_NAME('BSC','BSC_NO_TAB_ID_ENTERED');
94: FND_MESSAGE.SET_TOKEN('BSC_KGROUP', p_Bsc_Kpi_Group_Rec.Bsc_Tab_Id);
95: FND_MSG_PUB.ADD;
96: RAISE FND_API.G_EXC_ERROR;
97: END IF;
98: ELSE -- New KPI Group to be added
99: IF p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Short_Name IS NOT NULL THEN
107: -- IF l_Count <> 0 THEN
108: -- FND_MESSAGE.SET_NAME('BSC','BSC_UNIQUE_NAME_REQUIRED');
109: -- FND_MESSAGE.SET_TOKEN('SHORT_NAME', BSC_APPS.GET_LOOKUP_VALUE('BSC_UI_BUILDER', 'MEASURE_SHORT_NAME'));
110: -- FND_MESSAGE.SET_TOKEN('NAME_VALUE', p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Short_Name );
111: -- FND_MSG_PUB.ADD;
112: -- RAISE FND_API.G_EXC_ERROR;
113: -- END IF;
114: END IF;
115: END IF;
173:
174: EXCEPTION
175: WHEN FND_API.G_EXC_ERROR THEN
176: ROLLBACK TO BSCKPIGrpPVT;
177: FND_MSG_PUB.Count_And_Get
178: ( p_encoded => FND_API.G_FALSE
179: , p_count => x_msg_count
180: , p_data => x_msg_data
181: );
183: x_return_status := FND_API.G_RET_STS_ERROR;
184: RAISE;
185: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
186: ROLLBACK TO BSCKPIGrpPVT;
187: FND_MSG_PUB.Count_And_Get
188: ( p_encoded => FND_API.G_FALSE
189: , p_count => x_msg_count
190: , p_data => x_msg_data
191: );
197: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
198: if (SQLCODE = -01400) then
199: FND_MESSAGE.SET_NAME('BSC','BSC_TABLE_NULL_VALUE');
200: FND_MESSAGE.SET_TOKEN('BSC_OBJECT', 'BSC_KPI_GROUP_PVT.Create_Kpi_Group');
201: FND_MSG_PUB.ADD;
202: RAISE FND_API.G_EXC_ERROR;
203: end if;
204: IF (x_msg_data IS NOT NULL) THEN
205: x_msg_data := x_msg_data||' -> BSC_KPI_GROUP_PVT.Create_Kpi_Group ';
232: ,x_msg_data OUT NOCOPY VARCHAR2
233: ) is
234:
235: begin
236: FND_MSG_PUB.Initialize;
237: x_return_status := FND_API.G_RET_STS_SUCCESS;
238:
239: g_db_object := 'Retrieve_Kpi_Group';
240:
280:
281:
282: EXCEPTION
283: WHEN FND_API.G_EXC_ERROR THEN
284: FND_MSG_PUB.Count_And_Get
285: ( p_encoded => FND_API.G_FALSE
286: , p_count => x_msg_count
287: , p_data => x_msg_data
288: );
289: --DBMS_OUTPUT.PUT_LINE('EXCEPTION FND_API.G_EXC_ERROR '||x_msg_data);
290: x_return_status := FND_API.G_RET_STS_ERROR;
291: RAISE;
292: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
293: FND_MSG_PUB.Count_And_Get
294: ( p_encoded => FND_API.G_FALSE
295: , p_count => x_msg_count
296: , p_data => x_msg_data
297: );
335: l_name_count number;
336: l_update_TL number := 0;
337:
338: begin
339: FND_MSG_PUB.Initialize;
340: x_return_status := FND_API.G_RET_STS_SUCCESS;
341: SAVEPOINT BSCKPIUptPVT;
342: --BSC_DEBUG.PUT_LINE(' -- Begin BSC_KPI_GROUP_PVT.Update_Kpi_Group' );
343:
350:
351: if l_count = 0 then
352: FND_MESSAGE.SET_NAME('BSC','BSC_INVALID_KGROUP_ID');
353: FND_MESSAGE.SET_TOKEN('BSC_KGROUP', p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Id);
354: FND_MSG_PUB.ADD;
355: RAISE FND_API.G_EXC_ERROR;
356: end if;
357: else
358: FND_MESSAGE.SET_NAME('BSC','BSC_NO_KGROUP_ID_ENTERED');
356: end if;
357: else
358: FND_MESSAGE.SET_NAME('BSC','BSC_NO_KGROUP_ID_ENTERED');
359: FND_MESSAGE.SET_TOKEN('BSC_KGROUP', p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Id);
360: FND_MSG_PUB.ADD;
361: RAISE FND_API.G_EXC_ERROR;
362: end if;
363:
364: --BSC_DEBUG.PUT_LINE(' BSC_KPI_GROUP_PVT.Update_Kpi_Group - Flag 1' );
374:
375: if l_name_count <> 0 then
376: FND_MESSAGE.SET_NAME('BSC','BSC_KGROUP_NAME_EXISTS');
377: FND_MESSAGE.SET_TOKEN('BSC_KGROUP', p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Name);
378: FND_MSG_PUB.ADD;
379: RAISE FND_API.G_EXC_ERROR;
380: end if;
381:
382: --BSC_DEBUG.PUT_LINE(' BSC_KPI_GROUP_PVT.Update_Kpi_Group - Flag 3 ' );
391:
392: if l_count = 0 then
393: FND_MESSAGE.SET_NAME('BSC','BSC_INVALID_TAB_ID');
394: FND_MESSAGE.SET_TOKEN('BSC_TAB', p_Bsc_Kpi_Group_Rec.Bsc_Tab_Id);
395: FND_MSG_PUB.ADD;
396: RAISE FND_API.G_EXC_ERROR;
397: end if;
398: else
399: FND_MESSAGE.SET_NAME('BSC','BSC_NO_TAB_ID_ENTERED');
397: end if;
398: else
399: FND_MESSAGE.SET_NAME('BSC','BSC_NO_TAB_ID_ENTERED');
400: FND_MESSAGE.SET_TOKEN('BSC_KGROUP', p_Bsc_Kpi_Group_Rec.Bsc_Tab_Id);
401: FND_MSG_PUB.ADD;
402: RAISE FND_API.G_EXC_ERROR;
403: end if;
404: end if;
405:
517:
518: EXCEPTION
519: WHEN FND_API.G_EXC_ERROR THEN
520: ROLLBACK TO BSCKPIUptPVT;
521: FND_MSG_PUB.Count_And_Get
522: ( p_encoded => FND_API.G_FALSE
523: , p_count => x_msg_count
524: , p_data => x_msg_data
525: );
527: x_return_status := FND_API.G_RET_STS_ERROR;
528: RAISE;
529: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
530: ROLLBACK TO BSCKPIUptPVT;
531: FND_MSG_PUB.Count_And_Get
532: ( p_encoded => FND_API.G_FALSE
533: , p_count => x_msg_count
534: , p_data => x_msg_data
535: );
572: l_count number;
573: l_count_kpi number;
574:
575: begin
576: FND_MSG_PUB.Initialize;
577: x_return_status := FND_API.G_RET_STS_SUCCESS;
578: SAVEPOINT BSCKPIDeletePVT;
579: SAVEPOINT BSCKPIDelPVT;
580: -- Check that Group id is valid.
586:
587: if l_count = 0 then
588: FND_MESSAGE.SET_NAME('BSC','BSC_INVALID_KGROUP_ID');
589: FND_MESSAGE.SET_TOKEN('BSC_KGROUP', p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Id);
590: FND_MSG_PUB.ADD;
591: RAISE FND_API.G_EXC_ERROR;
592: end if;
593: else
594: FND_MESSAGE.SET_NAME('BSC','BSC_NO_KGROUP_ID_ENTERED');
592: end if;
593: else
594: FND_MESSAGE.SET_NAME('BSC','BSC_NO_KGROUP_ID_ENTERED');
595: FND_MESSAGE.SET_TOKEN('BSC_KGROUP', p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Id);
596: FND_MSG_PUB.ADD;
597: RAISE FND_API.G_EXC_ERROR;
598: end if;
599:
600: -- Need to determine whether deletion is global, or just from a Tab.
616: delete from BSC_TAB_IND_GROUPS_TL
617: where ind_group_id = p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Id
618: and tab_id = p_Bsc_Kpi_Group_Rec.Bsc_Tab_Id;
619: else
620: FND_MSG_PUB.Initialize;
621: FND_MESSAGE.SET_NAME('BSC','BSC_CANNOT_DELETE_KGROUP');
622: FND_MESSAGE.SET_TOKEN('BSC_KGROUP', p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Name);
623: FND_MSG_PUB.ADD;
624: RAISE FND_API.G_EXC_ERROR;
619: else
620: FND_MSG_PUB.Initialize;
621: FND_MESSAGE.SET_NAME('BSC','BSC_CANNOT_DELETE_KGROUP');
622: FND_MESSAGE.SET_TOKEN('BSC_KGROUP', p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Name);
623: FND_MSG_PUB.ADD;
624: RAISE FND_API.G_EXC_ERROR;
625: end if;
626:
627:
640:
641: delete from BSC_TAB_IND_GROUPS_TL
642: where ind_group_id = p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Id;
643: else
644: FND_MSG_PUB.Initialize;
645: FND_MESSAGE.SET_NAME('BSC','BSC_CANNOT_DELETE_KGROUP');
646: FND_MESSAGE.SET_TOKEN('BSC_KGROUP', p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Name);
647: FND_MSG_PUB.ADD;
648: RAISE FND_API.G_EXC_ERROR;
643: else
644: FND_MSG_PUB.Initialize;
645: FND_MESSAGE.SET_NAME('BSC','BSC_CANNOT_DELETE_KGROUP');
646: FND_MESSAGE.SET_TOKEN('BSC_KGROUP', p_Bsc_Kpi_Group_Rec.Bsc_Kpi_Group_Name);
647: FND_MSG_PUB.ADD;
648: RAISE FND_API.G_EXC_ERROR;
649: end if;
650:
651: end if;
657:
658: EXCEPTION
659: WHEN FND_API.G_EXC_ERROR THEN
660: ROLLBACK TO BSCKPIDeletePVT;
661: FND_MSG_PUB.Count_And_Get
662: ( p_encoded => FND_API.G_FALSE
663: , p_count => x_msg_count
664: , p_data => x_msg_data
665: );
667: x_return_status := FND_API.G_RET_STS_ERROR;
668: RAISE;
669: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
670: ROLLBACK TO BSCKPIDeletePVT;
671: FND_MSG_PUB.Count_And_Get
672: ( p_encoded => FND_API.G_FALSE
673: , p_count => x_msg_count
674: , p_data => x_msg_data
675: );