DBA Data[Home] [Help]

PACKAGE BODY: APPS.IEM_MS_MSGMETA_PVT

Source


1 PACKAGE BODY IEM_MS_MSGMETA_PVT AS
2 /* $Header: iemvhdrb.pls 120.3 2011/07/27 08:26:24 lkullamb ship $ */
3 --
4 --
5 -- Purpose: Mantain message store header tables
6 --
7 -- MODIFICATION HISTORY
8 -- Person      Date         Comments
9 --  Liang Xia   10/5/2004    Created
10 --  Liang Xia   10/16/2004   Redefined interface of create_headers
11 --  Liang Xia   12/16/2004   Fixed problem when extheader value length larger than 256
12 --  Liang Xia   08/18/2005   Changed create_msg_meta to accept message_id for DPM
13 --		  					 trucate headers to fit into schema.
14 --  lkullamb    07/27/2011   Changed create_string_msg_body to accept
15 --                           jtf_varchar2_Table_4000 instead of jtf_varchar2_Table_2000
16 -- ---------   ------  ------------------------------------------
17 
18 
19 -- Enter procedure, function bodies as shown below
20 G_PKG_NAME CONSTANT varchar2(30) :='IEM_MS_MSGMETA_PVT ';
21 G_created_updated_by   NUMBER:=TO_NUMBER (FND_PROFILE.VALUE('USER_ID')) ;
22 G_LAST_UPDATE_LOGIN    NUMBER:=TO_NUMBER (FND_PROFILE.VALUE('LOGIN_ID') ) ;
23 
24 PROCEDURE create_msg_meta (
25                  p_api_version_number  IN   NUMBER,
26 		 p_init_msg_list       IN   VARCHAR2 := null,
27 		 p_commit              IN   VARCHAR2 := null,
28             	 P_subject             IN   VARCHAR2,
29 		 p_sent_date   	       IN   VARCHAR2, --DATE,
30                  p_priority            IN   VARCHAR2,
31                  p_msg_id              IN   VARCHAR2,
32                  p_UID                 IN   NUMBER,
33                  p_x_mailer            IN   varchar2,
34                  p_language            IN   varchar2,
35                  p_content_type        IN   varchar2,
36                  p_organization        IN   varchar2,
37 		 p_message_size	       IN   NUMBER,
38                  p_email_account       IN   NUMBER,
39 		 p_from		       IN   varchar2,
40 		 p_to		       IN   varchar2,
41 		 p_cc		       IN   varchar2,
42 		 p_reply_to	       IN   varchar2,
43 		 p_message_id	   in 	NUMBER,
44                  x_ref_key             OUT NOCOPY varchar2,
45                  x_return_status	   OUT  NOCOPY VARCHAR2,
46   		  	     x_msg_count	       OUT	NOCOPY NUMBER,
47 	  	  	     x_msg_data	           OUT	NOCOPY VARCHAR2
48 			 ) is
49 	l_api_name        		VARCHAR2(255):='create_item_tag';
50 	l_api_version_number 	NUMBER:=1.0;
51     l_seq_id		        NUMBER;
52 
53     l_return_status         VARCHAR2(20) := FND_API.G_RET_STS_SUCCESS;
54     l_msg_count             NUMBER := 0;
55     l_msg_data              VARCHAR2(2000);
56 
57     l_subject               VARCHAR2(2000);
58   	l_sent_date   	        VARCHAR2(60);
59 	l_to   	        		VARCHAR2(2000);
60 	l_cc   	        		VARCHAR2(2000);
61 	l_reply_to   	        VARCHAR2(256);
62 	l_from					VARCHAR2(2000);
63 	l_CONTENT_TYPE			VARCHAR2(256);
64 	l_ORGANIZATION 			VARCHAR2(256);
65 	l_LANGUAGE				VARCHAR2(256);
66 
67     l_recieved_date         DATE := sysdate;
68     l_priority              VARCHAR2(256);
69     l_size                  NUMBER;
70     l_rfcmsg_id             VARCHAR2(256);
71     l_UID                   NUMBER;
72     l_system_flag           VARCHAR2(256);
73     l_x_mailer              VARCHAR2(256);
74 
75 BEGIN
76   -- Standard Start of API savepoint
77   SAVEPOINT		create_item_tag_PVT;
78 
79   -- Standard call to check for call compatibility.
80 
81   IF NOT FND_API.Compatible_API_Call (l_api_version_number,
82   				    p_api_version_number,
83   				    l_api_name,
84   				    G_PKG_NAME)
85   THEN
86   	 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
87   END IF;
88 
89 
90     -- Initialize message list if p_init_msg_list is set to TRUE.
91    IF FND_API.to_Boolean( p_init_msg_list )
92    THEN
93      FND_MSG_PUB.initialize;
94    END IF;
95 
96    -- Initialize API return status to SUCCESS
97    x_return_status := FND_API.G_RET_STS_SUCCESS;
98 
99    --begins here
100 
101     --get next sequential number for msg_meta_id
102    	--SELECT iem_ms_mimemsgs_s1.nextval
103 	if ( p_message_id = -1 ) then
104    	   SELECT iem_ms_base_headers_s1.nextval
105 	   INTO l_seq_id
106 	   FROM dual;
107 	else
108 		l_seq_id := p_message_id;
109 	end if;
110 
111 	l_subject := substr(p_subject, 1, 2000);
112 	l_sent_date := substr(p_sent_date, 1, 60);
113 	l_cc := substr(p_cc, 1, 2000);
114 	l_to := substr(p_to, 1, 2000);
115 	l_reply_to := substr(p_reply_to, 1, 256);
116 	l_from := substr(p_from, 1, 2000);
117 	l_rfcmsg_id := substr(p_msg_id, 1, 256);
118 	l_priority := substr(p_priority, 1, 256);
119 	l_CONTENT_TYPE := substr(p_content_type, 1, 256);
120 	l_ORGANIZATION := substr(p_organization, 1, 256);
121 	 l_x_mailer := substr(p_x_mailer, 1, 256);
122 	 l_LANGUAGE := substr(p_language, 1, 256);
123 
124 
125 	INSERT INTO IEM_MS_BASE_HEADERS
126 	(
127 	MESSAGE_ID,
128 	EMAIL_ACCOUNT_ID,
129 	SUBJECT,
130     	SENT_DATE,
131     	RECEIVED_DATE,
132  	FROM_STR,
133 	TO_STR,
134 	CC_STR,
135 	REPLY_TO_STR,
136     	PRIORITY,
137     	RFC822_MESSAGE_ID,
138     	MESSAGE_UID,
139     	MAILER,
140     	LANGUAGE,
141     	CONTENT_TYPE,
142     	ORGANIZATION,
143 	MESSAGE_SIZE,
144     	CREATED_BY,
145 	CREATION_DATE,
146 	LAST_UPDATED_BY,
147 	LAST_UPDATE_DATE,
148 	LAST_UPDATE_LOGIN
149 	)
150 	VALUES
151 	(
152 	l_seq_id,
153 	p_email_account,
154 	l_subject,
155 	l_sent_date,
156     	sysdate,
157 	l_from,
158 	l_to,
159 	l_cc ,
160 	l_reply_to,
161     	l_priority,
162     	l_rfcmsg_id,
163     	p_uid,
164     	l_x_mailer,
165     	l_language,
166     	l_content_type,
167     	l_organization,
168 	p_message_size,
169     decode(G_created_updated_by,null,-1,G_created_updated_by),
170 	sysdate,
171     decode(G_created_updated_by,null,-1,G_created_updated_by),
172     sysdate,
173     decode(G_LAST_UPDATE_LOGIN,null,-1,G_LAST_UPDATE_LOGIN)
174 	);
175 
176     -- Standard Check Of p_commit.
177     IF FND_API.To_Boolean(p_commit) THEN
178 		COMMIT WORK;
179 	END IF;
180     x_ref_key := l_seq_id;
181 
182     -- Standard callto get message count and if count is 1, get message info.
183        FND_MSG_PUB.Count_And_Get
184 			( p_count =>  x_msg_count,
185                  	p_data  =>    x_msg_data
186 			);
187 
188 EXCEPTION
189 
190    WHEN FND_API.G_EXC_ERROR THEN
191 	ROLLBACK TO create_item_tag_PVT;
192        x_return_status := FND_API.G_RET_STS_ERROR ;
193        FND_MSG_PUB.Count_And_Get
194 
195 			( p_count => x_msg_count,
196               p_data  => x_msg_data
197 			);
198 
199    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
200 	   ROLLBACK TO create_item_tag_PVT;
201        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
202        FND_MSG_PUB.Count_And_Get
203 			( p_count => x_msg_count,
204               p_data  =>      x_msg_data
205 			);
206 
207    WHEN OTHERS THEN
208 	ROLLBACK TO create_item_tag_PVT;
209     x_return_status := FND_API.G_RET_STS_ERROR;
210 	IF 	FND_MSG_PUB.Check_Msg_Level
211 			(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
212 	THEN
213     	FND_MSG_PUB.Add_Exc_Msg
214 	    	(	G_PKG_NAME ,
215 	    		l_api_name
216 	    	);
217 	END IF;
218 
219 	FND_MSG_PUB.Count_And_Get
220     		( p_count         	=>      x_msg_count,
221         	p_data          	=>      x_msg_data
222 
223     		);
224 
225  END	create_msg_meta;
226 
227 
228 
229 PROCEDURE create_headers(
230                  p_api_version_number  IN   NUMBER,
231  		  	     p_init_msg_list       IN   VARCHAR2 := null,
232 		    	 p_commit              IN   VARCHAR2 := null,
233                  p_msg_meta_id         IN  jtf_varchar2_Table_100,
234                  p_name_tbl            IN  jtf_varchar2_Table_300,
235   	             p_value_tbl           IN  jtf_varchar2_Table_2000,
236                  x_return_status	   OUT  NOCOPY VARCHAR2,
237   		  	     x_msg_count	       OUT	NOCOPY NUMBER,
238 	  	  	     x_msg_data	           OUT	NOCOPY VARCHAR2
239 			 ) is
240 	l_api_name        		VARCHAR2(255):= 'create_headers';
241 	l_api_version_number 	NUMBER:=1.0;
242     l_seq_id		        NUMBER;
243 
244     l_return_status         VARCHAR2(20) := FND_API.G_RET_STS_SUCCESS;
245     l_msg_count             NUMBER := 0;
246     l_msg_data              VARCHAR2(2000);
247 
248     --l_seq_id    number;
249     l_msg_meta_id           NUMBER;
250 	--l_name               VARCHAR2(256);
251     l_name                  VARCHAR2(60);
252   	l_value   	        VARCHAR2(2000);
253 	--l_value    				VARCHAR2(256);
254     l_type                  VARCHAR2(100);
255 
256 BEGIN
257   -- Standard Start of API savepoint
258   SAVEPOINT		create_sender_recipient_PVT;
259 
260   -- Standard call to check for call compatibility.
261 
262   IF NOT FND_API.Compatible_API_Call (l_api_version_number,
263   				    p_api_version_number,
264   				    l_api_name,
265   				    G_PKG_NAME)
266   THEN
267   	 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
268   END IF;
269 
270 
271     -- Initialize message list if p_init_msg_list is set to TRUE.
272    IF FND_API.to_Boolean( p_init_msg_list )
273    THEN
274      FND_MSG_PUB.initialize;
275    END IF;
276 
277    -- Initialize API return status to SUCCESS
278    x_return_status := FND_API.G_RET_STS_SUCCESS;
279 
280    --begins here
281     FOR i IN p_msg_meta_id.FIRST..p_msg_meta_id.LAST LOOP
282 
283        SELECT iem_ms_EXTHDRS_s1.nextval
284 	   INTO l_seq_id
285 	   FROM dual;
286 
287         l_msg_meta_id := p_msg_meta_id(i);
288         l_name := substr( p_name_tbl(i),1,59);
289         l_value := substr( p_value_tbl(i), 1, 1999 );
290 
291 	    INSERT INTO IEM_MS_EXTHDRS
292 	    (
293 	       EXT_HEADER_ID,
294             MESSAGE_ID,
295 	        NAME,
296         	value,
297         	CREATED_BY,
298           CREATION_DATE,
299           LAST_UPDATED_BY,
300 	       LAST_UPDATE_DATE,
301 	       LAST_UPDATE_LOGIN
302 	        )
303 	    VALUES
304 	        (
305 	        l_seq_id,
306 	         l_msg_meta_id,
307              	l_name,
308              	l_value,
309             decode(G_created_updated_by,null,-1,G_created_updated_by),
310 	        sysdate,
311             decode(G_created_updated_by,null,-1,G_created_updated_by),
312             sysdate,
313             decode(G_LAST_UPDATE_LOGIN,null,-1,G_LAST_UPDATE_LOGIN)
314 	    );
315     end loop;
316 
317     -- Standard Check Of p_commit.
318     IF FND_API.To_Boolean(p_commit) THEN
319 		COMMIT WORK;
320 	END IF;
321 
322     -- Standard callto get message count and if count is 1, get message info.
323        FND_MSG_PUB.Count_And_Get
324 			( p_count =>  x_msg_count,
325                  	p_data  =>    x_msg_data
326 			);
327 
328 EXCEPTION
329 
330    WHEN FND_API.G_EXC_ERROR THEN
331 	ROLLBACK TO create_sender_recipient_PVT;
332        x_return_status := FND_API.G_RET_STS_ERROR ;
333        FND_MSG_PUB.Count_And_Get
334 
335 			( p_count => x_msg_count,
336               p_data  => x_msg_data
337 			);
338 
339    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
340 	   ROLLBACK TO create_sender_recipient_PVT;
341        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
342        FND_MSG_PUB.Count_And_Get
343 			( p_count => x_msg_count,
344               p_data  =>      x_msg_data
345 			);
346 
347    WHEN OTHERS THEN
348 	ROLLBACK TO create_sender_recipient_PVT;
349     x_return_status := FND_API.G_RET_STS_ERROR;
350 	IF 	FND_MSG_PUB.Check_Msg_Level
351 			(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
352 	THEN
353     	FND_MSG_PUB.Add_Exc_Msg
354 	    	(	G_PKG_NAME ,
355 	    		l_api_name
356 	    	);
357 	END IF;
358 
359 	FND_MSG_PUB.Count_And_Get
360     		( p_count         	=>      x_msg_count,
361         	p_data          	=>      x_msg_data
362 
363     		);
364 
365  END	create_headers;
366 
367 PROCEDURE create_string_msg_body(
368                  p_api_version_number  IN   NUMBER,
369 		 p_init_msg_list       IN   VARCHAR2,
370 		 p_commit              IN   VARCHAR2,
371                  p_message_id          IN   NUMBER,
372                  p_part_type           IN   varchar2,
373                  p_msg_body            IN  jtf_varchar2_Table_4000, --fix for bug 12778600
374                  x_return_status       OUT  NOCOPY VARCHAR2,
375   	  	 x_msg_count	       OUT	NOCOPY NUMBER,
376 	  	 x_msg_data	       OUT	NOCOPY VARCHAR2
377 			 ) is
378 	l_api_name        		VARCHAR2(255):= 'create_string_msg_body';
379 	l_api_version_number 	NUMBER:=1.0;
380     l_seq_id		        NUMBER;
381 
382     l_return_status         VARCHAR2(20) := FND_API.G_RET_STS_SUCCESS;
383     l_msg_count             NUMBER := 0;
384     l_msg_data              VARCHAR2(2000);
385 
386     l_msg_meta_id           NUMBER;
387     l_name                  VARCHAR2(256);
388   	l_value   	            VARCHAR2(4000);
389     l_type                  VARCHAR2(30);
390 
391     l_EMCMSG_PART_ID   number;
392 BEGIN
393   -- Standard Start of API savepoint
394   SAVEPOINT		create_sender_recipient_PVT;
395 
396   -- Standard call to check for call compatibility.
397 
398   IF NOT FND_API.Compatible_API_Call (l_api_version_number,
399   				    p_api_version_number,
400   				    l_api_name,
401   				    G_PKG_NAME)
402   THEN
403   	 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
404   END IF;
405 
406 
407     -- Initialize message list if p_init_msg_list is set to TRUE.
408    IF FND_API.to_Boolean( p_init_msg_list )
409    THEN
410      FND_MSG_PUB.initialize;
411    END IF;
412 
413    -- Initialize API return status to SUCCESS
414    x_return_status := FND_API.G_RET_STS_SUCCESS;
415 
416    --begins here
417 
418     FOR i IN p_msg_body.FIRST..p_msg_body.LAST LOOP
419 
420         l_value := p_msg_body(i);
421 
422 	    INSERT INTO IEM_MS_MSGBODYS
423 	    (
424             	MESSAGE_ID,
425 	        ORDER_ID,
426 	        VALUE,
427            	TYPE,
428             CREATED_BY,
429 	        CREATION_DATE,
430             LAST_UPDATED_BY,
431 	        LAST_UPDATE_DATE,
432 	        LAST_UPDATE_LOGIN
433 	        )
434 	    VALUES
435 	        (
436 	         p_message_id,
437 	         i,
438           	 l_value,
439            	 p_part_type,
440 
441            decode(G_created_updated_by,null,-1,G_created_updated_by),
442             sysdate,
443             decode(G_created_updated_by,null,-1,G_created_updated_by),
444            sysdate,
445            decode(G_LAST_UPDATE_LOGIN,null,-1,G_LAST_UPDATE_LOGIN)
446 	    );
447     end loop;
448 
449     -- Standard Check Of p_commit.
450     IF FND_API.To_Boolean(p_commit) THEN
451 		COMMIT WORK;
452 	END IF;
453 
454     -- Standard callto get message count and if count is 1, get message info.
455        FND_MSG_PUB.Count_And_Get
456 			( p_count =>  x_msg_count,
457                  	p_data  =>    x_msg_data
458 			);
459 
460 EXCEPTION
461 
462    WHEN FND_API.G_EXC_ERROR THEN
463 	ROLLBACK TO create_sender_recipient_PVT;
464        x_return_status := FND_API.G_RET_STS_ERROR ;
465        FND_MSG_PUB.Count_And_Get
466 
467 			( p_count => x_msg_count,
468               p_data  => x_msg_data
469 			);
470 
471    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
472 	   ROLLBACK TO create_sender_recipient_PVT;
473        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
474        FND_MSG_PUB.Count_And_Get
475 			( p_count => x_msg_count,
476               p_data  =>      x_msg_data
477 			);
478 
479    WHEN OTHERS THEN
480 	ROLLBACK TO create_sender_recipient_PVT;
481     x_return_status := FND_API.G_RET_STS_ERROR;
482 	IF 	FND_MSG_PUB.Check_Msg_Level
483 			(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
484 	THEN
485     	FND_MSG_PUB.Add_Exc_Msg
486 	    	(	G_PKG_NAME ,
487 	    		l_api_name
488 	    	);
489 	END IF;
490 
491 	FND_MSG_PUB.Count_And_Get
492     		( p_count         	=>      x_msg_count,
493         	p_data          	=>      x_msg_data
494 
495     		);
496 
497  END	create_string_msg_body;
498 
499 PROCEDURE insert_preproc_wrapper (
503             	 p_msg_id              IN   NUMBER,
500                  p_api_version_number  IN   NUMBER,
501  		  	     p_init_msg_list       IN   VARCHAR2 := null,
502 		    	 p_commit              IN   VARCHAR2 := null,
504   				 p_acct_id   	       IN   NUMBER,
505                  p_priority            IN   NUMBER,
506                  x_return_status	   OUT  NOCOPY VARCHAR2,
507   		  	     x_msg_count	       OUT	NOCOPY NUMBER,
508 	  	  	     x_msg_data	           OUT	NOCOPY VARCHAR2
509 			 ) is
510 	l_api_name        		VARCHAR2(255):='insert_preproc_wrapper';
511 	l_api_version_number 	NUMBER:=1.0;
512     l_seq_id		        NUMBER;
513 
514     l_return_status         VARCHAR2(20) := FND_API.G_RET_STS_SUCCESS;
515     l_msg_count             NUMBER := 0;
516     l_msg_data              VARCHAR2(2000);
517 
518     l_received_date         DATE := sysdate;
519 
520 BEGIN
521   -- Standard Start of API savepoint
522   SAVEPOINT		insert_preproc_wrapper_PVT;
523 
524   -- Standard call to check for call compatibility.
525 
526   IF NOT FND_API.Compatible_API_Call (l_api_version_number,
527   				    p_api_version_number,
528   				    l_api_name,
529   				    G_PKG_NAME)
530   THEN
531   	 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
532   END IF;
533 
534 
535     -- Initialize message list if p_init_msg_list is set to TRUE.
536    IF FND_API.to_Boolean( p_init_msg_list )
537    THEN
538      FND_MSG_PUB.initialize;
539    END IF;
540 
541    -- Initialize API return status to SUCCESS
542    x_return_status := FND_API.G_RET_STS_SUCCESS;
543 
544    --begins here
545 
546     --get next sequential number for msg_meta_id
547    -- select to_date(recieved_date) into l_received_date from iem_base_headers where base_header_id = p_msg_id;
548 
549 
550     IEM_RT_PREPROC_EMAILS_PVT.create_item(
551         p_api_version_number => 1.0,
552         p_init_msg_list=>'F' ,
553         p_commit=>'F'       ,
554         p_message_id=>p_msg_id,
555         p_email_account_id =>p_acct_id,
556         p_priority => p_priority,
557         p_received_date=>l_received_date,
558         x_return_status => l_return_status,
559         x_msg_count => l_msg_count,
560         x_msg_data => l_msg_data);
561 
562     -- Standard Check Of p_commit.
563     IF FND_API.To_Boolean(p_commit) THEN
564 		COMMIT WORK;
565 	END IF;
566 
567     -- Standard callto get message count and if count is 1, get message info.
568        FND_MSG_PUB.Count_And_Get
569 			( p_count =>  x_msg_count,
570                  	p_data  =>    x_msg_data
571 			);
572 
573 EXCEPTION
574 
575    WHEN FND_API.G_EXC_ERROR THEN
576 	ROLLBACK TO insert_preproc_wrapper_PVT;
577        x_return_status := FND_API.G_RET_STS_ERROR ;
578        FND_MSG_PUB.Count_And_Get
579 
580 			( p_count => x_msg_count,
581               p_data  => x_msg_data
582 			);
583 
584    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
585 	   ROLLBACK TO insert_preproc_wrapper_PVT;
586        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
587        FND_MSG_PUB.Count_And_Get
588 			( p_count => x_msg_count,
589               p_data  =>      x_msg_data
590 			);
591 
592    WHEN OTHERS THEN
593 	ROLLBACK TO insert_preproc_wrapper_PVT;
594     x_return_status := FND_API.G_RET_STS_ERROR;
595 	IF 	FND_MSG_PUB.Check_Msg_Level
596 			(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
597 	THEN
598     	FND_MSG_PUB.Add_Exc_Msg
599 	    	(	G_PKG_NAME ,
600 	    		l_api_name
601 	    	);
602 	END IF;
603 
604 	FND_MSG_PUB.Count_And_Get
605     		( p_count         	=>      x_msg_count,
606         	p_data          	=>      x_msg_data
607 
608     		);
609 
610  END	insert_preproc_wrapper;
611 
612 /*
613 PROCEDURE create_message_part (
614                  p_api_version_number  IN   NUMBER,
615  		  	     p_init_msg_list       IN   VARCHAR2 := null,
616 		    	 p_commit              IN   VARCHAR2 := null,
617             	 p_msg_id              IN   NUMBER,
618   				 p_part_id   	       IN   NUMBER,
619                  p_part_type           IN   VARCHAR2,
620 				 p_part_name           IN   VARCHAR2,
621 				 p_part_data           IN   BLOB,
622 				 p_part_charset        IN   VARCHAR2,
623                  x_return_status	   OUT  NOCOPY VARCHAR2,
624   		  	     x_msg_count	       OUT	NOCOPY NUMBER,
625 	  	  	     x_msg_data	           OUT	NOCOPY VARCHAR2
626 			 ) is
627 	l_api_name        		VARCHAR2(255):='insert_preproc_wrapper';
628 	l_api_version_number 	NUMBER:=1.0;
629     l_seq_id		        NUMBER;
630 
631     l_return_status         VARCHAR2(20) := FND_API.G_RET_STS_SUCCESS;
632     l_msg_count             NUMBER := 0;
633     l_msg_data              VARCHAR2(2000);
634 
635     l_received_date         DATE := sysdate;
636 
637 BEGIN
638   -- Standard Start of API savepoint
639   SAVEPOINT		insert_preproc_wrapper_PVT;
640 
641   -- Standard call to check for call compatibility.
642 
643   IF NOT FND_API.Compatible_API_Call (l_api_version_number,
644   				    p_api_version_number,
645   				    l_api_name,
646   				    G_PKG_NAME)
647   THEN
648   	 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
649   END IF;
650 
651 
652     -- Initialize message list if p_init_msg_list is set to TRUE.
653    IF FND_API.to_Boolean( p_init_msg_list )
654    THEN
655      FND_MSG_PUB.initialize;
656    END IF;
657 
658    -- Initialize API return status to SUCCESS
659    x_return_status := FND_API.G_RET_STS_SUCCESS;
660 
661    --begins here
662 
663     --get next sequential number for msg_meta_id
667       		  CREATED_BY , CREATION_DATE, LAST_UPDATED_BY, LAST_UPDATE_DATE, LAST_UPDATE_LOGIN)
664 
665 	   INSERT INTO IEM_MS_MSGPARTS
666       		 (MESSAGE_ID, PART_ID, PART_TYPE, PART_NAME, PART_DATA, PART_CHARSET,
668        VALUES ( p_msg_id, p_part_id, p_part_type, p_part_name, EMPTY_BLOB(),  p_part_charset,
669 	   		  -1, SYSDATE, -1, SYSDATE, -1);
670 
671 	   SELECT PART_DATA FROM IEM_MS_MSGPARTS
672        WHERE MESSAGE_ID=p_msg_id and PART_ID=p_part_id and PART_TYPE=p_part_type
673 	   		  and PART_NAME=p_part_name FOR UPDATE;
674 
675 
676 	   UPDATE IEM_MS_MSGPARTS SET PART_DATA = p_part_data, LAST_UPDATE_DATE = SYSDATE
677        WHERE MESSAGE_ID=p_msg_id AND PART_ID=p_part_id AND PART_TYPE =p_part_type
678 	   AND PART_NAME = p_part_name;
679 
680 
681     -- Standard Check Of p_commit.
682     IF FND_API.To_Boolean(p_commit) THEN
683 		COMMIT WORK;
684 	END IF;
685 
686     -- Standard callto get message count and if count is 1, get message info.
687        FND_MSG_PUB.Count_And_Get
688 			( p_count =>  x_msg_count,
689                  	p_data  =>    x_msg_data
690 			);
691 
692 EXCEPTION
693 
694    WHEN FND_API.G_EXC_ERROR THEN
695 	ROLLBACK TO insert_preproc_wrapper_PVT;
696        x_return_status := FND_API.G_RET_STS_ERROR ;
697        FND_MSG_PUB.Count_And_Get
698 
699 			( p_count => x_msg_count,
700               p_data  => x_msg_data
701 			);
702 
703    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
704 	   ROLLBACK TO insert_preproc_wrapper_PVT;
705        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
706        FND_MSG_PUB.Count_And_Get
707 			( p_count => x_msg_count,
708               p_data  =>      x_msg_data
709 			);
710 
711    WHEN OTHERS THEN
712 	ROLLBACK TO insert_preproc_wrapper_PVT;
713     x_return_status := FND_API.G_RET_STS_ERROR;
714 	IF 	FND_MSG_PUB.Check_Msg_Level
715 			(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
716 	THEN
717     	FND_MSG_PUB.Add_Exc_Msg
718 	    	(	G_PKG_NAME ,
719 	    		l_api_name
720 	    	);
721 	END IF;
722 
723 	FND_MSG_PUB.Count_And_Get
724     		( p_count         	=>      x_msg_count,
725         	p_data          	=>      x_msg_data
726 
727     		);
728 
729  END create_message_part;
730 
731 */
732 
733 END IEM_MS_MSGMETA_PVT ;