DBA Data[Home] [Help]

PACKAGE BODY: APPS.IEM_SERVER_PUB

Source


1 PACKAGE BODY IEM_SERVER_PUB as
2 /* $Header: iempsvrb.pls 120.0 2005/06/02 13:43:05 appldev noship $ */
3 
4 G_PKG_NAME CONSTANT varchar2(30) :='IEM_SERVER_PUB ';
5 
6 PROCEDURE Get_EmailServer_List (p_api_version_number    IN   NUMBER,
7  		  	      p_init_msg_list  IN   VARCHAR2 ,
8 		    	      p_commit	    IN   VARCHAR2 ,
9 			      p_SERVER_ID  IN NUMBER	,
10 			      p_SERVER_TYPE	IN VARCHAR2,
11 			      x_return_status OUT NOCOPY VARCHAR2,
12   		  	      x_msg_count	      OUT NOCOPY    NUMBER,
13 	  	  	      x_msg_data OUT NOCOPY VARCHAR2,
14  			      x_Email_Svr_tbl  OUT NOCOPY  EMAILSVR_tbl_type)
15 			 IS
16 			 l_email_svr_index	number:=1;
17 cursor in_server is
18        SELECT distinct
19                in_host,
20                in_port
21        from iem_mstemail_accounts    ;
22 
23 cursor out_server is
24        SELECT distinct
25                out_host,
26                out_port
27        from iem_mstemail_accounts    ;
28 	l_api_name        		VARCHAR2(255):='Get_EmailServer_List';
29 	l_api_version_number 	NUMBER:=1.0;
30 
31 BEGIN
32 -- Standard Start of API savepoint
33 SAVEPOINT		Get_EmailServer_List_PUB;
34 -- Standard call to check for call compatibility.
35 IF NOT FND_API.Compatible_API_Call (l_api_version_number,
36 						     p_api_version_number,
37 						     l_api_name,
38 							G_PKG_NAME)
39 THEN
40 	 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
41 END IF;
42 -- Initialize message list if p_init_msg_list is set to TRUE.
43    IF FND_API.to_Boolean( p_init_msg_list )
44    THEN
45      FND_MSG_PUB.initialize;
46    END IF;
47 -- Initialize API return status to SUCCESS
48    x_return_status := FND_API.G_RET_STS_SUCCESS;
49 IF  p_server_type='IMAP' then
50 FOR v1  IN  in_server LOOP
51    x_Email_Svr_tbl(l_email_svr_index).server_name:=v1.in_host;
52    x_Email_Svr_tbl(l_email_svr_index).active:='Y';
53    x_Email_Svr_tbl(l_email_svr_index).port:=v1.in_port;
54    l_email_svr_index:=l_email_svr_index+1;
55 END LOOP;
56 ELSIF p_server_type='SMTP' THEN
57 FOR v1  IN  out_server LOOP
58    x_Email_Svr_tbl(l_email_svr_index).server_name:=v1.out_host;
59    x_Email_Svr_tbl(l_email_svr_index).active:='Y';
60    x_Email_Svr_tbl(l_email_svr_index).port:=v1.out_port;
61    l_email_svr_index:=l_email_svr_index+1;
62 END LOOP;
63 END IF;
64 -- Standard Check Of p_commit.
65 	IF FND_API.To_Boolean(p_commit) THEN
66 		COMMIT WORK;
67 	END IF;
68 -- Standard callto get message count and if count is 1, get message info.
69        FND_MSG_PUB.Count_And_Get
70 			( p_count =>      x_msg_count,
71                  p_data  =>      x_msg_data
72 			);
73 EXCEPTION
74    WHEN FND_API.G_EXC_ERROR THEN
75 	ROLLBACK TO Get_EmailServer_List_PUB;
76        x_return_status := FND_API.G_RET_STS_ERROR ;
77        FND_MSG_PUB.Count_And_Get
78 			( p_count =>      x_msg_count,
79                  p_data  =>      x_msg_data
80 			);
81    WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
82 	ROLLBACK TO Get_EmailServer_List_PUB;
83        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
84        FND_MSG_PUB.Count_And_Get
85 			( p_count =>      x_msg_count,
86                  p_data  =>      x_msg_data
87 			);
88    WHEN OTHERS THEN
89 	ROLLBACK TO Get_EmailServer_List_PUB;
90       x_return_status := FND_API.G_RET_STS_ERROR;
91 	IF 	FND_MSG_PUB.Check_Msg_Level
92 			(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
93 		THEN
94         		FND_MSG_PUB.Add_Exc_Msg
95     	    		(	G_PKG_NAME  	    ,
96     	    			l_api_name
97 	    		);
98 		END IF;
99 		FND_MSG_PUB.Count_And_Get
100     		(  	p_count         	=>      x_msg_count     	,
101         		p_data          	=>      x_msg_data
102     		);
103 
104  END Get_EmailServer_List;
105 
106 END IEM_SERVER_PUB ;