[Home] [Help]
PACKAGE BODY: APPS.EGO_CUSTOM_SECURITY_PUB
Source
1 PACKAGE BODY EGO_CUSTOM_SECURITY_PUB AS
2 /* $Header: EGOCSECB.pls 120.0.12010000.1 2009/07/23 00:29:03 ksuleman noship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30):='EGO_CUSTOM_SECURITY_PUB';
5
6 -- Start of comments
7 -- API name : check_custom_security
8 -- Type : Public
9 -- Pre-reqs : None.
10 -- Function : Customized security check procudure based on information
11 -- related to user, entity, and object etc.
12 -- Parameters :
13 -- IN : p_in_params_rec IN EGO_CUSTOM_SECURITY_PUB.in_params_rec_type
14 -- Required
15 -- NOTE: p_in_params_rec.user_name is one of the following forms
16 -- 'HZ_PARTY:partyId' or NULL.
17 -- 1. Create table EGO_CUSTOM_SEC_B based on fnd_user_name such as 'PLMMGR'
18 -- -Set p_in_params_rec.user_name := FND_GLOBAL.USER_NAME
19 -- 2. Create table combining 'HZ_PARTY:partyId' and find_user_name
20 -- -Set p_in_params_rec.user_name := nvl(p_in_params_rec.user_name, FND_GLOBAL.USER_NAME)
21 -- OUT : x_out_params_rec OUT NOCOPY EGO_CUSTOM_SECURITY_PUB.out_params_rec_type
22 -- NOTE: x_out_params_rec.user_has_function = 'T' if user has proper previlege
23 -- 'F' if user has no previlege
24 -- 'U' if there are unexpected errors
25 -- Oracle API Standard Parameters :
26 -- IN : p_api_version IN NUMBER Required
27 -- p_init_msg_list IN VARCHAR2 default FND_API.G_FALSE
28 -- Optional
29 -- p_commit IN VARCHAR2 default FND_API.G_FALSE
30 -- Optional
31 -- p_validation_level IN NUMBER default FND_API.G_VALID_LEVEL_FULL
32 -- Optional
33 -- OUT : x_return_status OUT VARCHAR2(1)
34 -- x_msg_count OUT NUMBER
35 -- x_msg_data OUT VARCHAR2(2000)
36 --
37 -- Version : Current version 1.0
38 -- Previous version N/A
39 -- Initial version 1.0
40 -- End of comments
41 PROCEDURE check_custom_security
42 (
43 --program parameters
44 p_in_params_rec IN EGO_CUSTOM_SECURITY_PUB.in_params_rec_type
45 ,x_out_params_rec OUT NOCOPY EGO_CUSTOM_SECURITY_PUB.out_params_rec_type
46
47 --standard parameters
48 ,p_api_version IN NUMBER
49 ,p_init_msg_list IN VARCHAR2 default FND_API.G_FALSE
50 ,p_commit IN VARCHAR2 default FND_API.G_FALSE
51 ,p_validation_level IN NUMBER default FND_API.G_VALID_LEVEL_FULL
52 ,x_return_status OUT NOCOPY VARCHAR2
53 ,x_msg_count OUT NOCOPY NUMBER
54 ,x_msg_data OUT NOCOPY VARCHAR2
55 )
56 IS
57 l_api_name CONSTANT VARCHAR2(30) := 'check_custom_security';
58 l_api_version CONSTANT NUMBER := 1.0;
59 l_stmt_num NUMBER; --for debuging index
60
61
62
63 BEGIN
64 -- Leave starting poing of this procedure at fnd_log_message
65 l_stmt_num := 0;
66 IF FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
67 fnd_log.string(FND_LOG.LEVEL_PROCEDURE
68 ,G_PKG_NAME||'.'||l_api_name
69 ,'Enter '||G_PKG_NAME||'.'||l_api_name||' '
70 ||to_char(sysdate, 'dd-mon-yyyy hh:mi:ss') );
71 END IF; --for fnd_log
72
73 -- Standard call to check for call compatibility.
74 l_stmt_num := 3;
75 IF NOT FND_API.Compatible_API_Call ( l_api_version
76 ,p_api_version
77 ,l_api_name
78 ,G_PKG_NAME )
79 THEN
80 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
81 END IF;
82
83 -- Initialize message list if p_init_msg_list is set to TRUE.
84 l_stmt_num := 5;
85 IF FND_API.to_Boolean( p_init_msg_list ) THEN
86 FND_MSG_PUB.initialize;
87 END IF;
88
89 -- Initialize OUT parameters
90 x_return_status := FND_API.G_RET_STS_SUCCESS;
91 x_out_params_rec.user_has_function := 'U';
92
93 IF FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL THEN
94 fnd_log.string(FND_LOG.LEVEL_STATEMENT
95 ,G_PKG_NAME||'.'||l_api_name
96 ,' p_in_params_rec.object_name=>'|| p_in_params_rec.object_name ||','
97 ||' p_in_params_rec.function_name=>'|| p_in_params_rec.function_name ||','
98 ||' p_in_params_rec.instance_pk1_value=>'|| p_in_params_rec.instance_pk1_value ||','
99 ||' p_in_params_rec.instance_pk2_value=>'|| p_in_params_rec.instance_pk2_value ||','
100 ||' p_in_params_rec.instance_pk3_value=>'|| p_in_params_rec.instance_pk3_value ||','
101 ||' p_in_params_rec.instance_pk4_value=>'|| p_in_params_rec.instance_pk4_value ||','
102 ||' p_in_params_rec.instance_pk5_value=>'|| p_in_params_rec.instance_pk5_value ||','
103 ||' p_in_params_rec.user_name=>'|| p_in_params_rec.user_name );
104 END IF; --fnd_log
105
106
107 --When OBJECT_NAME = EGO_ITEM, pk1_value = inventory_item_id
108 -- pk2_value = organization_id
109 -- other pk values are NULL.
110 -- Customer add their own code here
111
112
113 -- Standard check of p_commit
114 IF FND_API.To_Boolean( p_commit ) THEN
115 COMMIT WORK;
116 END IF;
117
118 -- Standard call to get message count and if count is 1, get message info.
119 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count
120 ,p_data => x_msg_data);
121
122 IF ( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
123 fnd_log.string(FND_LOG.LEVEL_PROCEDURE
124 ,G_PKG_NAME||'.'||l_api_name
125 ,'Exit '||G_PKG_NAME||'.'||l_api_name||' '
126 ||to_char(sysdate, 'dd-mon-yyyy hh:mi:ss'));
127 END IF; --for fnd_log
128
129
130 EXCEPTION
131 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
132 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count
133 ,p_data => x_msg_data);
134 IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
135 fnd_log.string(FND_LOG.LEVEL_EXCEPTION
136 ,G_PKG_NAME||'.'||l_api_name
137 ,G_PKG_NAME||'.'||l_api_name
138 ||' FND_API.G_EXC_EXCEPTION at l_stmt_num = '
139 || l_stmt_num|| ': ' ||sqlerrm);
140 END IF; --for fnd_log
141 x_out_params_rec.user_has_function := 'U';
142 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
143 WHEN OTHERS THEN
144 FND_MSG_PUB.Count_And_Get ( p_count => x_msg_count
145 ,p_data => x_msg_data);
146 IF ( FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
147 fnd_log.string(FND_LOG.LEVEL_EXCEPTION
148 ,G_PKG_NAME||'.'||l_api_name
149 ,G_PKG_NAME||'.'||l_api_name
150 ||' Others Exception at l_stmt_num = '
151 || l_stmt_num|| ': ' ||sqlerrm);
152 END IF; --for fnd_log
153 x_out_params_rec.user_has_function := 'U';
154 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
155 END check_custom_security;
156
157 END EGO_CUSTOM_SECURITY_PUB;