[Home] [Help]
PACKAGE BODY: APPS.ASO_BI_APPR_FACT_PVT
Source
1 PACKAGE BODY ASO_BI_APPR_FACT_PVT AS
2 /* $Header: asovbiapb.pls 120.3 2006/08/10 05:56:02 vselvapr noship $ */
3
4 --procedure for the initial load of approval facts
5 Procedure Appr_Init_Load
6 As
7 l_user_id number;
8 l_login_id number;
9 Begin
10
11 BIS_COLLECTION_UTILITIES.Debug('Start populating the Approvals fact Table');
12
13 l_user_id := FND_GLOBAL.user_id;
14 l_login_id := FND_GLOBAL.login_id;
15 --insert statement
16
17 INSERT /*+ APPEND PARALLEL(FACT) */ INTO ASO_BI_APR_F FACT
18 (
19 QUOTE_NUMBER,
20 QUOTE_VERSION,
21 QUOTE_HEADER_ID,
22 RESOURCE_ID,
23 RESOURCE_GRP_ID,
24 OBJECT_APPROVAL_ID,
25 APPROVAL_INSTANCE_ID,
26 APPROVAL_STATUS,
27 NUM_APPROVERS,
28 APR_START_DATE,
29 APR_END_DATE,
30 QA_END_DATE,
31 QUOTE_CREATION_DATE,
32 QUOTE_LAST_UPDATE_DATE,
33 QUOTE_EXPIRATION_DATE,
34 creation_date,
35 created_by,
36 last_update_date,
37 last_updated_by,
38 LAST_UPDATE_LOGIN
39 )
40 SELECT /*+ PARALLEL(QOT) PARALLEL(APR) PARALLEL(APRD) */
41 QOT.Quote_Number,
42 QOT.Quote_Version,
43 QOT.Quote_header_id,
44 QOT.Resource_id,
45 QOT.Resource_grp_id,
46 APR.Object_approval_id,
47 APR.Approval_instance_id,
48 APR.Approval_status,
49 COUNT(*) NUM_APPROVERS,
50 TRUNC(APR.Start_date) Apr_start_date ,
51 TRUNC(APR.End_date) Apr_end_date ,
52 TRUNC(APR.end_date) QA_end_date,
53 QOT.Quote_creation_date,
54 QOT.Quote_last_update_date,
55 QOT.Quote_expiration_date,
56 SYSDATE,
57 l_user_id,
58 SYSDATE,
59 l_user_id,
60 l_login_id
61 FROM ASO_BI_QUOTE_HDRS_ALL QOT,
62 ASO_APR_OBJ_APPROVALS APR,
63 ASO_APR_APPROVAL_DETAILS APRD
64 WHERE
65 QOT.quote_header_id = APR.object_id
66 AND APR.object_type = 'Quote'
67 AND APRD.object_approval_id = APR.object_approval_id
68 AND QOT.recurring_charge_flag = 'N'
69 AND APR.approval_instance_id = (select max(approval_instance_id)
70 from ASO_APR_OBJ_APPROVALS A
71 where A.Object_id = QOT.Quote_header_id)
72 GROUP BY
73 QOT.Quote_Number, QOT.Quote_Version,
74 QOT.Quote_creation_date,QOT.Quote_last_update_date,
75 QOT.Quote_header_id,
76 QOT.Resource_id,QOT.Resource_grp_id,
77 QOT.Quote_expiration_date,
78 APR.Object_approval_id,APR.Approval_instance_id,APR.Approval_status,
79 TRUNC(APR.Start_date),APR.End_date,TRUNC(NVL(APR.end_date, QOT.Quote_expiration_date));
80
81 BIS_COLLECTION_UTILITIES.Debug('Done populating the Approvals fact Table:'||'Rowcount:'|| SQL%ROWCOUNT);
82
83 COMMIT;
84
85 end Appr_Init_Load;
86
87
88 --Procedure for the incremental load of approval facts
89 Procedure Appr_Incremental_Load
90 As
91 l_user_id number;
92 l_login_id number;
93 Begin
94
95 BIS_COLLECTION_UTILITIES.Debug('Start populating the Approvals fact Table');
96
97 l_user_id := FND_GLOBAL.user_id;
98 l_login_id := FND_GLOBAL.login_id;
99
100 --Delete the modified approvals
101 DELETE FROM ASO_BI_APR_F FACT
102 WHERE FACT.Quote_header_id IN (SELECT Quote_header_id FROM ASO_BI_QUOTE_IDS);
103
104 --insert statement
105 INSERT INTO ASO_BI_APR_F
106 (
107 QUOTE_NUMBER,
108 QUOTE_VERSION,
109 QUOTE_HEADER_ID,
110 RESOURCE_ID,
111 RESOURCE_GRP_ID,
112 OBJECT_APPROVAL_ID,
113 APPROVAL_INSTANCE_ID,
114 APPROVAL_STATUS,
115 NUM_APPROVERS,
116 APR_START_DATE,
117 APR_END_DATE,
118 QA_END_DATE,
119 QUOTE_CREATION_DATE,
120 QUOTE_LAST_UPDATE_DATE,
121 QUOTE_EXPIRATION_DATE,
122 creation_date,
123 created_by,
124 last_update_date,
125 last_updated_by,
126 LAST_UPDATE_LOGIN
127 )
128 SELECT
129 QOT.Quote_Number,
130 QOT.Quote_Version,
131 QOT.Quote_header_id,
132 QOT.Resource_id,
133 QOT.Resource_grp_id,
134 APR.Object_approval_id,
135 APR.Approval_instance_id,
136 APR.Approval_status,
137 COUNT(*) NUM_APPROVERS,
138 TRUNC(APR.Start_date) Apr_start_date ,
139 TRUNC(APR.End_date) Apr_end_date ,
140 TRUNC(APR.end_date) QA_end_date,
141 QOT.Quote_creation_date,
142 QOT.Quote_last_update_date,
143 QOT.Quote_expiration_date,
144 SYSDATE,
145 l_user_id,
146 SYSDATE,
147 l_user_id,
148 l_login_id
149 FROM ASO_BI_QUOTE_HDRS_ALL QOT,
150 ASO_APR_OBJ_APPROVALS APR,
151 ASO_APR_APPROVAL_DETAILS APRD,
152 ASO_BI_QUOTE_IDS QID
153 WHERE
154 QOT.quote_header_id = APR.object_id
155 AND APR.object_type = 'Quote'
156 AND QID.quote_header_id = APR.object_id
157 AND APRD.object_approval_id = APR.object_approval_id
158 AND QOT.recurring_charge_flag = 'N'
159 AND APR.approval_instance_id = (select max(approval_instance_id)
160 from ASO_APR_OBJ_APPROVALS A
161 where A.Object_id = QOT.Quote_header_id)
162 GROUP BY
163 QOT.Quote_Number, QOT.Quote_Version,
164 QOT.Quote_creation_date,QOT.Quote_last_update_date,
165 QOT.Quote_header_id,
166 QOT.Resource_id,QOT.Resource_grp_id,
167 QOT.Quote_expiration_date,
168 APR.Object_approval_id,APR.Approval_instance_id,APR.Approval_status,
169 TRUNC(APR.Start_date),APR.End_date,TRUNC(NVL(APR.end_date, QOT.Quote_expiration_date));
170
171 -- Added to fix bug 5413781
172 --Delete the duplicate version of all quotes in ASO_BI_APR_F, retaining the latest version.
173 delete from ASO_BI_APR_F a
174 where a.quote_version < (select MAX(quote_version)
175 from ASO_BI_APR_F b
176 where a.quote_number = b.quote_number);
177
178 BIS_COLLECTION_UTILITIES.Debug('Done populating the Approvals fact Table:'||'Rowcount:'|| SQL%ROWCOUNT);
179
180 COMMIT;
181
182
183 end Appr_Incremental_Load;
184
185
186
187
188 --for the initial load of aproval rules fact
189 Procedure Rul_Init_load
190 As
191 l_user_id number;
192 l_login_id number;
193 Begin
194
195 BIS_COLLECTION_UTILITIES.Debug('Start populating the Rules fact Table');
196
197 l_user_id := FND_GLOBAL.user_id;
198 l_login_id := FND_GLOBAL.login_id;
199
200 --insert statement
201 INSERT /*+ APPEND PARALLEL(FACT) */ INTO ASO_BI_APR_RUL_F FACT
202 (
203 QUOTE_NUMBER,
204 QUOTE_VERSION,
205 QUOTE_HEADER_ID,
206 OBJECT_APPROVAL_ID,
207 RESOURCE_ID,
208 RESOURCE_GRP_ID,
209 APPROVAL_STATUS,
210 OAM_RULE_ID,
211 QUOTE_CREATION_DATE,
212 QUOTE_LAST_UPDATE_DATE,
213 QUOTE_EXPIRATION_DATE,
214 APR_START_DATE,
215 APR_END_DATE,
216 QA_END_DATE,
217 CREATION_DATE,
218 CREATED_BY,
219 LAST_UPDATE_DATE,
220 LAST_UPDATED_BY,
221 LAST_UPDATE_LOGIN
222 )
223 SELECT /*+ PARALLEL(APRF) PARALLEL(RUL) */
224 APRF.Quote_Number,
225 APRF.Quote_Version,
226 APRF.Quote_header_id,
227 APRF.Object_approval_id,
228 APRF.Resource_id,
229 APRF.Resource_grp_id,
230 APRF.Approval_status,
231 RUL.oam_rule_id,
232 APRF.Quote_creation_date,
233 APRF.Quote_last_update_date,
234 APRF.Quote_expiration_date ,
235 APRF.Apr_start_date ,
236 APRF.Apr_end_date ,
237 APRF.apr_end_date,
238 SYSDATE,
239 l_user_id,
240 SYSDATE,
241 l_user_id,
242 l_login_id
243 FROM
244 ASO_BI_APR_F APRF,
245 ASO_APR_RULES RUL
246 WHERE
247 APRF.object_approval_id = RUL.object_approval_id;
248
249
250 BIS_COLLECTION_UTILITIES.Debug('Done populating the Rules fact Table:'||'Rowcount:'|| SQL%ROWCOUNT);
251
252 COMMIT;
253
254
255 end Rul_Init_load;
256
257
258 --for the incremental load of aproval rules fact
259 Procedure Rul_Incremental_load
260 As
261 l_user_id number;
262 l_login_id number;
263 Begin
264
265 BIS_COLLECTION_UTILITIES.Debug('Start populating the Rules fact Table');
266
267 l_user_id := FND_GLOBAL.user_id;
268 l_login_id := FND_GLOBAL.login_id;
269
270 --Delete the modified approvals
271 DELETE FROM ASO_BI_APR_RUL_F FACT
272 WHERE FACT.Quote_header_id IN (SELECT Quote_header_id FROM ASO_BI_QUOTE_IDS);
273
274 --insert statement
275 INSERT INTO ASO_BI_APR_RUL_F
276 (
277 QUOTE_NUMBER,
278 QUOTE_VERSION,
279 QUOTE_HEADER_ID,
280 OBJECT_APPROVAL_ID,
281 RESOURCE_ID,
282 RESOURCE_GRP_ID,
283 APPROVAL_STATUS,
284 OAM_RULE_ID,
285 QUOTE_CREATION_DATE,
286 QUOTE_LAST_UPDATE_DATE,
287 QUOTE_EXPIRATION_DATE,
288 APR_START_DATE,
289 APR_END_DATE,
290 QA_END_DATE,
291 CREATION_DATE,
292 CREATED_BY,
293 LAST_UPDATE_DATE,
294 LAST_UPDATED_BY,
295 LAST_UPDATE_LOGIN
296 )
297 SELECT
298 APRF.Quote_Number,
299 APRF.Quote_Version,
300 APRF.Quote_header_id,
301 APRF.Object_approval_id,
302 APRF.Resource_id,
303 APRF.Resource_grp_id,
304 APRF.Approval_status,
305 RUL.oam_rule_id,
306 APRF.Quote_creation_date,
307 APRF.Quote_last_update_date,
308 APRF.Quote_expiration_date ,
309 APRF.Apr_start_date ,
310 APRF.Apr_end_date ,
311 APRF.apr_end_date,
312 SYSDATE,
313 l_user_id,
314 SYSDATE,
315 l_user_id,
316 l_login_id
317 FROM
318 ASO_BI_APR_F APRF,
319 ASO_APR_RULES RUL,
320 ASO_BI_QUOTE_IDS QID
321 WHERE
322 APRF.Object_approval_id = RUL.Object_approval_id
323 AND QID.Quote_header_id = APRF.Quote_header_id;
324
325
326 BIS_COLLECTION_UTILITIES.Debug('Done populating the Rules fact Table:'||'Rowcount:'|| SQL%ROWCOUNT);
327
328 COMMIT;
329
330 END Rul_Incremental_load;
331
332
333 END ASO_BI_APPR_FACT_PVT ;