[Home] [Help]
PACKAGE BODY: APPS.IEM_LOCAL_MESSAGE_STORE_PVT
Source
1 PACKAGE BODY IEM_LOCAL_MESSAGE_STORE_PVT AS
2 /* $Header: iemvsamb.pls 120.0 2005/06/02 13:55:48 appldev noship $ */
3
4 --
5 --
6 -- Purpose:
7 --
8 -- MODIFICATION HISTORY
9 -- Person Date Comments
10 -- Mina Tang 05/24/2004 Created
11 -- --------- ------ ------------------------------------------
12
13 -- Enter procedure, function bodies as shown below
14 G_PKG_NAME CONSTANT varchar2(30) :='IEM_LOCAL_MESSAGE_STORE_PVT ';
15 G_created_updated_by NUMBER:=TO_NUMBER (FND_PROFILE.VALUE('USER_ID')) ;
16 G_LAST_UPDATE_LOGIN NUMBER:=TO_NUMBER (FND_PROFILE.VALUE('LOGIN_ID') ) ;
17
18 PROCEDURE save_message (
19 p_api_version_number IN NUMBER,
20 p_init_msg_list IN VARCHAR2 := null,
21 p_commit IN VARCHAR2 := null,
22 p_inbound_message_id IN NUMBER,
23 p_email_account_id IN NUMBER,
24 p_mailproc_status IN VARCHAR2,
25 p_rt_classification_id IN NUMBER,
26 p_mail_type NUMBER,
27 p_from_str IN VARCHAR2,
28 p_reply_to_str IN VARCHAR2,
29 p_to_str IN VARCHAR2,
30 p_cc_str IN VARCHAR2,
31 p_bcc_str IN VARCHAR2,
32 p_sent_date IN VARCHAR2,
33 p_received_date IN DATE,
34 p_subject IN VARCHAR2,
35 p_agent_id IN NUMBER,
36 p_group_id IN NUMBER,
37 p_ih_media_item_id IN NUMBER,
38 p_customer_id IN NUMBER,
39 p_message_size IN NUMBER,
40 p_contact_id IN NUMBER,
41 p_relationship_id IN NUMBER,
42 p_top_intent IN VARCHAR2,
43 p_message_text IN VARCHAR2,
44 p_action IN VARCHAR2,
45 x_message_id OUT NOCOPY NUMBER,
46 x_return_status OUT NOCOPY VARCHAR2,
47 x_msg_count OUT NOCOPY NUMBER,
48 x_msg_data OUT NOCOPY VARCHAR2
49 ) is
50 l_api_name VARCHAR2(255):='save_message';
51 l_api_version_number NUMBER:=1.0;
52 l_seq_id NUMBER;
53
54 l_return_status VARCHAR2(20) := FND_API.G_RET_STS_SUCCESS;
55 l_msg_count NUMBER := 0;
56 l_msg_data VARCHAR2(2000);
57 i INTEGER;
58 insert_arch_dtl_error EXCEPTION;
59 resolved_message_error EXCEPTION;
60 l_message_id NUMBER;
61
62
63 BEGIN
64 -- Standard Start of API savepoint
65 SAVEPOINT save_message_PVT;
66
67 -- Standard call to check for call compatibility.
68
69 IF NOT FND_API.Compatible_API_Call (l_api_version_number,
70 p_api_version_number,
71 l_api_name,
72 G_PKG_NAME)
73 THEN
74 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
75 END IF;
76
77 -- Initialize message list if p_init_msg_list is set to TRUE.
78 IF FND_API.to_Boolean( p_init_msg_list )
79 THEN
80 FND_MSG_PUB.initialize;
81 END IF;
82
83 -- Initialize API return status to SUCCESS
84 x_return_status := FND_API.G_RET_STS_SUCCESS;
85
86 --begins here
87
88 -- Insert Record into IEM_ARCH_MSG_DTLS
89 IEM_ARCH_MSGDTLS_PVT.create_item(
90 P_API_VERSION_NUMBER=>p_api_version_number,
91 P_INIT_MSG_LIST=>p_init_msg_list,
92 P_COMMIT=>p_commit,
93 p_MESSAGE_ID =>FND_API.G_MISS_NUM,
94 P_INBOUND_MESSAGE_ID=>p_inbound_message_id,
95 P_EMAIL_ACCOUNT_ID=>p_email_account_id,
96 P_MAILPROC_STATUS=>p_mailproc_status,
97 P_RT_CLASSIFICATION_ID=>p_rt_classification_id,
98 P_MAIL_TYPE=>p_mail_type,
99 P_FROM_STR=>p_from_str,
100 P_REPLY_TO_STR=>p_reply_to_str,
101 P_TO_STR=>p_to_str,
102 P_CC_STR=>p_cc_str,
103 P_BCC_STR=>p_bcc_str,
104 P_SENT_DATE=>p_sent_date,
105 P_RECEIVED_DATE=>p_received_date,
106 P_SUBJECT=>p_subject,
107 P_AGENT_ID=>p_agent_id,
108 P_GROUP_ID=>p_group_id,
109 P_IH_MEDIA_ITEM_ID=>p_ih_media_item_id,
110 P_CUSTOMER_ID=>p_customer_id,
111 P_MESSAGE_SIZE=>p_message_size,
112 P_CONTACT_ID=>p_contact_id,
113 P_RELATIONSHIP_ID=>p_relationship_id,
114 P_TOP_INTENT=>p_top_intent,
115 P_MESSAGE_TEXT=>p_message_text,
116 p_ATTRIBUTE1 =>null,
117 p_ATTRIBUTE2 =>null,
118 p_ATTRIBUTE3 =>null,
119 p_ATTRIBUTE4 =>null,
120 p_ATTRIBUTE5 =>null,
121 p_ATTRIBUTE6 =>null,
122 p_ATTRIBUTE7 =>null,
123 p_ATTRIBUTE8 =>null,
124 p_ATTRIBUTE9 =>null,
125 p_ATTRIBUTE10 =>null,
126 p_ATTRIBUTE11 =>null,
127 p_ATTRIBUTE12 =>null,
128 p_ATTRIBUTE13 =>null,
129 p_ATTRIBUTE14 =>null,
130 p_ATTRIBUTE15 =>null,
131 x_message_id=>l_message_id,
132 X_RETURN_STATUS=>l_return_status,
133 X_MSG_COUNT=>l_msg_count,
134 X_MSG_DATA=>l_msg_data);
135
136 IF l_return_status<>'S' THEN
137 raise insert_arch_dtl_error;
138 END IF;
139
140 if (p_action = 'R') then -- resolved message, NOT pure compose message
141
142 iem_mailitem_pub.ResolvedMessage (p_api_version_number => p_api_version_number,
143 p_init_msg_list => p_init_msg_list,
144 p_commit => p_commit,
145 p_message_id => p_inbound_message_id,
146 p_action_flag => 'R',
147 x_return_status => l_return_status,
148 x_msg_count => l_msg_count,
149 x_msg_data => l_msg_data);
150
151 IF l_return_status<>'S' THEN
152 raise resolved_message_error;
153 END IF;
154
155 end if;
156
157 x_message_id := l_message_id;
158
159
160 -- Standard Check Of p_commit.
161 IF FND_API.To_Boolean(p_commit) THEN
162 COMMIT WORK;
163 END IF;
164
165
166 -- Standard callto get message count and if count is 1, get message info.
167 FND_MSG_PUB.Count_And_Get
168 ( p_count => x_msg_count,
169 p_data => x_msg_data
170 );
171
172 EXCEPTION
173
174 WHEN FND_API.G_EXC_ERROR THEN
175 ROLLBACK TO save_message_PVT;
176 x_return_status := FND_API.G_RET_STS_ERROR ;
177 FND_MSG_PUB.Count_And_Get
178
179 ( p_count => x_msg_count,
180 p_data => x_msg_data
181 );
182
183 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
184 ROLLBACK TO save_message_PVT;
185 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
186 FND_MSG_PUB.Count_And_Get
187 ( p_count => x_msg_count,
188 p_data => x_msg_data
189 );
190
191 WHEN OTHERS THEN
192 ROLLBACK TO save_message_PVT;
193 x_return_status := FND_API.G_RET_STS_ERROR;
194 IF FND_MSG_PUB.Check_Msg_Level
195 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
196 THEN
197 FND_MSG_PUB.Add_Exc_Msg
198 ( G_PKG_NAME ,
199 l_api_name
200 );
201 END IF;
202
203 FND_MSG_PUB.Count_And_Get
204 ( p_count => x_msg_count,
205 p_data => x_msg_data
206
207 );
208
209 END save_message;
210
211
212 PROCEDURE delete_message (
213 p_api_version_number IN NUMBER,
214 p_init_msg_list IN VARCHAR2 := null,
215 p_commit IN VARCHAR2 := null,
216 p_message_id IN NUMBER,
217 p_action_flag IN VARCHAR2,
218 x_return_status OUT NOCOPY VARCHAR2,
219 x_msg_count OUT NOCOPY NUMBER,
220 x_msg_data OUT NOCOPY VARCHAR2
221 ) is
222 l_api_name VARCHAR2(255):='delete_message';
223 l_api_version_number NUMBER:=1.0;
224
225 l_return_status VARCHAR2(20) := FND_API.G_RET_STS_SUCCESS;
226 l_msg_count NUMBER := 0;
227 l_msg_data VARCHAR2(2000);
228 delete_message_error EXCEPTION;
229
230 BEGIN
231 -- Standard Start of API savepoint
232 SAVEPOINT save_message_PVT;
233
234 -- Standard call to check for call compatibility.
235
236 IF NOT FND_API.Compatible_API_Call (l_api_version_number,
237 p_api_version_number,
238 l_api_name,
239 G_PKG_NAME)
240 THEN
241 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
242 END IF;
243
244 -- Initialize message list if p_init_msg_list is set to TRUE.
245 IF FND_API.to_Boolean( p_init_msg_list )
246 THEN
247 FND_MSG_PUB.initialize;
248 END IF;
249
250 -- Initialize API return status to SUCCESS
251 x_return_status := FND_API.G_RET_STS_SUCCESS;
252
253 --begins here
254
255 iem_mailitem_pub.ResolvedMessage (p_api_version_number => p_api_version_number,
256 p_init_msg_list => p_init_msg_list,
257 p_commit => p_commit,
258 p_message_id => p_message_id,
259 p_action_flag => 'D',
260 x_return_status => l_return_status,
261 x_msg_count => l_msg_count,
262 x_msg_data => l_msg_data);
263
264 IF l_return_status<>'S' THEN
265 raise delete_message_error;
266 END IF;
267
268
269 -- Standard Check Of p_commit.
270 IF FND_API.To_Boolean(p_commit) THEN
271 COMMIT WORK;
272 END IF;
273
274
275 -- Standard callto get message count and if count is 1, get message info.
276 FND_MSG_PUB.Count_And_Get
277 ( p_count => x_msg_count,
278 p_data => x_msg_data
279 );
280
281 EXCEPTION
282
283 WHEN FND_API.G_EXC_ERROR THEN
284 ROLLBACK TO delete_message_PVT;
285 x_return_status := FND_API.G_RET_STS_ERROR ;
286 FND_MSG_PUB.Count_And_Get
287
288 ( p_count => x_msg_count,
289 p_data => x_msg_data
290 );
291
292 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
293 ROLLBACK TO delete_message_PVT;
294 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
295 FND_MSG_PUB.Count_And_Get
296 ( p_count => x_msg_count,
297 p_data => x_msg_data
298 );
299
300 WHEN OTHERS THEN
301 ROLLBACK TO delete_message_PVT;
302 x_return_status := FND_API.G_RET_STS_ERROR;
303 IF FND_MSG_PUB.Check_Msg_Level
304 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
305 THEN
306 FND_MSG_PUB.Add_Exc_Msg
307 ( G_PKG_NAME ,
308 l_api_name
309 );
310 END IF;
311
312 FND_MSG_PUB.Count_And_Get
313 ( p_count => x_msg_count,
314 p_data => x_msg_data
315
316 );
317
318 END delete_message;
319
320
321 END IEM_LOCAL_MESSAGE_STORE_PVT;