DBA Data[Home] [Help]

PACKAGE BODY: APPS.IEM_DP_LOG_PVT

Source


1 PACKAGE BODY IEM_DP_LOG_PVT AS
2 /* $Header: iemvlogb.pls 120.4 2006/03/10 15:18:46 chtang noship $ */
3 
4 --
5 --
6 -- Purpose: Mantain Encrypted Tags
7 --
8 -- MODIFICATION HISTORY
9 -- Person      Date         Comments
10 --  Liang Xia   02/25/2005    Created
11 --  Liang Xia   09/01/2005    Expanded Error_Message to 2000
12 --  Mina Tang   03/10/2006    Fixed bug 5090395
13 -- ---------   ------  ------------------------------------------
14 
15 -- Enter procedure, function bodies as shown below
16 G_PKG_NAME CONSTANT varchar2(30) :='IEM_DP_LOG_PVT ';
17 G_created_updated_by   NUMBER:=TO_NUMBER (FND_PROFILE.VALUE('USER_ID')) ;
18 G_LAST_UPDATE_LOGIN    NUMBER:=TO_NUMBER (FND_PROFILE.VALUE('LOGIN_ ID') ) ;
19 g_encrypted_id         NUMBER := 0;
20 
21 PROCEDURE CREATE_DP_LOG (
22                  p_api_version_number  IN   NUMBER,
23  		  	     p_init_msg_list       IN   VARCHAR2 := null,
24 		    	 p_commit              IN   VARCHAR2 := null,
25 				 P_error_code		   IN   VARCHAR2 := null,
26 				 P_MSG				   IN   VARCHAR2 := null,
27             	 P_acct_id			   IN   number   := null,
28                  p_subject         	   IN   VARCHAR2 := null,
29                  p_RFC_msg_ID		   IN   VARCHAR2 := null,
30 				 p_received_date       IN   DATE := null,
31                  x_return_status	   OUT  NOCOPY VARCHAR2,
32   		  	     x_msg_count	       OUT	NOCOPY NUMBER,
33 	  	  	     x_msg_data	           OUT	NOCOPY VARCHAR2
34 			 ) is
35 	l_api_name        		VARCHAR2(255):='CREATE_DP_LOG';
36 	l_api_version_number 	NUMBER:=1.0;
37     l_return_status         VARCHAR2(20) := FND_API.G_RET_STS_SUCCESS;
38     l_msg_count             NUMBER := 0;
39     l_msg_data              VARCHAR2(2000);
40     l_seq_id		        NUMBER := 10000;
41 
42 	l_log_id				NUMBER :=0;
43 	l_error_msg             VARCHAR2(2000);
44 	l_error_code			VARCHAR2(30);
45 	l_RFC_msg_ID			VARCHAR2(256);
46 	l_subject				VARCHAR2(2000);
47 
48     logMessage              varchar2(2000);
49     IEM_AGENT_INTERACTION_ID_NULL    EXCEPTION;
50 
51 
52 BEGIN
53   -- Standard Start of API savepoint
54   SAVEPOINT		create_item_PVT;
55 
56   -- Standard call to check for call compatibility.
57 
58   IF NOT FND_API.Compatible_API_Call (l_api_version_number,
59   				    p_api_version_number,
60   				    l_api_name,
61   				    G_PKG_NAME)
62   THEN
63   	 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
64   END IF;
65 
66     -- Initialize message list if p_init_msg_list is set to TRUE.
67    IF FND_API.to_Boolean( p_init_msg_list )
68    THEN
69      FND_MSG_PUB.initialize;
70    END IF;
71 
72 
73    -- Initialize API return status to SUCCESS
74    x_return_status := FND_API.G_RET_STS_SUCCESS;
75 
76    --begins here
77 
78    --fixme after expand error_message column to 2000.
79    if length(P_MSG) >2000 then
80    	   	l_error_msg := substr(P_MSG,1,2000);
81    else
82    		l_error_msg := P_MSG;
83    end if;
84 
85    BEGIN
86 
87    if ( P_error_code is null ) then
88    	  l_error_code := 'NULL';
89    else
90       l_error_code := P_error_code;
91    end if;
92 
93    if  length(p_subject)>2000  then
94    	  l_subject := substr(P_SUBJECT,1,2000);
95    else
96       l_subject := P_SUBJECT;
97    end if;
98 
99    if ( p_RFC_msg_ID is null ) then
100    	  l_RFC_msg_ID := 'NULL';
101    else
102       l_RFC_msg_ID := substr(p_RFC_msg_ID,1,256);
103    end if;
104 
105    select count(DP_LOG_ID) into l_log_id
106    		  from iem_DP_LOGS
107    		  where EMAIL_ACCOUNT_ID = P_acct_id
108    		  and NVL(ERROR_CODE, l_error_code) = l_error_code
109 		  and NVL(RFC822_MESSAGE_ID,l_RFC_msg_ID)=l_RFC_msg_ID
110    		  and NVL(ERROR_MESSAGE, l_error_msg)=l_error_msg;
111 
112    EXCEPTION
113    when NO_DATA_FOUND then
114    		null;
115    end ;
116 
117    if l_log_id <> 0 then
118    	  update IEM_DP_LOGS set LAST_UPDATE_DATE=sysdate
119    	  	  where EMAIL_ACCOUNT_ID = P_acct_id
120    		  and NVL(ERROR_CODE, l_error_code) = l_error_code
121 		  and NVL(RFC822_MESSAGE_ID,l_RFC_msg_ID)=l_RFC_msg_ID
122    		  and NVL(ERROR_MESSAGE, l_error_msg)=l_error_msg;
123    else
124 
125     --get next sequential number
126    	SELECT IEM_DP_LOGS_S1.nextval
127 	INTO l_seq_id
128 	FROM dual;
129 
130 	INSERT INTO IEM_DP_LOGS
131 	(
132 	DP_LOG_ID,
133 	EMAIL_ACCOUNT_ID,
134 	ERROR_CODE,
135 	ERROR_MESSAGE,
136 	MSG_SUBJECT,
137 	MSG_RECEIVED_DATE,
138 	RFC822_MESSAGE_ID,
139     CREATED_BY,
140 	CREATION_DATE,
141 	LAST_UPDATED_BY,
142 	LAST_UPDATE_DATE,
143 	LAST_UPDATE_LOGIN
144 	)
145 	VALUES
146 	(
147 	l_seq_id,
148 	P_ACCT_ID,
149 	P_error_code,
150 	l_error_msg,
151     l_subject,
152 	p_received_date,
153     l_RFC_msg_ID,
154     decode(G_created_updated_by,null,-1,G_created_updated_by),
155 	sysdate,
156     decode(G_created_updated_by,null,-1,G_created_updated_by),
157     sysdate,
158     decode(G_LAST_UPDATE_LOGIN,null,-1,G_LAST_UPDATE_LOGIN)
159 	);
160 
161 	end if;
162 
163     -- Standard Check Of p_commit.
164     IF FND_API.To_Boolean(p_commit) THEN
165 		COMMIT WORK;
166 	END IF;
167 
168     -- Standard callto get message count and if count is 1, get message info.
169        FND_MSG_PUB.Count_And_Get
170 			( p_count =>  x_msg_count,
171                  	p_data  =>    x_msg_data
172 			);
173 EXCEPTION
174 
175    WHEN FND_API.G_EXC_ERROR THEN
176 	ROLLBACK TO create_item_PVT;
177        x_return_status := FND_API.G_RET_STS_ERROR ;
178 
179        FND_MSG_PUB.Count_And_Get
180 
181 			( p_count => x_msg_count,
182               p_data  => x_msg_data
183 			);
184 
185    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
186 	   ROLLBACK TO create_item_PVT;
187        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
188        FND_MSG_PUB.Count_And_Get
189 			( p_count => x_msg_count,
190               p_data  =>      x_msg_data
191 			);
192 
193    WHEN OTHERS THEN
194 	ROLLBACK TO create_item_PVT;
195     x_return_status := FND_API.G_RET_STS_ERROR;
196 	IF 	FND_MSG_PUB.Check_Msg_Level
197 			(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
198 	THEN
199     	FND_MSG_PUB.Add_Exc_Msg
200 	    	(	G_PKG_NAME ,
201 	    		l_api_name
202 	    	);
203 	END IF;
204 
205 	FND_MSG_PUB.Count_And_Get
206     		( p_count         	=>      x_msg_count,
207         	p_data          	=>      x_msg_data
208 
209     		);
210  END;
211 
212 
213 END IEM_DP_LOG_PVT;