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