79: l_message VARCHAR2(4000);
80: e_error_found EXCEPTION;
81: BEGIN
82: l_message := 'Starting the purge program....';
83: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
84:
85: l_message := 'Requests processed on or prior to '||TO_CHAR((SYSDATE - p_data_age), 'DD-MON-RRRR')||' will be purged.';
86: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
87:
82: l_message := 'Starting the purge program....';
83: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
84:
85: l_message := 'Requests processed on or prior to '||TO_CHAR((SYSDATE - p_data_age), 'DD-MON-RRRR')||' will be purged.';
86: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
87:
88: l_message := '';
89: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
90:
85: l_message := 'Requests processed on or prior to '||TO_CHAR((SYSDATE - p_data_age), 'DD-MON-RRRR')||' will be purged.';
86: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
87:
88: l_message := '';
89: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
90:
91: FOR c_header_record IN c_headers
92: LOOP
93: FND_FILE.NEW_LINE(FND_FILE.LOG, 2);
89: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
90:
91: FOR c_header_record IN c_headers
92: LOOP
93: FND_FILE.NEW_LINE(FND_FILE.LOG, 2);
94: l_message := 'Starting purging for request ID: '|| c_header_record.request_id ||' (Last Updated On: '|| TO_CHAR(c_header_record.last_update_date, 'DD-MON-RRRR') ||')';
95: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
96:
97: BEGIN
91: FOR c_header_record IN c_headers
92: LOOP
93: FND_FILE.NEW_LINE(FND_FILE.LOG, 2);
94: l_message := 'Starting purging for request ID: '|| c_header_record.request_id ||' (Last Updated On: '|| TO_CHAR(c_header_record.last_update_date, 'DD-MON-RRRR') ||')';
95: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
96:
97: BEGIN
98: SAVEPOINT before_delete;
99: delete_processed ( p_request_id => c_header_record.request_id
153: EXCEPTION
154: WHEN e_error_found
155: THEN
156: ROLLBACK TO before_delete;
157: FND_FILE.PUT_LINE(FND_FILE.LOG, SQLERRM);
158: x_return_code := 2;
159: x_error_buffer := SQLERRM;
160: END;
161:
159: x_error_buffer := SQLERRM;
160: END;
161:
162: l_message := 'Ending purging for request ID: '|| c_header_record.request_id;
163: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
164: END LOOP;
165:
166: l_message := 'Purging funished.';
167: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
163: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
164: END LOOP;
165:
166: l_message := 'Purging funished.';
167: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
168: FND_FILE.PUT_LINE(FND_FILE.LOG, '');
169:
170:
171: x_return_code := 0;
164: END LOOP;
165:
166: l_message := 'Purging funished.';
167: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
168: FND_FILE.PUT_LINE(FND_FILE.LOG, '');
169:
170:
171: x_return_code := 0;
172: EXCEPTION
200:
201: l_count := SQL%ROWCOUNT;
202:
203: l_message := RPAD('JTF_FM_REQUEST_CONTENTS table, records purged: ', 60, ' ') || l_count;
204: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
205:
206: x_return_status := FND_API.G_RET_STS_SUCCESS;
207: EXCEPTION
208: WHEN OTHERS
234:
235: l_count := SQL%ROWCOUNT;
236:
237: l_message := RPAD('JTF_FM_PROCESSED table, records purged: ', 60, ' ') || l_count;
238: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
239:
240: x_return_status := FND_API.G_RET_STS_SUCCESS;
241: EXCEPTION
242: WHEN OTHERS
268:
269: l_count := SQL%ROWCOUNT;
270:
271: l_message := RPAD('JTF_FM_CONTENT_FAILURES table, records purged: ', 60, ' ') || l_count;
272: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
273:
274: x_return_status := FND_API.G_RET_STS_SUCCESS;
275: EXCEPTION
276: WHEN OTHERS
302:
303: l_count := SQL%ROWCOUNT;
304:
305: l_message := RPAD('JTF_FM_EMAIL_STAT table, records purged: ', 60, ' ') || l_count;
306: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
307:
308: x_return_status := FND_API.G_RET_STS_SUCCESS;
309: EXCEPTION
310: WHEN OTHERS
336:
337: l_count := SQL%ROWCOUNT;
338:
339: l_message := RPAD('JTF_FM_REQUEST_HISTORY table, records purged: ', 60, ' ') || l_count;
340: FND_FILE.PUT_LINE(FND_FILE.LOG, l_message);
341:
342: x_return_status := FND_API.G_RET_STS_SUCCESS;
343: EXCEPTION
344: WHEN OTHERS
394: , x_num_workers => p_num_workers
395: , x_argument4 => l_conc_request_id
396: );
397:
398: FND_FILE.PUT_LINE(FND_FILE.LOG, 'Starting purge program.....');
399: FND_FILE.PUT_LINE(FND_FILE.LOG, 'Requests processed on or prior to '||TO_CHAR((SYSDATE - p_data_age), 'DD-MON-RRRR')||' will be purged.');
400: FND_FILE.NEW_LINE(FND_FILE.LOG, 2);
401:
402: l_children_done := FND_CONCURRENT.children_done ( parent_request_id => l_conc_request_id
395: , x_argument4 => l_conc_request_id
396: );
397:
398: FND_FILE.PUT_LINE(FND_FILE.LOG, 'Starting purge program.....');
399: FND_FILE.PUT_LINE(FND_FILE.LOG, 'Requests processed on or prior to '||TO_CHAR((SYSDATE - p_data_age), 'DD-MON-RRRR')||' will be purged.');
400: FND_FILE.NEW_LINE(FND_FILE.LOG, 2);
401:
402: l_children_done := FND_CONCURRENT.children_done ( parent_request_id => l_conc_request_id
403: , recursive_flag => 'N'
396: );
397:
398: FND_FILE.PUT_LINE(FND_FILE.LOG, 'Starting purge program.....');
399: FND_FILE.PUT_LINE(FND_FILE.LOG, 'Requests processed on or prior to '||TO_CHAR((SYSDATE - p_data_age), 'DD-MON-RRRR')||' will be purged.');
400: FND_FILE.NEW_LINE(FND_FILE.LOG, 2);
401:
402: l_children_done := FND_CONCURRENT.children_done ( parent_request_id => l_conc_request_id
403: , recursive_flag => 'N'
404: , interval => 15
415: ORDER BY hist_req_id ASC;
416: TYPE typ_request_id IS TABLE OF jtf_fm_request_history_all.hist_req_id%TYPE;
417: tab_request_id typ_request_id;
418: BEGIN
419: FND_FILE.NEW_LINE(FND_FILE.LOG, 2);
420: FND_FILE.PUT_LINE(FND_FILE.LOG, 'JTF_FM_PROCESSED table purged.');
421: FND_FILE.PUT_LINE(FND_FILE.LOG, 'Starting purging of other child tables....');
422:
423: OPEN c_history_id;
416: TYPE typ_request_id IS TABLE OF jtf_fm_request_history_all.hist_req_id%TYPE;
417: tab_request_id typ_request_id;
418: BEGIN
419: FND_FILE.NEW_LINE(FND_FILE.LOG, 2);
420: FND_FILE.PUT_LINE(FND_FILE.LOG, 'JTF_FM_PROCESSED table purged.');
421: FND_FILE.PUT_LINE(FND_FILE.LOG, 'Starting purging of other child tables....');
422:
423: OPEN c_history_id;
424: LOOP
417: tab_request_id typ_request_id;
418: BEGIN
419: FND_FILE.NEW_LINE(FND_FILE.LOG, 2);
420: FND_FILE.PUT_LINE(FND_FILE.LOG, 'JTF_FM_PROCESSED table purged.');
421: FND_FILE.PUT_LINE(FND_FILE.LOG, 'Starting purging of other child tables....');
422:
423: OPEN c_history_id;
424: LOOP
425: FETCH c_history_id BULK COLLECT INTO tab_request_id LIMIT 1000;
461: ;
462:
463: COMMIT;
464:
465: FND_FILE.NEW_LINE(FND_FILE.LOG, 1);
466:
467: FND_FILE.PUT_LINE(FND_FILE.LOG, 'Number of Requests Purged: '|| l_count);
468:
469: EXCEPTION
463: COMMIT;
464:
465: FND_FILE.NEW_LINE(FND_FILE.LOG, 1);
466:
467: FND_FILE.PUT_LINE(FND_FILE.LOG, 'Number of Requests Purged: '|| l_count);
468:
469: EXCEPTION
470: WHEN OTHERS
471: THEN
535: THEN
536: RAISE_APPLICATION_ERROR(-20001, 'Cannot get schema name for product: '|| l_product );
537: END IF;
538:
539: FND_FILE.PUT_LINE( FND_FILE.LOG, 'X_Worker_Id: '|| x_worker_id );
540: FND_FILE.PUT_LINE( FND_FILE.LOG, 'X_Num_Workers: '|| x_num_workers );
541:
542: l_update_name := x_argument4;
543:
536: RAISE_APPLICATION_ERROR(-20001, 'Cannot get schema name for product: '|| l_product );
537: END IF;
538:
539: FND_FILE.PUT_LINE( FND_FILE.LOG, 'X_Worker_Id: '|| x_worker_id );
540: FND_FILE.PUT_LINE( FND_FILE.LOG, 'X_Num_Workers: '|| x_num_workers );
541:
542: l_update_name := x_argument4;
543:
544: