[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;