1 PACKAGE BODY GMD_API_PUB AS
2 --$Header: GMDPAPIB.pls 115.4 2004/08/18 16:33:37 pupakare ship $ */
3
4 -- Start of comments
5 --+==========================================================================+
6 --| Copyright (c) 1998 Oracle Corporation |
7 --| Redwood Shores, CA, USA |
8 --| All rights reserved. |
9 --+==========================================================================+
10 --| File Name : GMDPAPIB.pls |
11 --| Package Name : GMD_API_PUB |
12 --| Type : Group |
13 --| |
14 --| Notes |
15 --| This package contains public layer APIs for all other APIs for GMD |
16 --| |
17 --| HISTORY |
18 --| Chetan Nagar 08-Aug-2002 Created. |
19 --| |
20 --+==========================================================================+
21 -- End of comments
22
23 -- Global variables
24 G_PKG_NAME CONSTANT VARCHAR2(30) := 'GMD_API_PUB';
25
26
27 --Start of comments
28 --+========================================================================+
29 --| API Name : log_message |
30 --| TYPE : Group |
31 --| Notes : This procedure receives as input up to Six token-value |
32 --| combination alongwith the message code. It then sets |
33 --| all the tokens with the values supplied and puts the |
34 --| message on the message stack. |
35 --| |
36 --| HISTORY |
37 --| Chetan Nagar 08-Aug-2002 Created. |
38 --| |
39 --+========================================================================+
40 -- End of comments
41
42 PROCEDURE log_message (
43 p_message_code IN VARCHAR2
44 ,p_token1_name IN VARCHAR2 := NULL
45 ,p_token1_value IN VARCHAR2 := NULL
46 ,p_token2_name IN VARCHAR2 := NULL
47 ,p_token2_value IN VARCHAR2 := NULL
48 ,p_token3_name IN VARCHAR2 := NULL
49 ,p_token3_value IN VARCHAR2 := NULL
50 ,p_token4_name IN VARCHAR2 := NULL
51 ,p_token4_value IN VARCHAR2 := NULL
52 ,p_token5_name IN VARCHAR2 := NULL
53 ,p_token5_value IN VARCHAR2 := NULL
54 ,p_token6_name IN VARCHAR2 := NULL
55 ,p_token6_value IN VARCHAR2 := NULL) IS
56 BEGIN
57 fnd_message.set_name ('GMD', p_message_code);
58
59 IF p_token1_name IS NOT NULL THEN
60 fnd_message.set_token (p_token1_name, p_token1_value);
61
62 IF p_token2_name IS NOT NULL THEN
63 fnd_message.set_token (p_token2_name, p_token2_value);
64
65 IF p_token3_name IS NOT NULL THEN
66 fnd_message.set_token (p_token3_name, p_token3_value);
67
68 IF p_token4_name IS NOT NULL THEN
69 fnd_message.set_token (p_token4_name, p_token4_value);
70
71 IF p_token5_name IS NOT NULL THEN
72 fnd_message.set_token (p_token5_name, p_token5_value);
73
74 IF p_token6_name IS NOT NULL THEN
75 fnd_message.set_token (p_token6_name, p_token6_value);
76 END IF;
77 END IF;
78 END IF;
79 END IF;
80 END IF;
81 END IF;
82
83 fnd_msg_pub.ADD;
84
85 EXCEPTION
86 WHEN OTHERS THEN
87 RAISE;
88 END log_message;
89
90 PROCEDURE raise(
91 P_EVENT_NAME VARCHAR2,
92 P_EVENT_KEY VARCHAR2
93 )
94 IS
95 BEGIN
96 WF_EVENT.RAISE(P_EVENT_NAME => P_EVENT_NAME,
97 P_EVENT_KEY => P_EVENT_KEY);
98 END;
99
100
101 PROCEDURE RAISE2(
102 P_event_name VARCHAR2,
103 P_event_key VARCHAR2,
104 P_Parameter_name1 VARCHAR2,
105 P_Parameter_value1 VARCHAR2
106 )
107 IS
108 BEGIN
109 WF_EVENT.RAISE2(P_event_name=>P_event_name,
110 P_event_key=>P_event_key,
111 P_Parameter_name1=>P_Parameter_name1,
112 P_Parameter_value1=>P_Parameter_value1);
113 END;
114
115
116 --Start of comments
117 --+========================================================================+
118 --| API Name : SET_USER_CONTEXT
119 --| TYPE : UTIL |
120 --| Notes : When calling Public API's using SQLPLUS the FND_GLOBAL |
121 --| .user_id is default to -1. This API will set the user_id |
122 --| to the value specified. It will also set the resp, appl |
123 --| values based on the Quality Manager Responsbility. |
124 --| It assumes that this responsibility will always exist. |
125 --| It also assumes that the USER_ID is valid.
126 --| |
127 --| HISTORY |
128 --| Hverddin 02-APR-03 CREATED.
129 --| |
130 --+========================================================================+
131
132 PROCEDURE SET_USER_CONTEXT(
133 p_user_id IN NUMBER,
134 x_return_status OUT NOCOPY VARCHAR2
135 )
136 IS
137
138 l_return_status VARCHAR2(1);
139 l_application_id NUMBER;
140 l_responsibility_id NUMBER;
141 l_responsibility_name VARCHAR2(255);
142
143
144
145 CURSOR c_get_appl_resp
146 IS
147 SELECT f.application_id, f.responsibility_id, f.responsibility_name
148 FROM fnd_responsibility_vl f, fnd_application a
149 WHERE f.application_id = a.application_id
150 AND a.application_short_name = 'GMD'
151 AND SYSDATE between f.start_date and NVL(f.end_date,SYSDATE)
152 AND f.RESPONSIBILITY_KEY = 'GMD_QUALITY_MANAGER' -- Bug 3837330
153 ORDER BY f.responsibility_id;
154
155
156 BEGIN
157
158 -- Initialize API return Parameters
159
160 l_return_status := FND_API.G_RET_STS_SUCCESS;
161
162 -- Compare the Current Value from FND_GLOBAL, with the User_id
163 -- parameter if they are the same , We need to do Nothing.
164
165
166 IF FND_GLOBAL.USER_ID <> p_user_id THEN
167
168 -- Get the values for the application id and responsibility
169 -- For Quality Manager Responsibility.
170 -- Could Select More than one Line With Matching Keys
171
172 OPEN c_get_appl_resp;
173 FETCH c_get_appl_resp
174 INTO l_application_id, l_responsibility_id,l_responsibility_name;
175 IF c_get_appl_resp%NOTFOUND THEN
176 CLOSE c_get_appl_resp;
177 GMD_API_PUB.Log_Message('GMD_NO_VALID_RESP');
178 RAISE FND_API.G_EXC_ERROR;
179 END IF;
180 CLOSE c_get_appl_resp;
181
182 -- Now set the appl, resp and user context.
183
184 FND_GLOBAL.APPS_INITIALIZE
185 ( USER_ID => p_user_id,
186 RESP_ID => l_responsibility_id,
187 RESP_APPL_ID => l_application_id);
188
189 -- Additional Check, if user_id is invalid, the above routine
190 -- will set the FND_GLOBAL.USER_NAME = NULL.
191
192 IF (FND_GLOBAL.USER_NAME IS NULL) THEN
193
194 GMD_API_PUB.Log_Message('GME_API_INVALID_USER_NAME');
195 RAISE FND_API.G_EXC_ERROR;
196 END IF;
197
198 END IF;
199
200 x_return_status := l_return_status;
201
202 EXCEPTION
203 WHEN FND_API.G_EXC_ERROR THEN
204 x_return_status := FND_API.G_RET_STS_ERROR;
205
206 WHEN OTHERS THEN
207 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
208
209 END SET_USER_CONTEXT;
210
211 END GMD_API_PUB;