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