1: PACKAGE BODY BIS_UTILITIES_PUB AS
2: /* $Header: BISPUTLB.pls 120.0 2005/06/01 18:06:50 appldev noship $ */
3:
4:
5: G_PKG_NAME CONSTANT VARCHAR2(30):='BIS_UTILITIES_PUB';
1: PACKAGE BODY BIS_UTILITIES_PUB AS
2: /* $Header: BISPUTLB.pls 120.0 2005/06/01 18:06:50 appldev noship $ */
3:
4:
5: G_PKG_NAME CONSTANT VARCHAR2(30):='BIS_UTILITIES_PUB';
6:
7:
8: g_db_nls_lang varchar2(200) := userenv('LANGUAGE');
9: g_db_charset varchar2(200) := substr(g_db_nls_lang,
19: , p_user_name IN VARCHAR2 Default G_NULL_CHAR
20: , x_user_id OUT NOCOPY NUMBER
21: , x_user_name OUT NOCOPY VARCHAR2
22: , x_return_status OUT NOCOPY VARCHAR2
23: , x_error_Tbl OUT NOCOPY BIS_UTILITIES_PUB.Error_Tbl_Type
24: )
25: IS
26: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
27: BEGIN
22: , x_return_status OUT NOCOPY VARCHAR2
23: , x_error_Tbl OUT NOCOPY BIS_UTILITIES_PUB.Error_Tbl_Type
24: )
25: IS
26: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
27: BEGIN
28: x_return_status := FND_API.G_RET_STS_SUCCESS;
29:
30: IF BIS_UTILITIES_PUB.Value_Not_Missing(p_user_id) = FND_API.G_TRUE THEN
26: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
27: BEGIN
28: x_return_status := FND_API.G_RET_STS_SUCCESS;
29:
30: IF BIS_UTILITIES_PUB.Value_Not_Missing(p_user_id) = FND_API.G_TRUE THEN
31: select user_id , user_name
32: into x_user_id, x_user_name
33: from fnd_user
34: where user_id = p_user_id;
31: select user_id , user_name
32: into x_user_id, x_user_name
33: from fnd_user
34: where user_id = p_user_id;
35: ELSIF BIS_UTILITIES_PUB.Value_Not_Missing(p_user_name) = FND_API.G_TRUE THEN
36: select user_id , user_name
37: into x_user_id, x_user_name
38: from fnd_user
39: where user_name = p_user_name;
67: , p_organization_name IN VARCHAR2 Default G_NULL_CHAR
68: , x_organization_id OUT NOCOPY NUMBER
69: , x_organization_name OUT NOCOPY VARCHAR2
70: , x_return_status OUT NOCOPY VARCHAR2
71: , x_error_Tbl OUT NOCOPY BIS_UTILITIES_PUB.Error_Tbl_Type
72: )
73: IS
74: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
75:
70: , x_return_status OUT NOCOPY VARCHAR2
71: , x_error_Tbl OUT NOCOPY BIS_UTILITIES_PUB.Error_Tbl_Type
72: )
73: IS
74: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
75:
76: BEGIN
77: x_return_status := FND_API.G_RET_STS_SUCCESS;
78:
75:
76: BEGIN
77: x_return_status := FND_API.G_RET_STS_SUCCESS;
78:
79: IF (BIS_UTILITIES_PUB.Value_Not_Missing(p_organization_id) = FND_API.G_TRUE)
80: THEN
81: select organization_id , name
82: into x_organization_id, x_organization_name
83: from hr_all_organization_units
81: select organization_id , name
82: into x_organization_id, x_organization_name
83: from hr_all_organization_units
84: where organization_id = p_organization_id;
85: ELSIF BIS_UTILITIES_PUB.Value_Not_Missing(p_organization_name) = FND_API.G_TRUE THEN
86: select organization_id , name
87: into x_organization_id, x_organization_name
88: from hr_all_organization_units
89: where name = p_organization_name;
122: , p_user_name IN VARCHAR2 Default G_NULL_CHAR
123: , p_region_code IN VARCHAR2
124: , x_where_clause OUT NOCOPY VARCHAR2
125: , x_return_status OUT NOCOPY VARCHAR2
126: , x_error_Tbl OUT NOCOPY BIS_UTILITIES_PUB.Error_Tbl_Type
127: )
128: IS
129: BEGIN
130:
153: , p_region_code IN VARCHAR2
154: , p_dimension_short_name IN VARCHAR2
155: , x_where_clause OUT NOCOPY VARCHAR2
156: , x_return_status OUT NOCOPY VARCHAR2
157: , x_error_Tbl OUT NOCOPY BIS_UTILITIES_PUB.Error_Tbl_Type
158: )
159: IS
160:
161: l_user_id NUMBER;
162: l_dim_level_view BISBV_DIMENSION_LEVELS.LEVEL_VALUES_VIEW_NAME%TYPE;
163: l_database_object VARCHAR2(30);
164: l_dim_level_short_name BISBV_DIMENSION_LEVELS.DIMENSION_LEVEL_SHORT_NAME%TYPE;
165: counter NUMBER := 0;
166: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
167:
168: CURSOR c_views IS
169: SELECT level_values_view_name, dimension_level_short_name
170: FROM bisfv_dimension_levels
192: WHERE UPPER(level_values_view_name) = UPPER(l_database_object) and dimension_short_name = p_dimension_short_name;
193: END IF;
194:
195:
196: IF BIS_UTILITIES_PUB.Value_Missing(p_user_id) = FND_API.G_TRUE
197: THEN
198: SELECT user_id
199: INTO l_user_id
200: FROM fnd_user
215: );
216:
217: ELSIF p_dimension_short_name = BIS_UTILITIES_PVT.GET_TIME_DIMENSION_NAME(p_DimLevelId => NULL
218: ,p_DimLevelName => l_dim_level_short_name) THEN
219: IF ( BIS_UTILITIES_PUB.Value_Missing(p_organization_id) = FND_API.G_TRUE ) THEN -- 2694965
220: RAISE FND_API.G_EXC_ERROR;
221: END IF;
222: Retrieve_Time_Where_Clause
223: ( p_database_object => l_database_object
272: l_Responsibility_tbl BIS_Responsibility_PVT.Responsibility_Tbl_Type;
273: l_where_clause VARCHAR2(32000);
274: l_comma VARCHAR2(2) := ',';
275: l_return_status VARCHAR2(100);
276: l_error_Tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
277:
278: BEGIN
279:
280: FND_MSG_PUB.initialize;
321: , p_user_id IN NUMBER
322: , p_dim_level_short_name IN VARCHAR2
323: , x_where_clause OUT NOCOPY VARCHAR2
324: , x_return_status OUT NOCOPY VARCHAR2
325: , x_error_Tbl OUT NOCOPY BIS_UTILITIES_PUB.Error_Tbl_Type
326: )
327: IS
328:
329: l_Responsibility_tbl BIS_Responsibility_PVT.Responsibility_Tbl_Type;
329: l_Responsibility_tbl BIS_Responsibility_PVT.Responsibility_Tbl_Type;
330: l_where_clause VARCHAR2(32000);
331: l_comma VARCHAR2(2) := ',';
332: l_database_object VARCHAR2(30);
333: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
334:
335: BEGIN
336:
337: FND_MSG_PUB.initialize;
368: ELSE
369: l_where_clause := '';
370: END IF;
371:
372: l_where_clause := BIS_UTILITIES_PUB.encode(l_where_clause);
373:
374: x_where_clause := l_where_clause;
375:
376: EXCEPTION
409: FND_MSG_PUB.initialize;
410:
411: IF(p_time_dim_level_short_name <> 'TOTAL_TIME')
412: AND (is_time_dependent_on_org(p_time_lvl_short_name => p_time_dim_level_short_name)
413: = BIS_UTILITIES_PUB.G_TIME_IS_DEPEN_ON_ORG) THEN --2684911
414: l_where_clause :=
415: '"organization_id="+'||'"''"+'||'document.'||p_org_form_name||'.'
416: ||p_ak_org_id_var||'.value+'||'"''"'||'+ "%20and%20organization_type="+'
417: ||'"'''||BIS_UTILITIES_PUB.encode(p_org_dim_level_short_name)||''''||'"';
413: = BIS_UTILITIES_PUB.G_TIME_IS_DEPEN_ON_ORG) THEN --2684911
414: l_where_clause :=
415: '"organization_id="+'||'"''"+'||'document.'||p_org_form_name||'.'
416: ||p_ak_org_id_var||'.value+'||'"''"'||'+ "%20and%20organization_type="+'
417: ||'"'''||BIS_UTILITIES_PUB.encode(p_org_dim_level_short_name)||''''||'"';
418: ELSE
419: l_where_clause := '""';
420: END IF;
421:
438: FND_MSG_PUB.initialize;
439:
440: IF(p_time_dim_level_short_name <> 'TOTAL_TIME')
441: AND (is_time_dependent_on_org(p_time_lvl_short_name => p_time_dim_level_short_name)
442: = BIS_UTILITIES_PUB.G_TIME_IS_DEPEN_ON_ORG) THEN --2684911
443: l_where_clause :=
444: 'organization_id = '|| '''' || p_org_id || '''' || ' and organization_type = '
445: || '''' || p_org_dim_level_short_name || '''';
446: ELSE
457: , p_organization_id IN VARCHAR2
458: , p_organization_type IN VARCHAR2 Default G_NULL_CHAR
459: , x_where_clause OUT NOCOPY VARCHAR2
460: , x_return_status OUT NOCOPY VARCHAR2
461: , x_error_Tbl OUT NOCOPY BIS_UTILITIES_PUB.Error_Tbl_Type
462: )
463: IS
464:
465: l_Responsibility_tbl BIS_Responsibility_PVT.Responsibility_Tbl_Type;
464:
465: l_Responsibility_tbl BIS_Responsibility_PVT.Responsibility_Tbl_Type;
466: l_where_clause VARCHAR2(32000);
467: l_database_object VARCHAR2(30);
468: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
469:
470: BEGIN
471:
472: FND_MSG_PUB.initialize;
473:
474: IF(p_dim_level_short_name <> 'TOTAL_TIME') THEN
475:
476: IF (is_time_dependent_on_org(p_time_lvl_short_name => p_dim_level_short_name)
477: = BIS_UTILITIES_PUB.G_TIME_IS_DEPEN_ON_ORG) THEN --2684911
478: --
479: -- NULL is included because of some kludge in the AK definition
480: l_where_clause := ' 1 = 1 '
481: ||' INTERSECT SELECT DISTINCT VALUE, ID'
497: || p_database_object;
498: END IF;
499: END IF;
500:
501: l_where_clause := BIS_UTILITIES_PUB.encode(l_where_clause);
502: x_where_clause := l_where_clause;
503:
504: EXCEPTION
505: WHEN NO_DATA_FOUND THEN
530: , p_organization_type IN VARCHAR2 Default G_NULL_CHAR
531: , p_dim_level_short_name IN VARCHAR2
532: , x_where_clause OUT NOCOPY VARCHAR2
533: , x_return_status OUT NOCOPY VARCHAR2
534: , x_error_Tbl OUT NOCOPY BIS_UTILITIES_PUB.Error_Tbl_Type
535: )
536: IS
537:
538: l_Responsibility_tbl BIS_Responsibility_PVT.Responsibility_Tbl_Type;
537:
538: l_Responsibility_tbl BIS_Responsibility_PVT.Responsibility_Tbl_Type;
539: l_where_clause VARCHAR2(32000);
540: l_database_object VARCHAR2(30);
541: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
542:
543: BEGIN
544:
545: -- In the future if a where clause is really added for this
606: IS
607: l_name varchar2(100);
608: BEGIN
609:
610: IF BIS_UTILITIES_PUB.Value_Not_Missing(p_value) = FND_API.G_TRUE THEN
611: l_name := WF_DIRECTORY.GetRoleDisplayName(p_value);
612: ELSE
613: l_name := NULL;
614: END IF;
625: IS
626: l_name FND_FORM_FUNCTIONS.FUNCTION_NAME%TYPE;
627: BEGIN
628:
629: IF BIS_UTILITIES_PUB.Value_Not_Missing(p_value) = FND_API.G_TRUE THEN
630: select FUNCTION_NAME
631: into l_name
632: from fnd_form_functions
633: where function_id = p_value;
646: IS
647: l_name varchar2(100);
648: BEGIN
649:
650: IF BIS_UTILITIES_PUB.Value_Not_Missing(p_value) = FND_API.G_TRUE THEN
651: select USER_FUNCTION_NAME
652: into l_name
653: from fnd_form_functions_tl
654: where function_id = p_value
676: l_version number;
677: l_name varchar2(100);
678: BEGIN
679:
680: IF BIS_UTILITIES_PUB.Value_Missing(p_name) = FND_API.G_TRUE
681: OR BIS_UTILITIES_PUB.Value_Missing(p_type) = FND_API.G_TRUE
682: THEN
683: l_name := NULL;
684: ELSE
677: l_name varchar2(100);
678: BEGIN
679:
680: IF BIS_UTILITIES_PUB.Value_Missing(p_name) = FND_API.G_TRUE
681: OR BIS_UTILITIES_PUB.Value_Missing(p_type) = FND_API.G_TRUE
682: THEN
683: l_name := NULL;
684: ELSE
685: select version
705:
706: -- First segment is segment #1
707: FUNCTION Retrieve_Segment
708: ( p_string IN VARCHAR2
709: , p_delimitor IN VARCHAR2 Default BIS_UTILITIES_PUB.G_VALUE_SEPARATOR
710: , p_segment_num IN NUMBER Default 1
711: ) RETURN VARCHAR2
712: IS
713: l_string VARCHAR2(32000);
829: PROCEDURE Build_HTML_Banner
830: ( p_title IN VARCHAR2
831: , x_banner_string OUT NOCOPY VARCHAR2
832: , x_return_status OUT NOCOPY VARCHAR2
833: , x_error_Tbl OUT NOCOPY BIS_UTILITIES_PUB.Error_Tbl_Type
834: )
835: IS
836: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
837: BEGIN
832: , x_return_status OUT NOCOPY VARCHAR2
833: , x_error_Tbl OUT NOCOPY BIS_UTILITIES_PUB.Error_Tbl_Type
834: )
835: IS
836: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
837: BEGIN
838:
839: BIS_HTML_UTILITIES_PVT.Build_HTML_Banner( ' '
840: , p_title
867: ( p_title IN VARCHAR2
868: , x_banner_string OUT NOCOPY VARCHAR2
869: , x_return_status OUT NOCOPY VARCHAR2
870: , icon_show IN BOOLEAN
871: , x_error_Tbl OUT NOCOPY BIS_UTILITIES_PUB.Error_Tbl_Type
872: )
873: IS
874: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
875: BEGIN
870: , icon_show IN BOOLEAN
871: , x_error_Tbl OUT NOCOPY BIS_UTILITIES_PUB.Error_Tbl_Type
872: )
873: IS
874: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
875: BEGIN
876:
877: BIS_HTML_UTILITIES_PVT.Build_HTML_Banner( ' '
878: , p_title
1008:
1009:
1010: PROCEDURE Build_Parameter_Form
1011: ( p_Form_Action IN VARCHAR2,
1012: p_Report_Param_Table IN BIS_UTILITIES_PUB.Report_Parameter_Tbl_Type
1013: )
1014: IS
1015: BEGIN
1016: BIS_REPORT_UTIL_PVT.Build_Parameter_Form (p_Form_Action,
1229: l_Responsibility_tbl BIS_Responsibility_PVT.Responsibility_Tbl_Type;
1230: l_where_clause VARCHAR2(32000);
1231: l_comma VARCHAR2(2) := ',';
1232: l_return_status VARCHAR2(100);
1233: l_error_Tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
1234: x_error_Tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
1235: BEGIN
1236:
1237: FND_MSG_PUB.initialize;
1230: l_where_clause VARCHAR2(32000);
1231: l_comma VARCHAR2(2) := ',';
1232: l_return_status VARCHAR2(100);
1233: l_error_Tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
1234: x_error_Tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
1235: BEGIN
1236:
1237: FND_MSG_PUB.initialize;
1238:
1324: , x_msg_data OUT NOCOPY VARCHAR2
1325: )
1326: IS
1327: l_where_clause VARCHAR2(32000);
1328: x_error_Tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
1329: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
1330: BEGIN
1331:
1332: FND_MSG_PUB.initialize;
1325: )
1326: IS
1327: l_where_clause VARCHAR2(32000);
1328: x_error_Tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
1329: l_error_tbl BIS_UTILITIES_PUB.Error_Tbl_Type;
1330: BEGIN
1331:
1332: FND_MSG_PUB.initialize;
1333:
1332: FND_MSG_PUB.initialize;
1333:
1334: IF(p_time_dim_level_short_name <> 'TOTAL_TIME')
1335: AND (is_time_dependent_on_org(p_time_lvl_short_name => p_time_dim_level_short_name)
1336: = BIS_UTILITIES_PUB.G_TIME_IS_DEPEN_ON_ORG) THEN --2684911
1337: l_where_clause :=
1338: 'organization_id = '|| '''' || p_org_id || '''' || ' and organization_type = '
1339: || '''' || p_org_dim_level_short_name || '''';
1340: ELSE
1438: -- the old(non-dbc) time dimension levels now, this also includes EDW_TIME_CAL_PERIOD
1439: IF ( (p_parent_level_short_name IS NULL) OR (p_parent_level_id IS NULL)) THEN
1440: RAISE e_invalid_parent;
1441: ELSE
1442: BIS_UTILITIES_PUB.Retrieve_Time_Where_Clause(
1443: P_TIME_DIM_LEVEL_SHORT_NAME => p_dim_level_short_name
1444: ,P_ORG_DIM_LEVEL_SHORT_NAME => p_parent_level_short_name
1445: ,P_ORG_ID => p_parent_level_id
1446: ,X_WHERE_CLAUSE => l_where_clause
1492: -- the old(non-dbc) time dimension levels now, this also includes EDW_TIME_CAL_PERIOD
1493: IF p_usr_id IS NULL THEN
1494: RAISE e_invalid_user;
1495: ELSE
1496: BIS_UTILITIES_PUB.Retrieve_Org_Where_Clause(
1497: p_user_id => p_usr_id
1498: , p_dimension_level_short_name => p_dim_level_short_name
1499: , x_where_clause => l_where_clause
1500: );
1567:
1568: EXCEPTION
1569: WHEN OTHERS THEN
1570: x_return_status := FND_API.G_RET_STS_ERROR;
1571: x_return_msg := 'Error in setting debug log flag in BIS_UTILITIES_PUB.get_debug_mode_profile: '|| SQLERRM;
1572: x_is_debug_mode := FALSE;
1573: END get_debug_mode_profile ;
1574:
1575:
1598:
1599: EXCEPTION
1600: WHEN OTHERS THEN
1601: x_return_status := FND_API.G_RET_STS_ERROR;
1602: x_return_msg := 'Error in setting debug log flag in BIS_UTILITIES_PUB.set_debug_log_flag: '|| SQLERRM;
1603: END set_debug_log_flag;
1604:
1605:
1606:
1636:
1637: EXCEPTION
1638: WHEN OTHERS THEN
1639: x_return_status := FND_API.G_RET_STS_ERROR;
1640: x_return_msg := 'Error in setting debug log flag in BIS_UTILITIES_PUB.open_debug_log: '|| SQLERRM;
1641: END open_debug_log;
1642:
1643:
1644:
1660:
1661: EXCEPTION
1662: WHEN OTHERS THEN
1663: x_return_status := FND_API.G_RET_STS_ERROR;
1664: x_return_msg := 'Error in setting debug log flag in BIS_UTILITIES_PUB.close_debug_log: '|| SQLERRM;
1665: END close_debug_log;
1666:
1667:
1668:
1722: BEGIN
1723: l_Return_Value := 'F';
1724:
1725: l_Profile_Value := FND_PROFILE.VALUE_SPECIFIC(
1726: NAME => BIS_UTILITIES_PUB.G_ENABLE_AUTOGEN_PROFILE_NAME
1727: , USER_ID => NULL
1728: , RESPONSIBILITY_ID => FND_GLOBAL.RESP_ID
1729: , APPLICATION_ID => NULL
1730: , ORG_ID => NULL
1841: l_Return_Value VARCHAR2(1);
1842: BEGIN
1843: l_Return_Value := 'F';
1844:
1845: IF ((BIS_UTILITIES_PUB.Enable_Auto_Generated = 'T') AND
1846: ((BIS_UTILITIES_PUB.Is_Func_Enabled(BIS_UTILITIES_PUB.G_BIA_MEAS_DEFINER_FUNCTION) = 'T') OR
1847: (BIS_UTILITIES_PUB.Is_Func_Enabled(BIS_UTILITIES_PUB.G_MEAS_DEFINER_FORM_FUNCTION)= 'T'))) THEN
1848: l_Return_Value := 'T';
1849: ELSE
1842: BEGIN
1843: l_Return_Value := 'F';
1844:
1845: IF ((BIS_UTILITIES_PUB.Enable_Auto_Generated = 'T') AND
1846: ((BIS_UTILITIES_PUB.Is_Func_Enabled(BIS_UTILITIES_PUB.G_BIA_MEAS_DEFINER_FUNCTION) = 'T') OR
1847: (BIS_UTILITIES_PUB.Is_Func_Enabled(BIS_UTILITIES_PUB.G_MEAS_DEFINER_FORM_FUNCTION)= 'T'))) THEN
1848: l_Return_Value := 'T';
1849: ELSE
1850: l_Return_Value := 'F';
1843: l_Return_Value := 'F';
1844:
1845: IF ((BIS_UTILITIES_PUB.Enable_Auto_Generated = 'T') AND
1846: ((BIS_UTILITIES_PUB.Is_Func_Enabled(BIS_UTILITIES_PUB.G_BIA_MEAS_DEFINER_FUNCTION) = 'T') OR
1847: (BIS_UTILITIES_PUB.Is_Func_Enabled(BIS_UTILITIES_PUB.G_MEAS_DEFINER_FORM_FUNCTION)= 'T'))) THEN
1848: l_Return_Value := 'T';
1849: ELSE
1850: l_Return_Value := 'F';
1851: END IF;
1891:
1892: /******************************************************************************/
1893: FUNCTION Get_Owner_Id(p_name IN VARCHAR2) RETURN NUMBER IS
1894: BEGIN
1895: IF p_name = BIS_UTILITIES_PUB.G_CUSTOM_OWNER THEN
1896: RETURN FND_GLOBAL.USER_ID;
1897: ELSE
1898: RETURN FND_LOAD_UTIL.OWNER_ID(p_name);
1899: END IF;
1917: WHEN OTHERS THEN
1918: RETURN FND_LOAD_UTIL.OWNER_NAME(-1);
1919: END Get_Owner_Name;
1920:
1921: END BIS_UTILITIES_PUB;