[Home] [Help]
PACKAGE BODY: APPS.OPI_EDW_OPI_OPRN_M_SZ
Source
1 PACKAGE BODY opi_edw_opi_oprn_m_sz as
2 /* $Header: OPIOONZB.pls 120.1 2005/06/07 02:32:38 appldev $*/
3
4 PROCEDURE cnt_rows(p_from_date DATE,
5 p_to_date DATE,
6 p_num_rows OUT NOCOPY NUMBER) IS
7 CURSOR c_cnt_rows IS
8 select sum(cnt)
9 from (select count(*) cnt
10 FROM
11 BOM_OPERATION_SEQUENCES BOS,
12 BOM_OPERATIONAL_ROUTINGS BOR,
13 BOM_STANDARD_OPERATIONS bso
14 WHERE BOS.ROUTING_SEQUENCE_ID = BOR.ROUTING_SEQUENCE_ID
15 AND bos.STANDARD_OPERATION_ID = BSO.STANDARD_OPERATION_ID (+)
16 AND Greatest( bos.last_update_date, bor.last_update_date,
17 bso.last_update_date) between p_from_date and p_to_date
18 UNION ALL
19 SELECT count(*) cnt
20 FROM dual
21 );
22
23 BEGIN
24
25 OPEN c_cnt_rows;
26 FETCH c_cnt_rows INTO p_num_rows;
27 CLOSE c_cnt_rows;
28
29 END; -- procedure cnt_rows.
30
31
32 PROCEDURE est_row_len(p_from_date DATE,
33 p_to_date DATE,
34 p_est_row_len OUT NOCOPY NUMBER) IS
35
36 x_date number := 7;
37 x_total number := 0;
38 x_constant number := 6;
39
40 CURSOR c_org IS
41 SELECT avg(nvl(Vsize(organization_id), 0)) org_id,
42 avg(nvl(Vsize(organization_code), 0)) org_code
43 FROM mtl_parameters;
44
45 CURSOR c_instance IS
46 SELECT
47 avg(nvl(vsize(instance_code), 0))
48 FROM EDW_LOCAL_INSTANCE ;
49
50 CURSOR c_bos IS
51 SELECT avg(nvl(vsize(operation_sequence_id), 0)) seq_id,
52 avg(nvl(vsize(DEPARTMENT_ID), 0)) dept_id
53 FROM bom_operation_sequences
54 WHERE last_update_date between p_from_date and p_to_date;
55
56 CURSOR c_bso IS
57 SELECT avg(nvl(vsize(OPERATION_CODE), 0)) code,
58 avg(nvl(vsize(OPERATION_DESCRIPTION), 0)) des
59 FROM bom_standard_operations
60 WHERE last_update_date between p_from_date and p_to_date;
61
62
63 x_instance_fk NUMBER;
64 l_org c_org%ROWTYPE;
65 l_bos c_bos%ROWTYPE;
66 l_bso c_bso%ROWTYPE;
67
68
69 BEGIN
70
71 OPEN c_instance;
72 FETCH c_instance INTO x_instance_fk;
73 CLOSE c_instance;
74
75 OPEN c_org;
76 FETCH c_org INTO l_org;
77 CLOSE c_org;
78
79 OPEN c_bos;
80 FETCH c_bos INTO l_bos;
81 CLOSE c_bos;
82
83 OPEN c_bso;
84 FETCH c_bso INTO l_bso;
85 CLOSE c_bso;
86
87 x_total := x_total
88 -- OPRN_PK
89 + Ceil( Nvl(l_bos.seq_id,0) + l_org.org_id + x_instance_fk +5 + 1)
90 -- OPRC_FK
91 + 5
92 -- OPRN_DP
93 + 4
94 -- NAME OPRN_NAME
95 + 2 * Ceil( Nvl(l_bso.code,0) + 1)
96 -- DESCRIPTION
97 + Ceil(Nvl(l_bso.des,0) + 1)
98 -- ORGN_CODE
99 + Ceil( l_org.org_code + 1)
100 -- DEPARTMENT_ID
101 + Ceil( Nvl(l_bos.dept_id,0) + 1)
102 -- LAST_UPDATE_DATE CREATION_DATE
103 + 2 * x_date;
104
105 p_est_row_len := x_total ;
106
107
108 --dbms_output.put_line ('******************'||x_total||'******') ;
109
110
111 END ;
112
113 END OPI_EDW_OPI_OPRN_M_SZ ; -- procedure est_row_len.