DBA Data[Home] [Help]

PACKAGE: APPS.POA_DBI_UTIL_PKG

Source


1 PACKAGE poa_dbi_util_pkg AS
2 /* $Header: poadbiutils.pls 120.2 2005/09/08 15:39:29 nnewadka noship $ */
3 
4 NO_PRIORS             CONSTANT INTEGER := 1;
5 COL_PRIOR_ONLY        CONSTANT INTEGER := 2;
6 BOTH_PRIORS           CONSTANT INTEGER := 3;
7 PREV_PREV             CONSTANT INTEGER := 4;
8 OPENING_PRIOR_CURR    CONSTANT INTEGER := 5;
9 
10 ---Begin MOAC changes
11 g_org_id              NUMBER ;
12 g_sec_profile_id      NUMBER ;
13 ---End MOAC changes
14 
15 TYPE poa_dbi_join_rec is RECORD(column_name         VARCHAR2(200),
16                                     /* column to join, e.g. id */
17                                 table_name          VARCHAR2(500),
18                                     /* table to join e.g. poa_items_v */
19                                 table_alias         VARCHAR(200),
20                                     /* alias of table, i.e. v */
21                                 fact_column         VARCHAR2(200),
22                                     /* column selected from fact, e.g. item_id */
23 				fact_column2 	   VARCHAR2(200),
24 				  /* column selected from fact in second part of				    union all queries. If not populated,
25 				    then fact_column is used for both parts of
26 				    the union.  Not used in non-union
27 				    queries. */
28 				inner_alias 	   VARCHAR(200),
29 				    /* alias of table to select column
30 				    from in innermost select
31 				    (if left empty, the inner_alias
32 				    will be 'fact') */
33                                 dim_outer_join      VARCHAR2(2),
34                                     /* whether it is an outer join or not */
35                                 additional_where_clause varchar2(1000));
36                                     /* any additional conditions on the join (such as a tl condition) */
37 
38 TYPE poa_dbi_join_tbl is TABLE of poa_dbi_join_rec;
39 
40 TYPE poa_dbi_col_list is TABLE OF VARCHAR2(200);
41 
42 TYPE poa_dbi_union_query_rec is RECORD(in_union_sel VARCHAR2(5000),
43 					template_sql  VARCHAR2(20000));
44 
45 TYPE poa_dbi_union_query_tbl is TABLE OF poa_dbi_union_query_rec;
46 
47 
48 TYPE poa_dbi_col_calc_rec is RECORD(column_name VARCHAR2(300),
49 				alias_begin VARCHAR2(200),
50 				alias_end VARCHAR2(20),
51 				calc_begin VARCHAR2(50),
52 				calc_end  VARCHAR2(50),
53 				date_decode_begin VARCHAR2(200),
54 				date_decode_end	VARCHAR2(50));
55 
56 TYPE poa_dbi_col_calc_tbl is TABLE of poa_dbi_col_calc_rec;
57 
58 TYPE poa_dbi_in_join_rec is RECORD(table_name        VARCHAR2(400),
59                                         /* table to join e.g. per_organization_list*/
60                                    table_alias  VARCHAR(200),
61                                    aggregated_flag varchar2(1));
62                                    /* added specifically for company, cost_center and user defined dimensions*/
63 
64 TYPE poa_dbi_in_join_tbl is TABLE of poa_dbi_in_join_rec;
65 
66 TYPE poa_dbi_dim_rec IS RECORD(value          VARCHAR2(3) := 'All',
67                                col_name       VARCHAR2(64),
68                                bmap           NUMBER,
69                                view_by_table  VARCHAR2(500),
70                                generate_where_clause VARCHAR2(1) := 'Y');
71                                    /* if generate_where_clause = 'Y' then the
72                                       function get_where_clauses will add in a where clause
73                                       for that dimension.  Set generate_where_clause to 'N'
74                                       if you need to create a more complicate where for a
75                                       dimension, or if you do not want a where at all. */
76 
77 /* possible values for to_date_type:
78 XTD = period to date
79 XED = period to end of period (i.e. entire period)
80 YTD = year to date
81 ITD = inception to date
82 RLX = Rolling period
83 BAL = Balance
84 NA = for reports with no as-of date or period type.
85 */
86 TYPE poa_dbi_col_rec is RECORD(column_name         VARCHAR2(100),
87                                column_alias        VARCHAR2(64),
88                                to_date_type        varchar2(3),
89                                grand_total         VARCHAR2(1),
90                                prior_code          VARCHAR2(2));
91 
92 TYPE poa_dbi_col_tbl is TABLE of poa_dbi_col_rec;
93 
94 TYPE poa_dbi_dim_tbl is TABLE of varchar2(100);
95 
96 TYPE poa_dbi_dim_map IS TABLE OF poa_dbi_dim_rec
97       INDEX BY VARCHAR2(75);
98 TYPE poa_dbi_filter_tbl is TABLE of VARCHAR2(100);
99 
100 TYPE poa_dbi_flex_filter_rec IS RECORD (measure_name    VARCHAR2(100),
101                                         modifier        VARCHAR2(100));
102 TYPE poa_dbi_flex_filter_tbl IS TABLE OF poa_dbi_flex_filter_rec;
103 
104 TYPE poa_dbi_mv_bmap_rec is RECORD(mv_name         VARCHAR2(32),
105                                    mv_bmap         NUMBER);
106 
107 TYPE poa_dbi_mv_bmap_tbl is TABLE of poa_dbi_mv_bmap_rec;
108 
109 TYPE poa_dbi_mv_rec is RECORD(	mv_name		VARCHAR2(300),
110 				mv_col		poa_dbi_util_pkg.poa_dbi_col_tbl ,
111 				mv_where	VARCHAR2(4000),
112 				in_join_tbls	poa_dbi_util_pkg.POA_DBI_IN_JOIN_TBL,
113 				mv_hint		VARCHAR2(1000) /* used only by union all trend sql*/,
114 				use_grp_id	VARCHAR2(10),
115 				mv_xtd		VARCHAR2(50) /* used only by union all trend sql */);
116 TYPE poa_dbi_mv_tbl is TABLE of poa_dbi_mv_rec;
117 
118 
119 FUNCTION get_calendar_table
120 ( period_type        in varchar2
121 , p_include_prior    in varchar2 := 'Y'
122 , p_include_opening  in varchar2 := 'N'
123 , p_called_by_union  in varchar2 := 'N'
124 )
125 return varchar2;
126 
127 FUNCTION get_nested_pattern(period_type IN varchar2) return number;
128 
129 FUNCTION get_nested_period_type_id(period_type IN varchar2) return number;
130 
131 FUNCTION get_sec_profile return number;
132 
133 FUNCTION get_fnd_user_profile RETURN NUMBER;
134 
135 FUNCTION get_fnd_employee_profile RETURN NUMBER;
136 
137 FUNCTION bitor(x in number,y in number) return number;
138 
139 PROCEDURE refresh (p_mv_name  IN  VARCHAR2);
140 
141 FUNCTION get_filter_where(p_cols in  POA_DBI_FILTER_TBL)
142 	return VARCHAR2;
143 
144 FUNCTION get_filter_where(p_cols in  POA_DBI_FLEX_FILTER_TBL)
145     return VARCHAR2;
146 
147 PROCEDURE get_parameter_values(p_param in BIS_PMV_PAGE_PARAMETER_TBL,
148                                p_dim_map in out NOCOPY poa_dbi_dim_map,
149                                p_view_by out NOCOPY VARCHAR2,
150                                p_comparison_type out NOCOPY VARCHAR2,
151                                p_xtd out NOCOPY VARCHAR2,
152                                p_as_of_date out NOCOPY DATE,
153                                p_prev_as_of_date out NOCOPY DATE,
154                                p_cur_suffix out NOCOPY VARCHAR2,
155                                p_nested_pattern out NOCOPY NUMBER,
156                                p_dim_bmap in out NOCOPY NUMBER);
157 
158 PROCEDURE get_drill_param_values(p_param in BIS_PMV_PAGE_PARAMETER_TBL,
159                                  p_dim_map in out nocopy poa_dbi_dim_map,
160                                  p_cur_suffix out NOCOPY VARCHAR2);
161 
162 FUNCTION get_where_clauses(p_dim_map poa_dbi_dim_map, p_trend in VARCHAR2) RETURN VARCHAR2;
163 
164 PROCEDURE add_column(p_col_tbl      IN OUT NOCOPY poa_dbi_col_tbl,
165                      p_col_name     IN VARCHAR2,
166                      p_alias_name   IN VARCHAR2,
167                      p_grand_total  IN VARCHAR2 := 'Y',
168                      p_prior_code   IN NUMBER := BOTH_PRIORS,
169                      p_to_date_type IN VARCHAR2 := 'XTD');
170 
171 PROCEDURE add_bucket_columns(p_short_name   in varchar2
172 , p_col_tbl      in out nocopy poa_dbi_util_pkg.poa_dbi_col_tbl
173 , p_col_name     in varchar2
174 , p_alias_name   in varchar2
175 , x_bucket_rec   out nocopy bis_bucket_pub.bis_bucket_rec_type
176 , p_grand_total  in varchar2 := 'Y'
177 , p_prior_code   in varchar2 := BOTH_PRIORS
178 , p_to_date_type in varchar2 := 'XTD'
179 );
180 
181 function get_bucket_outer_query
182 ( p_bucket_rec       in bis_bucket_pub.bis_bucket_rec_type
183 , p_col_name	     in varchar2
184 , p_alias_name       in varchar2
185 , p_prefix	     in varchar2
186 , p_suffix	     in varchar2
187 , p_total_flag       in varchar2 default 'N'
188 )return varchar2;
189 
190 function get_bucket_drill_url
191 ( p_bucket_rec       in bis_bucket_pub.bis_bucket_rec_type
192 , p_alias_name       in varchar2
193 , p_prefix	     in varchar2
194 , p_suffix	     in varchar2
195 , p_add_bucket_num   in varchar2
196 )
197 return varchar2;
198 
199 
200 /* NP  -> non-percentage.  otherwise returns percent change formula */
201 FUNCTION change_clause(cur_col IN VARCHAR2, prior_col IN VARCHAR2, change_type IN VARCHAR2 := 'NP')
202 RETURN VARCHAR2;
203 
204 FUNCTION rate_clause(numerator IN VARCHAR2, denominator IN VARCHAR2, rate_type IN VARCHAR2 := 'P') RETURN VARCHAR2;
205 
206 FUNCTION get_commodity_sec_where(p_commodity_value VARCHAR2, p_trend IN VARCHAR2 :='N') return VARCHAR2;
207 
208 FUNCTION get_in_commodity_sec_where(p_commodity_value VARCHAR2, p_trend IN VARCHAR2 :='N') return VARCHAR2;
209 
210 FUNCTION get_ou_sec_where(p_ou_value VARCHAR2, p_ou_fact_col VARCHAR2, p_trend IN VARCHAR2 :='N') return VARCHAR2;
211 
212 FUNCTION get_in_ou_sec_where(p_ou_value VARCHAR2, p_ou_fact_col VARCHAR2, p_use_bind IN VARCHAR2 :='Y') return VARCHAR2;
213 
214 PROCEDURE get_custom_trend_binds
215 ( p_xtd             in varchar2
216 , p_comparison_type in varchar2
217 , x_custom_output   out nocopy bis_query_attributes_tbl
218 , p_opening_balance in varchar2 := 'N'
219 );
220 
221 PROCEDURE get_custom_status_binds(x_custom_output IN OUT  NOCOPY BIS_QUERY_ATTRIBUTES_TBL);
222 
223 FUNCTION get_trend_lag(p_xtd IN varchar2,  p_comparison_type IN varchar2) return number;
224 
225 -- get_report_start_date function returns the BIS bind variable
226 -- substituton text for use by status_sql and trend_sql for rolling periods
227 FUNCTION get_report_start_date
228 ( p_period_type      varchar2
229 , p_prior            varchar2 := 'N'
230 )
231 return varchar2;
232 
233 -- get_custom_balance_binds procedure updates the bis_query_attributes_tbl
234 -- with the bind variables/values needed for balance reports
235 PROCEDURE get_custom_balance_binds
236 ( p_custom_output in out nocopy bis_query_attributes_tbl
237 , p_balance_fact  in varchar2
238 , p_xtd           in varchar2 := null
239 );
240 
241 -- get_custom_rolling_binds procedure updates the bis_query_attributes_tbl
242 -- with the bind variables/values needed for rolling period reports
243 -- will be unnecessary when fii/bis provide this functionality.
244 PROCEDURE get_custom_rolling_binds
245 ( p_custom_output in out nocopy bis_query_attributes_tbl
246 , p_xtd           in varchar2
247 );
248 
249 procedure bind_low_high
250 ( p_param         in bis_pmv_page_parameter_tbl
251 , p_short_name    in varchar2
252 , p_dim_level	  in varchar2
253 , p_low           in varchar2
254 , p_high          in varchar2
255 , p_custom_output in out nocopy bis_query_attributes_tbl
256 );
257 
258 -- Procedure to seed Bind variables for day level reporting
259 PROCEDURE get_custom_day_binds(p_custom_output IN OUT  NOCOPY BIS_QUERY_ATTRIBUTES_TBL,
260                                p_as_of_date    IN DATE,
261                                p_comparison_type IN VARCHAR2);
262 
263 FUNCTION get_in_supplier_sec_where(p_supplier_value IN VARCHAR2) RETURN VARCHAR2;
264 ---Begin MOAC changes
265  FUNCTION get_ou_org_id RETURN NUMBER;
266 ---End  MOAC changes
267 
268 --Begin changes for spend trend graph
269  FUNCTION get_rolling_inline_view
270  RETURN VARCHAR2 ;
271 --End changes for spend trend graph
272 END poa_dbi_util_pkg;