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