DBA Data[Home] [Help]

PACKAGE BODY: APPS.IES_DEPL_SCRIPT_PKG

Source


1 PACKAGE BODY ies_depl_script_pkg AS
2    /* $Header: ieslkdsb.pls 115.5 2003/05/23 21:03:03 prkotha noship $ */
3 
4 /*-------------------------------------------------------------------------*
5  |    PRIVATE CONSTANTS
6  *-------------------------------------------------------------------------*/
7 
8 G_PKG_NAME CONSTANT VARCHAR2(30) := 'ies_depl_script_pkg';
9 G_FILE_NAME CONSTANT VARCHAR2(12) := 'ieslkdsb.pls';
10 
11 /* private FUNCTION */
12 
13 FUNCTION  get_active_locked_script_id(p_script_name     IN VARCHAR2,
14                                       p_script_language IN VARCHAR2)
15 RETURN NUMBER IS
16   l_script_id NUMBER;
17 BEGIN
18  SELECT dscript_id
19    INTO l_script_id
20    FROM ies_deployed_scripts
21   WHERE dscript_name = p_script_name
22     AND dscript_lang_id = (SELECT language_id
23 			     FROM fnd_languages
24 			    WHERE nls_language = p_script_language)
25     AND active_status = 1;
26   RETURN l_script_id;
27 END;
28 
29 /* END OF PRIVATE FUNCTIONS */
30 
31 PROCEDURE lock_deployed_script
32 (
33    p_api_version                    IN     NUMBER,
34    p_init_msg_list                  IN     VARCHAR2        := FND_API.G_FALSE,
35    p_commit                         IN     VARCHAR2        := FND_API.G_TRUE,
36    p_validation_level               IN     NUMBER          := FND_API.G_VALID_LEVEL_FULL,
37    p_dscript_id                     IN     NUMBER,
38    x_return_status                  OUT NOCOPY     VARCHAR2,
39    x_msg_count                      OUT NOCOPY     NUMBER,
40    x_msg_data                       OUT NOCOPY     VARCHAR2
41 ) IS
42   l_api_name      CONSTANT VARCHAR2(30)   := 'lock_deployed_script';
43   l_api_version   CONSTANT NUMBER         := 1.0;
44   l_encoded       VARCHAR2(1)             := FND_API.G_FALSE;
45 BEGIN
46   -- Standard Start of API savepoint
47   SAVEPOINT   lock_deployed_script_sp;
48 
49   -- Standard call to check for call compatibility
50   IF NOT FND_API.Compatible_API_Call  ( l_api_version,
51                                         p_api_version,
52                                         l_api_name,
53                                         G_PKG_NAME)
54   THEN
55       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
56   END IF;
57 
58   -- initialize message list if p_init_msg_list is set to TRUE
59   IF FND_API.To_Boolean( p_init_msg_list ) THEN
60      FND_MSG_PUB.initialize;
61   END IF;
62 
63   -- Initialize the API return status to success
64   x_return_status := FND_API.G_RET_STS_SUCCESS;
65 
66   BEGIN
67     -- API body
68     EXECUTE IMMEDIATE 'UPDATE ies_deployed_scripts SET lock_status = 1 '||
69                     'WHERE DSCRIPT_ID = :dscriptId' USING p_dscript_id;
70 
71   EXCEPTION
72     WHEN OTHERS THEN
73        IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
74        THEN
75           FND_MESSAGE.SET_NAME('IES', 'IES_DSCRIPT_LOCK_ERROR');
76           FND_MSG_PUB.Add;
77        END IF;
78 
79     RAISE FND_API.G_EXC_ERROR;
80   END;
81 
82   -- Signify Success
83   IF  FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
84   THEN
85       FND_MESSAGE.SET_NAME('IES', 'IES_DSCRIPT_LOCK_SUCCESS');
86       FND_MSG_PUB.Add;
87   END IF;
88 
89   -- End of API body
90 
91   -- Standard check of p_commit
92   IF FND_API.To_Boolean( p_commit ) THEN
93      COMMIT WORK;
94   END IF;
95 
96   -- Standard call to get message count and if count is 1, get message info
97   FND_MSG_PUB.Count_And_Get
98      (   p_encoded       =>      l_encoded,
99          p_count         =>      x_msg_count,
100          p_data          =>      x_msg_data
101      );
102 
103 EXCEPTION
104 WHEN FND_API.G_EXC_ERROR THEN
105   ROLLBACK TO lock_deployed_script_sp;
106   x_return_status := FND_API.G_RET_STS_ERROR;
107 
108   FND_MSG_PUB.Count_And_Get
109      (   p_encoded       =>      l_encoded,
110          p_count         =>      x_msg_count,
111          p_data          =>      x_msg_data
112      );
113 
114 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
115   ROLLBACK TO lock_deployed_script_sp;
116   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
117 
118   FND_MSG_PUB.Count_And_Get
119      (   p_encoded       =>      l_encoded,
120          p_count         =>      x_msg_count,
121          p_data          =>      x_msg_data
122      );
123 
124 WHEN OTHERS THEN
125   ROLLBACK TO lock_deployed_script_sp;
126   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
127 
128   IF     FND_MSG_PUB.Check_Msg_Level
129         (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
130   THEN
131      FND_MSG_PUB.Add_Exc_Msg
132      (      p_pkg_name            => G_PKG_NAME,
133             p_procedure_name      => l_api_name,
134             p_error_text          => 'G_MSG_LVL_UNEXP_ERROR'
135      );
136   END IF;
137   FND_MSG_PUB.Count_And_Get
138     (   p_encoded       =>      l_encoded,
139         p_count         =>      x_msg_count,
140         p_data          =>      x_msg_data
141     );
142 
143 END lock_deployed_script;
144 
145 PROCEDURE lock_deployed_script
146 (
147    p_api_version                    IN     NUMBER,
148    p_init_msg_list                  IN     VARCHAR2        := FND_API.G_FALSE,
149    p_commit                         IN     VARCHAR2        := FND_API.G_TRUE,
150    p_validation_level               IN     NUMBER          := FND_API.G_VALID_LEVEL_FULL,
151    p_dscript_id                     IN     NUMBER,
152    x_dscript_id                     OUT NOCOPY     NUMBER,
153    x_return_status                  OUT NOCOPY     VARCHAR2,
154    x_msg_count                      OUT NOCOPY     NUMBER,
155    x_msg_data                       OUT NOCOPY     VARCHAR2
156 ) IS
157   l_api_name      CONSTANT VARCHAR2(30)   := 'lock_deployed_script';
158   l_api_version   CONSTANT NUMBER         := 1.0;
159   l_encoded       VARCHAR2(1)             := FND_API.G_FALSE;
160   l_dscript_id     NUMBER;
161 BEGIN
162 -- Standard Start of API savepoint
163   SAVEPOINT   lock_deployed_script_sp;
164 
165   -- Standard call to check for call compatibility
166   IF NOT FND_API.Compatible_API_Call  ( l_api_version,
167                                         p_api_version,
168                                         l_api_name,
169                                         G_PKG_NAME)
170   THEN
171       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
172   END IF;
173 
174   -- initialize message list if p_init_msg_list is set to TRUE
175   IF FND_API.To_Boolean( p_init_msg_list ) THEN
176      FND_MSG_PUB.initialize;
177   END IF;
178 
179   -- Initialize the API return status to success
180   x_return_status := FND_API.G_RET_STS_SUCCESS;
181   BEGIN
182     SELECT dscript_id
183       INTO l_dscript_id
184       FROM ies_deployed_scripts
185      WHERE dscript_name = (SELECT dscript_name
186                                 FROM ies_deployed_scripts
187                                WHERE dscript_id = p_dscript_id)
188        AND dscript_lang_id = (SELECT dscript_lang_id
189                                 FROM ies_deployed_scripts
190                                WHERE dscript_id = p_dscript_id)
191        AND active_status = 1;
192 
193     lock_deployed_script(p_api_version ,
194                          p_init_msg_list,
195                          p_commit,
196                          p_validation_level,
197                          l_dscript_id,
198                          x_return_status,
199                          x_msg_count,
200                          x_msg_data);
201     x_dscript_id := l_dscript_id;
202    END;
203    -- Signify Success
204    IF  FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
205    THEN
206       FND_MESSAGE.SET_NAME('IES', 'IES_DSCRIPT_LOCK_SUCCESS');
207       FND_MSG_PUB.Add;
208    END IF;
209 
210 
211    -- Standard call to get message count and if count is 1, get message info
212    FND_MSG_PUB.Count_And_Get
213      (   p_encoded       =>      l_encoded,
214          p_count         =>      x_msg_count,
215          p_data          =>      x_msg_data
216      );
217 EXCEPTION
218 WHEN NO_DATA_FOUND THEN
219   ROLLBACK TO lock_deployed_script_sp;
220   x_return_status := FND_API.G_RET_STS_ERROR;
221 
222   FND_MSG_PUB.Count_And_Get
223      (   p_encoded       =>      l_encoded,
224          p_count         =>      x_msg_count,
225          p_data          =>      x_msg_data
226      );
227 
228 WHEN OTHERS THEN
229   ROLLBACK TO lock_deployed_script_sp;
230   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
231 
232   IF     FND_MSG_PUB.Check_Msg_Level
233         (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
234   THEN
235      FND_MSG_PUB.Add_Exc_Msg
236      (      p_pkg_name            => G_PKG_NAME,
237             p_procedure_name      => l_api_name,
238             p_error_text          => 'G_MSG_LVL_UNEXP_ERROR'
239      );
240   END IF;
241   FND_MSG_PUB.Count_And_Get
242     (   p_encoded       =>      l_encoded,
243         p_count         =>      x_msg_count,
244         p_data          =>      x_msg_data
245     );
246 
247 END lock_deployed_script;
248 
249 PROCEDURE lock_deployed_script
250 (
251    p_api_version                    IN     NUMBER,
252    p_init_msg_list                  IN     VARCHAR2        := FND_API.G_FALSE,
253    p_commit                         IN     VARCHAR2        := FND_API.G_TRUE,
254    p_validation_level               IN     NUMBER          := FND_API.G_VALID_LEVEL_FULL,
255    p_dscript_name                   IN     VARCHAR2,
256    p_dscript_language               IN     VARCHAR2,
257    x_dscript_id                     OUT NOCOPY     NUMBER,
258    x_return_status                  OUT NOCOPY     VARCHAR2,
259    x_msg_count                      OUT NOCOPY     NUMBER,
260    x_msg_data                       OUT NOCOPY     VARCHAR2
261 ) IS
262   l_api_name      CONSTANT VARCHAR2(30)   := 'lock_deployed_script';
263   l_api_version   CONSTANT NUMBER         := 1.0;
264   l_encoded       VARCHAR2(1)             := FND_API.G_FALSE;
265   l_dscript_id     NUMBER;
266 BEGIN
267 -- Standard Start of API savepoint
268   SAVEPOINT   lock_deployed_script_sp;
269 
270   -- Standard call to check for call compatibility
271   IF NOT FND_API.Compatible_API_Call  ( l_api_version,
272                                         p_api_version,
273                                         l_api_name,
274                                         G_PKG_NAME)
275   THEN
276       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
277   END IF;
278 
279   -- initialize message list if p_init_msg_list is set to TRUE
280   IF FND_API.To_Boolean( p_init_msg_list ) THEN
281      FND_MSG_PUB.initialize;
282   END IF;
283 
284   -- Initialize the API return status to success
285   x_return_status := FND_API.G_RET_STS_SUCCESS;
286   BEGIN
287     l_dscript_id := get_active_locked_script_id(p_dscript_name,
288                                                 p_dscript_language);
289 
290     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
291        RAISE FND_API.G_EXC_ERROR;
292     END IF;
293 
294     lock_deployed_script(p_api_version ,
295                          p_init_msg_list,
296                          p_commit,
297                          p_validation_level,
298                          l_dscript_id	,
299                          x_return_status,
300                          x_msg_count,
301                          x_msg_data);
302      x_dscript_id := l_dscript_id;
303    END;
304    -- Signify Success
305    IF  FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_SUCCESS)
306    THEN
307       FND_MESSAGE.SET_NAME('IES', 'IES_DSCRIPT_LOCK_SUCCESS');
308       FND_MSG_PUB.Add;
309    END IF;
310 
311 
312    -- Standard call to get message count and if count is 1, get message info
313    FND_MSG_PUB.Count_And_Get
314      (   p_encoded       =>      l_encoded,
315          p_count         =>      x_msg_count,
316          p_data          =>      x_msg_data
317      );
318 
319 EXCEPTION
320 WHEN NO_DATA_FOUND THEN
321   ROLLBACK TO lock_deployed_script_sp;
322   x_return_status := FND_API.G_RET_STS_ERROR;
323 
324   FND_MSG_PUB.Count_And_Get
325      (   p_encoded       =>      l_encoded,
326          p_count         =>      x_msg_count,
327          p_data          =>      x_msg_data
328      );
329 WHEN OTHERS THEN
330   ROLLBACK TO lock_deployed_script_sp;
331   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
332 
333   IF     FND_MSG_PUB.Check_Msg_Level
334         (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
335   THEN
336      FND_MSG_PUB.Add_Exc_Msg
337      (      p_pkg_name            => G_PKG_NAME,
338             p_procedure_name      => l_api_name,
339             p_error_text          => 'G_MSG_LVL_UNEXP_ERROR'
340      );
341   END IF;
342   FND_MSG_PUB.Count_And_Get
343     (   p_encoded       =>      l_encoded,
344         p_count         =>      x_msg_count,
345         p_data          =>      x_msg_data
346     );
347 
348 END lock_deployed_script;
349 
350 END ies_depl_script_pkg;