DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_PURGE_PVT

Source


1 PACKAGE BODY OKC_PURGE_PVT AS
2 /* $Header: OKCVPURB.pls 120.0 2005/05/25 18:21:08 appldev noship $ */
3 
4 /*
5 -- PROCEDURE purge
6 -- Called by concurrent program to purge old data.
7 -- Parameter p_num_days is how far in the past to end the purge
8 -- 	     p_purge_type is a lookup_code based on lookup_type OKC_PURGE_TYPE
9 -- 			  indicating what kind of purge
10 */
11  PROCEDURE purge (
12     errbuf  OUT NOCOPY VARCHAR2,
13     retcode OUT NOCOPY VARCHAR2,
14     p_purge_type IN VARCHAR2,
15     p_num_days IN NUMBER default 3)
16 IS
17     l_api_name VARCHAR2(50) := 'purge';
18     E_Resource_Busy   EXCEPTION;
19     PRAGMA EXCEPTION_INIT(E_Resource_Busy,  -00054);
20 BEGIN
21    IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
22        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,l_api_name,'100: Inside OKC_PURGE_PVT.PURGE');
23        FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,l_api_name,'Parameters:  p_num_days='||p_num_days||'   p_purge_type='||p_purge_type);
24    END IF;
25 
26     FND_FILE.PUT_LINE(FND_FILE.LOG,'Parameters:  p_num_days='||p_num_days||'   p_purge_type='||p_purge_type);
27 
28     --Initialize the return code
29    retcode := 0;
30 
31    -- Added elsif part to call purge_deviations_data if the
32    -- parameter passed is OKC_DEV_REPORT_T
33 
34    if p_purge_type = 'OKC_QA_ERRORS_T' then
35 	okc_terms_util_pvt.purge_qa_results(errbuf=>errbuf,
36 			 	            retcode=>retcode,
37 			                    p_num_days=>p_num_days);
38    elsif p_purge_type = 'OKC_DEV_REPORT_T' Then
39    	okc_terms_deviations_pvt.purge_deviations_data(errbuf=>errbuf,
40 							retcode=>retcode,
41 							p_num_days=>p_num_days);
42     ELSIF p_purge_type = 'OKC_REP_RECENT_T' THEN
43       OKC_REP_UTIL_PVT.purge_recent_contracts(
44    	    errbuf=>errbuf,
45 			  retcode=>retcode,
46 			  p_num_days=>p_num_days);
47    end if;
48 
49    commit;
50 
51    IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
52           FND_LOG.STRING( FND_LOG.LEVEL_PROCEDURE ,l_api_name,'100: leaving OKC_TERMS_UTIL_PVT.PURGE');
53    END IF;
54 
55 
56    EXCEPTION
57     WHEN E_Resource_Busy THEN
58 
59         IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
60         	  FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,l_api_name,'200: Resource busy exception');
61    	END IF;
62 
63       IF FND_MSG_PUB.Count_Msg > 0 Then
64         FOR I IN 1..FND_MSG_PUB.Count_Msg LOOP
65           FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MSG_PUB.Get(i,p_encoded =>FND_API.G_FALSE ));
66         END LOOP;
67       END IF;
68       FND_MSG_PUB.initialize;
69       RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
70     WHEN OTHERS THEN
71 
72       retcode := 2;
73       errbuf  := substr(sqlerrm,1,200);
74 
75         IF ( FND_LOG.LEVEL_UNEXPECTED >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
76         	  FND_LOG.STRING( FND_LOG.LEVEL_UNEXPECTED ,l_api_name,'200: Other exception:'||errbuf);
77    	END IF;
78 
79       IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
80         FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME,l_api_name);
81       END IF;
82       IF FND_MSG_PUB.Count_Msg > 0 Then
83         FOR I IN 1..FND_MSG_PUB.Count_Msg LOOP
84           FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MSG_PUB.Get(i,p_encoded =>FND_API.G_FALSE ));
85         END LOOP;
86       END IF;
87       FND_MSG_PUB.initialize;
88 
89 
90 END purge;
91 
92 
93 END OKC_PURGE_PVT;