DBA Data[Home] [Help]

PACKAGE: APPS.OPI_DBI_RPT_UTIL_PKG

Source


1 PACKAGE OPI_DBI_RPT_UTIL_PKG AS
2 /*$Header: OPIDRMFGUTS.pls 120.6 2006/02/24 03:23:00 achandak noship $ */
3 
4 /*++++++++++++++++++++++++++++++++++++++++*/
5 /* Dimension bitmap values for OPI
6 /*++++++++++++++++++++++++++++++++++++++++*/
7 ORG_BMAP CONSTANT INTEGER := 1;
8 RES_BMAP CONSTANT INTEGER := 4;
9 RES_GRP_BMAP CONSTANT INTEGER := 8;
10 RES_DEPT_BMAP CONSTANT INTEGER := 16;
11 CATEGORY_BMAP CONSTANT INTEGER := 32;
12 CYCLE_COUNT_HEADER_BMAP CONSTANT INTEGER := 64;
13 CYCLE_COUNT_CLASS_BMAP CONSTANT INTEGER := 128;
14 ITEM_BMAP CONSTANT INTEGER := 256;
15 ORG_SUB_BMAP CONSTANT INTEGER := 512;
16 REASON_CODE_BMAP CONSTANT INTEGER := 1024;
17 OP_PLAN_BMAP CONSTANT INTEGER := 2048;
18 LOCATOR_BMAP CONSTANT INTEGER := 4096;
19 ITEM_GRADE_BMAP CONSTANT INTEGER := 8192;
20 ITEM_LOT_BMAP CONSTANT INTEGER := 16384;
21 TRX_REASON_BMAP CONSTANT INTEGER := 32768;
22 
23 -- Identifiers for the various viewby's
24 C_VIEWBY_ORG CONSTANT VARCHAR2(50) := 'ORGANIZATION+ORGANIZATION';
25 C_VIEWBY_SUB CONSTANT VARCHAR2(50) := 'ORGANIZATION+ORGANIZATION_SUBINVENTORY';
26 C_VIEWBY_ITEM CONSTANT VARCHAR2(50) := 'ITEM+ENI_ITEM_ORG';
27 C_VIEWBY_INV_CAT CONSTANT VARCHAR2(50) := 'ITEM+ENI_ITEM_INV_CAT';
28 C_VIEWBY_ORG_LOC CONSTANT VARCHAR2(50) := 'ORGANIZATION+OPI_SUB_LOCATOR_LVL';
29 C_VIEWBY_ITEM_GRADE CONSTANT VARCHAR2(50) :=
30             'OPI_INV_ITEM_ATTRIB+OPI_INV_ITEM_GRADE_LVL';
31 C_VIEWBY_ITEM_LOT CONSTANT VARCHAR2(50) :=
32             'OPI_INV_ITEM_ATTRIB+OPI_INV_ITEM_LOT_LVL';
33 
34 -- Identifiers for the various dimensions
35 C_DIMNAME_ORG CONSTANT VARCHAR2(50) := 'ORGANIZATION+ORGANIZATION';
36 C_DIMNAME_SUB CONSTANT VARCHAR2(50) := 'ORGANIZATION+ORGANIZATION_SUBINVENTORY';
37 C_DIMNAME_ITEM CONSTANT VARCHAR2(50) := 'ITEM+ENI_ITEM_ORG';
38 C_DIMNAME_INV_CAT CONSTANT VARCHAR2(50) := 'ITEM+ENI_ITEM_INV_CAT';
39 C_DIMNAME_ORG_LOC CONSTANT VARCHAR2(50) := 'ORGANIZATION+OPI_SUB_LOCATOR_LVL';
40 C_DIMNAME_ITEM_GRADE CONSTANT VARCHAR2(50) :=
41             'OPI_INV_ITEM_ATTRIB+OPI_INV_ITEM_GRADE_LVL';
42 C_DIMNAME_ITEM_LOT CONSTANT VARCHAR2(50) :=
43             'OPI_INV_ITEM_ATTRIB+OPI_INV_ITEM_LOT_LVL';
44 
45 
46 -- Identifier for value 'All' for any dimension
47 C_ALL CONSTANT VARCHAR2 (10) := 'All';
48 
49 -- Associated Array for the dimension bitmaps.
50 TYPE opi_dbi_mv_bmap_rec is RECORD (mv_name VARCHAR2(32),
51                                     mv_bmap NUMBER);
52 TYPE opi_dbi_mv_bmap_tbl is TABLE of opi_dbi_mv_bmap_rec;
53 
54 -- Array for the MV aggregation level values
55 TYPE mv_agg_lvl_rec IS RECORD(VALUE NUMBER);
56 TYPE mv_agg_lvl_tbl IS TABLE OF mv_agg_lvl_rec;
57 
58 /* Generic Process Parameter function.
59 */
60 PROCEDURE process_parameters (p_param IN BIS_PMV_PAGE_PARAMETER_TBL,
61                               p_view_by OUT NOCOPY VARCHAR2,
62                               p_view_by_col_name OUT NOCOPY VARCHAR2,
63                               p_comparison_type OUT NOCOPY VARCHAR2,
64                               p_xtd OUT NOCOPY VARCHAR2,
65                               p_cur_suffix OUT NOCOPY VARCHAR2,
66                               p_where_clause OUT NOCOPY VARCHAR2,
67                               p_mv OUT NOCOPY VARCHAR2,
68                               p_join_tbl OUT NOCOPY
69                               poa_dbi_util_pkg.poa_dbi_join_tbl,
70                               p_mv_level_flag OUT NOCOPY VARCHAR2,
71                               p_trend IN VARCHAR2,
72                               p_func_area IN VaRCHAR2,
73                               p_version IN VARCHAR2,
74                               p_role IN VARCHAR2,
75                               p_mv_set IN VARCHAR2,
76                               p_mv_flag_type IN VARCHAR2 := 'NONE');
77 
78 
79 /*
80     For the status_sql, get the name of the viewby column.
81 */
82 FUNCTION get_view_by_col_name (p_dim_name VARCHAR2)
83     RETURN VARCHAR2;
84 
85 /* Get the VIEWBY and VIEWBYID columns
86 */
87 FUNCTION get_viewby_select_clause (p_viewby IN VARCHAR2)
88     RETURN VARCHAR2;
89 
90 /* Build the fact view by columns string using the join table
91    for queries using windowing.
92 */
93 FUNCTION get_fact_select_columns (p_join_tbl IN
94                                   poa_dbi_util_pkg.POA_DBI_JOIN_TBL)
95     RETURN VARCHAR2;
96 
97 /* Return the viewby item columns, description and UOM
98 */
99 PROCEDURE get_viewby_item_columns (p_dim_name VARCHAR2,
100                                    p_description OUT NOCOPY VARCHAR2,
101                                    p_uom OUT NOCOPY VARCHAR2);
102 
103 /* API called by core team during migration to set R12 migration date
104    into our log table
105 */
106 PROCEDURE set_inv_convergence_date (x_return_status OUT NOCOPY VARCHAR2);
107 
108 /* Procedure called by DBI ETL's to get the R12 migration date
109 */
110 PROCEDURE get_inv_convergence_date (p_inv_migration_date OUT NOCOPY DATE);
111 
112 /* Procedure to merge the convergence date into the DBI log table
113 */
114 PROCEDURE merge_inv_convergence_date (p_migration_date IN DATE);
115 
116 /* percent_str
117 
118     Gets the string for percentage change of two specified strings.
119     Better than copying CASE statements everywhere
120 */
121 FUNCTION percent_str (p_numerator IN VARCHAR2,
122                       p_denominator IN VARCHAR2,
123                       p_measure_name IN VARCHAR2)
124     RETURN VARCHAR2;
125 
126 /* percent_str_basic
127 
128     Gets the string for percentage change of two specified strings.
129     Better than copying CASE statements everywhere.
130     No NVLs on numerator.
131 */
132 FUNCTION percent_str_basic (p_numerator IN VARCHAR2,
133                             p_denominator IN VARCHAR2,
134                             p_measure_name IN VARCHAR2)
135     RETURN VARCHAR2;
136 
137 /* pos_denom_percent_str
138 
139     Gets the string for percentage change of two specified strings if
140     the denominator is positive and greater than 0.
141     Better than copying CASE statements everywhere.
142 */
143 FUNCTION pos_denom_percent_str (p_numerator IN VARCHAR2,
144                                 p_denominator IN VARCHAR2,
145                                 p_measure_name IN VARCHAR2)
146     RETURN VARCHAR2;
147 
148 /* pos_denom_percent_str_basic
149 
150     Gets the string for percentage change of two specified strings if
151     the denominator is positive and greater than 0.
152     Better than copying CASE statements everywhere.
153     No NVLs on numerator.
154 */
155 FUNCTION pos_denom_percent_str_basic (p_numerator IN VARCHAR2,
156                                       p_denominator IN VARCHAR2,
157                                       p_measure_name IN VARCHAR2)
158     RETURN VARCHAR2;
159 
160 /* change_str
161     Get the percentage change string. Better than writing out all the case
162     statements
163 */
164 FUNCTION change_str (p_new_numerator IN VARCHAR2,
165                      p_old_numerator IN VARCHAR2,
166                      p_denominator IN VARCHAR2,
167                      p_measure_name IN VARCHAR2)
168     RETURN VARCHAR2;
169 
170 /* change_str_basic
171     Get the percentage change string. Better than writing out all the case
172     statements. No NVLs on numerator.
173 */
174 FUNCTION change_str_basic (p_new_numerator IN VARCHAR2,
175                            p_old_numerator IN VARCHAR2,
176                            p_denominator IN VARCHAR2,
177                            p_measure_name IN VARCHAR2)
178     RETURN VARCHAR2;
179 
180 /* change_pct_str
181     Get the change in percentage string. Better than writing out all the case
182     statements
183 */
184 FUNCTION change_pct_str (p_new_numerator IN VARCHAR2,
185                          p_new_denominator IN VARCHAR2,
186                          p_old_numerator IN VARCHAR2,
187                          p_old_denominator IN VARCHAR2,
188                          p_measure_name IN VARCHAR2)
189     RETURN VARCHAR2;
190 
191 /* change_pct_str_basic
192     Get the change in percentage string. Better than writing out all the case
193     statements.
194     No NVLs on numerator.
195 */
196 FUNCTION change_pct_str_basic (p_new_numerator IN VARCHAR2,
197                                p_new_denominator IN VARCHAR2,
198                                p_old_numerator IN VARCHAR2,
199                                p_old_denominator IN VARCHAR2,
200                                p_measure_name IN VARCHAR2)
201     RETURN VARCHAR2;
202 
203 /* nvl_str
204     Convert a string into its NVL (str, val)
205     The default NVL value is 0
206 */
207 FUNCTION nvl_str (p_str IN VARCHAR2,
208                   p_default_val IN NUMBER := 0)
209     RETURN VARCHAR2;
210 
211 /* raw_str
212     If the string is NULL, return NULL.
213     Else return itself.
214 */
215 FUNCTION raw_str (p_str IN VARCHAR2)
216     RETURN VARCHAR2;
217 
218 /*
219       If the value of the string is NEGATIVE, return NULL.
220       Else return itself.
221 */
222 FUNCTION neg_str(p_str IN VARCHAR2)
223         RETURN VARCHAR2;
224 
225 /* rate_str
226     Calculates a rate given a numerator and denominator;
227     p_rate_type = 'P' indicates percentage inputs
228     p_rate_type = 'NP' indicates absolute inputs
229 */
230 FUNCTION rate_str (p_numerator IN VARCHAR2,
231                    p_denominator IN VARCHAR2,
232                    p_rate_type IN VARCHAR2 := 'P')
233     RETURN VARCHAR2;
234 
235 /* Replace a substring only once */
236 FUNCTION replace_n (p_orig_str IN VARCHAR2,
237                     p_match_str IN VARCHAR2,
238                     p_replace_str IN VARCHAR2 := NULL,
239                     p_start_pos IN NUMBER := 1,
240                     p_num_times IN NUMBER := 1)
241     RETURN VARCHAR2;
242 
243 
244 /* Security where clauses function
245    Making public for use in specific detail reports
246 */
247 FUNCTION get_security_where_clauses(p_org_value IN VARCHAR2, p_trend IN VARCHAR2 := 'N')
248     RETURN VARCHAR2;
249 
250 --  OPI_UM_CONVERT will use in place INV_CONVERT.inv_um_convert
251 -- In inventory Intransit load
252 FUNCTION  OPI_UM_CONVERT (
253      p_item_id           	number,
254      p_item_qty               number,
255      p_from_unit         	varchar2,
256      p_to_unit           	varchar2 ) RETURN number ;
257 
258 -- Variable will use in above package an will used in callin procedure too
259 g_pk_uom_conversion      number;
260 
261 
262 END OPI_DBI_RPT_UTIL_PKG;
263