DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_XPRT_CZ_INT_PVT

Source


1 PACKAGE BODY OKC_XPRT_CZ_INT_PVT AS
2 /* $Header: OKCVXCZINTB.pls 120.0 2005/05/25 23:04:21 appldev noship $ */
3 
4   ------------------------------------------------------------------------------
5   -- GLOBAL CONSTANTS
6   ------------------------------------------------------------------------------
7   G_PKG_NAME                   CONSTANT   VARCHAR2(200) := 'OKC_XPRT_CZ_INT_PVT';
8   G_APP_NAME                   CONSTANT   VARCHAR2(3)   :=  OKC_API.G_APP_NAME;
9 
10   G_LEVEL_PROCEDURE            CONSTANT   NUMBER := FND_LOG.LEVEL_PROCEDURE;
11   G_MODULE                     CONSTANT   VARCHAR2(250) := 'okc.plsql.'||g_pkg_name||'.';
12   G_APPLICATION_ID             CONSTANT   NUMBER :=510; -- OKC Application
13 
14   G_FALSE                      CONSTANT   VARCHAR2(1) := FND_API.G_FALSE;
15   G_TRUE                       CONSTANT   VARCHAR2(1) := FND_API.G_TRUE;
16 
17   G_RET_STS_SUCCESS            CONSTANT   VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18   G_RET_STS_ERROR              CONSTANT   VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
19   G_RET_STS_UNEXP_ERROR        CONSTANT   VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
20 
21   G_UNEXPECTED_ERROR           CONSTANT   VARCHAR2(200) := 'OKC_UNEXPECTED_ERROR';
22   G_SQLERRM_TOKEN              CONSTANT   VARCHAR2(200) := 'ERROR_MESSAGE';
23   G_SQLCODE_TOKEN              CONSTANT   VARCHAR2(200) := 'ERROR_CODE';
24   G_UNABLE_TO_RESERVE_REC      CONSTANT   VARCHAR2(200) := OKC_API.G_UNABLE_TO_RESERVE_REC;
25 
26 
27 ---------------------------------------------------
28 --  Procedure:
29 ---------------------------------------------------
30 PROCEDURE import_generic
31 (
32  p_api_version      IN  NUMBER,
33  p_run_id           IN  NUMBER,
34  p_rp_folder_id     IN  NUMBER,
35  x_run_id           OUT NOCOPY NUMBER,
36  x_return_status    OUT NOCOPY VARCHAR2,
37  x_msg_data	    OUT	NOCOPY VARCHAR2,
38  x_msg_count	    OUT	NOCOPY NUMBER
39 ) IS
40 
41 l_api_version              CONSTANT NUMBER := 1;
42 l_api_name                 CONSTANT VARCHAR2(30) := 'import_generic';
43 l_cz_return_status         NUMBER;
44 
45 BEGIN
46 
47   -- start debug log
48   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
49      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
50                     G_MODULE||l_api_name,
51                     '100: Entered '||G_PKG_NAME ||'.'||l_api_name);
52   END IF;
53 
54     -- Standard call to check for call compatibility.
55     IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
56         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
57     END IF;
58 
59     --  Initialize API return status to success
60     x_return_status := FND_API.G_RET_STS_SUCCESS;
61 
62     -- debug log
63      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
64          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
65                  G_MODULE||l_api_name,
66                  '   ********************************************************');
67          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
68                  G_MODULE||l_api_name,
69                  'Calling CZ_CONTRACTS_API_GRP.import_generic with parameters');
70          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
71                  G_MODULE||l_api_name,
72                  'p_api_version : '||l_api_version);
73          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
74                  G_MODULE||l_api_name,
75                  'p_run_id : '||p_run_id);
76          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
77                  G_MODULE||l_api_name,
78                  'p_rp_folder_id : '||p_rp_folder_id);
79      END IF;
80 
81      -- Put the parameters in log file
82        fnd_file.put_line(FND_FILE.LOG,'  ');
83        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
84        fnd_file.put_line(FND_FILE.LOG,'Calling CZ_CONTRACTS_API_GRP.import_generic with parameters');
85        fnd_file.put_line(FND_FILE.LOG,'p_api_version:  '||l_api_version);
86        fnd_file.put_line(FND_FILE.LOG,'p_run_id:  '||p_run_id);
87        fnd_file.put_line(FND_FILE.LOG,'p_rp_folder_id:  '||p_rp_folder_id);
88        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
89        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
90        fnd_file.put_line(FND_FILE.LOG,'  ');
91 
92     -- Call the CZ Generic Import API
93       CZ_CONTRACTS_API_GRP.import_generic
94        (
95         p_api_version          => l_api_version,
96         p_run_id               => p_run_id,
97         x_run_id               => x_run_id,
98         p_rp_folder_id         => p_rp_folder_id,
99         x_status               => l_cz_return_status
100        );
101 
102     -- debug log
103      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
104          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
105                  G_MODULE||l_api_name,
106                  '   ********************************************************');
107          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
108                  G_MODULE||l_api_name,
109                  'After Calling CZ_CONTRACTS_API_GRP.import_generic ');
110          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
111                  G_MODULE||l_api_name,
112                  'x_status : '||l_cz_return_status);
113          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
114                  G_MODULE||l_api_name,
115                  'x_run_id : '||x_run_id);
116          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
117                  G_MODULE||l_api_name,
118                  '   ********************************************************');
119      END IF;
120 
121      -- Put the parameters in log file
122        fnd_file.put_line(FND_FILE.LOG,'  ');
123        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
124        fnd_file.put_line(FND_FILE.LOG,'After calling CZ_CONTRACTS_API_GRP.import_generic');
125        fnd_file.put_line(FND_FILE.LOG,'x_status:  '||l_cz_return_status);
126        fnd_file.put_line(FND_FILE.LOG,'x_run_id:  '||x_run_id);
127        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
128        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
129        fnd_file.put_line(FND_FILE.LOG,'  ');
130 
131 
132      IF l_cz_return_status = G_CZ_STATUS_SUCCESS THEN
133         x_return_status  := FND_API.G_RET_STS_SUCCESS;
134      ELSIF l_cz_return_status = G_CZ_STATUS_ERROR OR
135            l_cz_return_status = G_CZ_STATUS_WARNING THEN
136         x_return_status  := FND_API.G_RET_STS_ERROR;
137      ELSE
138         x_return_status  := FND_API.G_RET_STS_UNEXP_ERROR;
139      END IF;
140 
141 -- Add Error Handling routine to check if all the records were successfully imported
142 -- check if for the x_run_id all the records in the import tables have status = 'OK'
143 -- also check the cz_xfr_run_results table for the entity
144 -- error details in cz_db_logs
145 
146 
147 -- Standard call to get message count and if count is 1, get message info.
148 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
149 
150   -- end debug log
151   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
152      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
153                     G_MODULE||l_api_name,
154                     '1000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
155   END IF;
156 
157 EXCEPTION
158 WHEN OTHERS THEN
159       IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
160          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
161                         G_MODULE||l_api_name,
162                         '4000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
163       END IF;
164       x_return_status := G_RET_STS_UNEXP_ERROR ;
165 
166       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
167              FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
168       END IF;
169 
170       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
171 
172 END import_generic;
173 
174 
175 ---------------------------------------------------
176 --  Procedure:
177 ---------------------------------------------------
178 PROCEDURE create_rp_folder
179 (
180  p_api_version      IN  NUMBER,
181  p_encl_folder_id   IN NUMBER,
182  p_new_folder_name  IN VARCHAR2,
183  p_folder_desc      IN VARCHAR2,
184  p_folder_notes     IN VARCHAR2,
185  x_new_folder_id    OUT NOCOPY NUMBER,
186  x_return_status    OUT NOCOPY VARCHAR2,
187  x_msg_data	    OUT	NOCOPY VARCHAR2,
188  x_msg_count	    OUT	NOCOPY NUMBER
189 ) IS
190 
191 l_api_version              CONSTANT NUMBER := 1;
192 l_api_name                 CONSTANT VARCHAR2(30) := 'create_rp_folder';
193 l_cz_return_status         VARCHAR2(30);
194 
195 BEGIN
196 
197   -- start debug log
198   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
199      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
200                     G_MODULE||l_api_name,
201                     '100: Entered '||G_PKG_NAME ||'.'||l_api_name);
202   END IF;
203 
204 -- Standard call to check for call compatibility.
205 IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
206     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
207 END IF;
208 
209 --  Initialize API return status to success
210 x_return_status := FND_API.G_RET_STS_SUCCESS;
211 
212     -- debug log
213      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
214          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
215                  G_MODULE||l_api_name,
216                  '   ********************************************************');
217          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
218                  G_MODULE||l_api_name,
219                  'Calling CZ_CONTRACTS_API_GRP.create_rp_folder with parameters');
220          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
221                  G_MODULE||l_api_name,
222                  'p_api_version : '||l_api_version);
223          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
224                  G_MODULE||l_api_name,
225                  'p_encl_folder_id : '||p_encl_folder_id);
226          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
227                  G_MODULE||l_api_name,
228                  'p_new_folder_name : '||p_new_folder_name);
229          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
230                  G_MODULE||l_api_name,
231                  '   ********************************************************');
232      END IF;
233 
234      -- Put the parameters in log file
235        fnd_file.put_line(FND_FILE.LOG,'  ');
236        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
237        fnd_file.put_line(FND_FILE.LOG,'Calling CZ_CONTRACTS_API_GRP.create_rp_folder with parameters');
238        fnd_file.put_line(FND_FILE.LOG,'p_api_version:  '||l_api_version);
239        fnd_file.put_line(FND_FILE.LOG,'p_encl_folder_id:  '||p_encl_folder_id);
240        fnd_file.put_line(FND_FILE.LOG,'p_new_folder_name:  '||p_new_folder_name);
241        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
242        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
243        fnd_file.put_line(FND_FILE.LOG,'  ');
244 
245 
246 -- Call the CZ Generic Import API
247       CZ_CONTRACTS_API_GRP.create_rp_folder
248        (
249         p_api_version        => l_api_version,
250         p_encl_folder_id     => p_encl_folder_id,
251         p_new_folder_name    => p_new_folder_name,
252         p_folder_desc        => p_folder_desc,
253         p_folder_notes       => p_folder_notes,
254         x_new_folder_id      => x_new_folder_id,
255         x_return_status      => l_cz_return_status,
256         x_msg_count          => x_msg_count,
257         x_msg_data           => x_msg_data
258        );
259 
260 
261     -- debug log
262      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
263          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
264                  G_MODULE||l_api_name,
265                  '   ********************************************************');
266          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
267                  G_MODULE||l_api_name,
268                  'After Calling CZ_CONTRACTS_API_GRP.create_rp_folder');
269          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
270                  G_MODULE||l_api_name,
271                  'x_new_folder_id : '||x_new_folder_id);
272          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
273                  G_MODULE||l_api_name,
274                  'x_return_status : '||l_cz_return_status);
275          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
276                  G_MODULE||l_api_name,
277                  '   ********************************************************');
278      END IF;
279 
280      -- Put the parameters in log file
281        fnd_file.put_line(FND_FILE.LOG,'  ');
282        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
283        fnd_file.put_line(FND_FILE.LOG,'After calling CZ_CONTRACTS_API_GRP.create_rp_folder');
284        fnd_file.put_line(FND_FILE.LOG,'x_status:  '||l_cz_return_status);
285        fnd_file.put_line(FND_FILE.LOG,'x_new_folder_id:  '||x_new_folder_id);
286        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
287        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
288        fnd_file.put_line(FND_FILE.LOG,'  ');
289 
290 
291     -- For the above call , l_cz_return_status is a string 'S' , 'E' or 'U'
292     -- so directly assing the same to x_return_status
293        x_return_status := l_cz_return_status;
294 
295 -- Standard call to get message count and if count is 1, get message info.
296 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
297 
298   -- end debug log
299   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
300      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
301                     G_MODULE||l_api_name,
302                     '1000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
303   END IF;
304 
305 EXCEPTION
306 WHEN OTHERS THEN
307       IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
308          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
309                         G_MODULE||l_api_name,
310                         '4000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
311       END IF;
312       x_return_status := G_RET_STS_UNEXP_ERROR ;
313 
314       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
315            FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
316       END IF;
317 
318       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
319 
320 END create_rp_folder;
321 
322 
323 
324 PROCEDURE delete_ui_def
325 (
326  p_api_version      IN  NUMBER,
327  p_ui_def_id        IN  NUMBER,
328  x_return_status    OUT NOCOPY VARCHAR2,
329  x_msg_data	     OUT	NOCOPY VARCHAR2,
330  x_msg_count	     OUT	NOCOPY NUMBER
331 ) IS
332 
333 
334 l_api_version              CONSTANT NUMBER := 1;
335 l_api_name                 CONSTANT VARCHAR2(30) := 'delete_ui_def';
336 
337 BEGIN
338 
339   -- start debug log
340   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
341      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
342                     G_MODULE||l_api_name,
343                     '100: Entered '||G_PKG_NAME ||'.'||l_api_name);
344   END IF;
345 
346     -- Standard call to check for call compatibility.
347     IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
348         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
349     END IF;
350 
351     --  Initialize API return status to success
352     x_return_status := FND_API.G_RET_STS_SUCCESS;
353 
354     -- debug log
355      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
356          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
357                  G_MODULE||l_api_name,
358                  '   ********************************************************');
359          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
360                  G_MODULE||l_api_name,
361                  'Calling CZ_CONTRACTS_API_GRP.delete_ui_def with parameters');
362          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
363                  G_MODULE||l_api_name,
364                  'p_api_version : '||l_api_version);
365          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
366                  G_MODULE||l_api_name,
367                  'p_ui_def_id : '||p_ui_def_id);
368      END IF;
369 
370      -- Put the parameters in log file
371        fnd_file.put_line(FND_FILE.LOG,'  ');
372        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
373        fnd_file.put_line(FND_FILE.LOG,'Calling CZ_CONTRACTS_API_GRP.delete_ui_def with parameters');
374        fnd_file.put_line(FND_FILE.LOG,'p_api_version:  '||l_api_version);
375        fnd_file.put_line(FND_FILE.LOG,'p_ui_def_id:  '||p_ui_def_id);
376        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
377        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
378        fnd_file.put_line(FND_FILE.LOG,'  ');
379 
380     -- Call the CZ delete_ui_def API
381       CZ_contracts_api_grp.delete_ui_def
382        (
383         p_api_version          => l_api_version,
384 	   p_ui_def_id            => p_ui_def_id,
385 	   x_return_status        => x_return_status,
386 	   x_msg_count            => x_msg_count,
387 	   x_msg_data             => x_msg_data
388 	  );
389 
390 
391     -- debug log
392      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
393          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
394                  G_MODULE||l_api_name,
395                  '   ********************************************************');
396          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
397                  G_MODULE||l_api_name,
398                  'After Calling CZ_CONTRACTS_API_GRP.delete_ui_def ');
399          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
400                  G_MODULE||l_api_name,
401                  'x_return_status : '||x_return_status);
402          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
403                  G_MODULE||l_api_name,
404                  '   ********************************************************');
405      END IF;
406 
407      -- Put the parameters in log file
408        fnd_file.put_line(FND_FILE.LOG,'  ');
409        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
410        fnd_file.put_line(FND_FILE.LOG,'After calling CZ_CONTRACTS_API_GRP.delete_ui_def');
411        fnd_file.put_line(FND_FILE.LOG,'x_return_status:  '||x_return_status);
412        fnd_file.put_line(FND_FILE.LOG,'x_msg_count:  '||x_msg_count);
413        fnd_file.put_line(FND_FILE.LOG,'x_msg_data:  '||x_msg_data);
414        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
415        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
416        fnd_file.put_line(FND_FILE.LOG,'  ');
417 
418 
419 -- Standard call to get message count and if count is 1, get message info.
420 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
421 
422   -- end debug log
423   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
424      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
425                     G_MODULE||l_api_name,
426                     '1000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
427   END IF;
428 
429 
430 EXCEPTION
431 WHEN OTHERS THEN
432       IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
433          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
434                         G_MODULE||l_api_name,
435                         '4000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
436       END IF;
437       x_return_status := G_RET_STS_UNEXP_ERROR ;
438 
439       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
440            FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
441       END IF;
442 
443       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
444 
445 END delete_ui_def;
446 
447 
448 PROCEDURE create_jrad_ui
449 (
450  p_api_version        IN  NUMBER,
451  p_devl_project_id    IN  NUMBER,
452  p_show_all_nodes     IN  VARCHAR2,
453  p_master_template_id IN  NUMBER,
454  p_create_empty_ui    IN  VARCHAR2,
455  x_ui_def_id          OUT NOCOPY NUMBER,
456  x_return_status      OUT NOCOPY VARCHAR2,
457  x_msg_data	       OUT NOCOPY VARCHAR2,
458  x_msg_count	       OUT NOCOPY NUMBER
459 ) IS
460 
461 
462 l_api_version              CONSTANT NUMBER := 1;
463 l_api_name                 CONSTANT VARCHAR2(30) := 'create_jrad_ui';
464 
465 BEGIN
466 
467   -- start debug log
468   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
469      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
470                     G_MODULE||l_api_name,
471                     '100: Entered '||G_PKG_NAME ||'.'||l_api_name);
472   END IF;
473 
474     -- Standard call to check for call compatibility.
475     IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
476         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
477     END IF;
478 
479     --  Initialize API return status to success
480     x_return_status := FND_API.G_RET_STS_SUCCESS;
481 
482     -- debug log
483      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
484          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
485                  G_MODULE||l_api_name,
486                  '   ********************************************************');
487          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
488                  G_MODULE||l_api_name,
489                  'Calling CZ_CONTRACTS_API_GRP.create_jrad_ui with parameters');
490          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
491                  G_MODULE||l_api_name,
492                  'p_api_version : '||l_api_version);
493          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
494                  G_MODULE||l_api_name,
495                  'p_devl_project_id : '||p_devl_project_id);
496          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
497                  G_MODULE||l_api_name,
498                  'p_show_all_nodes : '||p_show_all_nodes);
499          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
500                  G_MODULE||l_api_name,
501                  'p_master_template_id : '||p_master_template_id);
502          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
503                  G_MODULE||l_api_name,
504                  'p_create_empty_ui : '||p_create_empty_ui);
505      END IF;
506 
507      -- Put the parameters in log file
508        fnd_file.put_line(FND_FILE.LOG,'  ');
509        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
510        fnd_file.put_line(FND_FILE.LOG,'Calling CZ_CONTRACTS_API_GRP.create_jrad_ui with parameters');
511        fnd_file.put_line(FND_FILE.LOG,'p_api_version:  '||l_api_version);
512        fnd_file.put_line(FND_FILE.LOG,'p_devl_project_id:  '||p_devl_project_id);
513        fnd_file.put_line(FND_FILE.LOG,'p_show_all_nodes:  '||p_show_all_nodes);
514        fnd_file.put_line(FND_FILE.LOG,'p_master_template_id:  '||p_master_template_id);
515        fnd_file.put_line(FND_FILE.LOG,'p_create_empty_ui:  '||p_create_empty_ui);
516        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
517        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
518        fnd_file.put_line(FND_FILE.LOG,'  ');
519 
520     -- Call the CZ create_jrad_ui API
521 	 CZ_CONTRACTS_API_GRP.create_jrad_ui
522        (
523         p_api_version          => l_api_version,
524         p_devl_project_id      => p_devl_project_id,
525         p_show_all_nodes       => p_show_all_nodes,
526         p_master_template_id   => p_master_template_id,
527         p_create_empty_ui      => p_create_empty_ui,
528 	   x_ui_def_id            => x_ui_def_id,
529 	   x_return_status        => x_return_status,
530 	   x_msg_count            => x_msg_count,
531 	   x_msg_data             => x_msg_data
532 	  );
533 
534     -- debug log
535      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
536          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
537                  G_MODULE||l_api_name,
538                  '   ********************************************************');
539          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
540                  G_MODULE||l_api_name,
541                  'After Calling CZ_CONTRACTS_API_GRP.create_jrad_ui ');
542          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
543                  G_MODULE||l_api_name,
544                  'x_return_status : '||x_return_status);
545          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
546                  G_MODULE||l_api_name,
547                  'x_ui_def_id : '||x_ui_def_id);
548          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
549                  G_MODULE||l_api_name,
550                  '   ********************************************************');
551      END IF;
552 
553      -- Put the parameters in log file
554        fnd_file.put_line(FND_FILE.LOG,'  ');
555        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
556        fnd_file.put_line(FND_FILE.LOG,'After calling CZ_CONTRACTS_API_GRP.create_jrad_ui');
557        fnd_file.put_line(FND_FILE.LOG,'x_return_status:  '||x_return_status);
558        fnd_file.put_line(FND_FILE.LOG,'x_ui_def_id:  '||x_ui_def_id);
559        fnd_file.put_line(FND_FILE.LOG,'x_msg_count:  '||x_msg_count);
560        fnd_file.put_line(FND_FILE.LOG,'x_msg_data:  '||x_msg_data);
561        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
562        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
563        fnd_file.put_line(FND_FILE.LOG,'  ');
564 
565 -- Standard call to get message count and if count is 1, get message info.
566 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
567 
568   -- end debug log
569   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
570      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
571                     G_MODULE||l_api_name,
572                     '1000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
573   END IF;
574 
575 
576 
577 EXCEPTION
578 WHEN OTHERS THEN
579       IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
580          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
581                         G_MODULE||l_api_name,
582                         '4000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
583       END IF;
584       x_return_status := G_RET_STS_UNEXP_ERROR ;
585 
586       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
587            FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
588       END IF;
589 
590       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
591 
592 END create_jrad_ui;
593 
594 
595 PROCEDURE generate_logic
596 (
597  p_api_version      IN  NUMBER,
598  p_init_msg_lst     IN VARCHAR2,
599  p_devl_project_id  IN  NUMBER,
600  x_run_id           OUT NOCOPY NUMBER,
601  x_return_status    OUT NOCOPY VARCHAR2,
602  x_msg_data	    	OUT	NOCOPY VARCHAR2,
603  x_msg_count	    OUT	NOCOPY NUMBER
604 ) IS
605 
606 l_api_version              CONSTANT NUMBER := 1;
607 l_api_name                 CONSTANT VARCHAR2(30) := 'generate_logic';
608 
609 l_rec_number              NUMBER:= 0;
610 
611 CURSOR csr_db_logs(p_run_id IN NUMBER) IS
612 SELECT logtime,
613        caller,
614        message
615 FROM cz_db_logs
616 WHERE run_id = p_run_id
617 ORDER BY logtime;
618 
619 BEGIN
620 
621   -- start debug log
622   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
623      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
624                     G_MODULE||l_api_name,
625                     '100: Entered '||G_PKG_NAME ||'.'||l_api_name);
626   END IF;
627 
628     -- Standard call to check for call compatibility.
629     IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
630         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
631     END IF;
632 
633     IF FND_API.to_Boolean( p_init_msg_lst ) THEN
634       FND_MSG_PUB.initialize;
635     END IF;
636 
637     --  Initialize API return status to success
638     x_return_status := FND_API.G_RET_STS_SUCCESS;
639 
640     -- debug log
641      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
642          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
643                  G_MODULE||l_api_name,
644                  '   ********************************************************');
645          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
646                  G_MODULE||l_api_name,
647                  'Calling CZ_CONTRACTS_API_GRP.generate_logic with parameters');
648          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
649                  G_MODULE||l_api_name,
650                  'p_api_version : '||l_api_version);
651          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
652                  G_MODULE||l_api_name,
653                  'p_devl_project_id : '||p_devl_project_id);
654      END IF;
655 
656      -- Put the parameters in log file
657        fnd_file.put_line(FND_FILE.LOG,'  ');
658        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
659        fnd_file.put_line(FND_FILE.LOG,'Calling CZ_CONTRACTS_API_GRP.generate_logic with parameters');
660        fnd_file.put_line(FND_FILE.LOG,'p_api_version:  '||l_api_version);
661        fnd_file.put_line(FND_FILE.LOG,'p_devl_project_id:  '||p_devl_project_id);
662        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
663        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
664        fnd_file.put_line(FND_FILE.LOG,'  ');
665 
666     -- Call the CZ Generic Import API
667     /*
668        CZ will return Success for generate_logic if there were warnings
669 	  In case of warnings x_run_id will NOT be 0 and x_msg_data will have data
670 	  from cz_db_logs
671     */
672       CZ_CONTRACTS_API_GRP.generate_logic
673        (
674         p_api_version          => l_api_version,
675         p_devl_project_id      => p_devl_project_id,
676         x_run_id               => x_run_id,
677 	   x_return_status        => x_return_status,
678 	   x_msg_count            => x_msg_count,
679 	   x_msg_data             => x_msg_data
680 
681        );
682 
683     -- debug log
684      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
685          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
686                  G_MODULE||l_api_name,
687                  '   ********************************************************');
688          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
689                  G_MODULE||l_api_name,
690                  'After Calling CZ_CONTRACTS_API_GRP.generate_logic ');
691          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
692                  G_MODULE||l_api_name,
693                  'x_status : '||x_return_status);
694          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
695                  G_MODULE||l_api_name,
696                  'x_run_id : '||x_run_id);
697          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
698                  G_MODULE||l_api_name,
699                  '   ********************************************************');
700      END IF;
701 
702      -- Put the parameters in log file
703        fnd_file.put_line(FND_FILE.LOG,'  ');
704        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
705        fnd_file.put_line(FND_FILE.LOG,'After calling CZ_CONTRACTS_API_GRP.generate_logic');
706        fnd_file.put_line(FND_FILE.LOG,'x_status:  '||x_return_status);
707        fnd_file.put_line(FND_FILE.LOG,'x_run_id:  '||x_run_id);
708        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
709        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
710        fnd_file.put_line(FND_FILE.LOG,'  ');
711 
712 
713        -- bug 4081597 If any errors happens put details in logfile
714        IF (x_return_status = G_RET_STS_UNEXP_ERROR) OR (x_return_status = G_RET_STS_ERROR) THEN
715          FOR csr_db_logs_rec IN csr_db_logs(p_run_id => x_run_id)
716            LOOP
717              l_rec_number := l_rec_number +1;
718              fnd_file.put_line(FND_FILE.LOG,'  ');
719              fnd_file.put_line(FND_FILE.LOG,'*************** Record   :  '||l_rec_number||'  **************');
720              fnd_file.put_line(FND_FILE.LOG,'Logtime  :  '||csr_db_logs_rec.logtime);
721              fnd_file.put_line(FND_FILE.LOG,'Caller   :  '||csr_db_logs_rec.caller);
722              fnd_file.put_line(FND_FILE.LOG,'Message  :  '||csr_db_logs_rec.message);
723              fnd_file.put_line(FND_FILE.LOG,'  ');
724              fnd_file.put_line(FND_FILE.LOG,'  ');
725           END LOOP;
726        END IF;
727 
728 
729 -- Standard call to get message count and if count is 1, get message info.
730 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
731 
732   -- end debug log
733   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
734      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
735                     G_MODULE||l_api_name,
736                     '1000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
737   END IF;
738 
739 EXCEPTION
740 WHEN OTHERS THEN
741       IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
742          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
743                         G_MODULE||l_api_name,
744                         '4000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
745       END IF;
746       x_return_status := G_RET_STS_UNEXP_ERROR ;
747 
748       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
749              FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
750       END IF;
751 
752       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
753 
754 END generate_logic;
755 
756 -------------------------------------------------------------------------------
757 
758 PROCEDURE delete_publication
759 (
760  p_api_version      IN  NUMBER,
761  p_init_msg_lst     IN  VARCHAR2,
762  p_publication_id   IN  NUMBER,
763  x_return_status    OUT NOCOPY VARCHAR2,
764  x_msg_data	    OUT	NOCOPY VARCHAR2,
765  x_msg_count	    OUT	NOCOPY NUMBER
766 ) IS
767 
768 l_api_version              CONSTANT NUMBER := 1;
769 l_api_name                 CONSTANT VARCHAR2(30) := 'delete_publication';
770 
771 BEGIN
772 
773   -- start debug log
774   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
775      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
776                     G_MODULE||l_api_name,
777                     '100: Entered '||G_PKG_NAME ||'.'||l_api_name);
778   END IF;
779 
780     -- Standard call to check for call compatibility.
781     IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
782         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
783     END IF;
784 
785     IF FND_API.to_Boolean( p_init_msg_lst ) THEN
786       FND_MSG_PUB.initialize;
787     END IF;
788 
789     --  Initialize API return status to success
790     x_return_status := FND_API.G_RET_STS_SUCCESS;
791 
792     -- debug log
793      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
794          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
795                  G_MODULE||l_api_name,
796                  '   ********************************************************');
797          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
798                  G_MODULE||l_api_name,
799                  'Calling CZ_CONTRACTS_API_GRP.delete_publication with parameters');
800          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
801                  G_MODULE||l_api_name,
802                  'p_api_version : '||l_api_version);
803          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
804                  G_MODULE||l_api_name,
805                  'p_publication_id : '||p_publication_id);
806      END IF;
807 
808      -- Put the parameters in log file
809        fnd_file.put_line(FND_FILE.LOG,'  ');
810        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
811        fnd_file.put_line(FND_FILE.LOG,'Calling CZ_CONTRACTS_API_GRP.delete_publication with parameters');
812        fnd_file.put_line(FND_FILE.LOG,'p_api_version:  '||l_api_version);
813        fnd_file.put_line(FND_FILE.LOG,'p_publication_id:  '||p_publication_id);
814        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
815        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
816        fnd_file.put_line(FND_FILE.LOG,'  ');
817 
818     -- Initialize the CZ parameter values
819 
820       CZ_CONTRACTS_API_GRP.delete_publication
821        (
822         p_api_version          => l_api_version,
823         publicationid          => p_publication_id,
824         x_return_status        => x_return_status,
825         x_msg_count      	   => x_msg_count,
826         x_msg_data             => x_msg_data
827        );
828 
829     -- debug log
830      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
831          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
832                  G_MODULE||l_api_name,
833                  '   ********************************************************');
834          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
835                  G_MODULE||l_api_name,
836                  'After Calling CZ_CONTRACTS_API_GRP.delete_publication ');
837          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
838                  G_MODULE||l_api_name,
839                  'x_return_status : '||x_return_status);
840          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
841                  G_MODULE||l_api_name,
842                  'x_msg_count : '||x_msg_count);
843          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
844                  G_MODULE||l_api_name,
845                  'x_msg_data : '||x_msg_data);
846          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
847                  G_MODULE||l_api_name,
848                  '   ********************************************************');
849      END IF;
850 
851      -- Put the parameters in log file
852        fnd_file.put_line(FND_FILE.LOG,'  ');
853        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
854        fnd_file.put_line(FND_FILE.LOG,'After calling CZ_CONTRACTS_API_GRP.delete_publication');
855        fnd_file.put_line(FND_FILE.LOG,'x_return_status:  '||x_return_status);
856        fnd_file.put_line(FND_FILE.LOG,'x_msg_count:  '||x_msg_count);
857        fnd_file.put_line(FND_FILE.LOG,'x_msg_data:  '||x_msg_data);
858        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
859        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
860        fnd_file.put_line(FND_FILE.LOG,'  ');
861 
862 -- Standard call to get message count and if count is 1, get message info.
863 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
864 
865   -- end debug log
866   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
867      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
868                     G_MODULE||l_api_name,
869                     '1000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
870   END IF;
871 
872 EXCEPTION
873 WHEN OTHERS THEN
874       IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
875          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
876                         G_MODULE||l_api_name,
877                         '4000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
878       END IF;
879       x_return_status := G_RET_STS_UNEXP_ERROR ;
880 
881       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
882              FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
883       END IF;
884 
885       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
886 
887 END delete_publication;
888 
889 
890 PROCEDURE create_publication_request
891 (
892  p_api_version      IN NUMBER,
893  p_init_msg_lst     IN VARCHAR2,
894  p_devl_project_id  IN NUMBER,
895  p_ui_def_id        IN NUMBER,
896  p_publication_mode IN VARCHAR2,
897  x_publication_id   OUT NOCOPY NUMBER,
898  x_return_status    OUT NOCOPY VARCHAR2,
899  x_msg_data	     OUT	NOCOPY VARCHAR2,
900  x_msg_count	     OUT	NOCOPY NUMBER
901 ) IS
902 
903 CURSOR csr_get_publication_dtl IS
904 SELECT publication_id
905 FROM cz_model_publications
906 WHERE model_id = p_devl_project_id
907 AND deleted_flag = '0'
908 AND publication_mode ='t';
909 
910 CURSOR csr_installed_languages IS
911 SELECT L.LANGUAGE_CODE
912   FROM FND_LANGUAGES L
913 WHERE L.INSTALLED_FLAG IN ('I', 'B');
914 
915 l_api_version              CONSTANT NUMBER := 1;
916 l_api_name                 CONSTANT VARCHAR2(30) := 'create_publication_request';
917 l_cz_return_status         NUMBER;
918 l_appl_id_tbl              CZ_CONTRACTS_API_GRP.t_ref;
919 l_usg_id_tbl               CZ_CONTRACTS_API_GRP.t_ref;
920 l_lang_tbl                 CZ_CONTRACTS_API_GRP.t_lang_code;
921 l_server_id                NUMBER;
922 l_start_date 			  DATE;
923 l_end_date			  DATE;
924 l_publication_id 		  NUMBER;
925 i                          BINARY_INTEGER;
926 
927 BEGIN
928 
929   -- start debug log
930   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
931      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
932                     G_MODULE||l_api_name,
933                     '100: Entered '||G_PKG_NAME ||'.'||l_api_name);
934   END IF;
935 
936     -- Standard call to check for call compatibility.
937     IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
938         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
939     END IF;
940 
941     IF FND_API.to_Boolean( p_init_msg_lst ) THEN
942       FND_MSG_PUB.initialize;
943     END IF;
944 
945     --  Initialize API return status to success
946     x_return_status := FND_API.G_RET_STS_SUCCESS;
947 
948     -- Initialize Input parameters for the CZ api
949      l_server_id      := '0'; -- Check with CZ
950 	l_appl_id_tbl(1) := 510; -- OKC App Id
951 	l_usg_id_tbl(1)  := -1; -- Any usage
952 
953 
954 	-- Get all installed languages
955 	OPEN csr_installed_languages;
956 	    FETCH csr_installed_languages BULK COLLECT INTO l_lang_tbl;
957 	CLOSE csr_installed_languages;
958 
959 
960 	l_start_date     := OKC_XPRT_CZ_INT_PVT.G_CZ_EPOCH_BEGIN;
961 	l_end_date	  := OKC_XPRT_CZ_INT_PVT.G_CZ_EPOCH_END;
962 
963 
964       -- Add code for initialization of applicability parameters
965 
966       -- Call the CZ Delete publication api for deleting any existing test publication
967       OPEN csr_get_publication_dtl;
968 	   LOOP
969           FETCH csr_get_publication_dtl INTO l_publication_id;
970 		EXIT WHEN csr_get_publication_dtl%NOTFOUND;
971 	         -- Added code for deleting test publication
972     	          delete_publication
973 		     (
974 		      p_api_version           => l_api_version,
975 		      p_init_msg_lst          => p_init_msg_lst,
976 		      p_publication_id        => l_publication_id,
977 		      x_return_status         => x_return_status,
978 		      x_msg_count      	      => x_msg_count,
979 		      x_msg_data              => x_msg_data
980 		      );
981 
982                  --- If any errors happen abort API
983                  IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
984                     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
985                  ELSIF (x_return_status = G_RET_STS_ERROR) THEN
986                     RAISE FND_API.G_EXC_ERROR;
987                  END IF;
988 
989 	   END LOOP;
990 	 CLOSE csr_get_publication_dtl;
991 
992     -- debug log
993      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
994          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
995                  G_MODULE||l_api_name,
996                  '   ********************************************************');
997          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
998                  G_MODULE||l_api_name,
999                  'Calling CZ_CONTRACTS_API_GRP.create_publication_request with parameters');
1000          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1001                  G_MODULE||l_api_name,
1002                  'p_api_version : '||l_api_version);
1003          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1004                  G_MODULE||l_api_name,
1005                  'p_model_id : '||p_devl_project_id);
1006          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1007                  G_MODULE||l_api_name,
1008                  'p_ui_def_id : '||p_ui_def_id);
1009          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1010                  G_MODULE||l_api_name,
1011                  'p_publication_mode : '||p_publication_mode);
1012          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1013                  G_MODULE||l_api_name,
1014                  'p_server_id : '||l_server_id);
1015          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1016                  G_MODULE||l_api_name,
1017                  'l_appl_id_tbl(1) : 510');
1018          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1019                  G_MODULE||l_api_name,
1020                  'l_usg_id_tbl(1) : -1');
1021          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1022                  G_MODULE||l_api_name,
1023                  'p_start_date : '||l_start_date);
1024          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1025                  G_MODULE||l_api_name,
1026                  'p_end_date : '||l_end_date);
1027      END IF;
1028 
1029      -- Put the parameters in log file
1030        fnd_file.put_line(FND_FILE.LOG,'  ');
1031        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
1032        fnd_file.put_line(FND_FILE.LOG,'Calling CZ_CONTRACTS_API_GRP.create_publication_request with parameters');
1033        fnd_file.put_line(FND_FILE.LOG,'p_api_version:  	'||l_api_version);
1034        fnd_file.put_line(FND_FILE.LOG,'p_model_id:  		'||p_devl_project_id);
1035        fnd_file.put_line(FND_FILE.LOG,'p_ui_def_id:  		'||p_ui_def_id);
1036        fnd_file.put_line(FND_FILE.LOG,'p_publication_mode:  '||p_publication_mode);
1037        fnd_file.put_line(FND_FILE.LOG,'p_server_id:  		'||l_server_id);
1038        fnd_file.put_line(FND_FILE.LOG,'l_appl_id_tbl(1) : 510');
1039        fnd_file.put_line(FND_FILE.LOG,'l_usg_id_tbl(1) : -1');
1040        fnd_file.put_line(FND_FILE.LOG,'p_start_date:  		'||l_start_date);
1041        fnd_file.put_line(FND_FILE.LOG,'p_end_date:  		'||l_end_date);
1042        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
1043        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
1044        fnd_file.put_line(FND_FILE.LOG,'  ');
1045 
1046       -- Add code for initialization of applicability parameters
1047 
1048       -- Call the CZ Generic Import API
1049       CZ_CONTRACTS_API_GRP.create_publication_request
1050        (
1051         p_api_version          	=> l_api_version,
1052         p_model_id      	    => p_devl_project_id,
1053         p_ui_def_id             => p_ui_def_id,
1054         p_publication_mode      => p_publication_mode,
1055         p_server_id             => l_server_id,
1056         p_appl_id_tbl           => l_appl_id_tbl,
1057         p_usg_id_tbl            => l_usg_id_tbl,
1058         p_lang_tbl      	    => l_lang_tbl,
1059         p_start_date            => l_start_date,
1060         p_end_date              => l_end_date,
1061         x_publication_id      	=> x_publication_id,
1062         x_return_status         => x_return_status,
1063         x_msg_count      	    => x_msg_count,
1064         x_msg_data              => x_msg_data
1065        );
1066     -- debug log
1067      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1068          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1069                  G_MODULE||l_api_name,
1070                  '   ********************************************************');
1071          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1072                  G_MODULE||l_api_name,
1073                  'After Calling CZ_CONTRACTS_API_GRP.create_publication_request ');
1074          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1075                  G_MODULE||l_api_name,
1076                  'x_publication_id : '||x_publication_id);
1077          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1078                  G_MODULE||l_api_name,
1079                  'x_return_status : '||x_return_status);
1080          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1081                  G_MODULE||l_api_name,
1082                  'x_msg_count : '||x_msg_count);
1083          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1084                  G_MODULE||l_api_name,
1085                  'x_msg_data : '||x_msg_data);
1086          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1087                  G_MODULE||l_api_name,
1088                  '   ********************************************************');
1089      END IF;
1090 
1091      -- Put the parameters in log file
1092        fnd_file.put_line(FND_FILE.LOG,'  ');
1093        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
1094        fnd_file.put_line(FND_FILE.LOG,'After calling CZ_CONTRACTS_API_GRP.create_publication_request');
1095        fnd_file.put_line(FND_FILE.LOG,'x_return_status:  '||x_return_status);
1096        fnd_file.put_line(FND_FILE.LOG,'x_publication_id:  '||x_publication_id);
1097        fnd_file.put_line(FND_FILE.LOG,'x_msg_count:  '||x_msg_count);
1098        fnd_file.put_line(FND_FILE.LOG,'x_msg_data:  '||x_msg_data);
1099        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
1100        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
1101        fnd_file.put_line(FND_FILE.LOG,'  ');
1102 
1103 
1104 -- Standard call to get message count and if count is 1, get message info.
1105 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1106 
1107   -- end debug log
1108   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1109      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1110                     G_MODULE||l_api_name,
1111                     '1000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
1112   END IF;
1113 
1114 EXCEPTION
1115 WHEN OTHERS THEN
1116       IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1117          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1118                         G_MODULE||l_api_name,
1119                         '4000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
1120       END IF;
1121       x_return_status := G_RET_STS_UNEXP_ERROR ;
1122 
1123       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1124              FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1125       END IF;
1126 
1127       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1128 
1129 END create_publication_request;
1130 
1131 
1132 
1133 -------------------------------------------------------------------------------
1134   /*====================================================================+
1135   Procedure Name : copy_configuration
1136   Description    : Calls CZ's copy_configuration API.
1137 
1138   +====================================================================*/
1139   PROCEDURE copy_configuration(
1140     p_api_version                  IN NUMBER,
1141     p_init_msg_list                IN VARCHAR2,
1142     p_config_header_id             IN NUMBER,
1143     p_config_rev_nbr               IN NUMBER,
1144     p_new_config_flag              IN VARCHAR2,
1145     x_new_config_header_id         OUT NOCOPY NUMBER,
1146     x_new_config_rev_nbr           OUT NOCOPY NUMBER,
1147     x_return_status                OUT NOCOPY VARCHAR2,
1148     x_msg_count                    OUT NOCOPY NUMBER,
1149     x_msg_data                     OUT NOCOPY VARCHAR2)
1150 
1151   IS
1152 
1153      l_api_name CONSTANT VARCHAR2(30) := 'copy_configuration_auto';
1154      l_package_procedure VARCHAR2(60);
1155      l_x_config_header_id NUMBER;
1156      l_x_config_rev_nbr NUMBER;
1157      l_x_error_message VARCHAR2(2000);
1158      l_x_copy_return_status NUMBER;
1159 
1160   BEGIN
1161 
1162   --
1163   -- Check Debug Value
1164   --
1165   l_package_procedure := G_PKG_NAME || '.' || l_api_name;
1166 
1167   -- start debug log
1168   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1169      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1170                     G_MODULE||l_api_name,
1171                     '100: Entered '||G_PKG_NAME ||'.'||l_api_name);
1172      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1173                     G_MODULE||l_api_name,
1174                     '100: Parameters ');
1175      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1176                     G_MODULE||l_api_name,
1177                     '100: p_api_version : '||p_api_version);
1178      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1179                     G_MODULE||l_api_name,
1180                     '100: p_init_msg_list : '||p_init_msg_list);
1181      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1182                     G_MODULE||l_api_name,
1183                     '100: p_config_header_id : '||p_config_header_id);
1184      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1185                     G_MODULE||l_api_name,
1186                     '100: p_config_rev_nbr : '||p_config_rev_nbr);
1187      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1188                     G_MODULE||l_api_name,
1189                     '100: p_new_config_flag : '||p_new_config_flag);
1190   END IF;
1191 
1192 
1193     x_return_status :=  G_RET_STS_SUCCESS;
1194 
1195     --
1196     -- p_config_header_id AND p_config_rev_nbr cannot be NULL
1197     --
1198     IF (p_config_header_id is NULL OR p_config_rev_nbr is NULL)
1199     THEN
1200       x_msg_data := 'OKC_EXPRT_NULL_PARAM';
1201       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1202     END IF;
1203 
1204     -- Fix for P1 bug 4090615. Changed from copy_configuration to copy_configuration_auto
1205 	CZ_CF_API.copy_configuration_auto(
1206                   config_hdr_id       => p_config_header_id,
1207                   config_rev_nbr      => p_config_rev_nbr,
1208                   new_config_flag     => 1, -- copy with new config_header_id
1209                   out_config_hdr_id   => l_x_config_header_id,
1210                   out_config_rev_nbr  => l_x_config_rev_nbr,
1211                   error_message       => l_x_error_message,
1212                   return_value        => l_x_copy_return_status, -- 1 (Success) or 0 (Failure)
1213                   handle_deleted_flag => 0, -- undelete new config if source config was deleted
1214                   new_name            => NULL);
1215 
1216     IF (l_x_config_header_id is NULL OR l_x_config_rev_nbr is NULL
1217         OR l_x_copy_return_status = 0)
1218     THEN
1219 
1220       IF (l_x_error_message is NOT NULL)
1221       THEN
1222         x_msg_data := l_x_error_message;
1223       ELSE
1224         x_msg_data := 'OKC_EXPRT_COPY_CONFIG_FAILED';
1225       END IF;
1226 
1227       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1228     END IF;
1229 
1230     x_new_config_header_id := l_x_config_header_id;
1231     x_new_config_rev_nbr := l_x_config_rev_nbr;
1232 
1233   -- end debug log
1234   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1235      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1236                     G_MODULE||l_api_name,
1237                     '1000: x_new_config_header_id : '||l_x_config_header_id);
1238      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1239                     G_MODULE||l_api_name,
1240                     '1000: x_new_config_rev_nbr : '||l_x_config_rev_nbr);
1241      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1242                     G_MODULE||l_api_name,
1243                     '1000: x_return_status  : '||x_return_status);
1244      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1245                     G_MODULE||l_api_name,
1246                     '1000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
1247   END IF;
1248 
1249   EXCEPTION
1250       WHEN FND_API.G_EXC_ERROR THEN
1251 
1252   		x_return_status := FND_API.G_RET_STS_ERROR ;
1253   		FND_MSG_PUB.Count_And_Get(
1254   		        p_count => x_msg_count,
1255           		p_data => x_msg_data
1256   		);
1257 
1258       WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1259   		x_return_status := FND_API.G_RET_STS_ERROR ;
1260   		FND_MSG_PUB.Count_And_Get(
1261   		        p_count => x_msg_count,
1262           		p_data => x_msg_data
1263   		);
1264 
1265       WHEN OTHERS THEN
1266   		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1267 
1268     		IF FND_MSG_PUB.Check_Msg_Level
1269   		   (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1270   		THEN
1271       	    	FND_MSG_PUB.Add_Exc_Msg(
1272       	    	     G_PKG_NAME  	    ,
1273       	    	     l_api_name
1274   	    	      );
1275   		END IF;
1276 
1277   		FND_MSG_PUB.Count_And_Get(
1278   		     p_count => x_msg_count,
1279           	     p_data => x_msg_data
1280   		);
1281   END copy_configuration;
1282 
1283 -------------------------------------------------------------------------------
1284   /*====================================================================+
1285   Procedure Name : delete_configuration
1286   Description    : Calls CZ's delete_configuration API.
1287 
1288   +====================================================================*/
1289   PROCEDURE delete_configuration(
1290     p_api_version                  IN NUMBER,
1291     p_init_msg_list                IN VARCHAR2,
1292     p_config_header_id             IN NUMBER,
1293     p_config_rev_nbr               IN NUMBER,
1294     x_return_status                OUT NOCOPY VARCHAR2,
1295     x_msg_count                    OUT NOCOPY NUMBER,
1296     x_msg_data                     OUT NOCOPY VARCHAR2)
1297 
1298   IS
1299 
1300      l_api_name CONSTANT VARCHAR2(30) := 'delete_configuration';
1301      l_package_procedure VARCHAR2(60);
1302 
1303      l_x_usage_exists NUMBER; -- 1 if configuration usage record exists and
1304                               -- configuration is not deleted.
1305 
1306      l_x_delete_status NUMBER; -- 1 if delete was successful; otherwise 0
1307      l_x_error_message VARCHAR2(2000); -- error message if l_x_delete_status = 0
1308 
1309   BEGIN
1310 
1311   --
1312   -- Check Debug Value
1313   --
1314   l_package_procedure := G_PKG_NAME || '.' || l_api_name;
1315   -- start debug log
1316   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1317      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1318                     G_MODULE||l_api_name,
1319                     '100: Entered '||G_PKG_NAME ||'.'||l_api_name);
1320      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1321                     G_MODULE||l_api_name,
1322                     '100: Parameters ');
1323      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1324                     G_MODULE||l_api_name,
1325                     '100: p_api_version : '||p_api_version);
1326      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1327                     G_MODULE||l_api_name,
1328                     '100: p_init_msg_list : '||p_init_msg_list);
1329      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1330                     G_MODULE||l_api_name,
1331                     '100: p_config_header_id : '||p_config_header_id);
1332      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1333                     G_MODULE||l_api_name,
1334                     '100: p_config_rev_nbr : '||p_config_rev_nbr);
1335   END IF;
1336 
1337     x_return_status :=  G_RET_STS_SUCCESS;
1338 
1339     CZ_CF_API.delete_configuration(
1340                      config_hdr_id  => p_config_header_id,
1341                      config_rev_nbr => p_config_rev_nbr,
1342                      usage_exists   => l_x_usage_exists,
1343                      error_message  => l_x_error_message,
1344                      return_value   => l_x_delete_status);
1345 
1346     IF (l_x_delete_status = 0)
1347     THEN
1348 
1349       IF (l_x_error_message is NOT NULL)
1350       THEN
1351         x_msg_data := l_x_error_message;
1352       ELSE
1353         x_msg_data := 'OKC_EXPRT_DEL_CONFIG_FAILED';
1354       END IF;
1355       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1356 
1357     END IF;
1358 
1359 
1360   -- end debug log
1361   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1362      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1363                     G_MODULE||l_api_name,
1364                     '1000: x_return_status  : '||x_return_status);
1365      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1366                     G_MODULE||l_api_name,
1367                     '1000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
1368   END IF;
1369 
1370 
1371   EXCEPTION
1372       WHEN FND_API.G_EXC_ERROR THEN
1373 
1374   		x_return_status := FND_API.G_RET_STS_ERROR ;
1375   		FND_MSG_PUB.Count_And_Get(
1376   		        p_count => x_msg_count,
1377           		p_data => x_msg_data
1378   		);
1379 
1380       WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1381   		x_return_status := FND_API.G_RET_STS_ERROR ;
1382   		FND_MSG_PUB.Count_And_Get(
1383   		        p_count => x_msg_count,
1384           		p_data => x_msg_data
1385   		);
1386 
1387       WHEN OTHERS THEN
1388   		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1389 
1390     		IF FND_MSG_PUB.Check_Msg_Level
1391   		   (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1392   		THEN
1393       	    	FND_MSG_PUB.Add_Exc_Msg(
1394       	    	     G_PKG_NAME  	    ,
1395       	    	     l_api_name
1396   	    	      );
1397   		END IF;
1398 
1399   		FND_MSG_PUB.Count_And_Get(
1400   		     p_count => x_msg_count,
1401           	     p_data => x_msg_data
1402   		);
1403 
1404   END delete_configuration;
1405 -------------------------------------------------------------------------------
1406   /*====================================================================+
1407   Procedure Name : batch_validate
1408   Description    : Calls CZ's Validate API and Converts the HTML_PIECES
1409                    output to LONG for Parsing.
1410 
1411                  Configurator's Output Validation Status:
1412                  CONFIG_PROCESSED              constant NUMBER :=0;
1413                  CONFIG_PROCESSED_NO_TERMINATE constant NUMBER :=1;
1414                  INIT_TOO_LONG                 constant NUMBER :=2;
1415                  INVALID_OPTION_REQUEST        constant NUMBER :=3;
1416                  CONFIG_EXCEPTION              constant NUMBER :=4;
1417                  DATABASE_ERROR                constant NUMBER :=5;
1418                  UTL_HTTP_INIT_FAILED          constant NUMBER :=6;
1419                  UTL_HTTP_REQUEST_FAILED       constant NUMBER :=7;
1420   +====================================================================*/
1421   PROCEDURE batch_validate(
1422     p_api_version                  IN NUMBER,
1423     p_init_msg_list                IN VARCHAR2,
1424     p_cz_xml_init_msg              IN VARCHAR2,
1425     x_cz_xml_terminate_msg         OUT NOCOPY LONG, -- CZ_CF_API.CFG_OUTPUT_PIECES,
1426     x_return_status                OUT NOCOPY VARCHAR2,
1427     x_msg_count                    OUT NOCOPY NUMBER,
1428     x_msg_data                     OUT NOCOPY VARCHAR2)
1429 
1430   IS
1431 
1432      l_api_name CONSTANT VARCHAR2(30) := 'batch_validate';
1433      l_package_procedure VARCHAR2(60);
1434 
1435      l_cfg_input_list CZ_CF_API.CFG_INPUT_LIST;  -- Not passing any inputs.
1436                                                  -- Note that CZ's Validate procedure
1437                                                  -- must be modified to accommodate
1438                                                  -- inputs from non-BOM applications.
1439      l_cfg_output_pieces CZ_CF_API.CFG_OUTPUT_PIECES; -- UTL_HTTP.HTML_PIECES
1440      l_x_validation_status NUMBER; -- See Valid Values in Procedure Header.
1441 
1442      l_rec_index NUMBER;
1443      l_long_xml LONG;
1444 
1445   BEGIN
1446 
1447      --
1448      -- Check Debug Value
1449      --
1450      l_package_procedure := G_PKG_NAME || '.' || l_api_name;
1451 
1452   -- start debug log
1453   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1454      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1455                     G_MODULE||l_api_name,
1456                     '100: Entered '||G_PKG_NAME ||'.'||l_api_name);
1457      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1458                     G_MODULE||l_api_name,
1459                     '100: Parameters ');
1460      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1461                     G_MODULE||l_api_name,
1462                     '100: p_api_version : '||p_api_version);
1463      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1464                     G_MODULE||l_api_name,
1465                     '100: p_init_msg_list : '||p_init_msg_list);
1466      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1467                     G_MODULE||l_api_name,
1468                     '100: p_cz_xml_init_msg : '||p_cz_xml_init_msg);
1469   END IF;
1470 
1471     x_return_status :=  G_RET_STS_SUCCESS;
1472 
1473      IF (p_cz_xml_init_msg is NULL)
1474      THEN
1475          x_msg_data := 'OKC_EXPRT_BV_NULL_INIT_MSG';
1476          RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1477      END IF;
1478 
1479 
1480      CZ_CF_API.VALIDATE(
1481                config_input_list => l_cfg_input_list,
1482                init_message      => p_cz_xml_init_msg,
1483                config_messages   => l_cfg_output_pieces,
1484                validation_status => l_x_validation_status,
1485                url               => FND_PROFILE.value('CZ_UIMGR_URL'),
1486                p_validation_type => CZ_API_PUB.VALIDATE_ORDER);
1487 
1488 
1489   -- debug log
1490   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1491      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1492                     G_MODULE||l_api_name,
1493                     '100: validation_status : '||l_x_validation_status);
1494   END IF;
1495 
1496 
1497 
1498        IF (l_cfg_output_pieces.COUNT > 0 )
1499        THEN
1500          l_rec_index := l_cfg_output_pieces.FIRST;
1501          LOOP
1502             -- debug log
1503              IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1504                 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1505                 G_MODULE||l_api_name,
1506                 '100: cz terminate msg = '||ltrim(rtrim(substr(l_cfg_output_pieces(l_rec_index),1,255))));
1507                 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1508                 G_MODULE||l_api_name,
1509                 '100: cz terminate msg = '||ltrim(rtrim(substr(l_cfg_output_pieces(l_rec_index),256,255))));
1510                 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1511                 G_MODULE||l_api_name,
1512                 '100: cz terminate msg = '||ltrim(rtrim(substr(l_cfg_output_pieces(l_rec_index),512,255))));
1513                 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1514                 G_MODULE||l_api_name,
1515                 '100: cz terminate msg = '||ltrim(rtrim(substr(l_cfg_output_pieces(l_rec_index),768,255))));
1516                 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1517                 G_MODULE||l_api_name,
1518                 '100: cz terminate msg = '||ltrim(rtrim(substr(l_cfg_output_pieces(l_rec_index),1024,255))));
1519                 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1520                 G_MODULE||l_api_name,
1521                 '100: cz terminate msg = '||ltrim(rtrim(substr(l_cfg_output_pieces(l_rec_index),1280,255))));
1522 		   END IF; -- debug log
1523 
1524            EXIT WHEN l_rec_index = l_cfg_output_pieces.LAST;
1525            l_rec_index := l_cfg_output_pieces.NEXT(l_rec_index);
1526          END LOOP;
1527        END IF;
1528 
1529      --IF (l_x_validation_status <> 0 OR l_cfg_output_pieces.COUNT <= 0)
1530      IF (l_cfg_output_pieces.COUNT <= 0)
1531      THEN
1532 
1533        x_msg_data := 'OKC_EXPRT_BV_VALIDATE_ERROR';
1534 
1535        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1536 
1537      END IF;
1538 
1539 
1540      -- CZ_CF_API.VALIDATE returns the status as a constant in range of
1541      -- 0 to 8 in which 0 is success
1542 
1543      IF (l_x_validation_status = 1) THEN
1544         x_msg_data := 'CONFIG_PROCESSED_NO_TERMINATE';
1545         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1546      ELSIF (l_x_validation_status = 2) THEN
1547         x_msg_data := 'INIT_TOO_LONG';
1548         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1549      ELSIF (l_x_validation_status = 3) THEN
1550         x_msg_data := 'INVALID_OPTION_REQUEST';
1551         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1552      ELSIF (l_x_validation_status = 4) THEN
1553         x_msg_data := 'CONFIG_EXCEPTION';
1554         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1555      ELSIF (l_x_validation_status = 5) THEN
1556         x_msg_data := 'DATABASE_ERROR';
1557         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1558      ELSIF (l_x_validation_status = 6) THEN
1559         x_msg_data := 'UTL_HTTP_INIT_FAILED';
1560         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1561      ELSIF (l_x_validation_status = 7) THEN
1562         x_msg_data := 'UTL_HTTP_REQUEST_FAILED';
1563         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1564      ELSIF (l_x_validation_status = 8) THEN
1565         x_msg_data := 'INVALID_VALIDATION_TYPE';
1566         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1567      END IF; -- l_x_validation_status <> 0
1568 
1569      --
1570      -- Convert HTML_PIECES to LONG for parsing
1571      --
1572      l_rec_index := l_cfg_output_pieces.FIRST;
1573      LOOP
1574 
1575         l_long_xml := l_long_xml || l_cfg_output_pieces(l_rec_index);
1576 
1577         EXIT WHEN l_rec_index = l_cfg_output_pieces.LAST;
1578         l_rec_index := l_cfg_output_pieces.NEXT(l_rec_index);
1579 
1580      END LOOP;
1581 
1582      x_cz_xml_terminate_msg := l_long_xml;
1583 
1584 
1585   -- end debug log
1586   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1587      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1588                     G_MODULE||l_api_name,
1589                     '1000: x_return_status  : '||x_return_status);
1590      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1591                     G_MODULE||l_api_name,
1592                     '1000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
1593   END IF;
1594 
1595 
1596   EXCEPTION
1597       WHEN FND_API.G_EXC_ERROR THEN
1598 
1599   		x_return_status := FND_API.G_RET_STS_ERROR ;
1600                 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1601                    FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1602                 END IF;
1603 
1604   		FND_MSG_PUB.Count_And_Get(
1605   		        p_count => x_msg_count,
1606           		p_data => x_msg_data
1607   		);
1608 
1609       WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1610   		x_return_status := FND_API.G_RET_STS_ERROR ;
1611                 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1612                    FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1613                 END IF;
1614   		FND_MSG_PUB.Count_And_Get(
1615   		        p_count => x_msg_count,
1616           		p_data => x_msg_data
1617   		);
1618 
1619       WHEN OTHERS THEN
1620   		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1621 
1622     		IF FND_MSG_PUB.Check_Msg_Level
1623   		   (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1624   		THEN
1625       	    	FND_MSG_PUB.Add_Exc_Msg(
1626       	    	     G_PKG_NAME  	    ,
1627       	    	     l_api_name
1628   	    	      );
1629   		END IF;
1630 
1631   		FND_MSG_PUB.Count_And_Get(
1632   		     p_count => x_msg_count,
1633           	     p_data => x_msg_data
1634   		);
1635   END batch_validate;
1636 
1637 -------------------------------------------------------------------------------
1638 
1639 ---------------------------------------------------
1640 ---------------------------------------------------
1641 --  Procedure: edit_publication
1642 ---------------------------------------------------
1643 PROCEDURE edit_publication
1644 (
1645  p_api_version      IN  NUMBER,
1646  p_init_msg_lst     IN  VARCHAR2,
1647  p_publication_id   IN  NUMBER,
1648  p_publication_mode IN  VARCHAR2,
1649  x_return_status    OUT NOCOPY VARCHAR2,
1650  x_msg_data	        OUT	NOCOPY VARCHAR2,
1651  x_msg_count	    OUT	NOCOPY NUMBER
1652 ) IS
1653 
1654 l_api_version              CONSTANT NUMBER := 1;
1655 l_api_name                 CONSTANT VARCHAR2(30) := 'edit_publication';
1656 l_cz_return_status         NUMBER;
1657 
1658 l_applicationId              CZ_CONTRACTS_API_GRP.t_ref;
1659 l_usageId                    CZ_CONTRACTS_API_GRP.t_ref;
1660 l_languageId                 CZ_CONTRACTS_API_GRP.t_lang_code;
1661 
1662 l_startdate			DATE;
1663 l_disabledate			   DATE;
1664 
1665 CURSOR csr_installed_languages IS
1666 SELECT L.LANGUAGE_CODE
1667   FROM FND_LANGUAGES L
1668 WHERE L.INSTALLED_FLAG IN ('I', 'B');
1669 
1670 BEGIN
1671 
1672   -- start debug log
1673   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1674      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1675                     G_MODULE||l_api_name,
1676                     '100: Entered '||G_PKG_NAME ||'.'||l_api_name);
1677   END IF;
1678 
1679     -- Standard call to check for call compatibility.
1680     IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1681         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1682     END IF;
1683 
1684     IF FND_API.to_Boolean( p_init_msg_lst ) THEN
1685       FND_MSG_PUB.initialize;
1686     END IF;
1687 
1688     --  Initialize API return status to success
1689     x_return_status := FND_API.G_RET_STS_SUCCESS;
1690 
1691     -- Initialize Input parameters for the CZ api
1692 	l_applicationId(1)  := '510'; -- OKC App Id
1693 	l_usageId(1)        := '-1'; -- Any usage
1694 
1695 	-- Get all installed languages
1696 	OPEN csr_installed_languages;
1697 	    FETCH csr_installed_languages BULK COLLECT INTO l_languageId;
1698 	CLOSE csr_installed_languages;
1699 
1700 	l_startdate      := G_CZ_EPOCH_BEGIN; -- Need to change to CZ_CONTRACTS_API_GRP once available
1701 	l_disabledate    := G_CZ_EPOCH_END; -- Need to change to CZ_CONTRACTS_API_GRP once available
1702 
1703     -- debug log
1704      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1705          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1706                  G_MODULE||l_api_name,
1707                  '   ********************************************************');
1708          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1709                  G_MODULE||l_api_name,
1710                  'Calling CZ_CONTRACTS_API_GRP.edit_publication with parameters');
1711          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1712                  G_MODULE||l_api_name,
1713                  'p_api_version : '||l_api_version);
1714          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1715                  G_MODULE||l_api_name,
1716                  'p_publication_id : '||p_publication_id);
1717          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1718                  G_MODULE||l_api_name,
1719                  'p_publication_mode : '||p_publication_mode);
1720          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1721                  G_MODULE||l_api_name,
1722                  'p_applicationId(1) : 510');
1723          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1724                  G_MODULE||l_api_name,
1725                  'p_usageId(1) : -1');
1726          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1727                  G_MODULE||l_api_name,
1728                  'p_startdate : '||l_startdate);
1729          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1730                  G_MODULE||l_api_name,
1731                  'p_disabledate : '||l_disabledate);
1732      END IF;
1733 
1734      -- Put the parameters in log file
1735        fnd_file.put_line(FND_FILE.LOG,'  ');
1736        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
1737        fnd_file.put_line(FND_FILE.LOG,'Calling CZ_CONTRACTS_API_GRP.edit_publication with parameters');
1738        fnd_file.put_line(FND_FILE.LOG,'p_api_version:  '||l_api_version);
1739        fnd_file.put_line(FND_FILE.LOG,'p_publication_id:  '||p_publication_id);
1740        fnd_file.put_line(FND_FILE.LOG,'p_publication_mode:  '||p_publication_mode);
1741        fnd_file.put_line(FND_FILE.LOG,'p_applicationId: 510  ');
1742        fnd_file.put_line(FND_FILE.LOG,'p_usageId: -1 ');
1743        fnd_file.put_line(FND_FILE.LOG,'p_startdate:  '||l_startdate);
1744        fnd_file.put_line(FND_FILE.LOG,'p_disabledate:  '||l_disabledate);
1745        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
1746 	   fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
1747        fnd_file.put_line(FND_FILE.LOG,'  ');
1748 
1749     -- Initialize the CZ parameter values
1750 
1751 
1752       CZ_CONTRACTS_API_GRP.edit_publication
1753        (
1754         p_api_version          => l_api_version,
1755         p_publicationid        => p_publication_id,
1756         p_applicationId        => l_applicationId,
1757         p_languageId           => l_languageId,
1758         p_usageId              => l_usageId,
1759         p_startdate            => l_startdate,
1760         p_disabledate          => l_disabledate,
1761         p_publicationmode      => p_publication_mode,
1762         x_return_status        => x_return_status,
1763         x_msg_count      	   => x_msg_count,
1764         x_msg_data             => x_msg_data
1765        );
1766 
1767 
1768     -- debug log
1769      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1770          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1771                  G_MODULE||l_api_name,
1772                  '   ********************************************************');
1773          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1774                  G_MODULE||l_api_name,
1775                  'After Calling CZ_CONTRACTS_API_GRP.edit_publication ');
1776          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1777                  G_MODULE||l_api_name,
1778                  'x_return_status : '||x_return_status);
1779          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1780                  G_MODULE||l_api_name,
1781                  'x_msg_count : '||x_msg_count);
1782          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1783                  G_MODULE||l_api_name,
1784                  'x_msg_data : '||x_msg_data);
1785          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1786                  G_MODULE||l_api_name,
1787                  '   ********************************************************');
1788      END IF;
1789 
1790      -- Put the parameters in log file
1791        fnd_file.put_line(FND_FILE.LOG,'  ');
1792        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
1793        fnd_file.put_line(FND_FILE.LOG,'After calling CZ_CONTRACTS_API_GRP.edit_publication');
1794        fnd_file.put_line(FND_FILE.LOG,'x_return_status:  '||x_return_status);
1795        fnd_file.put_line(FND_FILE.LOG,'x_msg_count:  '||x_msg_count);
1796        fnd_file.put_line(FND_FILE.LOG,'x_msg_data:  '||x_msg_data);
1797        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
1798        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
1799        fnd_file.put_line(FND_FILE.LOG,'  ');
1800 
1801 
1802 
1803 -- Standard call to get message count and if count is 1, get message info.
1804 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1805 
1806   -- end debug log
1807   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1808      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1809                     G_MODULE||l_api_name,
1810                     '1000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
1811   END IF;
1812 
1813 EXCEPTION
1814 WHEN OTHERS THEN
1815       IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1816          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1817                         G_MODULE||l_api_name,
1818                         '4000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
1819       END IF;
1820       x_return_status := G_RET_STS_UNEXP_ERROR ;
1821 
1822       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1823              FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1824       END IF;
1825 
1826       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1827 
1828 END edit_publication;
1829 
1830 
1831 PROCEDURE publish_model
1832 (
1833  p_api_version      IN  NUMBER,
1834  p_init_msg_lst     IN VARCHAR2,
1835  p_publication_id   IN  NUMBER,
1836  x_run_id           OUT NOCOPY NUMBER,
1837  x_return_status    OUT NOCOPY VARCHAR2,
1838  x_msg_data	    	OUT	NOCOPY VARCHAR2,
1839  x_msg_count	    OUT	NOCOPY NUMBER
1840 ) IS
1841 
1842 l_api_version              CONSTANT NUMBER := 1;
1843 l_api_name                 CONSTANT VARCHAR2(30) := 'publish_model';
1844 
1845 l_rec_number              NUMBER:= 0;
1846 
1847 CURSOR csr_db_logs(p_run_id IN NUMBER) IS
1848 SELECT logtime,
1849        caller,
1850        message
1851 FROM cz_db_logs
1852 WHERE run_id = p_run_id
1853 ORDER BY logtime;
1854 
1855 BEGIN
1856 
1857   -- start debug log
1858   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1859      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1860                     G_MODULE||l_api_name,
1861                     '100: Entered '||G_PKG_NAME ||'.'||l_api_name);
1862   END IF;
1863 
1864     -- Standard call to check for call compatibility.
1865     IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
1866         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1867     END IF;
1868 
1869     IF FND_API.to_Boolean( p_init_msg_lst ) THEN
1870       FND_MSG_PUB.initialize;
1871     END IF;
1872 
1873     --  Initialize API return status to success
1874     x_return_status := FND_API.G_RET_STS_SUCCESS;
1875 
1876     -- debug log
1877      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1878          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1879                  G_MODULE||l_api_name,
1880                  '   ********************************************************');
1881          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1882                  G_MODULE||l_api_name,
1883                  'Calling CZ_CONTRACTS_API_GRP.publish_model with parameters');
1884          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1885                  G_MODULE||l_api_name,
1886                  'p_api_version : '||l_api_version);
1887          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1888                  G_MODULE||l_api_name,
1889                  'p_devl_project_id : '||p_publication_id);
1890      END IF;
1891 
1892      -- Put the parameters in log file
1893        fnd_file.put_line(FND_FILE.LOG,'  ');
1894        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
1895        fnd_file.put_line(FND_FILE.LOG,'Calling CZ_CONTRACTS_API_GRP.publish_model with parameters');
1896        fnd_file.put_line(FND_FILE.LOG,'p_api_version:  '||l_api_version);
1897        fnd_file.put_line(FND_FILE.LOG,'p_publication_id:  '||p_publication_id);
1898        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
1899        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
1900        fnd_file.put_line(FND_FILE.LOG,'  ');
1901 
1902     -- Call the CZ Generic Import API
1903     /*
1904        CZ will return Success for publish_model if there were warnings
1905 	  In case of warnings x_run_id will NOT be 0 and x_msg_data will have data
1906 	  from cz_db_logs
1907     */
1908       CZ_CONTRACTS_API_GRP.publish_model
1909        (
1910         p_api_version          => l_api_version,
1911         p_publication_id      => p_publication_id,
1912         x_run_id               => x_run_id,
1913 	   x_return_status        => x_return_status,
1914 	   x_msg_count            => x_msg_count,
1915 	   x_msg_data             => x_msg_data
1916 
1917        );
1918 
1919     -- debug log
1920      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1921          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1922                  G_MODULE||l_api_name,
1923                  '   ********************************************************');
1924          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1925                  G_MODULE||l_api_name,
1926                  'After Calling CZ_CONTRACTS_API_GRP.publish_model ');
1927          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1928                  G_MODULE||l_api_name,
1929                  'x_status : '||x_return_status);
1930          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1931                  G_MODULE||l_api_name,
1932                  'x_run_id : '||x_run_id);
1933          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1934                  G_MODULE||l_api_name,
1935                  '   ********************************************************');
1936      END IF;
1937 
1938      -- Put the parameters in log file
1939        fnd_file.put_line(FND_FILE.LOG,'  ');
1940        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
1941        fnd_file.put_line(FND_FILE.LOG,'After calling CZ_CONTRACTS_API_GRP.publish_model');
1942        fnd_file.put_line(FND_FILE.LOG,'x_status:  '||x_return_status);
1943        fnd_file.put_line(FND_FILE.LOG,'x_run_id:  '||x_run_id);
1944        fnd_file.put_line(FND_FILE.LOG,'Current Time :  '||to_char(sysdate,'dd mm yyyy HH:MI:SS'));
1945        fnd_file.put_line(FND_FILE.LOG,'*********************************************** ');
1946        fnd_file.put_line(FND_FILE.LOG,'  ');
1947 
1948        -- bug 4081597 If any errors happens put details in logfile
1949        IF (x_return_status = G_RET_STS_UNEXP_ERROR) OR (x_return_status = G_RET_STS_ERROR) THEN
1950          FOR csr_db_logs_rec IN csr_db_logs(p_run_id => x_run_id)
1951            LOOP
1952              l_rec_number := l_rec_number +1;
1953              fnd_file.put_line(FND_FILE.LOG,'  ');
1954              fnd_file.put_line(FND_FILE.LOG,'*************** Record   :  '||l_rec_number||'  **************');
1955              fnd_file.put_line(FND_FILE.LOG,'Logtime  :  '||csr_db_logs_rec.logtime);
1956              fnd_file.put_line(FND_FILE.LOG,'Caller   :  '||csr_db_logs_rec.caller);
1957              fnd_file.put_line(FND_FILE.LOG,'Message  :  '||csr_db_logs_rec.message);
1958              fnd_file.put_line(FND_FILE.LOG,'  ');
1959              fnd_file.put_line(FND_FILE.LOG,'  ');
1960           END LOOP;
1961        END IF;
1962 
1963 
1964 -- Standard call to get message count and if count is 1, get message info.
1965 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1966 
1967   -- end debug log
1968   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1969      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1970                     G_MODULE||l_api_name,
1971                     '1000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
1972   END IF;
1973 
1974 EXCEPTION
1975 WHEN OTHERS THEN
1976       IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
1977          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
1978                         G_MODULE||l_api_name,
1979                         '4000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
1980       END IF;
1981       x_return_status := G_RET_STS_UNEXP_ERROR ;
1982 
1983       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1984              FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1985       END IF;
1986 
1987       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1988 
1989 END publish_model;
1990 
1991 
1992 
1993 PROCEDURE publication_for_product
1994 (
1995  p_api_version                  IN NUMBER,
1996  p_init_msg_lst                 IN VARCHAR2,
1997  p_product_key                  IN VARCHAR2,
1998  p_usage_name                   IN VARCHAR2,
1999  p_publication_mode             IN VARCHAR2,
2000  p_effective_date               IN DATE,
2001  x_publication_id               OUT NOCOPY NUMBER,
2002  x_return_status                OUT NOCOPY VARCHAR2,
2003  x_msg_count                    OUT NOCOPY NUMBER,
2004  x_msg_data                     OUT NOCOPY VARCHAR2
2005 ) IS
2006 
2007 l_api_version              CONSTANT NUMBER := 1;
2008 l_api_name                 CONSTANT VARCHAR2(30) := 'publication_for_product';
2009 
2010 BEGIN
2011 
2012   -- start debug log
2013   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2014      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
2015                     G_MODULE||l_api_name,
2016                     '100: Entered '||G_PKG_NAME ||'.'||l_api_name);
2017   END IF;
2018 
2019     -- Standard call to check for call compatibility.
2020     IF NOT FND_API.Compatible_API_Call( l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
2021         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2022     END IF;
2023 
2024     IF FND_API.to_Boolean( p_init_msg_lst ) THEN
2025       FND_MSG_PUB.initialize;
2026     END IF;
2027 
2028     --  Initialize API return status to success
2029     x_return_status := FND_API.G_RET_STS_SUCCESS;
2030 
2031     -- debug log
2032      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2033          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
2034                  G_MODULE||l_api_name,
2035                  '   ********************************************************');
2036          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
2037                  G_MODULE||l_api_name,
2038                  'Calling CZ_CF_API.publication_for_product with parameters');
2039          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
2040                  G_MODULE||l_api_name,
2041                  'p_api_version : '||l_api_version);
2042          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
2043                  G_MODULE||l_api_name,
2044                  'p_product_key : '||p_product_key);
2045          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
2046                  G_MODULE||l_api_name,
2047                  'p_usage_name : '||p_usage_name);
2048          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
2049                  G_MODULE||l_api_name,
2050                  'p_publication_mode : '||p_publication_mode);
2051          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
2052                  G_MODULE||l_api_name,
2053                  'p_effective_date : '||p_effective_date);
2054      END IF;
2055 
2056            x_publication_id := CZ_CF_API.publication_for_product
2057 		                     (
2058                                 product_key            => p_product_key,
2059                                 config_lookup_date     => p_effective_date,
2060                                 calling_application_id => 510,
2061                                 usage_name             => p_usage_name, -- Defaults to:CZ: Publication Usage profile
2062                                 publication_mode       => p_publication_mode, -- OKC always uses Production
2063                                 language               => USERENV('LANG')
2064 						  );
2065 
2066 
2067     -- debug log
2068      IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2069          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
2070                  G_MODULE||l_api_name,
2071                  '   ********************************************************');
2072          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
2073                  G_MODULE||l_api_name,
2074                  'After Calling CZ_CF_API.publication_for_product with parameters');
2075          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
2076                  G_MODULE||l_api_name,
2077                  'x_publication_id : '||x_publication_id);
2078      END IF;
2079 
2080 
2081 
2082 -- Standard call to get message count and if count is 1, get message info.
2083 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
2084 
2085   -- end debug log
2086   IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2087      FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
2088                     G_MODULE||l_api_name,
2089                     '1000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
2090   END IF;
2091 
2092 EXCEPTION
2093 WHEN OTHERS THEN
2094       IF (FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
2095          FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE ,
2096                         G_MODULE||l_api_name,
2097                         '4000: Leaving '||G_PKG_NAME ||'.'||l_api_name);
2098       END IF;
2099       x_return_status := G_RET_STS_UNEXP_ERROR ;
2100 
2101       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
2102              FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
2103       END IF;
2104 
2105       FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
2106 
2107 END publication_for_product;
2108 
2109 
2110 
2111 
2112 
2113 -------------------------------------------------------------------------------
2114 
2115 END OKC_XPRT_CZ_INT_PVT ;