203: )RETURN VARCHAR2;
204: --================================================================
205:
206: FUNCTION needs_time_cols (
207: p_source IN bis_levels.source%TYPE
208: ,p_data_source IN bis_levels.level_values_view_name%TYPE
209: ,p_lvlshortname IN bis_levels.short_name%TYPE
210: ,p_dimshortname IN bis_dimensions.short_name%TYPE
211: ) RETURN BOOLEAN;
204: --================================================================
205:
206: FUNCTION needs_time_cols (
207: p_source IN bis_levels.source%TYPE
208: ,p_data_source IN bis_levels.level_values_view_name%TYPE
209: ,p_lvlshortname IN bis_levels.short_name%TYPE
210: ,p_dimshortname IN bis_dimensions.short_name%TYPE
211: ) RETURN BOOLEAN;
212:
205:
206: FUNCTION needs_time_cols (
207: p_source IN bis_levels.source%TYPE
208: ,p_data_source IN bis_levels.level_values_view_name%TYPE
209: ,p_lvlshortname IN bis_levels.short_name%TYPE
210: ,p_dimshortname IN bis_dimensions.short_name%TYPE
211: ) RETURN BOOLEAN;
212:
213: --====================================================================
211: ) RETURN BOOLEAN;
212:
213: --====================================================================
214: FUNCTION IS_DISTINCT_USED
215: (p_Dimension_Level_Short_Name IN bis_levels.short_name%TYPE
216: ) RETURN BOOLEAN;
217:
218: -- Private function used to to see if the dim level info is already cached
219: FUNCTION IS_DIM_LVL_INFO_CACHED
216: ) RETURN BOOLEAN;
217:
218: -- Private function used to to see if the dim level info is already cached
219: FUNCTION IS_DIM_LVL_INFO_CACHED
220: (p_DimLevelSName IN bis_levels.short_name%TYPE
221: ,x_Select_String OUT NOCOPY VARCHAR2
222: ,x_table_name OUT NOCOPY VARCHAR2
223: ,x_id_name OUT NOCOPY VARCHAR2
224: ,x_value_name OUT NOCOPY VARCHAR2
272: IS
273: l_api_name VARCHAR2(200) :=' GET_DIMLEVEL_SELECT_STRING';
274: CURSOR c_dims IS
275: SELECT source, level_values_view_name
276: FROM bis_levels
277: WHERE short_name = p_DimLevelName
278: ;
279: l_source VARCHAR2(2000);
280: l_level_values_view_name VARCHAR2(32000);
435: IS
436: l_api_name VARCHAR2(200) :=' GET_DIMLEVEL_SELECT_STRING';
437: CURSOR c_dims IS
438: SELECT source, level_values_view_name
439: FROM bis_levels
440: WHERE short_name = p_DimLevelName
441: ;
442: l_source VARCHAR2(2000);
443: l_level_values_view_name VARCHAR2(32000);
872: )
873: IS
874: CURSOR c_dimlvls IS
875: SELECT lvl.short_name, dim.short_name, lvl.level_values_view_name, bscdl.source, bscdl.level_view_name
876: FROM bis_levels lvl, bis_dimensions dim, bsc_sys_dim_levels_b bscdl
877: WHERE lvl.dimension_id = dim.dimension_id AND
878: (lvl.short_name = p_dim_level_name AND p_dim_level_name IS NOT NULL)
879: AND bscdl.short_name = lvl.short_name
880: ;
877: WHERE lvl.dimension_id = dim.dimension_id AND
878: (lvl.short_name = p_dim_level_name AND p_dim_level_name IS NOT NULL)
879: AND bscdl.short_name = lvl.short_name
880: ;
881: l_lvlshortname bis_levels.short_name%TYPE;
882: l_levelvalueview bis_levels.level_values_view_name%TYPE;
883: l_dimshortname bis_dimensions.short_name%TYPE;
884: l_time_columns VARCHAR2(2000);
885: l_Api_name VARCHAR2(200) := 'GET_BIS_SELECT_STRING';
878: (lvl.short_name = p_dim_level_name AND p_dim_level_name IS NOT NULL)
879: AND bscdl.short_name = lvl.short_name
880: ;
881: l_lvlshortname bis_levels.short_name%TYPE;
882: l_levelvalueview bis_levels.level_values_view_name%TYPE;
883: l_dimshortname bis_dimensions.short_name%TYPE;
884: l_time_columns VARCHAR2(2000);
885: l_Api_name VARCHAR2(200) := 'GET_BIS_SELECT_STRING';
886: l_Is_Rolling_Period_Level NUMBER; -- 2408906
1032: IS
1033: l_api_name VARCHAR2(200) :=' GET_DIMLEVEL_SELECT_STRING';
1034: CURSOR c_dims IS
1035: SELECT source, name,description , short_name, level_values_view_name
1036: FROM bis_levels_vl
1037: WHERE level_id = p_bis_dimlevel_id
1038: ;
1039: l_short_name BIS_LEVELS_VL.SHORT_NAME%TYPE;
1040: l_source BIS_LEVELS_VL.SOURCE%TYPE;
1035: SELECT source, name,description , short_name, level_values_view_name
1036: FROM bis_levels_vl
1037: WHERE level_id = p_bis_dimlevel_id
1038: ;
1039: l_short_name BIS_LEVELS_VL.SHORT_NAME%TYPE;
1040: l_source BIS_LEVELS_VL.SOURCE%TYPE;
1041: l_level_name BIS_LEVELS_VL.NAME%TYPE;
1042: l_description BIS_LEVELS_VL.DESCRIPTION%TYPE;
1043: l_time_level VARCHAR2(2001);
1036: FROM bis_levels_vl
1037: WHERE level_id = p_bis_dimlevel_id
1038: ;
1039: l_short_name BIS_LEVELS_VL.SHORT_NAME%TYPE;
1040: l_source BIS_LEVELS_VL.SOURCE%TYPE;
1041: l_level_name BIS_LEVELS_VL.NAME%TYPE;
1042: l_description BIS_LEVELS_VL.DESCRIPTION%TYPE;
1043: l_time_level VARCHAR2(2001);
1044: l_level_values_view_name VARCHAR2(32000);
1037: WHERE level_id = p_bis_dimlevel_id
1038: ;
1039: l_short_name BIS_LEVELS_VL.SHORT_NAME%TYPE;
1040: l_source BIS_LEVELS_VL.SOURCE%TYPE;
1041: l_level_name BIS_LEVELS_VL.NAME%TYPE;
1042: l_description BIS_LEVELS_VL.DESCRIPTION%TYPE;
1043: l_time_level VARCHAR2(2001);
1044: l_level_values_view_name VARCHAR2(32000);
1045: BEGIN
1038: ;
1039: l_short_name BIS_LEVELS_VL.SHORT_NAME%TYPE;
1040: l_source BIS_LEVELS_VL.SOURCE%TYPE;
1041: l_level_name BIS_LEVELS_VL.NAME%TYPE;
1042: l_description BIS_LEVELS_VL.DESCRIPTION%TYPE;
1043: l_time_level VARCHAR2(2001);
1044: l_level_values_view_name VARCHAR2(32000);
1045: BEGIN
1046: FND_MSG_PUB.initialize;
1114: );
1115: END;
1116: -- Fix for 2668693
1117: FUNCTION IS_DISTINCT_USED
1118: (p_Dimension_Level_Short_Name IN bis_levels.short_name%TYPE
1119: ) RETURN BOOLEAN IS
1120: BEGIN
1121:
1122: FOR i IN 1..Dlist.Count LOOP
1159:
1160: -- Private function to see if the dim level info is already cached
1161: -- if so return the values from the global variable
1162: FUNCTION IS_DIM_LVL_INFO_CACHED
1163: (p_DimLevelSName IN bis_levels.short_name%TYPE
1164: ,x_Select_String OUT NOCOPY VARCHAR2
1165: ,x_table_name OUT NOCOPY VARCHAR2
1166: ,x_id_name OUT NOCOPY VARCHAR2
1167: ,x_value_name OUT NOCOPY VARCHAR2
1301:
1302: PROCEDURE get_dimlevel_select_string(
1303: p_dimlevel_rec IN BIS_PMF_GET_DIMLEVELS_PUB.dimlvl_rec_Type
1304: ,p_param_lists_tbl IN BIS_PMF_GET_DIMLEVELS_PUB.dimlvl_tbl_Type
1305: ,p_bis_source IN bis_levels.source%TYPE := NULL
1306: ,p_region_code IN ak_regions.region_code%TYPE
1307: ,x_select_string OUT NOCOPY VARCHAR2
1308: ,x_table_name OUT NOCOPY VARCHAR2
1309: ,x_where_clause OUT NOCOPY VARCHAR2
1317: ,x_msg_count OUT NOCOPY NUMBER
1318: ,x_msg_data OUT NOCOPY VARCHAR2
1319: )
1320: IS
1321: l_bis_source bis_levels.source%TYPE;
1322: l_is_relationship_found VARCHAR2(10);
1323: l_dim_level_short_name VARCHAR2(80);
1324: l_dim_rel_info_rec bis_pmf_get_dimlevels_pub.dim_rel_info_rec;
1325: l_is_pmf_bsc_source BSC_SYS_DIM_LEVELS_B.SOURCE%TYPE;
1530: ,x_msg_count OUT NOCOPY NUMBER
1531: ,x_msg_data OUT NOCOPY VARCHAR2
1532: )
1533: IS
1534: l_data_source BIS_LEVELS.level_values_view_name%TYPE;
1535: l_dim_short_name VARCHAR2(80);
1536: l_dimlvl_short_name VARCHAR2(80);
1537: l_parent_dim_short_name VARCHAR2(80);
1538: l_parent_dimlvl_short_name VARCHAR2(80);
1811: IS
1812: l_created_by NUMBER;
1813: l_created_by_parent NUMBER;
1814: BEGIN
1815: SELECT created_by INTO l_created_by FROM bis_levels WHERE short_name = p_dim_rel_info_rec.dimension_level_short_name;
1816:
1817: IF ((p_dim_rel_info_rec.parent_level_short_name IS NOT NULL) AND (p_is_relation_recursive IS NULL OR p_is_relation_recursive = FND_API.G_FALSE)) THEN
1818: SELECT created_by INTO l_created_by_parent FROM bis_levels WHERE short_name = p_dim_rel_info_rec.parent_level_short_name;
1819: ELSE
1814: BEGIN
1815: SELECT created_by INTO l_created_by FROM bis_levels WHERE short_name = p_dim_rel_info_rec.dimension_level_short_name;
1816:
1817: IF ((p_dim_rel_info_rec.parent_level_short_name IS NOT NULL) AND (p_is_relation_recursive IS NULL OR p_is_relation_recursive = FND_API.G_FALSE)) THEN
1818: SELECT created_by INTO l_created_by_parent FROM bis_levels WHERE short_name = p_dim_rel_info_rec.parent_level_short_name;
1819: ELSE
1820: l_created_by_parent := l_created_by;
1821: END IF;
1822: --Followed the logic from AFLDUTLB.pls
1831: END;
1832:
1833: --===================================================================
1834: /**
1835: * Returns the source from bis_levels table, given the
1836: * dim level short name
1837: */
1838: ----=================================================================
1839: FUNCTION get_source (
1839: FUNCTION get_source (
1840: p_dim_level_short_name IN VARCHAR2
1841: ) RETURN VARCHAR2
1842: IS
1843: l_source BIS_LEVELS.SOURCE%TYPE;
1844: CURSOR c_dim_source(cp_dimLevelName IN bis_levels.source%TYPE) IS
1845: SELECT source
1846: FROM bis_levels
1847: WHERE short_name = cp_dimLevelName ;
1840: p_dim_level_short_name IN VARCHAR2
1841: ) RETURN VARCHAR2
1842: IS
1843: l_source BIS_LEVELS.SOURCE%TYPE;
1844: CURSOR c_dim_source(cp_dimLevelName IN bis_levels.source%TYPE) IS
1845: SELECT source
1846: FROM bis_levels
1847: WHERE short_name = cp_dimLevelName ;
1848: BEGIN
1842: IS
1843: l_source BIS_LEVELS.SOURCE%TYPE;
1844: CURSOR c_dim_source(cp_dimLevelName IN bis_levels.source%TYPE) IS
1845: SELECT source
1846: FROM bis_levels
1847: WHERE short_name = cp_dimLevelName ;
1848: BEGIN
1849:
1850: IF ( c_dim_source%ISOPEN) THEN
1872: END get_source;
1873:
1874: --=================================================================
1875: FUNCTION needs_time_cols (
1876: p_source IN bis_levels.source%TYPE
1877: ,p_data_source IN bis_levels.level_values_view_name%TYPE
1878: ,p_lvlshortname IN bis_levels.short_name%TYPE
1879: ,p_dimshortname IN bis_dimensions.short_name%TYPE
1880: ) RETURN BOOLEAN
1873:
1874: --=================================================================
1875: FUNCTION needs_time_cols (
1876: p_source IN bis_levels.source%TYPE
1877: ,p_data_source IN bis_levels.level_values_view_name%TYPE
1878: ,p_lvlshortname IN bis_levels.short_name%TYPE
1879: ,p_dimshortname IN bis_dimensions.short_name%TYPE
1880: ) RETURN BOOLEAN
1881: IS
1874: --=================================================================
1875: FUNCTION needs_time_cols (
1876: p_source IN bis_levels.source%TYPE
1877: ,p_data_source IN bis_levels.level_values_view_name%TYPE
1878: ,p_lvlshortname IN bis_levels.short_name%TYPE
1879: ,p_dimshortname IN bis_dimensions.short_name%TYPE
1880: ) RETURN BOOLEAN
1881: IS
1882: l_dimshortname_time bis_dimensions.short_name%TYPE;
1879: ,p_dimshortname IN bis_dimensions.short_name%TYPE
1880: ) RETURN BOOLEAN
1881: IS
1882: l_dimshortname_time bis_dimensions.short_name%TYPE;
1883: l_lvlshortname_total bis_levels.short_name%TYPE;
1884: BEGIN
1885: IF p_source IS NOT NULL THEN
1886: l_dimshortname_time := BIS_UTILITIES_PVT.GET_TIME_DIMENSION_NAME_SRC(p_source => p_source);
1887:
1923: ,x_return_status OUT NOCOPY VARCHAR2
1924: ,x_msg_count OUT NOCOPY NUMBER
1925: ,x_msg_data OUT NOCOPY VARCHAR2
1926: ) IS
1927: CURSOR c_bis_levels_source (cp_dimLevel_short_name IN bis_levels.short_name%TYPE) IS
1928: SELECT level_values_view_name
1929: FROM bis_levels
1930: WHERE short_name = cp_dimLevel_short_name ;
1931:
1925: ,x_msg_data OUT NOCOPY VARCHAR2
1926: ) IS
1927: CURSOR c_bis_levels_source (cp_dimLevel_short_name IN bis_levels.short_name%TYPE) IS
1928: SELECT level_values_view_name
1929: FROM bis_levels
1930: WHERE short_name = cp_dimLevel_short_name ;
1931:
1932: l_select_string VARCHAR2(1000);
1933: l_time_level VARCHAR2(100);
1930: WHERE short_name = cp_dimLevel_short_name ;
1931:
1932: l_select_string VARCHAR2(1000);
1933: l_time_level VARCHAR2(100);
1934: l_data_source BIS_LEVELS.level_values_view_name%TYPE;
1935:
1936: /* 3388371- gbhaloti FOR BSC LEVELS */
1937: --l_bsc_source VARCHAR(10);
1938: BEGIN
1940:
1941: /* 3388371- gbhaloti FOR BSC LEVELS */
1942: --l_bsc_source := get_dim_level_source (p_Dim_Level_Short_Name);
1943:
1944: IF ( c_bis_levels_source%ISOPEN) THEN
1945: CLOSE c_bis_levels_source;
1946: END IF;
1947:
1948: OPEN c_bis_levels_source(cp_dimLevel_short_name => p_Dim_Level_Short_Name );
1941: /* 3388371- gbhaloti FOR BSC LEVELS */
1942: --l_bsc_source := get_dim_level_source (p_Dim_Level_Short_Name);
1943:
1944: IF ( c_bis_levels_source%ISOPEN) THEN
1945: CLOSE c_bis_levels_source;
1946: END IF;
1947:
1948: OPEN c_bis_levels_source(cp_dimLevel_short_name => p_Dim_Level_Short_Name );
1949: FETCH c_bis_levels_source INTO l_data_source ;
1944: IF ( c_bis_levels_source%ISOPEN) THEN
1945: CLOSE c_bis_levels_source;
1946: END IF;
1947:
1948: OPEN c_bis_levels_source(cp_dimLevel_short_name => p_Dim_Level_Short_Name );
1949: FETCH c_bis_levels_source INTO l_data_source ;
1950: IF (c_bis_levels_source%NOTFOUND) THEN
1951: FND_MESSAGE.SET_NAME('BIS','BIS_INVALID_LEVEL_SHORTNAME');
1952: FND_MESSAGE.SET_TOKEN('DIMLEVEL_SHORT_NAME', p_Dim_Level_Short_Name);
1945: CLOSE c_bis_levels_source;
1946: END IF;
1947:
1948: OPEN c_bis_levels_source(cp_dimLevel_short_name => p_Dim_Level_Short_Name );
1949: FETCH c_bis_levels_source INTO l_data_source ;
1950: IF (c_bis_levels_source%NOTFOUND) THEN
1951: FND_MESSAGE.SET_NAME('BIS','BIS_INVALID_LEVEL_SHORTNAME');
1952: FND_MESSAGE.SET_TOKEN('DIMLEVEL_SHORT_NAME', p_Dim_Level_Short_Name);
1953: FND_MSG_PUB.ADD;
1946: END IF;
1947:
1948: OPEN c_bis_levels_source(cp_dimLevel_short_name => p_Dim_Level_Short_Name );
1949: FETCH c_bis_levels_source INTO l_data_source ;
1950: IF (c_bis_levels_source%NOTFOUND) THEN
1951: FND_MESSAGE.SET_NAME('BIS','BIS_INVALID_LEVEL_SHORTNAME');
1952: FND_MESSAGE.SET_TOKEN('DIMLEVEL_SHORT_NAME', p_Dim_Level_Short_Name);
1953: FND_MSG_PUB.ADD;
1954: RAISE FND_API.G_EXC_ERROR;
1952: FND_MESSAGE.SET_TOKEN('DIMLEVEL_SHORT_NAME', p_Dim_Level_Short_Name);
1953: FND_MSG_PUB.ADD;
1954: RAISE FND_API.G_EXC_ERROR;
1955: END IF;
1956: CLOSE c_bis_levels_source;
1957:
1958: IF ((p_Source = G_EDW) AND (l_data_source IS NULL)) THEN
1959: BIS_PMF_GET_DIMLEVELS_PVT.GET_EDW_SELECT_STRING
1960: (p_dim_level_name => p_Dim_Level_Short_Name
1981: END IF;
1982:
1983: EXCEPTION
1984: WHEN FND_API.G_EXC_ERROR THEN
1985: IF ( c_bis_levels_source%ISOPEN) THEN
1986: CLOSE c_bis_levels_source;
1987: END IF;
1988: x_return_status := FND_API.G_RET_STS_ERROR;
1989: FND_MSG_PUB.Count_And_Get
1982:
1983: EXCEPTION
1984: WHEN FND_API.G_EXC_ERROR THEN
1985: IF ( c_bis_levels_source%ISOPEN) THEN
1986: CLOSE c_bis_levels_source;
1987: END IF;
1988: x_return_status := FND_API.G_RET_STS_ERROR;
1989: FND_MSG_PUB.Count_And_Get
1990: ( p_count => x_msg_count,
1990: ( p_count => x_msg_count,
1991: p_data => x_msg_data
1992: );
1993: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1994: IF ( c_bis_levels_source%ISOPEN) THEN
1995: CLOSE c_bis_levels_source;
1996: END IF;
1997: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1998: FND_MSG_PUB.Count_And_Get
1991: p_data => x_msg_data
1992: );
1993: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1994: IF ( c_bis_levels_source%ISOPEN) THEN
1995: CLOSE c_bis_levels_source;
1996: END IF;
1997: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1998: FND_MSG_PUB.Count_And_Get
1999: ( p_count => x_msg_count,
1999: ( p_count => x_msg_count,
2000: p_data => x_msg_data
2001: );
2002: WHEN OTHERS THEN
2003: IF ( c_bis_levels_source%ISOPEN) THEN
2004: CLOSE c_bis_levels_source;
2005: END IF;
2006: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2007: IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
2000: p_data => x_msg_data
2001: );
2002: WHEN OTHERS THEN
2003: IF ( c_bis_levels_source%ISOPEN) THEN
2004: CLOSE c_bis_levels_source;
2005: END IF;
2006: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2007: IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
2008: FND_MSG_PUB.Add_Exc_Msg