DBA Data[Home] [Help]

PACKAGE BODY: APPS.BIS_OBJECT_EXTENSIONS_PUB

Source


1 PACKAGE BODY BIS_OBJECT_EXTENSIONS_PUB AS
2 /* $Header: BISPEXTB.pls 120.1 2005/11/17 05:54:35 akoduri noship $ */
3 /*
4 REM +=======================================================================+
5 REM |    Copyright (c) 2004 Oracle Corporation, Redwood Shores, CA, USA     |
6 REM |                         All rights reserved.                          |
7 REM +=======================================================================+
8 REM | FILENAME                                                              |
9 REM |     BISPEXTB.pls                                                      |
10 REM |                                                                       |
11 REM | DESCRIPTION                                                           |
12 REM |     Module: Public package for populating the extension tables        |
13 REM |             - BIS_MEASURES_EXTENSION_TL                               |
14 REM |             - BIS_FORM_FUNCTION_EXTENSION_TL                          |
15 REM | NOTES                                                                 |
16 REM | 08-DEC-2004 Krishna  Created.                                         |
17 REM | 27-DEC-2004 ashankar  Added the following methods                     |
18 REM |                       1.Validate_Object_Mapping                       |
19 REM |                       2.Measure_Funct_Area_Map                        |
20 REM |                       3.Form_Func_Functional_Area_Map                 |
21 REM |                       4.Are_Obj_Func_Area_Mapped                      |
22 REM | 19-MAY-2005  visuri   GSCC Issues bug 4363854                         |
23 REM | 17-Nov-2005  akoduri  bug4725352: Issue in translating seed data      |
24 REM +=======================================================================+
25 */
26 
27 G_PKG_NAME CONSTANT VARCHAR2(30):='BIS_OBJECT_EXTENSIONS_PUB';
28 FUNCTION Get_FA_Id_By_Short_Name (p_Functional_Area_Short_Name IN VARCHAR2)RETURN NUMBER;
29 
30 PROCEDURE Validate_Measure_Extension(
31   p_Meas_Extn_Rec       IN          BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type
32  ,p_Action_Type         IN          VARCHAR2
33  ,x_Return_Status       OUT NOCOPY  VARCHAR2
34  ,x_Msg_Count           OUT NOCOPY  NUMBER
35  ,x_Msg_Data            OUT NOCOPY  VARCHAR2
36 );
37 
38 
39 PROCEDURE Validate_Form_Func_Extension(
40     p_Form_Func_Extn_Rec  IN          BIS_OBJECT_EXTENSIONS_PUB.Form_Function_Extension_Type
41  ,  p_Action_Type         IN          VARCHAR2
42  ,  x_Return_Status       OUT NOCOPY  VARCHAR2
43  ,  x_Msg_Count           OUT NOCOPY  NUMBER
44  ,  x_Msg_Data            OUT NOCOPY  VARCHAR2
45 );
46 
47 /***************************************************
48            Functional Area Mapping APIS start
49 /***************************************************/
50 FUNCTION Validate_Object_Mapping
51 (
52     p_object_type         IN          VARCHAR2
53  ,  p_object_name         IN          VARCHAR2
54 ) RETURN NUMBER;
55 
56 
57 PROCEDURE Measure_Funct_Area_Map
58 (
59         p_Api_Version         IN          NUMBER
60     ,   p_Commit              IN          VARCHAR2 := FND_API.G_FALSE
61     ,   p_Obj_Type            IN          VARCHAR2
62     ,   p_Obj_Name            IN          VARCHAR2
63     ,   p_App_Id              IN          NUMBER
64     ,   p_Func_Area_Sht_Name  IN          VARCHAR2
65     ,   x_Return_Status       OUT NOCOPY  VARCHAR2
66     ,   x_Msg_Count           OUT NOCOPY  NUMBER
67     ,   x_Msg_Data            OUT NOCOPY  VARCHAR2
68 );
69 
70 PROCEDURE Form_Func_Functional_Area_Map
71 (
72         p_Api_Version         IN          NUMBER
73     ,   p_Commit              IN          VARCHAR2 := FND_API.G_FALSE
74     ,   p_Obj_Type            IN          VARCHAR2
75     ,   p_Obj_Name            IN          VARCHAR2
76     ,   p_App_Id              IN          NUMBER
77     ,   p_Func_Area_Sht_Name  IN          VARCHAR2
78     ,   x_Return_Status       OUT NOCOPY  VARCHAR2
79     ,   x_Msg_Count           OUT NOCOPY  NUMBER
80     ,   x_Msg_Data            OUT NOCOPY  VARCHAR2
81 );
82 
83 /***************************************************
84            Functional Area Mapping Ends Here
85 /***************************************************/
86 
87 /*********************************************************************************************
88         FUNCTION Name :- Retrieve_Form_Func_Extension
89         PARAMETERS    :-
90             p_Form_Func_Extn_Rec :- This record details sent from UI
91             x_Form_Func_Extn_Rec :- This record sends the details for form given form function to caller
92         DESCRIPTION   :- This retrieves the details of give form function name
93         AUTHOR        :- KRISHNA
94 *********************************************************************************************/
95 PROCEDURE Retrieve_Form_Func_Extension(
96     p_Form_Func_Extn_Rec      IN          BIS_OBJECT_EXTENSIONS_PUB.Form_Function_Extension_Type
97  ,  x_Form_Func_Extn_Rec      OUT NOCOPY  BIS_OBJECT_EXTENSIONS_PUB.Form_Function_Extension_Type
98  ,  x_Return_Status           OUT NOCOPY  VARCHAR2
99  ,  x_Msg_Count               OUT NOCOPY  NUMBER
100  ,  x_Msg_Data                OUT NOCOPY  VARCHAR2
101 )IS
102 
103 BEGIN
104     FND_MSG_PUB.Initialize;
105     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
106 
107     BIS_OBJECT_EXTENSIONS_PVT.Retrieve_Form_Func_Extension(
108         p_Form_Func_Extn_Rec  => p_Form_Func_Extn_Rec
109      ,  x_Form_Func_Extn_Rec  => x_Form_Func_Extn_Rec
110      ,  x_Return_Status       => x_Return_Status
111      ,  x_Msg_Count           => x_Msg_Count
112      ,  x_Msg_Data            => x_Msg_Data
113     );
114 
115     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
116         RAISE  FND_API.G_EXC_ERROR;
117     END IF;
118 
119     --dbms_output.put_line('after retrieve');
120 EXCEPTION
121     WHEN FND_API.G_EXC_ERROR THEN
122         IF (x_msg_data IS NULL) THEN
123             FND_MSG_PUB.Count_And_Get
124             (      p_encoded   =>  FND_API.G_FALSE
125                ,   p_count     =>  x_msg_count
126                ,   p_data      =>  x_msg_data
127             );
128         END IF;
129         x_return_status :=  FND_API.G_RET_STS_ERROR;
130     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
131         IF (x_msg_data IS NULL) THEN
132             FND_MSG_PUB.Count_And_Get
133             (      p_encoded   =>  FND_API.G_FALSE
134                ,   p_count     =>  x_msg_count
135                ,   p_data      =>  x_msg_data
136             );
137         END IF;
138         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
139     WHEN NO_DATA_FOUND THEN
140         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
141         IF (x_msg_data IS NOT NULL) THEN
142             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Retrieve_Form_Func_Extension ';
143         ELSE
144             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Retrieve_Form_Func_Extension ';
145         END IF;
146     WHEN OTHERS THEN
147         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
148         IF (x_msg_data IS NOT NULL) THEN
149             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Retrieve_Form_Func_Extension ';
150         ELSE
151             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Retrieve_Form_Func_Extension ';
152         END IF;
153 END Retrieve_Form_Func_Extension;
154 /*********************************************************************************************
155         FUNCTION Name :- Translate_Form_Func_Extension
156         PARAMETERS    :-
157             p_Form_Func_Extn_Rec :- The Details of form function sent from UI
158         DESCRIPTION   :- This basically updates the properties for form functions
159                          This can be called from UI directly also
160         AUTHOR        :- KRISHNA
161 *********************************************************************************************/
162 PROCEDURE Translate_Form_Func_Extension(
163   p_Api_Version         IN          NUMBER
164  ,p_Commit              IN          VARCHAR2
165  ,p_Form_Func_Extn_Rec  IN          BIS_OBJECT_EXTENSIONS_PUB.Form_Function_Extension_Type
166  ,x_Return_Status       OUT NOCOPY  VARCHAR2
167  ,x_Msg_Count           OUT NOCOPY  NUMBER
168  ,x_Msg_Data            OUT NOCOPY  VARCHAR2
169 )IS
170     l_Commit                VARCHAR2(30);
171 
172 BEGIN
173     SAVEPOINT  TransalteFormFuncPSP;
174     FND_MSG_PUB.Initialize;
175     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
176     IF( p_Commit IS NULL) THEN
177         l_Commit    := FND_API.G_FALSE;
178     ELSE
179         l_Commit := p_Commit;
180     END IF;
181     --dbms_output.put_line('calling validate from trans');
182     --dbms_output.put_line('the value i am passing for tarns is :- '||BIS_OBJECT_EXTENSIONS_PKG.C_TRANS);
183     Validate_Form_Func_Extension(
184         p_Form_Func_Extn_Rec  =>  p_Form_Func_Extn_Rec
185      ,  p_Action_Type         =>  BIS_OBJECT_EXTENSIONS_PUB.C_TRANS
186      ,  x_Return_Status       =>  x_Return_Status
187      ,  x_Msg_Count           =>  x_Msg_Count
188      ,  x_Msg_Data            =>  x_Msg_Data
189     );
190     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
191         RAISE  FND_API.G_EXC_ERROR;
192     END IF;
193 
194     BIS_OBJECT_EXTENSIONS_PVT.Translate_Form_Func_Extension(
195         p_Api_Version         =>  p_Api_Version
196      ,  p_Commit              =>  p_Commit
197      ,  p_Form_Func_Extn_Rec  =>  p_Form_Func_Extn_Rec
198      ,  x_Return_Status       =>  x_Return_Status
199      ,  x_Msg_Count           =>  x_Msg_Count
200      ,  x_Msg_Data            =>  x_Msg_Data
201     );
202     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
203         RAISE  FND_API.G_EXC_ERROR;
204     END IF;
205     IF (l_Commit = FND_API.G_TRUE) THEN
206       COMMIT;
207     END IF;
208 EXCEPTION
209     WHEN FND_API.G_EXC_ERROR THEN
210         ROLLBACK TO TransalteFormFuncPSP;
211         IF (x_msg_data IS NULL) THEN
212             FND_MSG_PUB.Count_And_Get
213             (      p_encoded   =>  FND_API.G_FALSE
214                ,   p_count     =>  x_msg_count
215                ,   p_data      =>  x_msg_data
216             );
217         END IF;
218         x_return_status :=  FND_API.G_RET_STS_ERROR;
219     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
220         ROLLBACK TO TransalteFormFuncPSP;
221         IF (x_msg_data IS NULL) THEN
222             FND_MSG_PUB.Count_And_Get
223             (      p_encoded   =>  FND_API.G_FALSE
224                ,   p_count     =>  x_msg_count
225                ,   p_data      =>  x_msg_data
226             );
227         END IF;
228         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
229     WHEN NO_DATA_FOUND THEN
230         ROLLBACK TO TransalteFormFuncPSP;
231         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
232         IF (x_msg_data IS NOT NULL) THEN
233             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Translate_Form_Func_Extension ';
234         ELSE
235             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Translate_Form_Func_Extension ';
236         END IF;
237     WHEN OTHERS THEN
238         ROLLBACK TO TransalteFormFuncPSP;
239         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
240         IF (x_msg_data IS NOT NULL) THEN
241             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Translate_Form_Func_Extension ';
242         ELSE
243             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Translate_Form_Func_Extension ';
244         END IF;
245 END Translate_Form_Func_Extension;
246 /*********************************************************************************************
247         FUNCTION Name :- Update_Form_Func_Extension
248         PARAMETERS    :-
249             p_Form_Func_Extn_Rec :- The Details of form function sent from UI for update
250         DESCRIPTION   :- This basically updates the properties for form functions
251                          This can be called from UI also
252         AUTHOR        :- KRISHNA
253 *********************************************************************************************/
254 PROCEDURE Update_Form_Func_Extension(
255   p_Api_Version         IN          NUMBER
256  ,p_Commit              IN          VARCHAR2
257  ,p_Form_Func_Extn_Rec  IN          BIS_OBJECT_EXTENSIONS_PUB.Form_Function_Extension_Type
258  ,x_Return_Status       OUT NOCOPY  VARCHAR2
259  ,x_Msg_Count           OUT NOCOPY  NUMBER
260  ,x_Msg_Data            OUT NOCOPY  VARCHAR2
261 )IS
262     l_Commit                VARCHAR2(30);
263 
264 BEGIN
265     SAVEPOINT  UpdateFormFuncPSP;
266     FND_MSG_PUB.Initialize;
267     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
268     IF( p_Commit IS NULL) THEN
269         l_Commit    := FND_API.G_FALSE;
270     ELSE
271         l_Commit := p_Commit;
272     END IF;
273     --dbms_output.put_line('i am calling validate from update ');
274     Validate_Form_Func_Extension(
275         p_Form_Func_Extn_Rec  =>  p_Form_Func_Extn_Rec
276      ,  p_Action_Type         =>  BIS_OBJECT_EXTENSIONS_PUB.C_UPDATE
277      ,  x_Return_Status       =>  x_Return_Status
278      ,  x_Msg_Count           =>  x_Msg_Count
279      ,  x_Msg_Data            =>  x_Msg_Data
280     );
281     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
282         RAISE  FND_API.G_EXC_ERROR;
283     END IF;
284 
285     BIS_OBJECT_EXTENSIONS_PVT.Update_Form_Func_Extension(
286         p_Api_Version         =>  p_Api_Version
287      ,  p_Commit              =>  p_Commit
288      ,  p_Form_Func_Extn_Rec  =>  p_Form_Func_Extn_Rec
289      ,  x_Return_Status       =>  x_Return_Status
290      ,  x_Msg_Count           =>  x_Msg_Count
291      ,  x_Msg_Data            =>  x_Msg_Data
292      );
293     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
294         RAISE  FND_API.G_EXC_ERROR;
295     END IF;
296 
297     IF (l_Commit = FND_API.G_TRUE) THEN
298       COMMIT;
299     END IF;
300 
301 EXCEPTION
302     WHEN FND_API.G_EXC_ERROR THEN
303         ROLLBACK TO UpdateFormFuncPSP;
304         IF (x_msg_data IS NULL) THEN
305             FND_MSG_PUB.Count_And_Get
306             (      p_encoded   =>  FND_API.G_FALSE
307                ,   p_count     =>  x_msg_count
308                ,   p_data      =>  x_msg_data
309             );
310         END IF;
311         x_return_status :=  FND_API.G_RET_STS_ERROR;
312     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
313         ROLLBACK TO UpdateFormFuncPSP;
314         IF (x_msg_data IS NULL) THEN
315             FND_MSG_PUB.Count_And_Get
316             (      p_encoded   =>  FND_API.G_FALSE
317                ,   p_count     =>  x_msg_count
318                ,   p_data      =>  x_msg_data
319             );
320         END IF;
321         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
322     WHEN NO_DATA_FOUND THEN
323         ROLLBACK TO UpdateFormFuncPSP;
324         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
325         IF (x_msg_data IS NOT NULL) THEN
326             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Update_Form_Func_Extension ';
327         ELSE
328             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Update_Form_Func_Extension ';
329         END IF;
330     WHEN OTHERS THEN
331         ROLLBACK TO UpdateFormFuncPSP;
332         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
333         IF (x_msg_data IS NOT NULL) THEN
334             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Update_Form_Func_Extension ';
335         ELSE
336             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Update_Form_Func_Extension ';
337         END IF;
338 END Update_Form_Func_Extension;
339 /*********************************************************************************************
340         FUNCTION Name :- Create_Form_Func_Extension
341         PARAMETERS    :-
342             p_Form_Func_Extn_Rec :- The Details of form function sent from UI for create
343         DESCRIPTION   :- Creates the new form function
344         AUTHOR        :- KRISHNA
345 *********************************************************************************************/
346 PROCEDURE Create_Form_Func_Extension(
347     p_Api_Version         IN          NUMBER
348  ,  p_Commit              IN          VARCHAR2
349  ,  p_Form_Func_Extn_Rec  IN          BIS_OBJECT_EXTENSIONS_PUB.Form_Function_Extension_Type
350  ,  x_Return_Status       OUT NOCOPY  VARCHAR2
351  ,  x_Msg_Count           OUT NOCOPY  NUMBER
352  ,  x_Msg_Data            OUT NOCOPY  VARCHAR2
353 )IS
354     l_Commit        VARCHAR2(30);
355     l_Form_Func_Extn_Rec    BIS_OBJECT_EXTENSIONS_PUB.Form_Function_Extension_Type;
356 
357 BEGIN
358     SAVEPOINT  CreateFormFuncPSP;
359     FND_MSG_PUB.Initialize;
360     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
361     IF( p_Commit IS NULL) THEN
362         l_Commit    := FND_API.G_FALSE;
363     ELSE
364         l_Commit := p_Commit;
365     END IF;
366     --dbms_output.put_line('i am calling validate from create ');
367     Validate_Form_Func_Extension(
368         p_Form_Func_Extn_Rec  =>  p_Form_Func_Extn_Rec
369     ,   p_Action_Type         =>  BIS_OBJECT_EXTENSIONS_PUB.C_CREATE
370     ,   x_Return_Status       =>  x_Return_Status
371     ,   x_Msg_Count           =>  x_Msg_Count
372     ,   x_Msg_Data            =>  x_Msg_Data
373     );
374     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
375         RAISE  FND_API.G_EXC_ERROR;
376     END IF;
377 
378     BIS_OBJECT_EXTENSIONS_PVT.Create_Form_Func_Extension(
379         p_Api_Version         =>  p_Api_Version
380      ,  p_Commit              =>  p_Commit
381      ,  p_Form_Func_Extn_Rec  =>  p_Form_Func_Extn_Rec
382      ,  x_Return_Status       =>  x_Return_Status
383      ,  x_Msg_Count           =>  x_Msg_Count
384      ,  x_Msg_Data            =>  x_Msg_Data
385     );
386     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
387         RAISE  FND_API.G_EXC_ERROR;
388     END IF;
389 
390     IF (l_Commit = FND_API.G_TRUE) THEN
391       COMMIT;
392     END IF;
393 
394 EXCEPTION
395     WHEN FND_API.G_EXC_ERROR THEN
396         ROLLBACK TO CreateFormFuncPSP;
397         IF (x_msg_data IS NULL) THEN
398             FND_MSG_PUB.Count_And_Get
399             (      p_encoded   =>  FND_API.G_FALSE
400                ,   p_count     =>  x_msg_count
401                ,   p_data      =>  x_msg_data
402             );
403         END IF;
404         x_return_status :=  FND_API.G_RET_STS_ERROR;
405     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
406         ROLLBACK TO CreateFormFuncPSP;
407         IF (x_msg_data IS NULL) THEN
408             FND_MSG_PUB.Count_And_Get
409             (      p_encoded   =>  FND_API.G_FALSE
410                ,   p_count     =>  x_msg_count
411                ,   p_data      =>  x_msg_data
412             );
413         END IF;
414         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
415     WHEN NO_DATA_FOUND THEN
416         ROLLBACK TO CreateFormFuncPSP;
417         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
418         IF (x_msg_data IS NOT NULL) THEN
419             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Create_Form_Func_Extension ';
420         ELSE
421             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Create_Form_Func_Extension ';
422         END IF;
423     WHEN OTHERS THEN
424         ROLLBACK TO CreateFormFuncPSP;
425         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
426         IF (x_msg_data IS NOT NULL) THEN
427             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Create_Form_Func_Extension ';
428         ELSE
429             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Create_Form_Func_Extension ';
430         END IF;
431 END Create_Form_Func_Extension;
432 /*********************************************************************************************
433         FUNCTION Name :- Load_Form_Func_Extension
434         PARAMETERS    :-
435             p_Form_Func_Extn_Rec :- The properites of Form function
436         DESCRIPTION   :- This is the main function that is being called from ldt/UI
437                          And this calls relevant APIs
438         AUTHOR        :- KRISHNA
439 *********************************************************************************************/
440 PROCEDURE Load_Form_Func_Extension(
441   p_Api_Version         IN          NUMBER
442  ,p_Commit              IN          VARCHAR2
443  ,p_Form_Func_Extn_Rec  IN          BIS_OBJECT_EXTENSIONS_PUB.Form_Function_Extension_Type
444  ,p_Custom_mode         IN          VARCHAR2
445  ,x_Return_Status       OUT NOCOPY  VARCHAR2
446  ,x_Msg_Count           OUT NOCOPY  NUMBER
447  ,x_Msg_Data            OUT NOCOPY  VARCHAR2
448 )IS
449 
450 l_Commit                VARCHAR2(30);
451 l_Count                 NUMBER;
452 l_Form_Func_Extn_Rec    BIS_OBJECT_EXTENSIONS_PUB.Form_Function_Extension_Type;
453 BEGIN
454     SAVEPOINT  LoadFormFuncPSP;
455     FND_MSG_PUB.Initialize;
456     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
457     IF( p_Commit IS NULL) THEN
458         l_Commit    := FND_API.G_FALSE;
459     ELSE
460         l_Commit := p_Commit;
461     END IF;
462 
463     Validate_Form_Func_Extension(
464        p_Form_Func_Extn_Rec  =>  p_Form_Func_Extn_Rec
465      , p_Action_Type         =>  BIS_OBJECT_EXTENSIONS_PUB.C_LOAD
466      , x_Return_Status       =>  x_Return_Status
467      , x_Msg_Count           =>  x_Msg_Count
468      , x_Msg_Data            =>  x_Msg_Data
469     );
470     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
471         RAISE  FND_API.G_EXC_ERROR;
472     END IF;
473     BIS_OBJECT_EXTENSIONS_PVT.Retrieve_Form_Func_Extension(
474         p_Form_Func_Extn_Rec  =>  p_Form_Func_Extn_Rec
475      ,  x_Form_Func_Extn_Rec  =>  l_Form_Func_Extn_Rec
476      ,  x_Return_Status       =>  x_Return_Status
477      ,  x_Msg_Count           =>  x_Msg_Count
478      ,  x_Msg_Data            =>  x_Msg_Data
479     );
480 
481     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
482     l_Form_Func_Extn_Rec := p_Form_Func_Extn_Rec;
483     l_Form_Func_Extn_Rec.Func_Area_Id := Get_FA_Id_By_Short_Name(p_Form_Func_Extn_Rec.Func_Area_short_name);
484         BIS_OBJECT_EXTENSIONS_PUB.Create_Form_Func_Extension(
485             p_Api_Version         =>  p_Api_Version
486          ,  p_Commit              =>  p_Commit
487          ,  p_Form_Func_Extn_Rec  =>  l_Form_Func_Extn_Rec
488          ,  x_Return_Status       =>  x_Return_Status
489          ,  x_Msg_Count           =>  x_Msg_Count
490          ,  x_Msg_Data            =>  x_Msg_Data
491         );
492     ELSE
493         IF (FND_LOAD_UTIL.UPLOAD_TEST(p_Form_Func_Extn_Rec.Last_Updated_By
494                                     , p_Form_Func_Extn_Rec.Last_Update_Date
495                                     , l_Form_Func_Extn_Rec.Last_Updated_By
496                                     , l_Form_Func_Extn_Rec.Last_Update_Date
497                                     , p_Custom_mode)) THEN
498             l_Form_Func_Extn_Rec := p_Form_Func_Extn_Rec;
499             l_Form_Func_Extn_Rec.Func_Area_Id := Get_FA_Id_By_Short_Name(p_Form_Func_Extn_Rec.Func_Area_short_name);
500             BIS_OBJECT_EXTENSIONS_PUB.Update_Form_Func_Extension(
501                 p_Api_Version         =>  p_Api_Version
502              ,  p_Commit              =>  p_Commit
503              ,  p_Form_Func_Extn_Rec  =>  l_Form_Func_Extn_Rec
504              ,  x_Return_Status       =>  x_Return_Status
505              ,  x_Msg_Count           =>  x_Msg_Count
506              ,  x_Msg_Data            =>  x_Msg_Data
507             );
508         END IF;
509     END IF;
510     --dbms_output.put_line('func  short name i sent is :- '|| l_Form_Func_Extn_Rec.Func_Area_short_name);
511 
512    IF (l_Commit = FND_API.G_TRUE) THEN
513       COMMIT;
514     END IF;
515 
516 EXCEPTION
517     WHEN FND_API.G_EXC_ERROR THEN
518         ROLLBACK TO LoadFormFuncPSP;
519         IF (x_msg_data IS NULL) THEN
520             FND_MSG_PUB.Count_And_Get
521             (      p_encoded   =>  FND_API.G_FALSE
522                ,   p_count     =>  x_msg_count
523                ,   p_data      =>  x_msg_data
524             );
525         END IF;
526         x_return_status :=  FND_API.G_RET_STS_ERROR;
527     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
528         ROLLBACK TO LoadFormFuncPSP;
529         IF (x_msg_data IS NULL) THEN
530             FND_MSG_PUB.Count_And_Get
531             (      p_encoded   =>  FND_API.G_FALSE
532                ,   p_count     =>  x_msg_count
533                ,   p_data      =>  x_msg_data
534             );
535         END IF;
536         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
537     WHEN NO_DATA_FOUND THEN
538         ROLLBACK TO LoadFormFuncPSP;
539         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
540         IF (x_msg_data IS NOT NULL) THEN
541             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Load_Form_Func_Extension ';
542         ELSE
543             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Load_Form_Func_Extension ';
544         END IF;
545     WHEN OTHERS THEN
546         ROLLBACK TO LoadFormFuncPSP;
547         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
548         IF (x_msg_data IS NOT NULL) THEN
549             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Load_Form_Func_Extension ';
550         ELSE
551             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Load_Form_Func_Extension ';
552         END IF;
553 END Load_Form_Func_Extension;
554 /*********************************************************************************************
555         FUNCTION Name :- Delete_Form_Func_Extension
556         PARAMETERS    :-
557             p_Form_Func_Extn_Rec :- The properites of Form function
558         DESCRIPTION   :- This is the main function that is being called from ldt/UI
559                          And this calls relevant APIs
560         AUTHOR        :- KRISHNA
561 *********************************************************************************************/
562 
563 PROCEDURE Delete_Form_Func_Extension(
564     p_Api_Version         IN          NUMBER
565  ,  p_Commit              IN          VARCHAR2
566  ,  p_Form_Func_Extn_Rec  IN          BIS_OBJECT_EXTENSIONS_PUB.Form_Function_Extension_Type
567  ,  x_Return_Status       OUT NOCOPY  VARCHAR2
568  ,  x_Msg_Count           OUT NOCOPY  NUMBER
569  ,  x_Msg_Data            OUT NOCOPY  VARCHAR2
570 )IS
571     l_Commit        VARCHAR2(30);
572     l_Form_Func_Extn_Rec    BIS_OBJECT_EXTENSIONS_PUB.Form_Function_Extension_Type;
573 
574 BEGIN
575     SAVEPOINT  DeleteFormFuncPSP;
576     FND_MSG_PUB.Initialize;
577     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
578     IF( p_Commit IS NULL) THEN
579         l_Commit := FND_API.G_FALSE;
580     ELSE
581         l_Commit := p_Commit;
582     END IF;
583     --dbms_output.put_line('i am calling validate from create ');
584     Validate_Form_Func_Extension(
585         p_Form_Func_Extn_Rec  =>  p_Form_Func_Extn_Rec
586     ,   p_Action_Type         =>  BIS_OBJECT_EXTENSIONS_PUB.C_DELETE
587     ,   x_Return_Status       =>  x_Return_Status
588     ,   x_Msg_Count           =>  x_Msg_Count
589     ,   x_Msg_Data            =>  x_Msg_Data
590     );
591     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
592         RAISE  FND_API.G_EXC_ERROR;
593     END IF;
594 
595     BIS_OBJECT_EXTENSIONS_PVT.Delete_Form_Func_Extension(
596         p_Api_Version         =>  p_Api_Version
597      ,  p_Commit              =>  p_Commit
598      ,  p_Form_Func_Extn_Rec  =>  p_Form_Func_Extn_Rec
599      ,  x_Return_Status       =>  x_Return_Status
600      ,  x_Msg_Count           =>  x_Msg_Count
601      ,  x_Msg_Data            =>  x_Msg_Data
602     );
603     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
604         RAISE  FND_API.G_EXC_ERROR;
605     END IF;
606 
607     IF (l_Commit = FND_API.G_TRUE) THEN
608       COMMIT;
609     END IF;
610 
611 EXCEPTION
612     WHEN FND_API.G_EXC_ERROR THEN
613         ROLLBACK TO DeleteFormFuncPSP;
614         IF (x_msg_data IS NULL) THEN
615             FND_MSG_PUB.Count_And_Get
616             (      p_encoded   =>  FND_API.G_FALSE
617                ,   p_count     =>  x_msg_count
618                ,   p_data      =>  x_msg_data
619             );
620         END IF;
621         x_return_status :=  FND_API.G_RET_STS_ERROR;
622     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
623         ROLLBACK TO DeleteFormFuncPSP;
624         IF (x_msg_data IS NULL) THEN
625             FND_MSG_PUB.Count_And_Get
626             (      p_encoded   =>  FND_API.G_FALSE
627                ,   p_count     =>  x_msg_count
628                ,   p_data      =>  x_msg_data
629             );
630         END IF;
631         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
632     WHEN NO_DATA_FOUND THEN
633         ROLLBACK TO DeleteFormFuncPSP;
634         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
635         IF (x_msg_data IS NOT NULL) THEN
636             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Delete_Form_Func_Extension ';
637         ELSE
638             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Delete_Form_Func_Extension ';
639         END IF;
640     WHEN OTHERS THEN
641         ROLLBACK TO DeleteFormFuncPSP;
642         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
643         IF (x_msg_data IS NOT NULL) THEN
644             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Delete_Form_Func_Extension ';
645         ELSE
646             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Delete_Form_Func_Extension ';
647         END IF;
648 END Delete_Form_Func_Extension;
649 
650 
651 /*
652 MEASURE EXTENSION APIS
653 
654 */
655 
656 PROCEDURE Create_Measure_Extension(
657   p_Api_Version         IN          NUMBER
658  ,p_Commit              IN          VARCHAR2
659  ,p_Meas_Extn_Rec       IN          BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type
660  ,x_Return_Status       OUT NOCOPY  VARCHAR2
661  ,x_Msg_Count           OUT NOCOPY  NUMBER
662  ,x_Msg_Data            OUT NOCOPY  VARCHAR2
663 ) IS
664 
665 BEGIN
666     SAVEPOINT CreateMeasExtnPSP;
667     FND_MSG_PUB.Initialize;
668 
669     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
670 
671     Validate_Measure_Extension(
672       p_Meas_Extn_Rec  => p_Meas_Extn_Rec
673      ,p_Action_Type    => C_CREATE
674      ,x_Return_Status  => x_Return_Status
675      ,x_Msg_Count      => x_Msg_Count
676      ,x_Msg_Data       => x_Msg_Data
677     );
678     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
679         RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
680     END IF;
681 
682 
683     BIS_OBJECT_EXTENSIONS_PVT.Create_Measure_Extension(
684        p_Api_Version    => p_Api_Version
685       ,p_Commit         => p_Commit
686       ,p_Meas_Extn_Rec  => p_Meas_Extn_Rec
687       ,x_Return_Status  => x_Return_Status
688       ,x_Msg_Count      => x_Msg_Count
689       ,x_Msg_Data       => x_Msg_Data
690     );
691     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
692       RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
693     END IF;
694 
695     IF (p_Commit = FND_API.G_TRUE) THEN
696       COMMIT;
697     END IF;
698 
699 EXCEPTION
700     WHEN FND_API.G_EXC_ERROR THEN
701         ROLLBACK TO CreateMeasExtnPSP;
702         IF (x_msg_data IS NULL) THEN
703             FND_MSG_PUB.Count_And_Get
704             (      p_encoded   =>  FND_API.G_FALSE
705                ,   p_count     =>  x_msg_count
706                ,   p_data      =>  x_msg_data
707             );
708         END IF;
709         x_return_status :=  FND_API.G_RET_STS_ERROR;
710     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
711         ROLLBACK TO CreateMeasExtnPSP;
712         IF (x_msg_data IS NULL) THEN
713             FND_MSG_PUB.Count_And_Get
714             (      p_encoded   =>  FND_API.G_FALSE
715                ,   p_count     =>  x_msg_count
716                ,   p_data      =>  x_msg_data
717             );
718         END IF;
719         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
720     WHEN NO_DATA_FOUND THEN
721         ROLLBACK TO CreateMeasExtnPSP;
722         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
723         IF (x_msg_data IS NOT NULL) THEN
724             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Create_Measure_Extension ';
725         ELSE
726             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Create_Measure_Extension ';
727         END IF;
728     WHEN OTHERS THEN
729         ROLLBACK TO CreateMeasExtnPSP;
730         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
731         IF (x_msg_data IS NOT NULL) THEN
732             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Create_Measure_Extension ';
733         ELSE
734             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Create_Measure_Extension ';
735         END IF;
736 
737 END Create_Measure_Extension;
738 
739 
740 PROCEDURE Retrieve_Measure_Extension(
741   p_Meas_Extn_Rec       IN          BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type
742  ,x_Meas_Extn_Rec       OUT NOCOPY  BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type
743  ,x_Return_Status       OUT NOCOPY  VARCHAR2
744  ,x_Msg_Count           OUT NOCOPY  NUMBER
745  ,x_Msg_Data            OUT NOCOPY  VARCHAR2
746 ) IS
747 
748 BEGIN
749     FND_MSG_PUB.Initialize;
750     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
751 
752     BIS_OBJECT_EXTENSIONS_PVT.Retrieve_Measure_Extension(
753       p_Meas_Extn_Rec  => p_Meas_Extn_Rec
754      ,x_Meas_Extn_Rec  => x_Meas_Extn_Rec
755      ,x_Return_Status  => x_Return_Status
756      ,x_Msg_Count      => x_Msg_Count
757      ,x_Msg_Data       => x_Msg_Data
758     );
759     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
760         RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
761     END IF;
762 
763 EXCEPTION
764     WHEN FND_API.G_EXC_ERROR THEN
765         IF (x_msg_data IS NULL) THEN
766             FND_MSG_PUB.Count_And_Get
767             (      p_encoded   =>  FND_API.G_FALSE
768                ,   p_count     =>  x_msg_count
769                ,   p_data      =>  x_msg_data
770             );
771         END IF;
772         x_return_status :=  FND_API.G_RET_STS_ERROR;
773     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
774         IF (x_msg_data IS NULL) THEN
775             FND_MSG_PUB.Count_And_Get
776             (      p_encoded   =>  FND_API.G_FALSE
777                ,   p_count     =>  x_msg_count
778                ,   p_data      =>  x_msg_data
779             );
780         END IF;
781         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
782     WHEN NO_DATA_FOUND THEN
783         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
784         IF (x_msg_data IS NOT NULL) THEN
785             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Retrieve_Measure_Extension ';
786         ELSE
787             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Retrieve_Measure_Extension ';
788         END IF;
789     WHEN OTHERS THEN
790         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
791         IF (x_msg_data IS NOT NULL) THEN
792             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Retrieve_Measure_Extension ';
793         ELSE
794             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Retrieve_Measure_Extension ';
795         END IF;
796 END Retrieve_Measure_Extension;
797 
798 
799 PROCEDURE Translate_Measure_Extension(
800   p_Api_Version         IN          NUMBER
801  ,p_Commit              IN          VARCHAR2
802  ,p_Meas_Extn_Rec       IN          BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type
803  ,x_Return_Status       OUT NOCOPY  VARCHAR2
804  ,x_Msg_Count           OUT NOCOPY  NUMBER
805  ,x_Msg_Data            OUT NOCOPY  VARCHAR2
806 ) IS
807     l_Meas_Extn_Rec   BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type;
808 BEGIN
809 
810     SAVEPOINT TranslateMeasExtnPSP;
811     FND_MSG_PUB.Initialize;
812 
813     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
814     l_Meas_Extn_Rec := p_Meas_Extn_Rec;
815 
816     ------dbms_output.put_line ('l_Meas_Extn_Rec.Measure_Short_Name - ' || l_Meas_Extn_Rec.Measure_Short_Name);
817 
818     Validate_Measure_Extension(
819       p_Meas_Extn_Rec  => l_Meas_Extn_Rec
820      ,p_Action_Type    => BIS_OBJECT_EXTENSIONS_PUB.C_TRANS
821      ,x_Return_Status  => x_Return_Status
822      ,x_Msg_Count      => x_Msg_Count
823      ,x_Msg_Data       => x_Msg_Data
824     );
825     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
826         RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
827     END IF;
828 
829     BIS_OBJECT_EXTENSIONS_PVT.Translate_Measure_Extension(
830       p_Api_Version         =>  p_Api_Version
831      ,p_Commit              =>  p_Commit
832      ,p_Meas_Extn_Rec       =>  p_Meas_Extn_Rec
833      ,x_Return_Status       =>  x_Return_Status
834      ,x_Msg_Count           =>  x_Msg_Count
835      ,x_Msg_Data            =>  x_Msg_Data
836     );
837     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
838         RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
839     END IF;
840 
841 
842     -- Commit if required
843     IF (p_Commit = FND_API.G_TRUE) THEN
844       COMMIT;
845     END IF;
846 
847 EXCEPTION
848     WHEN FND_API.G_EXC_ERROR THEN
849         ROLLBACK TO TranslateMeasExtnPSP;
850         IF (x_msg_data IS NULL) THEN
851             FND_MSG_PUB.Count_And_Get
852             (      p_encoded   =>  FND_API.G_FALSE
853                ,   p_count     =>  x_msg_count
854                ,   p_data      =>  x_msg_data
855             );
856         END IF;
857         x_return_status :=  FND_API.G_RET_STS_ERROR;
858     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
859         ROLLBACK TO TranslateMeasExtnPSP;
860         IF (x_msg_data IS NULL) THEN
861             FND_MSG_PUB.Count_And_Get
862             (      p_encoded   =>  FND_API.G_FALSE
863                ,   p_count     =>  x_msg_count
864                ,   p_data      =>  x_msg_data
865             );
866         END IF;
867         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
868     WHEN NO_DATA_FOUND THEN
869         ROLLBACK TO TranslateMeasExtnPSP;
870         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
871         IF (x_msg_data IS NOT NULL) THEN
872             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Translate_Measure_Extension ';
873         ELSE
874             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Translate_Measure_Extension ';
875         END IF;
876     WHEN OTHERS THEN
877         ROLLBACK TO TranslateMeasExtnPSP;
878         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
879         IF (x_msg_data IS NOT NULL) THEN
880             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Translate_Measure_Extension ';
881         ELSE
882             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Translate_Measure_Extension ';
883         END IF;
884 
885 END Translate_Measure_Extension;
886 
887 -- Update the Measure Extensions
888 PROCEDURE Update_Measure_Extension(
889   p_Api_Version         IN          NUMBER
890  ,p_Commit              IN          VARCHAR2
891  ,p_Meas_Extn_Rec       IN          BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type
892  ,x_Return_Status       OUT NOCOPY  VARCHAR2
893  ,x_Msg_Count           OUT NOCOPY  NUMBER
894  ,x_Msg_Data            OUT NOCOPY  VARCHAR2
895 ) IS
896 
897 BEGIN
898     SAVEPOINT UpdateMeasExtnPSP;
899     FND_MSG_PUB.Initialize;
900 
901     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
902 
903     Validate_Measure_Extension(
904       p_Meas_Extn_Rec  => p_Meas_Extn_Rec
905      ,p_Action_Type    => BIS_OBJECT_EXTENSIONS_PUB.C_UPDATE
906      ,x_Return_Status  => x_Return_Status
907      ,x_Msg_Count      => x_Msg_Count
908      ,x_Msg_Data       => x_Msg_Data
909     );
910     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
911         RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
912     END IF;
913 
914 
915     BIS_OBJECT_EXTENSIONS_PVT.Update_Measure_Extension(
916         p_Api_Version    => p_Api_Version
917        ,p_Commit         => p_Commit
918        ,p_Meas_Extn_Rec  => p_Meas_Extn_Rec
919        ,x_Return_Status  => x_Return_Status
920        ,x_Msg_Count      => x_Msg_Count
921        ,x_Msg_Data       => x_Msg_Data
922     );
923     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
924        RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
925     END IF;
926 
927 
928     -- Commit if required
929     IF (p_Commit = FND_API.G_TRUE) THEN
930       COMMIT;
931     END IF;
932 
933 EXCEPTION
934     WHEN FND_API.G_EXC_ERROR THEN
935         ROLLBACK TO UpdateMeasExtnPSP;
936         IF (x_msg_data IS NULL) THEN
937             FND_MSG_PUB.Count_And_Get
938             (      p_encoded   =>  FND_API.G_FALSE
939                ,   p_count     =>  x_msg_count
940                ,   p_data      =>  x_msg_data
941             );
942         END IF;
943         x_return_status :=  FND_API.G_RET_STS_ERROR;
944     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
945         ROLLBACK TO UpdateMeasExtnPSP;
946         IF (x_msg_data IS NULL) THEN
947             FND_MSG_PUB.Count_And_Get
948             (      p_encoded   =>  FND_API.G_FALSE
949                ,   p_count     =>  x_msg_count
950                ,   p_data      =>  x_msg_data
951             );
952         END IF;
953         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
954     WHEN NO_DATA_FOUND THEN
955         ROLLBACK TO UpdateMeasExtnPSP;
956         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
957         IF (x_msg_data IS NOT NULL) THEN
958             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Update_Measure_Extension ';
959         ELSE
960             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Update_Measure_Extension ';
961         END IF;
962     WHEN OTHERS THEN
963         ROLLBACK TO UpdateMeasExtnPSP;
964         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
965         IF (x_msg_data IS NOT NULL) THEN
966             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Update_Measure_Extension ';
967         ELSE
968             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Update_Measure_Extension ';
969         END IF;
970 END Update_Measure_Extension;
971 
972 PROCEDURE Load_Measure_Extension(
973   p_Api_Version         IN          NUMBER
974  ,p_Commit              IN          VARCHAR2
975  ,p_Meas_Extn_Rec       IN          BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type
976  ,p_Custom_mode         IN          VARCHAR2
977  ,x_Return_Status       OUT NOCOPY  VARCHAR2
978  ,x_Msg_Count           OUT NOCOPY  NUMBER
979  ,x_Msg_Data            OUT NOCOPY  VARCHAR2
980 ) IS
981     l_Meas_Extn_Rec    BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type;
982     l_Mes_up_Rec       BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type;
983  BEGIN
984     SAVEPOINT LoadMeasExtnPSP;
985     FND_MSG_PUB.Initialize;
986     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
987     Validate_Measure_Extension(
988       p_Meas_Extn_Rec  => p_Meas_Extn_Rec
989      ,p_Action_Type    => C_LOAD
990      ,x_Return_Status  => x_Return_Status
991      ,x_Msg_Count      => x_Msg_Count
992      ,x_Msg_Data       => x_Msg_Data
993     );
994     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
995         RAISE  FND_API.G_EXC_ERROR;
996     END IF;
997         --dbms_output.put_line('func  short name i sent is :- '|| p_Meas_Extn_Rec.Func_Area_short_name);
998 
999     BIS_OBJECT_EXTENSIONS_PUB.Retrieve_Measure_Extension(
1000       p_Meas_Extn_Rec   => p_Meas_Extn_Rec
1001      ,x_Meas_Extn_Rec   => l_Meas_Extn_Rec
1002      ,x_Return_Status   => x_Return_Status
1003      ,x_Msg_Count       => x_Msg_Count
1004      ,x_Msg_Data        => x_Msg_Data
1005     );
1006     l_Meas_Extn_Rec.Functional_Area_Id := Get_FA_Id_By_Short_Name(p_Meas_Extn_Rec.Func_Area_Short_Name);
1007     --dbms_output.put_line('l_Meas_Extn_Rec.Measure_Short_NAme --- ' || l_Meas_Extn_Rec.Measure_Short_Name || '* ' ||x_Return_Status || '* ' ||FND_API.G_RET_STS_SUCCESS);
1008 
1009     IF (x_Return_Status <> FND_API.G_RET_STS_SUCCESS) THEN -- this is the create mode.
1010 
1011        --dbms_output.put_line('In create Mode ' ||x_return_status);
1012 
1013        l_Meas_Extn_Rec := p_Meas_Extn_Rec;
1014        l_Meas_Extn_Rec.Functional_Area_Id := Get_FA_Id_By_Short_Name(p_Meas_Extn_Rec.Func_Area_Short_Name);
1015 
1016        IF ((l_Meas_Extn_Rec.Functional_Area_Id IS NULL) AND (l_Meas_Extn_Rec.Func_Area_Short_Name IS NOT NULL)) THEN
1017           l_Meas_Extn_Rec.Functional_Area_Id := Get_FA_Id_By_Short_Name(l_Meas_Extn_Rec.Func_Area_Short_Name);
1018           IF (l_Meas_Extn_Rec.Functional_Area_Id = C_INVALID) THEN
1019               FND_MESSAGE.SET_NAME('BIS','BIS_FA_SHORT_NAME_NOT_EXISTS');
1020               FND_MESSAGE.SET_TOKEN('SHORT_NAME', l_Meas_Extn_Rec.Func_Area_Short_Name);
1021               FND_MSG_PUB.ADD;
1022               RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1023           END IF;
1024        END IF;
1025 
1026        BIS_OBJECT_EXTENSIONS_PUB.Create_Measure_Extension(
1027           p_Api_Version    => p_Api_Version
1028          ,p_Commit         => p_Commit
1029          ,p_Meas_Extn_Rec  => l_Meas_Extn_Rec
1030          ,x_Return_Status  => x_Return_Status
1031          ,x_Msg_Count      => x_Msg_Count
1032          ,x_Msg_Data       => x_Msg_Data
1033        );
1034        IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1035          RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
1036        END IF;
1037 
1038     ELSE
1039      --dbms_output.put_line('FOCE LOAD VALUE IS :-'|| p_Custom_mode);
1040      --dbms_output.put_line('I AM GOING TO UPDATE FOR MEASURES' );
1041         IF (FND_LOAD_UTIL.UPLOAD_TEST(p_Meas_Extn_Rec.Last_Updated_By
1042                                     , p_Meas_Extn_Rec.Last_Update_Date
1043                                     , l_Meas_Extn_Rec.Last_Updated_By
1044                                     , l_Meas_Extn_Rec.Last_Update_Date
1045                                     , p_Custom_mode)) THEN
1046            --dbms_output.put_line('UPLDOATE SUCESS I AM GOING TO UPDATE FOR MEASURES' );
1047            l_Mes_up_Rec :=  p_Meas_Extn_Rec;
1048            l_Mes_up_Rec.Functional_Area_Id := Get_FA_Id_By_Short_Name(p_Meas_Extn_Rec.Func_Area_Short_Name);
1049            BIS_OBJECT_EXTENSIONS_PUB.Update_Measure_Extension(
1050               p_Api_Version    => p_Api_Version
1051              ,p_Commit         => p_Commit
1052              ,p_Meas_Extn_Rec  => l_Mes_up_Rec
1053              ,x_Return_Status  => x_Return_Status
1054              ,x_Msg_Count      => x_Msg_Count
1055              ,x_Msg_Data       => x_Msg_Data
1056            );
1057            IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1058              RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
1059            END IF;
1060        END IF;
1061     END IF;
1062 EXCEPTION
1063     WHEN FND_API.G_EXC_ERROR THEN
1064         ROLLBACK TO LoadMeasExtnPSP;
1065         IF (x_msg_data IS NULL) THEN
1066             FND_MSG_PUB.Count_And_Get
1067             (      p_encoded   =>  FND_API.G_FALSE
1068                ,   p_count     =>  x_msg_count
1069                ,   p_data      =>  x_msg_data
1070             );
1071         END IF;
1072         x_return_status :=  FND_API.G_RET_STS_ERROR;
1073     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1074         ROLLBACK TO LoadMeasExtnPSP;
1075         IF (x_msg_data IS NULL) THEN
1076             FND_MSG_PUB.Count_And_Get
1077             (      p_encoded   =>  FND_API.G_FALSE
1078                ,   p_count     =>  x_msg_count
1079                ,   p_data      =>  x_msg_data
1080             );
1081         END IF;
1082         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1083     WHEN NO_DATA_FOUND THEN
1084         ROLLBACK TO LoadMeasExtnPSP;
1085         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1086         IF (x_msg_data IS NOT NULL) THEN
1087             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Load_Measure_Extension ';
1088         ELSE
1089             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Load_Measure_Extension ';
1090         END IF;
1091     WHEN OTHERS THEN
1092         ROLLBACK TO LoadMeasExtnPSP;
1093         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1094         IF (x_msg_data IS NOT NULL) THEN
1095             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Load_Measure_Extension ';
1096         ELSE
1097             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Load_Measure_Extension ';
1098         END IF;
1099 END Load_Measure_Extension;
1100 /*********************************************************************************************
1101         FUNCTION Name :- Delete_Measure_Extension
1102         PARAMETERS    :-
1103             p_Form_Func_Extn_Rec:- The Record containing all the vlaues of form function tables
1104         DESCRIPTION   :- This fucntions takes care of all validations based on action type
1105         AUTHOR        :- KRISHNA
1106 *********************************************************************************************/
1107 
1108 
1109 PROCEDURE Delete_Measure_Extension(
1110   p_Api_Version         IN          NUMBER
1111  ,p_Commit              IN          VARCHAR2
1112  ,p_Meas_Extn_Rec       IN          BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type
1113  ,x_Return_Status       OUT NOCOPY  VARCHAR2
1114  ,x_Msg_Count           OUT NOCOPY  NUMBER
1115  ,x_Msg_Data            OUT NOCOPY  VARCHAR2
1116 ) IS
1117     l_Commit        VARCHAR2(30);
1118 BEGIN
1119     SAVEPOINT DeleteMeasExtnPSP;
1120     FND_MSG_PUB.Initialize;
1121     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
1122     IF( p_Commit IS NULL) THEN
1123         l_Commit := FND_API.G_FALSE;
1124     ELSE
1125         l_Commit := p_Commit;
1126     END IF;
1127 
1128     Validate_Measure_Extension(
1129       p_Meas_Extn_Rec  => p_Meas_Extn_Rec
1130      ,p_Action_Type    => C_DELETE
1131      ,x_Return_Status  => x_Return_Status
1132      ,x_Msg_Count      => x_Msg_Count
1133      ,x_Msg_Data       => x_Msg_Data
1134     );
1135     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1136         RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
1137     END IF;
1138 
1139 
1140     BIS_OBJECT_EXTENSIONS_PVT.Delete_Measure_Extension(
1141        p_Api_Version    => p_Api_Version
1142       ,p_Commit         => p_Commit
1143       ,p_Meas_Extn_Rec  => p_Meas_Extn_Rec
1144       ,x_Return_Status  => x_Return_Status
1145       ,x_Msg_Count      => x_Msg_Count
1146       ,x_Msg_Data       => x_Msg_Data
1147     );
1148     IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1149       RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
1150     END IF;
1151 
1152     IF (l_Commit = FND_API.G_TRUE) THEN
1153       COMMIT;
1154     END IF;
1155 
1156 EXCEPTION
1157     WHEN FND_API.G_EXC_ERROR THEN
1158         ROLLBACK TO DeleteMeasExtnPSP;
1159         IF (x_msg_data IS NULL) THEN
1160             FND_MSG_PUB.Count_And_Get
1161             (      p_encoded   =>  FND_API.G_FALSE
1162                ,   p_count     =>  x_msg_count
1163                ,   p_data      =>  x_msg_data
1164             );
1165         END IF;
1166         x_return_status :=  FND_API.G_RET_STS_ERROR;
1167     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1168         ROLLBACK TO DeleteMeasExtnPSP;
1169         IF (x_msg_data IS NULL) THEN
1170             FND_MSG_PUB.Count_And_Get
1171             (      p_encoded   =>  FND_API.G_FALSE
1172                ,   p_count     =>  x_msg_count
1173                ,   p_data      =>  x_msg_data
1174             );
1175         END IF;
1176         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1177     WHEN NO_DATA_FOUND THEN
1178         ROLLBACK TO DeleteMeasExtnPSP;
1179         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1180         IF (x_msg_data IS NOT NULL) THEN
1181             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Delete_Measure_Extension ';
1182         ELSE
1183             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Delete_Measure_Extension ';
1184         END IF;
1185     WHEN OTHERS THEN
1186         ROLLBACK TO DeleteMeasExtnPSP;
1187         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1188         IF (x_msg_data IS NOT NULL) THEN
1189             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Delete_Measure_Extension ';
1190         ELSE
1191             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Delete_Measure_Extension ';
1192         END IF;
1193 
1194 END Delete_Measure_Extension;
1195 
1196 -- Get the Functional Area ID from Functional Short_Name
1197 FUNCTION Get_FA_Id_By_Short_Name (
1198   p_Functional_Area_Short_Name IN VARCHAR2
1199 )RETURN NUMBER IS
1200   l_FA_Id   NUMBER;
1201 BEGIN
1202   SELECT FUNCTIONAL_AREA_ID
1203   INTO   l_FA_Id
1204   FROM   BIS_FUNCTIONAL_AREAS
1205   WHERE  UPPER(SHORT_NAME) = UPPER(Trim(p_Functional_Area_Short_Name));
1206 
1207   RETURN l_FA_Id;
1208 
1209 EXCEPTION
1210   WHEN OTHERS THEN
1211      RETURN C_INVALID;
1212 END Get_FA_Id_By_Short_Name;
1213 
1214 -- Validation APIs
1215 PROCEDURE Validate_Measure_Extension(
1216   p_Meas_Extn_Rec       IN          BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type
1217  ,p_Action_Type         IN          VARCHAR2
1218  ,x_Return_Status       OUT NOCOPY  VARCHAR2
1219  ,x_Msg_Count           OUT NOCOPY  NUMBER
1220  ,x_Msg_Data            OUT NOCOPY  VARCHAR2
1221 ) IS
1222     l_Count           NUMBER;
1223     l_Meas_Extn_Rec   BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type;
1224 BEGIN
1225     FND_MSG_PUB.Initialize;
1226     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
1227     l_Meas_Extn_Rec := p_Meas_Extn_Rec;
1228     l_Count := 0;
1229 
1230     IF (BIS_UTILITIES_PVT.Value_Missing_Or_Null(TRIM(p_Meas_Extn_Rec.Measure_Short_Name)) = FND_API.G_TRUE) THEN
1231         FND_MESSAGE.SET_NAME('BIS','BIS_MX_SHORT_NAME_IS_NULL');
1232         FND_MSG_PUB.ADD;
1233         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1234     END IF;
1235     --dbms_output.put_line('FROM CREATE 1');
1236     IF(p_Action_Type = BIS_OBJECT_EXTENSIONS_PUB.C_UPDATE OR  p_Action_Type = BIS_OBJECT_EXTENSIONS_PUB.C_CREATE)  THEN
1237       IF(Trim(l_Meas_Extn_Rec.Functional_Area_Id) IS NULL) THEN
1238           FND_MESSAGE.SET_NAME('BIS','BIS_FUNC_ID_NOT_ENTERED');
1239           FND_MSG_PUB.ADD;
1240           RAISE FND_API.G_EXC_ERROR;
1241       END IF;
1242 
1243       IF(BIS_UTILITIES_PVT.Value_Missing_Or_Null(p_Meas_Extn_Rec.Functional_Area_Id) = FND_API.G_FALSE) THEN
1244         SELECT COUNT(1) INTO l_Count
1245         FROM   BIS_FUNCTIONAL_AREAS B
1246         WHERE  B.FUNCTIONAL_AREA_ID = p_Meas_Extn_Rec.Functional_Area_Id;
1247 
1248         IF (l_Count = 0) THEN
1249           FND_MESSAGE.SET_NAME('BIS','BIS_FUNCID_WRONG');
1250           FND_MESSAGE.SET_TOKEN('FORM_FUNC',TRIM(p_Meas_Extn_Rec.Functional_Area_Id));
1251           FND_MSG_PUB.ADD;
1252           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1253         END IF;
1254       END IF;
1255     END IF;
1256 
1257     SELECT COUNT(1) INTO l_Count
1258     FROM   BIS_MEASURES_EXTENSION
1259     WHERE  UPPER(MEASURE_SHORT_NAME) = UPPER(Trim(l_Meas_Extn_Rec.Measure_Short_Name));
1260         --------dbms_output.put_line('FROM CREATE 2' || p_Action_Type);
1261     IF (p_Action_Type = C_CREATE) THEN
1262       IF (l_Count <> 0) THEN
1263         FND_MESSAGE.SET_NAME('BIS','BIS_SHORT_NAME_EXISTS');
1264         FND_MESSAGE.SET_TOKEN('SHORT_NAME', Trim(l_Meas_Extn_Rec.Measure_Short_Name));
1265         FND_MSG_PUB.ADD;
1266         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1267       END IF;
1268     ELSIF (p_Action_Type = C_UPDATE) THEN
1269       IF (l_Count = 0) THEN
1270         FND_MESSAGE.SET_NAME('BIS','BIS_SHORT_NAME_NOT_EXISTS');
1271         FND_MESSAGE.SET_TOKEN('SHORT_NAME', Trim(l_Meas_Extn_Rec.Measure_Short_Name));
1272         FND_MSG_PUB.ADD;
1273         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1274       END IF;
1275     ELSIF (p_Action_Type = C_LOAD) THEN
1276         IF(Trim(l_Meas_Extn_Rec.Func_Area_Short_Name) IS NULL) THEN
1277             FND_MESSAGE.SET_NAME('BIS','BIS_FA_SHORT_NAME_IS_NULL');
1278             FND_MSG_PUB.ADD;
1279             RAISE FND_API.G_EXC_ERROR;
1280         ELSE
1281             SELECT COUNT(1)
1282             INTO   l_Count
1283             FROM   BIS_FUNCTIONAL_AREAS
1284             WHERE  UPPER(SHORT_NAME) = UPPER(TRIM(l_Meas_Extn_Rec.Func_Area_Short_Name));
1285             IF(l_Count = 0 ) THEN
1286                 FND_MESSAGE.SET_NAME('BIS','BIS_FUNCSHTNAME_WRONG');
1287                 FND_MESSAGE.SET_TOKEN('FORM_FUNC',Trim(l_Meas_Extn_Rec.Func_Area_Short_Name));
1288                 FND_MSG_PUB.ADD;
1289                 RAISE FND_API.G_EXC_ERROR;
1290             END IF;
1291         END IF;
1292     ELSIF (p_Action_Type = C_RETRIEVE OR p_Action_Type = C_DELETE OR p_Action_Type = C_TRANS) THEN
1293       IF (l_Count = 0) THEN
1294         FND_MESSAGE.SET_NAME('BIS','BIS_SHORT_NAME_NOT_EXISTS');
1295         FND_MESSAGE.SET_TOKEN('SHORT_NAME', Trim(l_Meas_Extn_Rec.Measure_Short_Name));
1296         FND_MSG_PUB.ADD;
1297         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1298       END IF;
1299     END IF;
1300 
1301 EXCEPTION
1302     WHEN FND_API.G_EXC_ERROR THEN
1303         IF (x_msg_data IS NULL) THEN
1304             FND_MSG_PUB.Count_And_Get
1305             (      p_encoded   =>  FND_API.G_FALSE
1306                ,   p_count     =>  x_msg_count
1307                ,   p_data      =>  x_msg_data
1308             );
1309         END IF;
1310         x_return_status :=  FND_API.G_RET_STS_ERROR;
1311     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1312         IF (x_msg_data IS NULL) THEN
1313             FND_MSG_PUB.Count_And_Get
1314             (      p_encoded   =>  FND_API.G_FALSE
1315                ,   p_count     =>  x_msg_count
1316                ,   p_data      =>  x_msg_data
1317             );
1318         END IF;
1319         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1320     WHEN NO_DATA_FOUND THEN
1321         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1322         IF (x_msg_data IS NOT NULL) THEN
1323             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Validate_Measure_Extension ';
1324         ELSE
1325             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Validate_Measure_Extension ';
1326         END IF;
1327     WHEN OTHERS THEN
1328         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1329         IF (x_msg_data IS NOT NULL) THEN
1330             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Validate_Measure_Extension ';
1331         ELSE
1332             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Validate_Measure_Extension ';
1333         END IF;
1334 END Validate_Measure_Extension;
1335 
1336 
1337 /*********************************************************************************************
1338         FUNCTION Name :- Validate_Form_Func_Extension
1339         PARAMETERS    :-
1340             p_Action_Type       :-  Action type this can be either CREATE or UPDATE
1341             p_Form_Func_Extn_Rec:- The Record containing all the vlaues of form function tables
1342         DESCRIPTION   :- This fucntions takes care of all validations based on action type
1343         AUTHOR        :- KRISHNA
1344 *********************************************************************************************/
1345 
1346 PROCEDURE Validate_Form_Func_Extension(
1347   p_Form_Func_Extn_Rec  IN          BIS_OBJECT_EXTENSIONS_PUB.Form_Function_Extension_Type
1348  ,p_Action_Type         IN          VARCHAR2
1349  ,x_Return_Status       OUT NOCOPY  VARCHAR2
1350  ,x_Msg_Count           OUT NOCOPY  NUMBER
1351  ,x_Msg_Data            OUT NOCOPY  VARCHAR2
1352 ) IS
1353     l_Count         NUMBER;
1354     l_cnt_app_id    NUMBER;
1355     l_cnt_sht_name  NUMBER;
1356     l_cnt_func_id   NUMBER;
1357 BEGIN
1358     FND_MSG_PUB.Initialize;
1359     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
1360     SELECT COUNT(1)
1361     INTO   l_cnt_sht_name
1362     FROM   BIS_FORM_FUNCTION_EXTENSION
1363     WHERE  UPPER(OBJECT_NAME) = UPPER(TRIM(p_Form_Func_Extn_Rec.Object_Name));
1364 
1365     SELECT COUNT(1)
1366     INTO   l_cnt_func_id
1367     FROM   BIS_FUNCTIONAL_AREAS
1368     WHERE  FUNCTIONAL_AREA_ID = p_Form_Func_Extn_Rec.Func_Area_Id;
1369 
1370     IF (BIS_UTILITIES_PVT.Value_Missing_Or_Null(TRIM(p_Form_Func_Extn_Rec.Object_Name)) = FND_API.G_TRUE) THEN
1371         FND_MESSAGE.SET_NAME('BIS','BIS_FORM_FUNC_SHTNAME_NULL');
1372         FND_MSG_PUB.ADD;
1373         RAISE FND_API.G_EXC_ERROR;
1374     END IF;
1375 
1376     IF(p_Action_Type = BIS_OBJECT_EXTENSIONS_PUB.C_CREATE) THEN
1377         IF(l_cnt_sht_name <> 0 ) THEN
1378             FND_MESSAGE.SET_NAME('BIS','BIS_FORM_FUNC_EXISTS');
1379             FND_MESSAGE.SET_TOKEN('FORM_FUNC',Trim(p_Form_Func_Extn_Rec.Object_Name));
1380             FND_MSG_PUB.ADD;
1381             RAISE FND_API.G_EXC_ERROR;
1382         END IF;
1383     END IF;
1384 
1385     IF(p_Action_Type = BIS_OBJECT_EXTENSIONS_PUB.C_UPDATE) THEN
1386         IF(l_cnt_sht_name = 0 ) THEN
1387             FND_MESSAGE.SET_NAME('BIS','BIS_FORM_FUNC_SHTNAME_NOTEXIST');
1388             FND_MESSAGE.SET_TOKEN('FORM_FUNC',Trim(p_Form_Func_Extn_Rec.Object_Name));
1389             FND_MSG_PUB.ADD;
1390             RAISE FND_API.G_EXC_ERROR;
1391         END IF;
1392     END IF;
1393 
1394     IF(p_Action_Type = BIS_OBJECT_EXTENSIONS_PUB.C_UPDATE OR  p_Action_Type = BIS_OBJECT_EXTENSIONS_PUB.C_CREATE)  THEN
1395         IF(Trim(p_Form_Func_Extn_Rec.Func_Area_Id) IS NULL) THEN
1396             FND_MESSAGE.SET_NAME('BIS','BIS_FUNC_ID_NOT_ENTERED');
1397             FND_MSG_PUB.ADD;
1398             RAISE FND_API.G_EXC_ERROR;
1399         ELSE
1400             IF(l_cnt_func_id =0 ) THEN
1401                 FND_MESSAGE.SET_NAME('BIS','BIS_FUNCID_WRONG');
1402                 FND_MESSAGE.SET_TOKEN('FORM_FUNC',Trim(p_Form_Func_Extn_Rec.Func_Area_Id));
1403                 FND_MSG_PUB.ADD;
1404                 RAISE FND_API.G_EXC_ERROR;
1405              END IF;
1406         END IF;
1407         IF(TRIM(p_Form_Func_Extn_Rec.Application_Id) IS NULL ) THEN
1408             FND_MESSAGE.SET_NAME('BIS','BIS_APPID_CANNOT_NULL');
1409             FND_MSG_PUB.ADD;
1410             RAISE FND_API.G_EXC_ERROR;
1411         ELSE
1412             SELECT COUNT(1)
1413             INTO l_cnt_app_id
1414             FROM FND_APPLICATION
1415             WHERE APPLICATION_ID = p_Form_Func_Extn_Rec.Application_Id;
1416             IF(l_cnt_app_id = 0 ) THEN
1417                 FND_MESSAGE.SET_NAME('BIS','BIS_APPID_WRONG');
1418                 FND_MSG_PUB.ADD;
1419                 RAISE FND_API.G_EXC_ERROR;
1420             END IF;
1421 
1422         END IF;
1423     END IF;
1424 
1425     IF(p_Action_Type = BIS_OBJECT_EXTENSIONS_PUB.C_LOAD) THEN
1426         IF(Trim(p_Form_Func_Extn_Rec.Func_Area_short_name) IS NULL) THEN
1427             FND_MESSAGE.SET_NAME('BIS','BIS_FA_SHORT_NAME_IS_NULL');
1428             FND_MSG_PUB.ADD;
1429             RAISE FND_API.G_EXC_ERROR;
1430         ELSE
1431             SELECT COUNT(1)
1432             INTO   l_cnt_func_id
1433             FROM   BIS_FUNCTIONAL_AREAS
1434             WHERE  SHORT_NAME = p_Form_Func_Extn_Rec.Func_Area_short_name;
1435             IF(l_cnt_func_id = 0 ) THEN
1436                 FND_MESSAGE.SET_NAME('BIS','BIS_FUNCSHTNAME_WRONG');
1437                 FND_MESSAGE.SET_TOKEN('FORM_FUNC',Trim(p_Form_Func_Extn_Rec.Func_Area_short_name));
1438                 FND_MSG_PUB.ADD;
1439                 RAISE FND_API.G_EXC_ERROR;
1440             END IF;
1441         END IF;
1442     END IF;
1443     IF(p_Action_Type = BIS_OBJECT_EXTENSIONS_PUB.C_TRANS OR p_Action_Type = BIS_OBJECT_EXTENSIONS_PUB.C_DELETE OR p_Action_Type = BIS_OBJECT_EXTENSIONS_PUB.C_RETRIEVE) THEN
1444         IF(l_cnt_sht_name = 0 ) THEN
1445             FND_MESSAGE.SET_NAME('BIS','BIS_FORM_FUNC_SHTNAME_NOTEXIST');
1446             FND_MESSAGE.SET_TOKEN('FORM_FUNC',Trim(p_Form_Func_Extn_Rec.Object_Name));
1447             FND_MSG_PUB.ADD;
1448             RAISE FND_API.G_EXC_ERROR;
1449         END IF;
1450     END IF;
1451 
1452 EXCEPTION
1453     WHEN FND_API.G_EXC_ERROR THEN
1454         IF (x_msg_data IS NULL) THEN
1455             FND_MSG_PUB.Count_And_Get
1456             (      p_encoded   =>  FND_API.G_FALSE
1457                ,   p_count     =>  x_msg_count
1458                ,   p_data      =>  x_msg_data
1459             );
1460         END IF;
1461         x_return_status :=  FND_API.G_RET_STS_ERROR;
1462     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1463         IF (x_msg_data IS NULL) THEN
1464             FND_MSG_PUB.Count_And_Get
1465             (      p_encoded   =>  FND_API.G_FALSE
1466                ,   p_count     =>  x_msg_count
1467                ,   p_data      =>  x_msg_data
1468             );
1469         END IF;
1470         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1471     WHEN NO_DATA_FOUND THEN
1472         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1473         IF (x_msg_data IS NOT NULL) THEN
1474             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Validate_Form_Func_Extension ';
1475         ELSE
1476             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Validate_Form_Func_Extension ';
1477         END IF;
1478     WHEN OTHERS THEN
1479         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1480         IF (x_msg_data IS NOT NULL) THEN
1481             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Validate_Form_Func_Extension ';
1482         ELSE
1483             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Validate_Form_Func_Extension ';
1484         END IF;
1485 END Validate_Form_Func_Extension;
1486 
1487 /*********************************************************************************************
1488 FUNCTION Name  : Validate_Object_Mapping
1489 PARAMETERS
1490           p_object_type               :  Object Type
1491           p_object_name               :  Object Name
1492 
1493 DESCRIPTION
1494           This function tells whether the mapping between
1495           object type and functional Area already exists in the
1496           DataBase.
1497 
1498 AUTHOR     : Ashankar
1499 *********************************************************************************************/
1500 
1501 FUNCTION Validate_Object_Mapping
1502 (
1503     p_object_type         IN          VARCHAR2
1504  ,  p_object_name         IN          VARCHAR2
1505 
1506  ) RETURN NUMBER
1507  IS
1508   l_count       NUMBER;
1509 BEGIN
1510 
1511   IF (p_object_type <> BIS_OBJECT_EXTENSIONS_PUB.C_MEASURE) THEN
1512 
1513     SELECT COUNT(0)
1514     INTO   l_count
1515     FROM   BIS_FORM_FUNCTION_EXTENSION
1516     WHERE  UPPER(TRIM(object_name)) = UPPER(TRIM(p_object_name));
1517 
1518   ELSE
1519 
1520     SELECT COUNT(0)
1521     INTO   l_count
1522     FROM   BIS_MEASURES_EXTENSION
1523     WHERE  UPPER(TRIM(measure_short_name)) = UPPER(TRIM(p_object_name));
1524 
1525   END IF;
1526 
1527   RETURN l_count;
1528 
1529 EXCEPTION
1530   WHEN OTHERS THEN
1531      RETURN C_INVALID;
1532 END Validate_Object_Mapping;
1533 
1534 /*********************************************************************************************
1535 PROCEDURE Name  : Object_Funct_Area_Map
1536 PARAMETERS
1537           p_Obj_Type               :  Object Type
1538           p_Obj_Name               :  Object Name
1539           p_App_Id                 :  Application Id             [Will be Null for Measures]
1540           p_Func_Area_Sht_Name     :  Functional Area Short Name [Can be Null]
1541 DESCRIPTION
1542           This Method calls either Measure_Funct_Area_Map
1543           or Form_Func_Functional_Area_Map based on the
1544           p_Obj_Type
1545 AUTHOR     : Ashankar
1546 *********************************************************************************************/
1547 
1548 PROCEDURE Object_Funct_Area_Map
1549 (
1550    p_Api_Version            IN          NUMBER
1551  , p_Commit                 IN          VARCHAR2 := FND_API.G_FALSE
1552  , p_Obj_Type               IN          VARCHAR2
1553  , p_Obj_Name               IN          VARCHAR2
1554  , p_App_Id                 IN          NUMBER
1555  , p_Func_Area_Sht_Name     IN          VARCHAR2
1556  , x_Return_Status          OUT NOCOPY  VARCHAR2
1557  , x_Msg_Count              OUT NOCOPY  NUMBER
1558  , x_Msg_Data               OUT NOCOPY  VARCHAR2
1559 
1560 ) IS
1561      l_Meas_Extn_Rec    BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type;
1562      l_Mes_up_Rec       BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type;
1563 BEGIN
1564     FND_MSG_PUB.Initialize;
1565     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
1566 
1567     IF(p_Obj_Type=BIS_OBJECT_EXTENSIONS_PUB.C_MEASURE) THEN
1568         BIS_OBJECT_EXTENSIONS_PUB.Measure_Funct_Area_Map
1569         (
1570                 p_Api_Version         => p_Api_Version
1571             ,   p_Commit              => p_Commit
1572             ,   p_Obj_Type            => p_Obj_Type
1573             ,   p_Obj_Name            => p_Obj_Name
1574             ,   p_App_Id              => p_App_Id
1575             ,   p_Func_Area_Sht_Name  => p_Func_Area_Sht_Name
1576             ,   x_Return_Status       => x_Return_Status
1577             ,   x_Msg_Count           => x_Msg_Count
1578             ,   x_Msg_Data            => x_Msg_Data
1579         );
1580         IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1581             RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
1582         END IF;
1583     ELSE
1584         BIS_OBJECT_EXTENSIONS_PUB.Form_Func_Functional_Area_Map
1585         (
1586                 p_Api_Version         => p_Api_Version
1587             ,   p_Commit              => p_Commit
1588             ,   p_Obj_Type            => p_Obj_Type
1589             ,   p_Obj_Name            => p_Obj_Name
1590             ,   p_App_Id              => p_App_Id
1591             ,   p_Func_Area_Sht_Name  => p_Func_Area_Sht_Name
1592             ,   x_Return_Status       => x_Return_Status
1593             ,   x_Msg_Count           => x_Msg_Count
1594             ,   x_Msg_Data            => x_Msg_Data
1595         );
1596         IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1597             RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
1598         END IF;
1599     END IF;
1600 EXCEPTION
1601     WHEN FND_API.G_EXC_ERROR THEN
1602         IF (x_msg_data IS NULL) THEN
1603             FND_MSG_PUB.Count_And_Get
1604             (      p_encoded   =>  FND_API.G_FALSE
1605                ,   p_count     =>  x_msg_count
1606                ,   p_data      =>  x_msg_data
1607             );
1608         END IF;
1609         x_return_status :=  FND_API.G_RET_STS_ERROR;
1610     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1611         IF (x_msg_data IS NULL) THEN
1612             FND_MSG_PUB.Count_And_Get
1613             (      p_encoded   =>  FND_API.G_FALSE
1614                ,   p_count     =>  x_msg_count
1615                ,   p_data      =>  x_msg_data
1616             );
1617         END IF;
1618         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1619     WHEN NO_DATA_FOUND THEN
1620         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1621         IF (x_msg_data IS NOT NULL) THEN
1622             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Object_Funct_Area_Map ';
1623         ELSE
1624             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Object_Funct_Area_Map ';
1625         END IF;
1626     WHEN OTHERS THEN
1627         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1628         IF (x_msg_data IS NOT NULL) THEN
1629             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Object_Funct_Area_Map ';
1630         ELSE
1631             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Object_Funct_Area_Map ';
1632         END IF;
1633 
1634 END Object_Funct_Area_Map;
1635 
1636 /*********************************************************************************************
1637 FUNCTION Name  : Measure_Funct_Area_Map
1638 PARAMETERS
1639             p_Obj_Type               :  Object Type
1640             p_Obj_Name               :  Object Name
1641             p_App_Id                 :  Application Id             [Will be Null for Measures]
1642             p_Func_Area_Sht_Name     :  Functional Area Short Name [Can be Null]
1643 
1644 DESCRIPTION
1645            Following are the Rules here.
1646            1.Validate if the Object is already mapped.
1647              If not then check if the functional Area Id is NULL
1648                If yes then throw the error message that this association doesn't exists.
1649                else
1650                 Create the mapping for this object typw with the functional Area.
1651            2.If the Object is already mapped.
1652                Check if the Object is mapped to the functional Area Id being passed.
1653                 If yes then throw the message that this association already exists.
1654                 else
1655                  update the object type with the new functional Area Id.
1656            3.If the Functional Area Id is passed as NULL and the association exists
1657              for the current Objevt Type then delete that association.
1658 AUTHOR     : Ashankar
1659 *********************************************************************************************/
1660 PROCEDURE Measure_Funct_Area_Map
1661 (
1662         p_Api_Version         IN          NUMBER
1663     ,   p_Commit              IN          VARCHAR2 := FND_API.G_FALSE
1664     ,   p_Obj_Type            IN          VARCHAR2
1665     ,   p_Obj_Name            IN          VARCHAR2
1666     ,   p_App_Id              IN          NUMBER
1667     ,   p_Func_Area_Sht_Name  IN          VARCHAR2
1668     ,   x_Return_Status       OUT NOCOPY  VARCHAR2
1669     ,   x_Msg_Count           OUT NOCOPY  NUMBER
1670     ,   x_Msg_Data            OUT NOCOPY  VARCHAR2
1671 )IS
1672     l_count            NUMBER;
1673     l_Meas_Extn_Rec    BIS_OBJECT_EXTENSIONS_PUB.Measure_Extension_Type;
1674 BEGIN
1675     FND_MSG_PUB.Initialize;
1676     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
1677 
1678     l_count := Validate_Object_Mapping (p_object_type => p_Obj_Type ,p_object_name=>p_Obj_Name);
1679 
1680     IF(l_count>0)THEN
1681         IF(p_Func_Area_Sht_Name IS NOT NULL) THEN
1682 
1683             l_Meas_Extn_Rec.Measure_Short_Name   :=  p_Obj_Name;
1684             l_Meas_Extn_Rec.Functional_Area_Id   :=  Get_FA_Id_By_Short_Name(p_Func_Area_Sht_Name);
1685             l_Meas_Extn_Rec.Func_Area_Short_Name :=  p_Func_Area_Sht_Name;
1686             l_Meas_Extn_Rec.Name                 :=  BIS_COMMON_UTILS.G_DEF_CHAR;
1687             l_Meas_Extn_Rec.Description          :=  BIS_COMMON_UTILS.G_DEF_CHAR;
1688             l_Meas_Extn_Rec.Created_By           :=  FND_GLOBAL.user_id;
1689             l_Meas_Extn_Rec.Last_Updated_By      :=  FND_GLOBAL.user_id;
1690             l_Meas_Extn_Rec.Last_Update_Date     :=  SYSDATE;
1691             l_Meas_Extn_Rec.Last_Update_Login    :=  FND_GLOBAL.LOGIN_ID;
1692 
1693             BIS_OBJECT_EXTENSIONS_PUB.Update_Measure_Extension
1694             (
1695                     p_Api_Version    => p_Api_Version
1696                 ,   p_Commit         => p_Commit
1697                 ,   p_Meas_Extn_Rec  => l_Meas_Extn_Rec
1698                 ,   x_Return_Status  => x_Return_Status
1699                 ,   x_Msg_Count      => x_Msg_Count
1700                 ,   x_Msg_Data       => x_Msg_Data
1701             );
1702             IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1703                 RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
1704             ELSE
1705                 FND_MESSAGE.SET_NAME('BIS','BIS_OBJ_EXT_UPDATE_SUCCESSFUL');
1706                 x_Msg_Data := FND_MESSAGE.GET;
1707             END IF;
1708         ELSE
1709             l_Meas_Extn_Rec.Measure_Short_Name   :=  p_Obj_Name;
1710             BIS_OBJECT_EXTENSIONS_PUB.Delete_Measure_Extension
1711             (
1712                     p_Api_Version         => p_Api_Version
1713                 ,   p_Commit              => p_Commit
1714                 ,   p_Meas_Extn_Rec       => l_Meas_Extn_Rec
1715                 ,   x_Return_Status       => x_Return_Status
1716                 ,   x_Msg_Count           => x_Msg_Count
1717                 ,   x_Msg_Data            => x_Msg_Data
1718             );
1719             IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1720               RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
1721             ELSE
1722               FND_MESSAGE.SET_NAME('BIS','BIS_OBJ_EXT_DELETE_SUCCESSFUL');
1723               x_Msg_Data := FND_MESSAGE.GET;
1724             END IF;
1725 
1726         END IF;
1727     ELSE
1728         IF(p_Func_Area_Sht_Name IS NULL) THEN
1729             FND_MESSAGE.SET_NAME('BIS','BIS_OBJ_EXT_DOES_NOT_EXIST');
1730             FND_MSG_PUB.ADD;
1731             RAISE FND_API.G_EXC_ERROR;
1732         ELSE
1733             l_Meas_Extn_Rec.Measure_Short_Name   :=  p_Obj_Name;
1734             l_Meas_Extn_Rec.Functional_Area_Id   :=  Get_FA_Id_By_Short_Name(p_Func_Area_Sht_Name);
1735             l_Meas_Extn_Rec.Func_Area_Short_Name :=  p_Func_Area_Sht_Name;
1736             l_Meas_Extn_Rec.Name                 :=  BIS_COMMON_UTILS.G_DEF_CHAR;
1737             l_Meas_Extn_Rec.Description          :=  BIS_COMMON_UTILS.G_DEF_CHAR;
1738             l_Meas_Extn_Rec.Created_By           :=  FND_GLOBAL.user_id;
1739             l_Meas_Extn_Rec.Creation_Date        :=  SYSDATE;
1740             l_Meas_Extn_Rec.Last_Updated_By      :=  FND_GLOBAL.user_id;
1741             l_Meas_Extn_Rec.Last_Update_Date     :=  SYSDATE;
1742             l_Meas_Extn_Rec.Last_Update_Login    :=  FND_GLOBAL.LOGIN_ID;
1743 
1744             BIS_OBJECT_EXTENSIONS_PUB.Create_Measure_Extension
1745             (
1746                     p_Api_Version    => p_Api_Version
1747                 ,   p_Commit         => p_Commit
1748                 ,   p_Meas_Extn_Rec  => l_Meas_Extn_Rec
1749                 ,   x_Return_Status  => x_Return_Status
1750                 ,   x_Msg_Count      => x_Msg_Count
1751                 ,   x_Msg_Data       => x_Msg_Data
1752             );
1753             IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1754                 RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
1755             ELSE
1756                 FND_MESSAGE.SET_NAME('BIS','BIS_OBJ_EXT_CREATE_SUCCESSFUL');
1757                 x_Msg_Data := FND_MESSAGE.GET;
1758             END IF;
1759         END IF;
1760     END IF;
1761 EXCEPTION
1762     WHEN FND_API.G_EXC_ERROR THEN
1763         IF (x_msg_data IS NULL) THEN
1764             FND_MSG_PUB.Count_And_Get
1765             (      p_encoded   =>  FND_API.G_FALSE
1766                ,   p_count     =>  x_msg_count
1767                ,   p_data      =>  x_msg_data
1768             );
1769         END IF;
1770         x_return_status :=  FND_API.G_RET_STS_ERROR;
1771     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1772         IF (x_msg_data IS NULL) THEN
1773             FND_MSG_PUB.Count_And_Get
1774             (      p_encoded   =>  FND_API.G_FALSE
1775                ,   p_count     =>  x_msg_count
1776                ,   p_data      =>  x_msg_data
1777             );
1778         END IF;
1779         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1780     WHEN NO_DATA_FOUND THEN
1781         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1782         IF (x_msg_data IS NOT NULL) THEN
1783             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Measure_Funct_Area_Map ';
1784         ELSE
1785             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Measure_Funct_Area_Map ';
1786         END IF;
1787     WHEN OTHERS THEN
1788         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1789         IF (x_msg_data IS NOT NULL) THEN
1790             x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Measure_Funct_Area_Map ';
1791         ELSE
1792             x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Measure_Funct_Area_Map ';
1793         END IF;
1794 END Measure_Funct_Area_Map;
1795 
1796 /*********************************************************************************************
1797 FUNCTION Name  : Form_Func_Functional_Area_Map
1798 PARAMETERS
1799             p_Obj_Type               :  Object Type
1800             p_Obj_Name               :  Object Name
1801             p_App_Id                 :  Application Id             [Will be Null for Measures]
1802             p_Func_Area_Sht_Name     :  Functional Area Short Name [Can be Null]
1803 
1804 DESCRIPTION
1805            Following are the Rules here.
1806            1.Validate if the Object is already mapped.
1807              If not then check if the functional Area Id is NULL
1808                If yes then throw the error message that this association doesn't exists.
1809                else
1810                 Create the mapping for this object typw with the functional Area.
1811            2.If the Object is already mapped.
1812                Check if the Object is mapped to the functional Area Id being passed.
1813                 If yes then throw the message that this association already exists.
1814                 else
1815                  update the object type with the new functional Area Id.
1816            3.If the Functional Area Id is passed as NULL and the association exists
1817              for the current Objevt Type then delete that association.
1818 AUTHOR     : Ashankar
1819 *********************************************************************************************/
1820 PROCEDURE Form_Func_Functional_Area_Map
1821 (
1822         p_Api_Version         IN          NUMBER
1823     ,   p_Commit              IN          VARCHAR2 := FND_API.G_FALSE
1824     ,   p_Obj_Type            IN          VARCHAR2
1825     ,   p_Obj_Name            IN          VARCHAR2
1826     ,   p_App_Id              IN          NUMBER
1827     ,   p_Func_Area_Sht_Name  IN          VARCHAR2
1828     ,   x_Return_Status       OUT NOCOPY  VARCHAR2
1829     ,   x_Msg_Count           OUT NOCOPY  NUMBER
1830     ,   x_Msg_Data            OUT NOCOPY  VARCHAR2
1831 )IS
1832     l_count            NUMBER;
1833     l_From_Func_Extn_Rec    BIS_OBJECT_EXTENSIONS_PUB.Form_Function_Extension_Type;
1834     --l_out              VARCHAR2(3);
1835 BEGIN
1836     FND_MSG_PUB.Initialize;
1837     x_Return_Status := FND_API.G_RET_STS_SUCCESS;
1838 
1839     l_count := Validate_Object_Mapping (p_object_type => p_Obj_Type ,p_object_name=>p_Obj_Name);
1840 
1841     IF(l_count>0)THEN
1842         IF(p_Func_Area_Sht_Name IS NOT NULL) THEN
1843 
1844                 l_From_Func_Extn_Rec.Object_Type           := p_Obj_Type;
1845                 l_From_Func_Extn_Rec.Object_Name           := p_Obj_Name;
1846                 l_From_Func_Extn_Rec.Application_Id        := p_App_Id;
1847                 l_From_Func_Extn_Rec.Func_Area_Id          := Get_FA_Id_By_Short_Name(p_Func_Area_Sht_Name);
1848                 l_From_Func_Extn_Rec.Func_Area_short_name  := p_Func_Area_Sht_Name;
1849                 l_From_Func_Extn_Rec.Name                  := BIS_COMMON_UTILS.G_DEF_CHAR;
1850                 l_From_Func_Extn_Rec.Description           := BIS_COMMON_UTILS.G_DEF_CHAR;
1851                 l_From_Func_Extn_Rec.Created_By            := FND_GLOBAL.user_id;
1852                 l_From_Func_Extn_Rec.Last_Updated_By       := FND_GLOBAL.user_id;
1853                 l_From_Func_Extn_Rec.Last_Update_Date      := SYSDATE;
1854                 l_From_Func_Extn_Rec.Last_Update_Login     := FND_GLOBAL.LOGIN_ID;
1855 
1856                 BIS_OBJECT_EXTENSIONS_PUB.Update_Form_Func_Extension
1857                 (
1858                         p_Api_Version         =>  p_Api_Version
1859                     ,   p_Commit              =>  p_Commit
1860                     ,   p_Form_Func_Extn_Rec  =>  l_From_Func_Extn_Rec
1861                     ,   x_Return_Status       =>  x_Return_Status
1862                     ,   x_Msg_Count           =>  x_Msg_Count
1863                     ,   x_Msg_Data            =>  x_Msg_Data
1864                 );
1865                 IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1866                     RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
1867                 ELSE
1868                     FND_MESSAGE.SET_NAME('BIS','BIS_OBJ_EXT_UPDATE_SUCCESSFUL');
1869                     x_Msg_Data := FND_MESSAGE.GET;
1870                 END IF;
1871         ELSE
1872             l_From_Func_Extn_Rec.Object_Name := p_Obj_Name;
1873             BIS_OBJECT_EXTENSIONS_PUB.Delete_Form_Func_Extension
1874             (
1875                     p_Api_Version         => p_Api_Version
1876                 ,   p_Commit              => p_Commit
1877                 ,   p_Form_Func_Extn_Rec  => l_From_Func_Extn_Rec
1878                 ,   x_Return_Status       => x_Return_Status
1879                 ,   x_Msg_Count           => x_Msg_Count
1880                 ,   x_Msg_Data            => x_Msg_Data
1881             );
1882             IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
1883                 RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
1884             ELSE
1885                 FND_MESSAGE.SET_NAME('BIS','BIS_OBJ_EXT_DELETE_SUCCESSFUL');
1886                 x_Msg_Data := FND_MESSAGE.GET;
1887             END IF;
1888 
1889         END IF;
1890     ELSE
1891       IF(p_Func_Area_Sht_Name IS NULL) THEN
1892         FND_MESSAGE.SET_NAME('BIS','BIS_OBJ_EXT_DOES_NOT_EXIST');
1893         FND_MSG_PUB.ADD;
1894         RAISE FND_API.G_EXC_ERROR;
1895       ELSE
1896             l_From_Func_Extn_Rec.Object_Type           := p_Obj_Type;
1897             l_From_Func_Extn_Rec.Object_Name           := p_Obj_Name;
1898             l_From_Func_Extn_Rec.Application_Id        := p_App_Id;
1899             l_From_Func_Extn_Rec.Func_Area_Id          := Get_FA_Id_By_Short_Name(p_Func_Area_Sht_Name);
1900             l_From_Func_Extn_Rec.Func_Area_short_name  := p_Func_Area_Sht_Name;
1901             l_From_Func_Extn_Rec.Name                  := BIS_COMMON_UTILS.G_DEF_CHAR;
1902             l_From_Func_Extn_Rec.Description           := BIS_COMMON_UTILS.G_DEF_CHAR;
1903             l_From_Func_Extn_Rec.Created_By            := FND_GLOBAL.user_id;
1904             l_From_Func_Extn_Rec.Creation_Date         := SYSDATE;
1905             l_From_Func_Extn_Rec.Last_Updated_By       := FND_GLOBAL.user_id;
1906             l_From_Func_Extn_Rec.Last_Update_Date      := SYSDATE;
1907             l_From_Func_Extn_Rec.Last_Update_Login     := FND_GLOBAL.LOGIN_ID;
1908 
1909             BIS_OBJECT_EXTENSIONS_PUB.Create_Form_Func_Extension
1910             (
1911                     p_Api_Version         =>  p_Api_Version
1912                 ,   p_Commit              =>  p_Commit
1913                 ,   p_Form_Func_Extn_Rec  =>  l_From_Func_Extn_Rec
1914                 ,   x_Return_Status       =>  x_Return_Status
1915                 ,   x_Msg_Count           =>  x_Msg_Count
1916                 ,   x_Msg_Data            =>  x_Msg_Data
1917             );
1918             IF(x_return_status <> FND_API.G_RET_STS_SUCCESS)THEN
1919                 RAISE  FND_API.G_EXC_UNEXPECTED_ERROR;
1920             ELSE
1921                 FND_MESSAGE.SET_NAME('BIS','BIS_OBJ_EXT_CREATE_SUCCESSFUL');
1922                 x_Msg_Data := FND_MESSAGE.GET;
1923             END IF;
1924       END IF;
1925     END IF;
1926 EXCEPTION
1927   WHEN FND_API.G_EXC_ERROR THEN
1928      IF (x_msg_data IS NULL) THEN
1929          FND_MSG_PUB.Count_And_Get
1930          (      p_encoded   =>  FND_API.G_FALSE
1931             ,   p_count     =>  x_msg_count
1932             ,   p_data      =>  x_msg_data
1933          );
1934      END IF;
1935      x_return_status :=  FND_API.G_RET_STS_ERROR;
1936  WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1937      IF (x_msg_data IS NULL) THEN
1938          FND_MSG_PUB.Count_And_Get
1939          (      p_encoded   =>  FND_API.G_FALSE
1940             ,   p_count     =>  x_msg_count
1941             ,   p_data      =>  x_msg_data
1942          );
1943      END IF;
1944      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1945  WHEN NO_DATA_FOUND THEN
1946      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1947      IF (x_msg_data IS NOT NULL) THEN
1948          x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Form_Func_Functional_Area_Map ';
1949      ELSE
1950          x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Form_Func_Functional_Area_Map ';
1951      END IF;
1952  WHEN OTHERS THEN
1953      x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1954      IF (x_msg_data IS NOT NULL) THEN
1955          x_msg_data      :=  x_msg_data||' -> BIS_OBJECT_EXTENSIONS_PUB.Form_Func_Functional_Area_Map ';
1956      ELSE
1957          x_msg_data      :=  SQLERRM||' at BIS_OBJECT_EXTENSIONS_PUB.Form_Func_Functional_Area_Map ';
1958     END IF;
1959 END Form_Func_Functional_Area_Map;
1960 PROCEDURE ADD_LANGUAGE
1961 IS
1962 BEGIN
1963    BIS_OBJECT_EXTENSIONS_PVT.ADD_LANGUAGE;
1964 END ADD_LANGUAGE;
1965 
1966 END BIS_OBJECT_EXTENSIONS_PUB;