DBA Data[Home] [Help]

PACKAGE BODY: APPS.HRI_OLTP_PMV_WMV_WF_SUP

Source


1 PACKAGE BODY HRI_OLTP_PMV_WMV_WF_SUP AS
2 /* $Header: hriopwfs.pkb 120.1 2005/10/26 07:54:16 jrstewar noship $ */
3 
4   g_rtn   VARCHAR2(5) := '
5 ';
6 --
7 -- *********************************
8 -- * AK SQL For Total Workforce KPI*
9 -- * AK Region : HRI_K_WMV_WF      *
10 -- *********************************
11 --
12 PROCEDURE get_kpi
13     (p_page_parameter_tbl  IN BIS_PMV_PAGE_PARAMETER_TBL,
14      x_custom_sql          OUT NOCOPY VARCHAR2,
15      x_custom_output       OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL) IS
16 
17   l_SQLText               VARCHAR2(32000);
18   l_security_clause       VARCHAR2(4000);
19   l_custom_rec BIS_QUERY_ATTRIBUTES ;
20 
21 /* Parameter values */
22   l_parameter_rec        hri_oltp_pmv_util_param.HRI_PMV_PARAM_REC_TYPE;
23   l_bind_tab             hri_oltp_pmv_util_param.HRI_PMV_BIND_TAB_TYPE;
24 
25 /* Dynamic SQL controls */
26   l_wrkfc_fact_params    hri_bpl_fact_sup_wrkfc_sql.wrkfc_fact_param_type;
27   l_wrkfc_fact_sql       VARCHAR2(10000);
28 
29 BEGIN
30 
31 /* Initialize out parameters */
32   l_custom_rec := BIS_PMV_PARAMETERS_PUB.INITIALIZE_QUERY_TYPE;
33   x_custom_output := BIS_QUERY_ATTRIBUTES_TBL();
34 
35 /* Get security clause for Manager based security */
36   l_security_clause := hri_oltp_pmv_util_pkg.get_security_clause('MGR');
37 
38 /* Get common parameter values */
39   hri_oltp_pmv_util_param.get_parameters_from_table
40         (p_page_parameter_tbl  => p_page_parameter_tbl,
41          p_parameter_rec       => l_parameter_rec,
42          p_bind_tab            => l_bind_tab);
43 
44 /* Force view by manager */
45   l_parameter_rec.view_by := 'HRI_PERSON+HRI_PER_USRDR_H';
46 
47 /* Get SQL for workforce fact */
48   l_wrkfc_fact_params.bind_format := 'PMV';
49   l_wrkfc_fact_params.include_comp := 'Y';
50   l_wrkfc_fact_params.include_hdc := 'Y';
51   l_wrkfc_fact_params.kpi_mode := 'Y';
52   l_wrkfc_fact_params.bucket_dim := 'HRI_PRSNTYP+HRI_WKTH_WKTYP';
53   l_wrkfc_fact_sql := hri_bpl_fact_sup_wrkfc_sql.get_sql
54    (p_parameter_rec  => l_parameter_rec,
55     p_bind_tab       => l_bind_tab,
56     p_wrkfc_params   => l_wrkfc_fact_params,
57     p_calling_module => 'HRI_OLTP_PMV_WMV_WF_SUP.GET_KPI');
58 
59 l_SQLText :=
60 'SELECT -- Total Workforce KPI Report
61  vby.id                         VIEWBYID
62 ,vby.value                      VIEWBY
63 ,tab.CURR_HDC_END               HRI_P_MEASURE1
64 ,tab.COMP_HDC_END               HRI_P_MEASURE2
65 ,tab.CURR_HDC_EMP               HRI_P_MEASURE3
66 ,tab.CURR_HDC_EMP               HRI_P_MEASURE4
67 ,tab.CURR_HDC_CWK               HRI_P_MEASURE5
68 ,tab.COMP_HDC_CWK               HRI_P_MEASURE6
69 ,tab.CURR_HDC_END               HRI_P_GRAND_TOTAL1
70 ,tab.COMP_HDC_END               HRI_P_GRAND_TOTAL2
71 ,tab.CURR_HDC_EMP               HRI_P_GRAND_TOTAL3
72 ,tab.CURR_HDC_EMP               HRI_P_GRAND_TOTAL4
73 ,CURR_HDC_CWK                   HRI_P_GRAND_TOTAL5
74 ,COMP_HDC_CWK                   HRI_P_GRAND_TOTAL6
75 FROM
76  hri_dbi_cl_per_n_v  vby
77 ,(' || l_wrkfc_fact_sql || ')  tab
78 WHERE tab.vby_id = vby.id
79 AND &BIS_CURRENT_ASOF_DATE BETWEEN vby.effective_start_date
80                           AND vby.effective_end_date
81 ' || l_security_clause;
82 
83   x_custom_sql := l_SQLText;
84 
85 END GET_KPI;
86 --
87 -- ***************************************************
88 -- * AK SQL For Workforce Activity By Manager Status *
89 -- * AK Region : HRI_P_WMV_WF_SUP                    *
90 -- ***************************************************
91 --
92 PROCEDURE get_sql(p_page_parameter_tbl  IN BIS_PMV_PAGE_PARAMETER_TBL,
93                    x_custom_sql          OUT NOCOPY VARCHAR2,
94                    x_custom_output       OUT NOCOPY BIS_QUERY_ATTRIBUTES_TBL) IS
95 
96   l_sqltext              VARCHAR2(32767);
97   l_security_clause      VARCHAR2(4000);
98   l_custom_rec           BIS_QUERY_ATTRIBUTES;
99 
100 /* Parameter values */
101   l_parameter_rec         hri_oltp_pmv_util_param.HRI_PMV_PARAM_REC_TYPE;
102   l_bind_tab              hri_oltp_pmv_util_param.HRI_PMV_BIND_TAB_TYPE;
103 
104 /* Pre-calculations */
105   l_tot_gain              NUMBER;
106   l_tot_gain_hire         NUMBER;
107   l_tot_gain_place        NUMBER;
108   l_tot_gain_all          NUMBER;
109   l_tot_gain_transfer_emp NUMBER;
110   l_tot_gain_transfer_cwk NUMBER;
111   l_tot_gain_transfer_all NUMBER;
112   l_tot_loss              NUMBER;
113   l_tot_loss_term         NUMBER;
114   l_tot_loss_place        NUMBER;
115   l_tot_loss_all          NUMBER;
116   l_tot_loss_transfer_emp NUMBER;
117   l_tot_loss_transfer_cwk NUMBER;
118   l_tot_loss_transfer_all NUMBER;
119   l_tot_net               NUMBER;
120 
121 /* Direct reports string */
122   l_direct_reports_string VARCHAR2(30);
123 
124 /* To support selective drill across urls */
125   l_drill_to_function1    VARCHAR2(300);
126   l_drill_to_function2    VARCHAR2(300);
127   l_drill_to_function3    VARCHAR2(300);
128   l_drill_to_function4    VARCHAR2(300);
129   l_drill_to_function5    VARCHAR2(300);
130   l_drill_to_function6	  VARCHAR2(300);
131   l_drill_url1            VARCHAR2(300);
132   l_drill_url2            VARCHAR2(300);
133   l_drill_url3            VARCHAR2(300);
134   l_drill_url4            VARCHAR2(300);
135   l_drill_url5            VARCHAR2(300);
136   l_drill_url6            VARCHAR2(300);
137   l_drill_url7            VARCHAR2(300);
138   l_drill_url8            VARCHAR2(300);
139 
140 /* Dynamic SQL controls */
141   l_wrkfc_fact_params    hri_bpl_fact_sup_wrkfc_sql.wrkfc_fact_param_type;
142   l_wrkfc_fact_sql       VARCHAR2(10000);
143   l_wcnt_chg_fact_params hri_bpl_fact_sup_wcnt_chg_sql.wcnt_chg_fact_param_type;
144   l_wcnt_chg_fact_sql    VARCHAR2(10000);
145 
146 BEGIN
147 
148  /* Initialize out parameters */
149   l_custom_rec := BIS_PMV_PARAMETERS_PUB.INITIALIZE_QUERY_TYPE;
150   x_custom_output := BIS_QUERY_ATTRIBUTES_TBL();
151 
152  /* Get common parameter values */
153   hri_oltp_pmv_util_param.get_parameters_from_table
154         (p_page_parameter_tbl  => p_page_parameter_tbl,
155          p_parameter_rec       => l_parameter_rec,
156          p_bind_tab            => l_bind_tab);
157 
158 
159   /* use selective drill across feature */
160   l_drill_url1 := 'pFunctionName=HRI_P_WMV_WF_SUP&' ||
161                   'VIEW_BY=HRI_PERSON+HRI_PER_USRDR_H&' ||
162                   'VIEW_BY_NAME=VIEW_BY_ID&' ||
163                   'pParamIds=Y';
164 
165   l_drill_url2 := 'pFunctionName=HRI_P_WAC_HIR_SUP_DTL&' ||
166                   'VIEW_BY=HRI_PERSON+HRI_PER_USRDR_H&' ||
167                   'VIEW_BY_NAME=VIEW_BY_ID&' ||
168                   'HRI_P_SUPH_RO_CA=HRI_P_SUPH_RO_CA&' ||
169                   'pParamIds=Y';
170 
171   l_drill_url3 := 'pFunctionName=HRI_P_WAC_C_HIR_SUP_DTL&' ||
172                   'VIEW_BY=HRI_PERSON+HRI_PER_USRDR_H&' ||
173                   'VIEW_BY_NAME=VIEW_BY_ID&' ||
174                   'HRI_P_SUPH_RO_CA=HRI_P_SUPH_RO_CA&' ||
175                   'pParamIds=Y';
176 
177   l_drill_url4 := 'pFunctionName=HRI_P_WAC_WF_IN_SUP_DTL&' ||
178                   'VIEW_BY=HRI_PERSON+HRI_PER_USRDR_H&' ||
179                   'VIEW_BY_NAME=VIEW_BY_ID&' ||
180                   'HRI_P_SUPH_RO_CA=HRI_P_SUPH_RO_CA&' ||
181                   'pParamIds=Y';
182 
183   l_drill_url5 := 'pFunctionName=HRI_P_WAC_SEP_SUP_DTL&' ||
184                   'VIEW_BY=HRI_PERSON+HRI_PER_USRDR_H&' ||
185                   'VIEW_BY_NAME=VIEW_BY_ID&' ||
186                   'HRI_P_SUPH_RO_CA=HRI_P_SUPH_RO_CA&' ||
187                   'pParamIds=Y';
188 
189   l_drill_url6 := 'pFunctionName=HRI_P_WAC_C_SEP_SUP_DTL&' ||
190                   'VIEW_BY=HRI_PERSON+HRI_PER_USRDR_H&' ||
191                   'VIEW_BY_NAME=VIEW_BY_ID&' ||
192                   'HRI_P_SUPH_RO_CA=HRI_P_SUPH_RO_CA&' ||
193                   'pParamIds=Y';
194 
195   l_drill_url7 := 'pFunctionName=HRI_P_WAC_WF_OUT_SUP_DTL&' ||
196                   'VIEW_BY=HRI_PERSON+HRI_PER_USRDR_H&' ||
197                   'VIEW_BY_NAME=VIEW_BY_ID&' ||
198                   'HRI_P_SUPH_RO_CA=HRI_P_SUPH_RO_CA&' ||
199                   'pParamIds=Y';
200 
201   l_drill_url8 := 'pFunctionName=HRI_P_WMV_WF_SUP_DTL&' ||
202                   'VIEW_BY=HRI_PERSON+HRI_PER_USRDR_H&' ||
203                   'VIEW_BY_NAME=VIEW_BY_ID&' ||
204                   'HRI_P_SUPH_RO_CA=HRI_P_SUPH_RO_CA&' ||
205                   'pParamIds=Y';
206 
207 /* Get security clause for Manager based security */
208   l_security_clause := hri_oltp_pmv_util_pkg.get_security_clause('MGR');
209 
210 /* Set direct reports string */
211   l_direct_reports_string := hri_oltp_view_message.get_direct_reports_msg;
212 
213 /* Get WMV Change totals for supervisor from cursor */
214 
215 
216 /* Totals For Employee Columns */
217   hri_bpl_dbi_calc_period.calc_sup_wcnt_chg
218         (p_supervisor_id        => l_parameter_rec.peo_supervisor_id,
219          p_from_date            => l_parameter_rec.time_curr_start_date,
220          p_to_date              => l_parameter_rec.time_curr_end_date,
221          p_period_type          => l_parameter_rec.page_period_type,
222          p_comparison_type      => l_parameter_rec.time_comparison_type,
223          p_total_type           => 'ROLLUP',
224          p_wkth_wktyp_sk_fk     => 'EMP',
225          p_total_gain_hire      => l_tot_gain_hire,
226          p_total_gain_transfer  => l_tot_gain_transfer_emp,
227          p_total_loss_term      => l_tot_loss_term,
228          p_total_loss_transfer  => l_tot_loss_transfer_emp);
229 
230 /* Totals Contingent Worker Columns */
231   hri_bpl_dbi_calc_period.calc_sup_wcnt_chg
232         (p_supervisor_id        => l_parameter_rec.peo_supervisor_id,
233          p_from_date            => l_parameter_rec.time_curr_start_date,
234          p_to_date              => l_parameter_rec.time_curr_end_date,
235          p_period_type          => l_parameter_rec.page_period_type,
236          p_comparison_type      => l_parameter_rec.time_comparison_type,
237          p_total_type           => 'ROLLUP',
238          p_wkth_wktyp_sk_fk     => 'CWK',
239          p_total_gain_hire      => l_tot_gain_place,
240          p_total_gain_transfer  => l_tot_gain_transfer_cwk,
241          p_total_loss_term      => l_tot_loss_place,
242          p_total_loss_transfer  => l_tot_loss_transfer_cwk);
243 
244 
245 /* Set WMV Change dependent totals */
246   l_tot_gain_transfer_all := l_tot_gain_transfer_emp + l_tot_gain_transfer_cwk;
247   l_tot_loss_transfer_all := l_tot_loss_transfer_emp + l_tot_loss_transfer_cwk;
248   l_tot_gain_all := l_tot_gain_hire + l_tot_gain_place;
249   l_tot_loss_all := l_tot_loss_term + l_tot_loss_place;
250 
251   l_tot_gain := l_tot_gain_all + l_tot_gain_transfer_all;
252   l_tot_loss := l_tot_loss_all + l_tot_loss_transfer_all;
253   l_tot_net := l_tot_gain - l_tot_loss;
254 
255 /* Set the dynamic order by from the dimension metadata */
256   l_parameter_rec.order_by := hri_oltp_pmv_util_pkg.set_default_order_by
257                 (p_order_by_clause => l_parameter_rec.order_by);
258 
259 
260 /* Currently Using Standalone query */
261 
262 /* Get SQL for workforce fact */
263   l_wrkfc_fact_params.bind_format := 'PMV';
264   l_wrkfc_fact_params.include_comp := 'Y';
265   l_wrkfc_fact_params.include_hdc := 'Y';
266   l_wrkfc_fact_params.include_start := 'Y';
267   l_wrkfc_fact_sql := hri_bpl_fact_sup_wrkfc_sql.get_sql
268    (p_parameter_rec  => l_parameter_rec,
269     p_bind_tab       => l_bind_tab,
270     p_wrkfc_params   => l_wrkfc_fact_params,
271     p_calling_module => 'HRI_OLTP_PMV_WMV_WF_SUP.GET_SQL2');
272 
273 /* Get SQL for workforce changes fact */
274   l_wcnt_chg_fact_params.bind_format := 'PMV';
275   l_wcnt_chg_fact_params.include_hire := 'Y';
276   l_wcnt_chg_fact_params.include_trin := 'Y';
277   l_wcnt_chg_fact_params.include_trout := 'Y';
278   l_wcnt_chg_fact_params.include_term := 'Y';
279   l_wcnt_chg_fact_params.bucket_dim := 'HRI_PRSNTYP+HRI_WKTH_WKTYP';
280   l_wcnt_chg_fact_sql := hri_bpl_fact_sup_wcnt_chg_sql.get_sql
281    (p_parameter_rec   => l_parameter_rec,
282     p_bind_tab        => l_bind_tab,
283     p_wcnt_chg_params => l_wcnt_chg_fact_params,
284     p_calling_module  => 'HRI_OLTP_PMV_WMV_WF_SUP.GET_SQL');
285 
286 /* Build query */
287   l_sqltext :='SELECT  -- Workforce Activity by Manager Status
288  tots.id                      			VIEWBYID
289 ,tots.value                   			VIEWBY
290 ,tots.current_wmv_start      			HRI_P_MEASURE1
291 ,tots.wmv_gain_hire          			HRI_P_MEASURE2
292 ,'''|| l_drill_url2 ||'''               HRI_P_DRILL_URL2
293 ,tots.wmv_gain_place					HRI_P_MEASURE3
294 ,'''|| l_drill_url3 ||'''               HRI_P_DRILL_URL3
295 ,tots.wmv_gain_transfer   			    HRI_P_MEASURE4
296 ,'''|| l_drill_url4 ||'''               HRI_P_DRILL_URL4
297 ,tots.wmv_loss_term       	            HRI_P_MEASURE5
298 ,'''|| l_drill_url5 ||'''               HRI_P_DRILL_URL5
299 ,tots.wmv_loss_end_place                HRI_P_MEASURE6
300 ,'''|| l_drill_url6 ||'''               HRI_P_DRILL_URL6
301 ,tots.wmv_loss_transfer      			HRI_P_MEASURE7
302 ,'''|| l_drill_url7 ||'''               HRI_P_DRILL_URL7
303 ,tots.current_wmv_end        			HRI_P_MEASURE8
304 ,tots.wmv_net                			HRI_P_MEASURE9
305 ,DECODE(tots.previous_wmv_end,
306           0, DECODE(tots.current_wmv_end,0,0,100),
307         (tots.current_wmv_end - tots.previous_wmv_end) * 100 /
308         tots.previous_wmv_end)          HRI_P_MEASURE10
309 ,tots.curr_total_hdc_start              HRI_P_GRAND_TOTAL1
310 ,:HRI_TOT_GAIN_HIRE                     HRI_P_GRAND_TOTAL2
311 ,:HRI_TOT_GAIN_PLACE                    HRI_P_GRAND_TOTAL3
312 ,:HRI_TOT_GAIN_TRANSFER                 HRI_P_GRAND_TOTAL4
313 ,:HRI_TOT_LOSS_TERM                     HRI_P_GRAND_TOTAL5
314 ,:HRI_TOT_LOSS_PLACE                    HRI_P_GRAND_TOTAL6
315 ,:HRI_TOT_LOSS_TRANSFER                 HRI_P_GRAND_TOTAL7
316 ,tots.curr_total_hdc_end                HRI_P_GRAND_TOTAL8
317 ,:HRI_TOT_NET_GAIN_LOSS                 HRI_P_GRAND_TOTAL9
318 ,DECODE(tots.comp_total_hdc_end,
319           0, DECODE(tots.curr_total_hdc_end  , 0, 0, 100),
320         (tots.curr_total_hdc_end - tots.comp_total_hdc_end) * 100 /
321         tots.comp_total_hdc_end)        HRI_P_GRAND_TOTAL10
322 ,tots.order_by              			HRI_P_ORDER_BY_1
323 ,tots.suph_rollup_flag      			HRI_P_SUPH_RO_CA
324 ,DECODE(tots.suph_rollup_flag,''Y'','''|| l_drill_url1 ||'''
325                              ,''N'','''|| l_drill_url8 ||''')
326                                         HRI_P_DRILL_URL8
327 FROM
328 (SELECT
329   per.id
330  ,DECODE(wmv.direct_ind,
331            1, ''' || l_direct_reports_string || ''',
332          per.value)                 value
333  ,to_char(wmv.direct_ind) || per.order_by               order_by
334  ,NVL(chg.Curr_hire_hdc + chg.curr_transfer_in_hdc,0)   wmv_gain
335  ,NVL(chg.curr_hire_hdc_emp,0)                          wmv_gain_hire
336  ,NVL(chg.curr_hire_hdc_cwk,0)                          wmv_gain_place
337  ,NVL(chg.curr_transfer_in_hdc,0)                       wmv_gain_transfer
338  ,NVL(chg.curr_termination_hdc + curr_transfer_out_hdc,0)
339                                                         wmv_loss
340  ,NVL(chg.curr_termination_hdc_emp,0)                   wmv_loss_term
341  ,NVL(chg.curr_termination_hdc_cwk,0)                   wmv_loss_end_place
342  ,NVL(chg.curr_transfer_out_hdc,0)                      wmv_loss_transfer
343  ,NVL((chg.curr_hire_hdc + chg.curr_transfer_in_hdc) -
344  (chg.curr_termination_hdc + chg.curr_transfer_out_hdc), 0)
345                                                         wmv_net
346  ,wmv.curr_hdc_start                                    current_wmv_start
347  ,wmv.curr_hdc_end                                      current_wmv_end
348  ,wmv.comp_hdc_start                                    previous_wmv_start
349  ,wmv.comp_hdc_end                                      previous_wmv_end
350  ,SUM(wmv.curr_hdc_end) OVER ()                         curr_total_hdc_end
351  ,SUM(wmv.curr_total_hdc_start) OVER ()                 curr_total_hdc_start
352  ,SUM(wmv.comp_total_hdc_end) OVER ()                   comp_total_hdc_end
353  ,DECODE(wmv.direct_ind,
354            1, ''N'',
355          '''')                                          suph_rollup_flag
356  FROM
357   hri_dbi_cl_per_n_v      per
358  ,('|| l_wrkfc_fact_sql ||') wmv
359  ,('|| l_wcnt_chg_fact_sql ||') chg
360  WHERE wmv.vby_id = chg.vby_id (+)
361  AND wmv.vby_id = per.id
362  AND &AS_OF_DATE BETWEEN per.effective_start_date
363                             AND per.effective_end_date
364  AND (wmv.curr_hdc_end > 0
365    OR chg.curr_hire_hdc > 0
366    or chg.curr_transfer_in_hdc > 0
367    or chg.curr_transfer_out_hdc > 0
368    or chg.curr_termination_hdc > 0
369    or wmv.direct_ind = 1)
370 ) tots
371 WHERE 1 = 1
372 ' || l_security_clause || '
373 ORDER BY ' || l_parameter_rec.order_by;
374 
375   x_custom_sql := l_SQLText;
376 
377 /* Total not yet code for */
378 
379   l_custom_rec.attribute_name := ':HRI_TOT_GAIN_HIRE';
380   l_custom_rec.attribute_value := l_tot_gain_hire;
381   l_custom_Rec.attribute_type := bis_pmv_parameters_pub.bind_type;
382   l_custom_rec.attribute_data_type := bis_pmv_parameters_pub.numeric_bind;
383   x_custom_output.extend;
384   x_custom_output(1) := l_custom_rec;
385 
386   l_custom_rec.attribute_name := ':HRI_TOT_GAIN_PLACE';
387   l_custom_rec.attribute_value := l_tot_gain_place;
388   l_custom_Rec.attribute_type := bis_pmv_parameters_pub.bind_type;
389   l_custom_rec.attribute_data_type := bis_pmv_parameters_pub.numeric_bind;
390   x_custom_output.extend;
391   x_custom_output(2) := l_custom_rec;
392 
393   l_custom_rec.attribute_name := ':HRI_TOT_GAIN_TRANSFER';
394   l_custom_rec.attribute_value := l_tot_gain_transfer_all;
395   l_custom_Rec.attribute_type := bis_pmv_parameters_pub.bind_type;
396   l_custom_rec.attribute_data_type := bis_pmv_parameters_pub.numeric_bind;
397   x_custom_output.extend;
398   x_custom_output(3) := l_custom_rec;
399 
400   l_custom_rec.attribute_name := ':HRI_TOT_LOSS_TERM';
401   l_custom_rec.attribute_value := l_tot_loss_term;
402   l_custom_Rec.attribute_type := bis_pmv_parameters_pub.bind_type;
403   l_custom_rec.attribute_data_type := bis_pmv_parameters_pub.numeric_bind;
404   x_custom_output.extend;
405   x_custom_output(4) := l_custom_rec;
406 
407   l_custom_rec.attribute_name := ':HRI_TOT_LOSS_PLACE';
408   l_custom_rec.attribute_value := l_tot_loss_place;
409   l_custom_Rec.attribute_type := bis_pmv_parameters_pub.bind_type;
410   l_custom_rec.attribute_data_type := bis_pmv_parameters_pub.numeric_bind;
411   x_custom_output.extend;
412   x_custom_output(5) := l_custom_rec;
413 
414   l_custom_rec.attribute_name := ':HRI_TOT_LOSS_TRANSFER';
415   l_custom_rec.attribute_value := l_tot_loss_transfer_all;
416   l_custom_Rec.attribute_type := bis_pmv_parameters_pub.bind_type;
417   l_custom_rec.attribute_data_type := bis_pmv_parameters_pub.numeric_bind;
418   x_custom_output.extend;
419   x_custom_output(6) := l_custom_rec;
420 
421   l_custom_rec.attribute_name := ':HRI_TOT_NET_GAIN_LOSS';
422   l_custom_rec.attribute_value := l_tot_net;
423   l_custom_Rec.attribute_type := bis_pmv_parameters_pub.bind_type;
424   l_custom_rec.attribute_data_type := bis_pmv_parameters_pub.numeric_bind;
425   x_custom_output.extend;
426   x_custom_output(7) := l_custom_rec;
427 
428 END get_sql;
429 
430 END HRI_OLTP_PMV_WMV_WF_SUP;