DBA Data[Home] [Help]

PACKAGE BODY: APPS.CZ_IB_LOCKING

Source


1 PACKAGE BODY CZ_IB_LOCKING AS
2 /*	$Header: cziblckb.pls 120.3 2006/08/01 15:46:41 skudryav ship $*/
3 
4 ------------------------------------------------------------------------------------------
5 
6 G_PKG_NAME   VARCHAR2(50) := 'CZ_IB_LOCKING';
7 
8 FUNCTION is_Valid_Data
9 (
10  p_config_session_hdr_id  IN  NUMBER,
11  p_config_session_rev_nbr IN  NUMBER,
12  p_config_session_item_id IN  NUMBER
13 ) RETURN BOOLEAN IS
14 
15 BEGIN
16   IF p_config_session_item_id IS NULL THEN
17     -- if p_config_session_item_id is not specified then
18     -- check CZ_CONFIG_HDRS
19     FOR i IN(SELECT 'x' FROM CZ_CONFIG_HDRS
20               WHERE config_hdr_id=p_config_session_hdr_id AND
21                     config_rev_nbr=p_config_session_rev_nbr AND
22                     component_instance_type='R' AND
23                     deleted_flag='0')
24     LOOP
25       RETURN TRUE;
26     END LOOP;
27 
28   ELSE
29     -- if p_config_session_item_id is specified then
30     -- check CZ_CONFIG_DETAILS_V
31     FOR i IN(SELECT 'x' FROM CZ_CONFIG_DETAILS_V
32               WHERE config_hdr_id=p_config_session_hdr_id AND
33                     config_rev_nbr=p_config_session_rev_nbr AND
34                     config_item_id=p_config_session_item_id AND
35                     component_instance_type='I' AND
36                     ib_trackable='1')
37     LOOP
38       RETURN TRUE;
39     END LOOP;
40 
41   END IF;
42 
43   RETURN FALSE;
44 END is_Valid_Data;
45 
46 --
47 -- this procedure calls procedure CSI_CZ_INT.lock_item_instance()
48 -- for each instance with configuration specified by parameters
49 -- p_config_session_hdr_id, p_config_session_rev_nbr and p_config_session_item_id
50 -- others parameters are passed to CSI_CZ_INT.lock_item_instance() directly
51 --
52 PROCEDURE lock_Config
53 (
54   p_api_version            IN  NUMBER,
55   p_config_session_hdr_id  IN  NUMBER,
56   p_config_session_rev_nbr IN  NUMBER,
57   p_config_session_item_id IN  NUMBER,
58   p_source_application_id  IN  NUMBER,
59   p_source_header_ref      IN  VARCHAR2,
60   p_source_line_ref1       IN  VARCHAR2,
61   p_source_line_ref2       IN  VARCHAR2,
62   p_source_line_ref3       IN  VARCHAR2,
63   p_commit                 IN  VARCHAR2,
64   p_init_msg_list          IN  VARCHAR2,
65   p_validation_level       IN  NUMBER,
66   x_locking_key            OUT NOCOPY NUMBER,
67   x_return_status          OUT NOCOPY VARCHAR2,
68   x_msg_count              OUT NOCOPY NUMBER,
69   x_msg_data               OUT NOCOPY VARCHAR2
70 ) IS
71 
72   l_api_version  CONSTANT NUMBER := 1.0;
73   l_api_name     CONSTANT VARCHAR2(30) := 'lock_Config';
74   l_ndebug       NUMBER := 0;
75 BEGIN
76 
77   IF (NOT FND_API.compatible_api_call(l_api_version
78                                      ,p_api_version
79                                      ,l_api_name
80                                      ,G_PKG_NAME
81                                      )) THEN
82     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
83   END IF;
84 
85   IF (p_init_msg_list = FND_API.G_TRUE) THEN
86     fnd_msg_pub.initialize;
87   END IF;
88 
89   x_return_status := FND_API.G_RET_STS_SUCCESS;
90   x_msg_count     := 0;
91   x_msg_data      := NULL;
92 
93   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
94     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
95     'List of parameters : ',
96     fnd_log.LEVEL_PROCEDURE);
97 
98     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
99     'p_config_session_hdr_id='||TO_CHAR(p_config_session_hdr_id),
100      fnd_log.LEVEL_PROCEDURE);
101 
102     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
103     'p_config_session_rev_nbr='||TO_CHAR(p_config_session_rev_nbr),
104      fnd_log.LEVEL_PROCEDURE);
105 
106     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
107     'p_config_session_item_id='||TO_CHAR(p_config_session_item_id),
108      fnd_log.LEVEL_PROCEDURE);
109 
110     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
111     'p_source_application_id='||TO_CHAR(p_source_application_id),
112      fnd_log.LEVEL_PROCEDURE);
113 
114     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
115     'p_source_header_ref='||p_source_header_ref,
116      fnd_log.LEVEL_PROCEDURE);
117 
118     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
119     'p_source_line_ref1='||p_source_line_ref1,
120      fnd_log.LEVEL_PROCEDURE);
121 
122     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
123     'p_source_line_ref2='||p_source_line_ref2,
124      fnd_log.LEVEL_PROCEDURE);
125 
126     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
127     'p_source_line_ref3='||p_source_line_ref3,
128      fnd_log.LEVEL_PROCEDURE);
129 
130     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
131     'p_commit='||p_commit,
132      fnd_log.LEVEL_PROCEDURE);
133 
134     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
135     'p_init_msg_list='||p_init_msg_list,
136      fnd_log.LEVEL_PROCEDURE);
137 
138     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
139     'p_validation_level='||TO_CHAR(p_validation_level),
140      fnd_log.LEVEL_PROCEDURE);
141 
142   END IF;
143 
144   --
145   -- validate p_config_session_hdr_id,p_config_session_rev_nbr,p_config_session_item_id
146   -- and if they are not valid then log error message and exit
147   --
148   IF NOT(is_Valid_Data (p_config_session_hdr_id,p_config_session_rev_nbr,p_config_session_item_id)) THEN
149     x_return_status := FND_API.G_RET_STS_ERROR;
150 
151     fnd_msg_pub.add_exc_msg(G_PKG_NAME, l_api_name, 'Error : Invalid Data : '||
152       'p_config_session_hdr_id/p_config_session_rev_nbr/p_config_session_item_id='||
153        TO_CHAR(p_config_session_hdr_id)||'/'||TO_CHAR(p_config_session_rev_nbr)||'/'||TO_CHAR(p_config_session_item_id));
154     fnd_msg_pub.count_and_get(p_count => x_msg_count,
155                               p_data  => x_msg_data);
156     x_msg_data :=  fnd_msg_pub.get(x_msg_count, FND_API.G_FALSE);
157 
158     IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
159       cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
160        'Error : Invalid Data : p_config_session_hdr_id/p_config_session_rev_nbr/p_config_session_item_id='||
161        TO_CHAR(p_config_session_hdr_id)||'/'||TO_CHAR(p_config_session_rev_nbr)||'/'||TO_CHAR(p_config_session_item_id),
162        fnd_log.LEVEL_PROCEDURE);
163     END IF;
164     -- it's fatal error => exit
165     RETURN;
166   END IF;
167 
168   EXECUTE IMMEDIATE
169  ' DECLARE ' ||
170  '   TYPE number_tbl_type IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; ' ||
171  '   l_config_tbl         csi_cz_int.config_tbl; ' ||
172  '   l_rec_counter        NUMBER := 0; ' ||
173  '   l_ndebug             NUMBER := 0; ' ||
174  ' BEGIN ' ||
175  '   FOR i IN(SELECT instance_hdr_id,instance_rev_nbr, config_item_id FROM CZ_CONFIG_DETAILS_V  ' ||
176  '            WHERE config_hdr_id=:1 AND ' ||
177  '                  config_rev_nbr=:2 AND ' ||
178  '                  config_item_id=NVL(:3, config_item_id) AND ' ||
179  '                  component_instance_type=''I'' AND ' ||
180  '                  ib_trackable=''1'') ' ||
181  '   LOOP ' ||
182  '     l_rec_counter := l_rec_counter + 1; ' ||
183  '     l_config_tbl(l_rec_counter).source_application_id := :4; ' ||
184  '     l_config_tbl(l_rec_counter).source_txn_header_ref := :5; ' ||
185  '     l_config_tbl(l_rec_counter).source_txn_line_ref1  := :6; ' ||
186  '     l_config_tbl(l_rec_counter).source_txn_line_ref2  := :7; ' ||
187  '     l_config_tbl(l_rec_counter).source_txn_line_ref3  := :8; ' ||
188  '     l_config_tbl(l_rec_counter).config_inst_hdr_id    := i.instance_hdr_id;  ' ||
189  '     l_config_tbl(l_rec_counter).config_inst_item_id   := i.config_item_id; ' ||
190  '     l_config_tbl(l_rec_counter).config_inst_rev_num   := i.instance_rev_nbr; ' ||
191  '     IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN ' ||
192  '       cz_utils.log_report(''CZ_IB_LOCKING'', ''lock_Config'', l_ndebug, ' ||
193  '       ''CSI_CZ_INT.lock_item_instances() will be called for instance_hdr_id=''||TO_CHAR(i.instance_hdr_id) || ' ||
194  '       '' instance_rev_nbr=''||TO_CHAR(i.instance_rev_nbr)||'' config_item_id=''||TO_CHAR(i.config_item_id), ' ||
195  '       fnd_log.LEVEL_PROCEDURE); ' ||
196  '     END IF;    ' ||
197  '   END LOOP; ' ||
198  '   IF l_config_tbl.COUNT > 0 THEN '||
199  '   CSI_CZ_INT.lock_item_instances(p_api_version       => 1.0 ' ||
200  '                                  ,p_commit           => :9 ' ||
201  '                                  ,p_init_msg_list    => :10 ' ||
202  '                                  ,p_validation_level => :11 ' ||
203  '                                  ,px_config_tbl      => l_config_tbl ' ||
204  '                                  ,x_return_status    => CZ_IB_LOCKING.m_return_status ' ||
205  '                                  ,x_msg_count        => CZ_IB_LOCKING.m_msg_count ' ||
206  '                                  ,x_msg_data         => CZ_IB_LOCKING.m_msg_data); ' ||
207  '   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN ' ||
208  '       cz_utils.log_report(''CZ_IB_LOCKING'', ''lock_Config'', l_ndebug, ' ||
209  '       ''CSI_CZ_INT.lock_item_instances() has been called : x_return_status=''||CZ_IB_LOCKING.m_return_status|| ' ||
210  '       ''x_msg_count=''||to_char(CZ_IB_LOCKING.m_msg_count)||''x_msg_data=''||CZ_IB_LOCKING.m_msg_data, ' ||
211  '       fnd_log.LEVEL_PROCEDURE); ' ||
212  '   END IF;    ' ||
213  '   END IF; '||
214  ' END;' USING
215         p_config_session_hdr_id,p_config_session_rev_nbr,p_config_session_item_id,
216         p_source_application_id,p_source_header_ref,p_source_line_ref1,p_source_line_ref2,
217         p_source_line_ref3,p_commit,p_init_msg_list,p_validation_level;
218 
219   IF CZ_IB_LOCKING.m_return_status IS NOT NULL THEN
220     x_return_status   := CZ_IB_LOCKING.m_return_status;
221     x_msg_count       := CZ_IB_LOCKING.m_msg_count;
222     x_msg_data        := CZ_IB_LOCKING.m_msg_data;
223   END IF;
224 
225 EXCEPTION
226   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
227     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
228     fnd_msg_pub.count_and_get(p_count => x_msg_count,
229                               p_data  => x_msg_data);
230 
231     IF (FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
232       cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
233        'Unexpected error : '||fnd_msg_pub.get(x_msg_count, FND_API.G_FALSE),
234        fnd_log.LEVEL_ERROR);
235     END IF;
236   WHEN OTHERS THEN
237     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
238     fnd_msg_pub.add_exc_msg(G_PKG_NAME, l_api_name, 'Fatal error : '||SQLERRM);
239     fnd_msg_pub.count_and_get(p_count => x_msg_count,
240                               p_data  => x_msg_data);
241     IF (FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
242       cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
243        'Fatal error : '||SQLERRM,
244        fnd_log.LEVEL_ERROR);
245     END IF;
246 END lock_Config;
247 
248 --
249 -- this procedure calls procedure CSI_CZ_INT.unlock_item_instance()
250 -- for each instance with configuration specified by parameters
251 -- p_config_session_hdr_id, p_config_session_rev_nbr and p_config_session_item_id
252 -- others parameters are passed to CSI_CZ_INT.lock_item_instance() directly
253 --
254 PROCEDURE unlock_Config
255   (
256   p_api_version            IN  NUMBER,
257   p_config_session_hdr_id  IN  NUMBER,
258   p_config_session_rev_nbr IN  NUMBER,
259   p_config_session_item_id IN  NUMBER,
260   p_locking_key            IN  NUMBER,
261   p_source_application_id  IN  NUMBER,
262   p_source_header_ref      IN  VARCHAR2,
263   p_source_line_ref1       IN  VARCHAR2,
264   p_source_line_ref2       IN  VARCHAR2,
265   p_source_line_ref3       IN  VARCHAR2,
266   p_commit                 IN  VARCHAR2,
267   p_init_msg_list          IN  VARCHAR2,
268   p_validation_level       IN  NUMBER,
269   x_return_status          OUT NOCOPY VARCHAR2,
270   x_msg_count              OUT NOCOPY NUMBER,
271   x_msg_data               OUT NOCOPY VARCHAR2
272   ) IS
273 
274   l_api_version  CONSTANT NUMBER := 1.0;
275   l_api_name     CONSTANT VARCHAR2(30) := 'unlock_Config';
276   l_ndebug       NUMBER := 1;
277 BEGIN
278 
279   IF (NOT FND_API.compatible_api_call(l_api_version
280                                      ,p_api_version
281                                      ,l_api_name
282                                      ,G_PKG_NAME
283                                      )) THEN
284     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
285   END IF;
286 
287   IF (p_init_msg_list = FND_API.G_TRUE) THEN
288     fnd_msg_pub.initialize;
289   END IF;
290 
291   x_return_status := FND_API.G_RET_STS_SUCCESS;
292   x_msg_count     := 0;
293   x_msg_data      := NULL;
294 
295   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
296     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
297     'List of parameters : ',
298     fnd_log.LEVEL_PROCEDURE);
299 
300     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
301     'p_config_session_hdr_id='||TO_CHAR(p_config_session_hdr_id),
302      fnd_log.LEVEL_PROCEDURE);
303 
304     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
305     'p_config_session_rev_nbr='||TO_CHAR(p_config_session_rev_nbr),
306      fnd_log.LEVEL_PROCEDURE);
307 
308     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
309     'p_config_session_item_id='||TO_CHAR(p_config_session_item_id),
310      fnd_log.LEVEL_PROCEDURE);
311 
312     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
313     'p_locking_key='||TO_CHAR(p_locking_key),
314      fnd_log.LEVEL_PROCEDURE);
315 
316     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
317     'p_source_application_id='||TO_CHAR(p_source_application_id),
318      fnd_log.LEVEL_PROCEDURE);
319 
320     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
321     'p_source_header_ref='||p_source_header_ref,
322      fnd_log.LEVEL_PROCEDURE);
323 
324     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
325     'p_source_line_ref1='||p_source_line_ref1,
326      fnd_log.LEVEL_PROCEDURE);
327 
328     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
329     'p_source_line_ref2='||p_source_line_ref2,
330      fnd_log.LEVEL_PROCEDURE);
331 
332     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
333     'p_source_line_ref3='||p_source_line_ref3,
334      fnd_log.LEVEL_PROCEDURE);
335 
336     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
337     'p_commit='||p_commit,
338      fnd_log.LEVEL_PROCEDURE);
339 
340     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
341     'p_init_msg_list='||p_init_msg_list,
342      fnd_log.LEVEL_PROCEDURE);
343 
344     cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
345     'p_validation_level='||TO_CHAR(p_validation_level),
346      fnd_log.LEVEL_PROCEDURE);
347 
348   END IF;
349 
350   --
351   -- validate p_config_session_hdr_id,p_config_session_rev_nbr,p_config_session_item_id
352   -- and if they are not valid then log error message and exit
353   --
357     fnd_msg_pub.add_exc_msg(G_PKG_NAME, l_api_name, 'Error : Invalid Data : '||
354   IF NOT(is_Valid_Data (p_config_session_hdr_id,p_config_session_rev_nbr,p_config_session_item_id)) THEN
355     x_return_status := FND_API.G_RET_STS_ERROR;
356 
358       'p_config_session_hdr_id/p_config_session_rev_nbr/p_config_session_item_id='||
359        TO_CHAR(p_config_session_hdr_id)||'/'||TO_CHAR(p_config_session_rev_nbr)||'/'||TO_CHAR(p_config_session_item_id));
360     fnd_msg_pub.count_and_get(p_count => x_msg_count,
361                               p_data  => x_msg_data);
362     x_msg_data :=  fnd_msg_pub.get(x_msg_count, FND_API.G_FALSE);
363 
364     IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
365       cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
366        'Error : Invalid Data : p_config_session_hdr_id/p_config_session_rev_nbr/p_config_session_item_id='||
367        TO_CHAR(p_config_session_hdr_id)||'/'||TO_CHAR(p_config_session_rev_nbr)||'/'||TO_CHAR(p_config_session_item_id),
368        fnd_log.LEVEL_PROCEDURE);
369     END IF;
370     -- it's fatal error => exit
371     RETURN;
372   END IF;
373 
374   EXECUTE IMMEDIATE
375 '  DECLARE ' ||
376 '    TYPE number_tbl_type IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; ' ||
377 '    l_config_tbl         csi_cz_int.config_tbl; ' ||
378 '    l_rec_counter        NUMBER := 0; ' ||
379 '    l_ndebug             NUMBER := 1; ' ||
380 '  BEGIN ' ||
381 '    FOR i IN(SELECT instance_hdr_id,instance_rev_nbr, config_item_id FROM CZ_CONFIG_DETAILS_V ' ||
382 '             WHERE config_hdr_id=:1 AND ' ||
383 '                   config_rev_nbr=:2 AND ' ||
384 '                   config_item_id=NVL(:3, config_item_id) AND ' ||
385 '                   component_instance_type=''I'' AND ' ||
386 '                   ib_trackable=''1'') ' ||
387 '    LOOP ' ||
388 '      l_rec_counter := l_rec_counter + 1; ' ||
389 '      l_config_tbl(l_rec_counter).source_application_id := :4;   ' ||
390 '      l_config_tbl(l_rec_counter).source_txn_header_ref := :5; ' ||
391 '      l_config_tbl(l_rec_counter).source_txn_line_ref1  := :6;    ' ||
392 '      l_config_tbl(l_rec_counter).source_txn_line_ref2  := :7;   ' ||
393 '      l_config_tbl(l_rec_counter).source_txn_line_ref3  := :8;   ' ||
394 '      l_config_tbl(l_rec_counter).lock_id	              := :9; ' ||
395 '      l_config_tbl(l_rec_counter).config_inst_hdr_id    := i.instance_hdr_id;     ' ||
396 '      l_config_tbl(l_rec_counter).config_inst_item_id   := i.config_item_id;    ' ||
397 '      l_config_tbl(l_rec_counter).config_inst_rev_num   := i.instance_rev_nbr;    ' ||
398 '      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN ' ||
399 '        cz_utils.log_report(''CZ_IB_LOCKING'', ''unlock_Config'', l_ndebug, ' ||
400 '        ''CSI_CZ_INT.unlock_item_instances() will be called for instance_hdr_id=''||TO_CHAR(i.instance_hdr_id)|| ' ||
401 '        '' instance_rev_nbr=''||TO_CHAR(i.instance_rev_nbr)||'' config_item_id=''||TO_CHAR(i.config_item_id), ' ||
402 '        fnd_log.LEVEL_PROCEDURE); ' ||
403 '      END IF; ' ||
404 '    END LOOP; ' ||
405 '    IF l_config_tbl.COUNT > 0 THEN '||
406 '    CSI_CZ_INT.unlock_item_instances(p_api_version       => 1.0 ' ||
407 '                                     ,p_commit           => :10 ' ||
408 '                                     ,p_init_msg_list    => :11 ' ||
409 '                                     ,p_validation_level => :12 ' ||
410 '                                     ,p_config_tbl       => l_config_tbl ' ||
411 '                                     ,x_return_status    => CZ_IB_LOCKING.m_return_status ' ||
412 '                                     ,x_msg_count        => CZ_IB_LOCKING.m_msg_count ' ||
413 '                                     ,x_msg_data         => CZ_IB_LOCKING.m_msg_data); ' ||
414 '    IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN ' ||
415 '        cz_utils.log_report(''CZ_IB_LOCKING'', ''unlock_Config'', l_ndebug, ' ||
416 '        ''CSI_CZ_INT.unlock_item_instances() has been called : x_return_status=''||CZ_IB_LOCKING.m_return_status|| ' ||
417 '        ''x_msg_count=''||to_char(CZ_IB_LOCKING.m_msg_count)||''x_msg_data=''||CZ_IB_LOCKING.m_msg_data, ' ||
418 '        fnd_log.LEVEL_PROCEDURE); ' ||
419 '    END IF;    ' ||
420 '    END IF; '||
421 '  END;' USING
422         p_config_session_hdr_id,p_config_session_rev_nbr,p_config_session_item_id,
423         p_source_application_id,p_source_header_ref,p_source_line_ref1,p_source_line_ref2,
424         p_source_line_ref3,p_locking_key,p_commit,p_init_msg_list,p_validation_level;
425 
426   IF CZ_IB_LOCKING.m_return_status IS NOT NULL THEN
427     x_return_status   := CZ_IB_LOCKING.m_return_status;
428     x_msg_count       := CZ_IB_LOCKING.m_msg_count;
429     x_msg_data        := CZ_IB_LOCKING.m_msg_data;
430   END IF;
431 
432 EXCEPTION
433   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
434     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
435     fnd_msg_pub.count_and_get(p_count => x_msg_count,
436                               p_data  => x_msg_data);
437     IF (FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
438       cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
439        'Unexpected error : '||fnd_msg_pub.get(x_msg_count, FND_API.G_FALSE),
440        fnd_log.LEVEL_ERROR);
441     END IF;
442   WHEN OTHERS THEN
443     x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
444     fnd_msg_pub.add_exc_msg(G_PKG_NAME, l_api_name, 'Fatal error : '||SQLERRM);
445     fnd_msg_pub.count_and_get(p_count => x_msg_count,
446                               p_data  => x_msg_data);
447     IF (FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
448       cz_utils.log_report(G_PKG_NAME, l_api_name, l_ndebug,
449        'Fatal error : '||SQLERRM,
450        fnd_log.LEVEL_ERROR);
451     END IF;
452 END unlock_Config;
453 
454 END;