30: -----------------------------------------------------------------------
31: PROCEDURE Clean_Up IS
32: l_retcode VARCHAR2(20);
33: BEGIN
34: --FII_UTIL.truncate_table(p_table_name => 'fii_ar_sales_credits_t', p_retcode => l_retcode);
35: if l_retcode = -1 then
36: g_retcode := -2;
37: RAISE g_truncate_failure;
38: end if;
78: RAISE G_LOGIN_INFO_NOT_AVABLE;
79: END IF;
80:
81: if g_debug_flag = 'Y' then
82: fii_util.put_line('User ID: ' || g_fii_user_id || ' Login ID: ' || g_fii_login_id);
83: end if;
84:
85: EXCEPTION
86: WHEN G_LOGIN_INFO_NOT_AVABLE THEN
84:
85: EXCEPTION
86: WHEN G_LOGIN_INFO_NOT_AVABLE THEN
87: if g_debug_flag = 'Y' then
88: fii_util.put_line('
89: Can not get User ID and Login ID, program exit');
90: end if;
91: g_retcode := -1;
92: RAISE;
111:
112: BEGIN
113:
114: if g_debug_flag = 'Y' then
115: fii_util.put_line(' ');
116: fii_util.start_timer;
117: end if;
118:
119: -- Populate FII_AR_SALES_CREDITS with AR Sales Credits that have been inserted since the last Run Date
112: BEGIN
113:
114: if g_debug_flag = 'Y' then
115: fii_util.put_line(' ');
116: fii_util.start_timer;
117: end if;
118:
119: -- Populate FII_AR_SALES_CREDITS with AR Sales Credits that have been inserted since the last Run Date
120: insert into fii_ar_sales_credits (
137:
138: l_row_count := SQL%ROWCOUNT;
139:
140: if g_debug_flag = 'Y' then
141: fii_util.put_line('');
142: fii_util.put_line('Inserted new AR Sales Credits');
143: fii_util.put_line('Processed '||l_row_count||' rows');
144: fii_util.stop_timer;
145: fii_util.print_timer('Duration');
138: l_row_count := SQL%ROWCOUNT;
139:
140: if g_debug_flag = 'Y' then
141: fii_util.put_line('');
142: fii_util.put_line('Inserted new AR Sales Credits');
143: fii_util.put_line('Processed '||l_row_count||' rows');
144: fii_util.stop_timer;
145: fii_util.print_timer('Duration');
146: fii_util.put_line(' ');
139:
140: if g_debug_flag = 'Y' then
141: fii_util.put_line('');
142: fii_util.put_line('Inserted new AR Sales Credits');
143: fii_util.put_line('Processed '||l_row_count||' rows');
144: fii_util.stop_timer;
145: fii_util.print_timer('Duration');
146: fii_util.put_line(' ');
147: end if;
140: if g_debug_flag = 'Y' then
141: fii_util.put_line('');
142: fii_util.put_line('Inserted new AR Sales Credits');
143: fii_util.put_line('Processed '||l_row_count||' rows');
144: fii_util.stop_timer;
145: fii_util.print_timer('Duration');
146: fii_util.put_line(' ');
147: end if;
148:
141: fii_util.put_line('');
142: fii_util.put_line('Inserted new AR Sales Credits');
143: fii_util.put_line('Processed '||l_row_count||' rows');
144: fii_util.stop_timer;
145: fii_util.print_timer('Duration');
146: fii_util.put_line(' ');
147: end if;
148:
149: RETURN(l_row_count);
142: fii_util.put_line('Inserted new AR Sales Credits');
143: fii_util.put_line('Processed '||l_row_count||' rows');
144: fii_util.stop_timer;
145: fii_util.print_timer('Duration');
146: fii_util.put_line(' ');
147: end if;
148:
149: RETURN(l_row_count);
150:
167:
168: BEGIN
169:
170: if g_debug_flag = 'Y' then
171: fii_util.put_line(' ');
172: fii_util.put_line('Processing updates and deletes');
173: fii_util.start_timer;
174: fii_util.put_line('');
175: end if;
168: BEGIN
169:
170: if g_debug_flag = 'Y' then
171: fii_util.put_line(' ');
172: fii_util.put_line('Processing updates and deletes');
173: fii_util.start_timer;
174: fii_util.put_line('');
175: end if;
176:
169:
170: if g_debug_flag = 'Y' then
171: fii_util.put_line(' ');
172: fii_util.put_line('Processing updates and deletes');
173: fii_util.start_timer;
174: fii_util.put_line('');
175: end if;
176:
177: -- Mark rows updated and deleted in the AR application for processing
170: if g_debug_flag = 'Y' then
171: fii_util.put_line(' ');
172: fii_util.put_line('Processing updates and deletes');
173: fii_util.start_timer;
174: fii_util.put_line('');
175: end if;
176:
177: -- Mark rows updated and deleted in the AR application for processing
178: UPDATE FII_AR_SALES_CREDITS_D_T
178: UPDATE FII_AR_SALES_CREDITS_D_T
179: SET STATUS_FLAG = 'P';
180:
181: if g_debug_flag = 'Y' then
182: fii_util.put_line('Marked '||SQL%ROWCOUNT||' rows in FII_AR_SALES_CREDITS_D_T as updated / deleted in AR');
183: fii_util.stop_timer;
184: fii_util.print_timer('Duration');
185: fii_util.start_timer;
186: fii_util.put_line('');
179: SET STATUS_FLAG = 'P';
180:
181: if g_debug_flag = 'Y' then
182: fii_util.put_line('Marked '||SQL%ROWCOUNT||' rows in FII_AR_SALES_CREDITS_D_T as updated / deleted in AR');
183: fii_util.stop_timer;
184: fii_util.print_timer('Duration');
185: fii_util.start_timer;
186: fii_util.put_line('');
187: end if;
180:
181: if g_debug_flag = 'Y' then
182: fii_util.put_line('Marked '||SQL%ROWCOUNT||' rows in FII_AR_SALES_CREDITS_D_T as updated / deleted in AR');
183: fii_util.stop_timer;
184: fii_util.print_timer('Duration');
185: fii_util.start_timer;
186: fii_util.put_line('');
187: end if;
188:
181: if g_debug_flag = 'Y' then
182: fii_util.put_line('Marked '||SQL%ROWCOUNT||' rows in FII_AR_SALES_CREDITS_D_T as updated / deleted in AR');
183: fii_util.stop_timer;
184: fii_util.print_timer('Duration');
185: fii_util.start_timer;
186: fii_util.put_line('');
187: end if;
188:
189: -- Merge the updated Sales Credits into FII_AR_SALES_CREDITS using FII_AR_SALESCREDIT_D_T.SALESCREDIT_PK to join with RA_CUST_TRX_LINE_SALESREPS_ALL
182: fii_util.put_line('Marked '||SQL%ROWCOUNT||' rows in FII_AR_SALES_CREDITS_D_T as updated / deleted in AR');
183: fii_util.stop_timer;
184: fii_util.print_timer('Duration');
185: fii_util.start_timer;
186: fii_util.put_line('');
187: end if;
188:
189: -- Merge the updated Sales Credits into FII_AR_SALES_CREDITS using FII_AR_SALESCREDIT_D_T.SALESCREDIT_PK to join with RA_CUST_TRX_LINE_SALESREPS_ALL
190: -- (for existing rows, delete them if the new revenue percent is 0 else update them; for new rows, insert them if the revenue percent is non-0)
222: g_fii_login_id,
223: SYSDATE, SYSDATE);
224:
225: if g_debug_flag = 'Y' then
226: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows updated in AR for updation / insertion');
227: fii_util.stop_timer;
228: fii_util.print_timer('Duration');
229: fii_util.start_timer;
230: fii_util.put_line('');
223: SYSDATE, SYSDATE);
224:
225: if g_debug_flag = 'Y' then
226: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows updated in AR for updation / insertion');
227: fii_util.stop_timer;
228: fii_util.print_timer('Duration');
229: fii_util.start_timer;
230: fii_util.put_line('');
231: end if;
224:
225: if g_debug_flag = 'Y' then
226: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows updated in AR for updation / insertion');
227: fii_util.stop_timer;
228: fii_util.print_timer('Duration');
229: fii_util.start_timer;
230: fii_util.put_line('');
231: end if;
232:
225: if g_debug_flag = 'Y' then
226: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows updated in AR for updation / insertion');
227: fii_util.stop_timer;
228: fii_util.print_timer('Duration');
229: fii_util.start_timer;
230: fii_util.put_line('');
231: end if;
232:
233: -- For rows updated in AR to have revenue_percent=0, delete them from FII
226: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows updated in AR for updation / insertion');
227: fii_util.stop_timer;
228: fii_util.print_timer('Duration');
229: fii_util.start_timer;
230: fii_util.put_line('');
231: end if;
232:
233: -- For rows updated in AR to have revenue_percent=0, delete them from FII
234: DELETE FROM FII_AR_SALES_CREDITS
238: and del.salescredit_pk = sr.cust_trx_line_salesrep_id
239: and del.dml_type = 'U');
240:
241: if g_debug_flag = 'Y' then
242: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows for deletion due to 0 / null revenue percent updates');
243: fii_util.stop_timer;
244: fii_util.print_timer('Duration');
245: fii_util.start_timer;
246: fii_util.put_line('');
239: and del.dml_type = 'U');
240:
241: if g_debug_flag = 'Y' then
242: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows for deletion due to 0 / null revenue percent updates');
243: fii_util.stop_timer;
244: fii_util.print_timer('Duration');
245: fii_util.start_timer;
246: fii_util.put_line('');
247: end if;
240:
241: if g_debug_flag = 'Y' then
242: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows for deletion due to 0 / null revenue percent updates');
243: fii_util.stop_timer;
244: fii_util.print_timer('Duration');
245: fii_util.start_timer;
246: fii_util.put_line('');
247: end if;
248:
241: if g_debug_flag = 'Y' then
242: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows for deletion due to 0 / null revenue percent updates');
243: fii_util.stop_timer;
244: fii_util.print_timer('Duration');
245: fii_util.start_timer;
246: fii_util.put_line('');
247: end if;
248:
249: -- Process / Delete rows deleted from the AR application
242: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows for deletion due to 0 / null revenue percent updates');
243: fii_util.stop_timer;
244: fii_util.print_timer('Duration');
245: fii_util.start_timer;
246: fii_util.put_line('');
247: end if;
248:
249: -- Process / Delete rows deleted from the AR application
250: DELETE FROM FII_AR_SALES_CREDITS
253: where STATUS_FLAG = 'P'
254: and DML_TYPE = 'D');
255:
256: if g_debug_flag = 'Y' then
257: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows for deletion due to deletions within AR');
258: fii_util.stop_timer;
259: fii_util.print_timer('Duration');
260: fii_util.start_timer;
261: fii_util.put_line('');
254: and DML_TYPE = 'D');
255:
256: if g_debug_flag = 'Y' then
257: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows for deletion due to deletions within AR');
258: fii_util.stop_timer;
259: fii_util.print_timer('Duration');
260: fii_util.start_timer;
261: fii_util.put_line('');
262: end if;
255:
256: if g_debug_flag = 'Y' then
257: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows for deletion due to deletions within AR');
258: fii_util.stop_timer;
259: fii_util.print_timer('Duration');
260: fii_util.start_timer;
261: fii_util.put_line('');
262: end if;
263:
256: if g_debug_flag = 'Y' then
257: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows for deletion due to deletions within AR');
258: fii_util.stop_timer;
259: fii_util.print_timer('Duration');
260: fii_util.start_timer;
261: fii_util.put_line('');
262: end if;
263:
264: -- Delete deletions that have been processed
257: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows for deletion due to deletions within AR');
258: fii_util.stop_timer;
259: fii_util.print_timer('Duration');
260: fii_util.start_timer;
261: fii_util.put_line('');
262: end if;
263:
264: -- Delete deletions that have been processed
265: DELETE FROM FII_AR_SALES_CREDITS_D_T
265: DELETE FROM FII_AR_SALES_CREDITS_D_T
266: where STATUS_FLAG = 'P';
267:
268: if g_debug_flag = 'Y' then
269: fii_util.put_line('Deleted '||SQL%ROWCOUNT||' rows in FII_AR_SALES_CREDITS_D_T as processed');
270: fii_util.stop_timer;
271: fii_util.print_timer('Duration');
272: fii_util.put_line(' ');
273: end if;
266: where STATUS_FLAG = 'P';
267:
268: if g_debug_flag = 'Y' then
269: fii_util.put_line('Deleted '||SQL%ROWCOUNT||' rows in FII_AR_SALES_CREDITS_D_T as processed');
270: fii_util.stop_timer;
271: fii_util.print_timer('Duration');
272: fii_util.put_line(' ');
273: end if;
274:
267:
268: if g_debug_flag = 'Y' then
269: fii_util.put_line('Deleted '||SQL%ROWCOUNT||' rows in FII_AR_SALES_CREDITS_D_T as processed');
270: fii_util.stop_timer;
271: fii_util.print_timer('Duration');
272: fii_util.put_line(' ');
273: end if;
274:
275: EXCEPTION
268: if g_debug_flag = 'Y' then
269: fii_util.put_line('Deleted '||SQL%ROWCOUNT||' rows in FII_AR_SALES_CREDITS_D_T as processed');
270: fii_util.stop_timer;
271: fii_util.print_timer('Duration');
272: fii_util.put_line(' ');
273: end if;
274:
275: EXCEPTION
276: WHEN OTHERS THEN
289:
290: BEGIN
291:
292: if g_debug_flag = 'Y' then
293: fii_util.put_line(' ');
294: fii_util.put_line('Inserting dummy records for the deleted invoice lines');
295: fii_util.start_timer;
296: end if;
297:
290: BEGIN
291:
292: if g_debug_flag = 'Y' then
293: fii_util.put_line(' ');
294: fii_util.put_line('Inserting dummy records for the deleted invoice lines');
295: fii_util.start_timer;
296: end if;
297:
298: -- Insert dummy records based on the 0 revenue percent rows deleted in the merge phase (using the Snapshot Log for FII_AR_SALES_CREDITS)
291:
292: if g_debug_flag = 'Y' then
293: fii_util.put_line(' ');
294: fii_util.put_line('Inserting dummy records for the deleted invoice lines');
295: fii_util.start_timer;
296: end if;
297:
298: -- Insert dummy records based on the 0 revenue percent rows deleted in the merge phase (using the Snapshot Log for FII_AR_SALES_CREDITS)
299: insert into fii_ar_sales_credits (
314: where not exists (select 'X' from fii_ar_sales_credits where invoice_line_id = sc_log.invoice_line_id)
315: and dmltype$$ = 'D';
316:
317: if g_debug_flag = 'Y' then
318: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
319: fii_util.stop_timer;
320: fii_util.print_timer('Duration');
321: fii_util.put_line(' ');
322: fii_util.put_line('Deleting dummy records for new invoice line sales credits');
315: and dmltype$$ = 'D';
316:
317: if g_debug_flag = 'Y' then
318: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
319: fii_util.stop_timer;
320: fii_util.print_timer('Duration');
321: fii_util.put_line(' ');
322: fii_util.put_line('Deleting dummy records for new invoice line sales credits');
323: fii_util.start_timer;
316:
317: if g_debug_flag = 'Y' then
318: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
319: fii_util.stop_timer;
320: fii_util.print_timer('Duration');
321: fii_util.put_line(' ');
322: fii_util.put_line('Deleting dummy records for new invoice line sales credits');
323: fii_util.start_timer;
324: end if;
317: if g_debug_flag = 'Y' then
318: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
319: fii_util.stop_timer;
320: fii_util.print_timer('Duration');
321: fii_util.put_line(' ');
322: fii_util.put_line('Deleting dummy records for new invoice line sales credits');
323: fii_util.start_timer;
324: end if;
325:
318: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
319: fii_util.stop_timer;
320: fii_util.print_timer('Duration');
321: fii_util.put_line(' ');
322: fii_util.put_line('Deleting dummy records for new invoice line sales credits');
323: fii_util.start_timer;
324: end if;
325:
326: -- Delete dummy records based on the Snapshot Log for FII_AR_SALES_CREDITS
319: fii_util.stop_timer;
320: fii_util.print_timer('Duration');
321: fii_util.put_line(' ');
322: fii_util.put_line('Deleting dummy records for new invoice line sales credits');
323: fii_util.start_timer;
324: end if;
325:
326: -- Delete dummy records based on the Snapshot Log for FII_AR_SALES_CREDITS
327: delete from fii_ar_sales_credits
331: where dmltype$$ = 'I'
332: and salescredit_pk > 0);
333:
334: if g_debug_flag = 'Y' then
335: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
336: fii_util.stop_timer;
337: fii_util.print_timer('Duration');
338: fii_util.put_line(' ');
339: fii_util.put_line('Inserting dummy records for new posted invoice lines without sales credits');
332: and salescredit_pk > 0);
333:
334: if g_debug_flag = 'Y' then
335: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
336: fii_util.stop_timer;
337: fii_util.print_timer('Duration');
338: fii_util.put_line(' ');
339: fii_util.put_line('Inserting dummy records for new posted invoice lines without sales credits');
340: fii_util.start_timer;
333:
334: if g_debug_flag = 'Y' then
335: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
336: fii_util.stop_timer;
337: fii_util.print_timer('Duration');
338: fii_util.put_line(' ');
339: fii_util.put_line('Inserting dummy records for new posted invoice lines without sales credits');
340: fii_util.start_timer;
341: end if;
334: if g_debug_flag = 'Y' then
335: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
336: fii_util.stop_timer;
337: fii_util.print_timer('Duration');
338: fii_util.put_line(' ');
339: fii_util.put_line('Inserting dummy records for new posted invoice lines without sales credits');
340: fii_util.start_timer;
341: end if;
342:
335: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
336: fii_util.stop_timer;
337: fii_util.print_timer('Duration');
338: fii_util.put_line(' ');
339: fii_util.put_line('Inserting dummy records for new posted invoice lines without sales credits');
340: fii_util.start_timer;
341: end if;
342:
343: -- Insert dummy records from the Snapshot Log for FII_AR_REVENUE_B
336: fii_util.stop_timer;
337: fii_util.print_timer('Duration');
338: fii_util.put_line(' ');
339: fii_util.put_line('Inserting dummy records for new posted invoice lines without sales credits');
340: fii_util.start_timer;
341: end if;
342:
343: -- Insert dummy records from the Snapshot Log for FII_AR_REVENUE_B
344: insert into fii_ar_sales_credits (
359: where not exists (select 'X' from fii_ar_sales_credits where invoice_line_id = rev_log.invoice_line_id)
360: and dmltype$$ = 'I';
361:
362: if g_debug_flag = 'Y' then
363: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
364: fii_util.stop_timer;
365: fii_util.print_timer('Duration');
366: fii_util.put_line(' ');
367: end if;
360: and dmltype$$ = 'I';
361:
362: if g_debug_flag = 'Y' then
363: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
364: fii_util.stop_timer;
365: fii_util.print_timer('Duration');
366: fii_util.put_line(' ');
367: end if;
368:
361:
362: if g_debug_flag = 'Y' then
363: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
364: fii_util.stop_timer;
365: fii_util.print_timer('Duration');
366: fii_util.put_line(' ');
367: end if;
368:
369: EXCEPTION
362: if g_debug_flag = 'Y' then
363: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
364: fii_util.stop_timer;
365: fii_util.print_timer('Duration');
366: fii_util.put_line(' ');
367: end if;
368:
369: EXCEPTION
370:
381: PROCEDURE AR_SC_INIT IS
382:
383: BEGIN
384: if g_debug_flag = 'Y' then
385: fii_util.put_line(' ');
386: fii_util.put_line('Loading initial data from AR Sales Credits');
387: fii_util.start_timer;
388: end if;
389:
382:
383: BEGIN
384: if g_debug_flag = 'Y' then
385: fii_util.put_line(' ');
386: fii_util.put_line('Loading initial data from AR Sales Credits');
387: fii_util.start_timer;
388: end if;
389:
390: if g_debug_flag = 'Y' then
383: BEGIN
384: if g_debug_flag = 'Y' then
385: fii_util.put_line(' ');
386: fii_util.put_line('Loading initial data from AR Sales Credits');
387: fii_util.start_timer;
388: end if;
389:
390: if g_debug_flag = 'Y' then
391: fii_util.put_line(' ');
387: fii_util.start_timer;
388: end if;
389:
390: if g_debug_flag = 'Y' then
391: fii_util.put_line(' ');
392: fii_util.put_line('start of first insert');
393: end if;
394:
395: -- Insert a dummy record into FII_AR_SALES_CREDITS for all Adjustments
388: end if;
389:
390: if g_debug_flag = 'Y' then
391: fii_util.put_line(' ');
392: fii_util.put_line('start of first insert');
393: end if;
394:
395: -- Insert a dummy record into FII_AR_SALES_CREDITS for all Adjustments
396: insert into fii_ar_sales_CREDITS F (
406: SYSDATE, SYSDATE);
407:
408: commit;
409: if g_debug_flag = 'Y' then
410: fii_util.put_line(' ');
411: fii_util.put_line('start of second insert');
412: end if;
413:
414: -- Initial Load from RA_CUST_TRX_LINE_SALESREPS_ALL
407:
408: commit;
409: if g_debug_flag = 'Y' then
410: fii_util.put_line(' ');
411: fii_util.put_line('start of second insert');
412: end if;
413:
414: -- Initial Load from RA_CUST_TRX_LINE_SALESREPS_ALL
415: insert /*+ APPEND PARALLEL(F) */ into fii_ar_sales_CREDITS F (
429: where revenue_percent_split <> 0
430: and customer_trx_line_id is not null;
431:
432: if g_debug_flag = 'Y' then
433: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
434: fii_util.stop_timer;
435: fii_util.print_timer('Duration');
436: fii_util.put_line(' ');
437: fii_util.put_line('Loading initial dummy records');
430: and customer_trx_line_id is not null;
431:
432: if g_debug_flag = 'Y' then
433: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
434: fii_util.stop_timer;
435: fii_util.print_timer('Duration');
436: fii_util.put_line(' ');
437: fii_util.put_line('Loading initial dummy records');
438: fii_util.start_timer;
431:
432: if g_debug_flag = 'Y' then
433: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
434: fii_util.stop_timer;
435: fii_util.print_timer('Duration');
436: fii_util.put_line(' ');
437: fii_util.put_line('Loading initial dummy records');
438: fii_util.start_timer;
439: end if;
432: if g_debug_flag = 'Y' then
433: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
434: fii_util.stop_timer;
435: fii_util.print_timer('Duration');
436: fii_util.put_line(' ');
437: fii_util.put_line('Loading initial dummy records');
438: fii_util.start_timer;
439: end if;
440:
433: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
434: fii_util.stop_timer;
435: fii_util.print_timer('Duration');
436: fii_util.put_line(' ');
437: fii_util.put_line('Loading initial dummy records');
438: fii_util.start_timer;
439: end if;
440:
441: commit;
434: fii_util.stop_timer;
435: fii_util.print_timer('Duration');
436: fii_util.put_line(' ');
437: fii_util.put_line('Loading initial dummy records');
438: fii_util.start_timer;
439: end if;
440:
441: commit;
442: if g_debug_flag = 'Y' then
439: end if;
440:
441: commit;
442: if g_debug_flag = 'Y' then
443: fii_util.put_line(' ');
444: fii_util.put_line('start of third insert');
445: end if;
446:
447: -- Initial Load of dummy records from FII_AR_REVENUE_B
440:
441: commit;
442: if g_debug_flag = 'Y' then
443: fii_util.put_line(' ');
444: fii_util.put_line('start of third insert');
445: end if;
446:
447: -- Initial Load of dummy records from FII_AR_REVENUE_B
448: insert /*+ APPEND PARALLEL(F) */ into fii_ar_sales_CREDITS F (
467: from fii_ar_sales_CREDITS b
468: where invoice_line_id is not null);
469:
470: if g_debug_flag = 'Y' then
471: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
472: fii_util.stop_timer;
473: fii_util.print_timer('Duration');
474: fii_util.put_line('');
475: end if;
468: where invoice_line_id is not null);
469:
470: if g_debug_flag = 'Y' then
471: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
472: fii_util.stop_timer;
473: fii_util.print_timer('Duration');
474: fii_util.put_line('');
475: end if;
476:
469:
470: if g_debug_flag = 'Y' then
471: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
472: fii_util.stop_timer;
473: fii_util.print_timer('Duration');
474: fii_util.put_line('');
475: end if;
476:
477: commit;
470: if g_debug_flag = 'Y' then
471: fii_util.put_line('Processed '||SQL%ROWCOUNT||' rows');
472: fii_util.stop_timer;
473: fii_util.print_timer('Duration');
474: fii_util.put_line('');
475: end if;
476:
477: commit;
478:
517:
518: g_program_type := p_program_type;
519:
520: IF l_dir is null THEN
521: l_dir := FII_UTIL.get_utl_file_dir;
522: END IF;
523:
524: ------------------------------------------------
525: -- Initialize API will fetch the FII_DEBUG_MODE
529: -- the log directory
530: ------------------------------------------------
531:
532: IF g_program_type = 'I' THEN
533: fii_util.initialize('FII_AR_SALES_CREDITS.log','FII_AR_SALES_CREDITS.out',l_dir, 'FII_AR_SALES_CREDITS_I');
534: ELSIF g_program_type = 'L' THEN
535: fii_util.initialize('FII_AR_SALES_CREDITS.log','FII_AR_SALES_CREDITS.out',l_dir, 'FII_AR_SALES_CREDITS_L');
536: END IF;
537:
531:
532: IF g_program_type = 'I' THEN
533: fii_util.initialize('FII_AR_SALES_CREDITS.log','FII_AR_SALES_CREDITS.out',l_dir, 'FII_AR_SALES_CREDITS_I');
534: ELSIF g_program_type = 'L' THEN
535: fii_util.initialize('FII_AR_SALES_CREDITS.log','FII_AR_SALES_CREDITS.out',l_dir, 'FII_AR_SALES_CREDITS_L');
536: END IF;
537:
538: IF g_program_type = 'I' THEN
539: IF (NOT BIS_COLLECTION_UTILITIES.setup('FII_AR_SALES_CREDITS_I')) THEN
536: END IF;
537:
538: IF g_program_type = 'I' THEN
539: IF (NOT BIS_COLLECTION_UTILITIES.setup('FII_AR_SALES_CREDITS_I')) THEN
540: fii_util.put_line('Error in BIS setup FII_AR_SALES_CREDITS_I');
541: raise_application_error(-20000,errbuf);
542: return;
543: END IF;
544: ELSIF g_program_type = 'L' THEN
542: return;
543: END IF;
544: ELSIF g_program_type = 'L' THEN
545: IF (NOT BIS_COLLECTION_UTILITIES.setup('FII_AR_SALES_CREDITS_L')) THEN
546: fii_util.put_line('Error in BIS setup FII_AR_SALES_CREDITS_L');
547: raise_application_error(-20000,errbuf);
548: return;
549: END IF;
550: END IF;
554: --------------------------------------------
555: l_section := 'M-Section 12';
556:
557: IF g_debug_flag = 'Y' then
558: fii_util.put_line(' ');
559: fii_util.put_line('Initialization');
560: END IF;
561: INIT;
562:
555: l_section := 'M-Section 12';
556:
557: IF g_debug_flag = 'Y' then
558: fii_util.put_line(' ');
559: fii_util.put_line('Initialization');
560: END IF;
561: INIT;
562:
563: -----------------------------------------------------
567: l_section := 'M-Section 14';
568:
569: IF p_program_type = 'L' THEN
570: IF g_debug_flag = 'Y' then
571: fii_util.put_line('Running Initial Load, truncate staging and base summary table.');
572: END IF;
573:
574: FII_UTIL.TRUNCATE_TABLE(p_table_name => 'FII_AR_SALES_CREDITS_D_T', p_retcode => l_retcode);
575: if l_retcode = -1 then
570: IF g_debug_flag = 'Y' then
571: fii_util.put_line('Running Initial Load, truncate staging and base summary table.');
572: END IF;
573:
574: FII_UTIL.TRUNCATE_TABLE(p_table_name => 'FII_AR_SALES_CREDITS_D_T', p_retcode => l_retcode);
575: if l_retcode = -1 then
576: g_retcode := -2;
577: raise g_truncate_failure;
578: end if;
575: if l_retcode = -1 then
576: g_retcode := -2;
577: raise g_truncate_failure;
578: end if;
579: FII_UTIL.TRUNCATE_TABLE(p_table_name => 'FII_AR_SALES_CREDITS', p_retcode => l_retcode);
580: if l_retcode = -1 then
581: g_retcode := -2;
582: raise g_truncate_failure;
583: end if;
591: CLEAN_UP;
592:
593: IF (g_program_type = 'L') THEN
594: if g_debug_flag = 'Y' then
595: fii_util.put_line(' ');
596: fii_util.put_timestamp;
597: fii_util.put_line('INITIAL LOAD: populating FII_AR_SALES_CREDITS');
598: end if;
599: AR_SC_INIT;
592:
593: IF (g_program_type = 'L') THEN
594: if g_debug_flag = 'Y' then
595: fii_util.put_line(' ');
596: fii_util.put_timestamp;
597: fii_util.put_line('INITIAL LOAD: populating FII_AR_SALES_CREDITS');
598: end if;
599: AR_SC_INIT;
600: ELSE
593: IF (g_program_type = 'L') THEN
594: if g_debug_flag = 'Y' then
595: fii_util.put_line(' ');
596: fii_util.put_timestamp;
597: fii_util.put_line('INITIAL LOAD: populating FII_AR_SALES_CREDITS');
598: end if;
599: AR_SC_INIT;
600: ELSE
601: -----------------------------------------------------------------
604: select max(salescredit_pk) into g_max_salescredit_pk
605: from fii_ar_sales_credits;
606:
607: if g_debug_flag = 'Y' then
608: fii_util.put_line(' ');
609: fii_util.put_line('Largest salescredit_pk in fii_ar_sales_credits is '||
610: to_char(g_max_salescredit_pk));
611: fii_util.put_line(' ');
612: fii_util.put_timestamp;
605: from fii_ar_sales_credits;
606:
607: if g_debug_flag = 'Y' then
608: fii_util.put_line(' ');
609: fii_util.put_line('Largest salescredit_pk in fii_ar_sales_credits is '||
610: to_char(g_max_salescredit_pk));
611: fii_util.put_line(' ');
612: fii_util.put_timestamp;
613: fii_util.put_line('INCREMENTAL LOAD: populating FII_AR_SALES_CREDITS with new Sales Credits');
607: if g_debug_flag = 'Y' then
608: fii_util.put_line(' ');
609: fii_util.put_line('Largest salescredit_pk in fii_ar_sales_credits is '||
610: to_char(g_max_salescredit_pk));
611: fii_util.put_line(' ');
612: fii_util.put_timestamp;
613: fii_util.put_line('INCREMENTAL LOAD: populating FII_AR_SALES_CREDITS with new Sales Credits');
614: end if;
615:
608: fii_util.put_line(' ');
609: fii_util.put_line('Largest salescredit_pk in fii_ar_sales_credits is '||
610: to_char(g_max_salescredit_pk));
611: fii_util.put_line(' ');
612: fii_util.put_timestamp;
613: fii_util.put_line('INCREMENTAL LOAD: populating FII_AR_SALES_CREDITS with new Sales Credits');
614: end if;
615:
616: -- Insert Sales Credits records created in AR after the last run
609: fii_util.put_line('Largest salescredit_pk in fii_ar_sales_credits is '||
610: to_char(g_max_salescredit_pk));
611: fii_util.put_line(' ');
612: fii_util.put_timestamp;
613: fii_util.put_line('INCREMENTAL LOAD: populating FII_AR_SALES_CREDITS with new Sales Credits');
614: end if;
615:
616: -- Insert Sales Credits records created in AR after the last run
617: l_count := POPULATE_SC_INSERT;
616: -- Insert Sales Credits records created in AR after the last run
617: l_count := POPULATE_SC_INSERT;
618:
619: if g_debug_flag = 'Y' then
620: fii_util.put_line('Inserted ' || l_count || ' new rows created after the last run');
621: fii_util.put_line(' ');
622: fii_util.put_timestamp;
623: fii_util.put_line('INCREMENTAL LOAD: processing AR Sales Credits updates and deletes');
624: end if;
617: l_count := POPULATE_SC_INSERT;
618:
619: if g_debug_flag = 'Y' then
620: fii_util.put_line('Inserted ' || l_count || ' new rows created after the last run');
621: fii_util.put_line(' ');
622: fii_util.put_timestamp;
623: fii_util.put_line('INCREMENTAL LOAD: processing AR Sales Credits updates and deletes');
624: end if;
625:
618:
619: if g_debug_flag = 'Y' then
620: fii_util.put_line('Inserted ' || l_count || ' new rows created after the last run');
621: fii_util.put_line(' ');
622: fii_util.put_timestamp;
623: fii_util.put_line('INCREMENTAL LOAD: processing AR Sales Credits updates and deletes');
624: end if;
625:
626: POPULATE_SC_UPDEL;
619: if g_debug_flag = 'Y' then
620: fii_util.put_line('Inserted ' || l_count || ' new rows created after the last run');
621: fii_util.put_line(' ');
622: fii_util.put_timestamp;
623: fii_util.put_line('INCREMENTAL LOAD: processing AR Sales Credits updates and deletes');
624: end if;
625:
626: POPULATE_SC_UPDEL;
627:
625:
626: POPULATE_SC_UPDEL;
627:
628: if g_debug_flag = 'Y' then
629: fii_util.put_line(' ');
630: fii_util.put_timestamp;
631: fii_util.put_line('INCREMENTAL LOAD: cleaning up dummy records in FII_AR_SALES_CREDITS');
632: end if;
633:
626: POPULATE_SC_UPDEL;
627:
628: if g_debug_flag = 'Y' then
629: fii_util.put_line(' ');
630: fii_util.put_timestamp;
631: fii_util.put_line('INCREMENTAL LOAD: cleaning up dummy records in FII_AR_SALES_CREDITS');
632: end if;
633:
634: -- clean up the dummy records in FII_AR_SALES_CREDITS
627:
628: if g_debug_flag = 'Y' then
629: fii_util.put_line(' ');
630: fii_util.put_timestamp;
631: fii_util.put_line('INCREMENTAL LOAD: cleaning up dummy records in FII_AR_SALES_CREDITS');
632: end if;
633:
634: -- clean up the dummy records in FII_AR_SALES_CREDITS
635: CLEANUP_SC;
636:
637: END IF;
638:
639: if g_debug_flag = 'Y' then
640: fii_util.put_line(' ');
641: fii_util.put_timestamp;
642: end if;
643:
644: CLEAN_UP;
637: END IF;
638:
639: if g_debug_flag = 'Y' then
640: fii_util.put_line(' ');
641: fii_util.put_timestamp;
642: end if;
643:
644: CLEAN_UP;
645: COMMIT;
659: WHEN G_PROCEDURE_FAILURE THEN
660: Errbuf := g_errbuf;
661: Retcode := g_retcode;
662: if g_debug_flag = 'Y' then
663: fii_util.put_line(Errbuf);
664: end if;
665: CLEAN_UP;
666:
667: WHEN G_TRUNCATE_FAILURE THEN
666:
667: WHEN G_TRUNCATE_FAILURE THEN
668: Errbuf := '
669: ---------------------------------
670: Error in fii_util.truncate_table
671: Message: '|| sqlerrm;
672: Retcode := g_retcode;
673: if g_debug_flag = 'Y' then
674: fii_util.put_line(Errbuf);
670: Error in fii_util.truncate_table
671: Message: '|| sqlerrm;
672: Retcode := g_retcode;
673: if g_debug_flag = 'Y' then
674: fii_util.put_line(Errbuf);
675: end if;
676: CLEAN_UP;
677:
678: WHEN OTHERS THEN
682: Error in Procedure: MAIN
683: Section: '||l_section||'
684: Message: '||sqlerrm;
685: if g_debug_flag = 'Y' then
686: fii_util.put_line(Errbuf);
687: end if;
688: CLEAN_UP;
689:
690: END MAIN;