DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_TERMS_VERSION_PVT

Source


1 PACKAGE BODY OKC_TERMS_VERSION_PVT AS
2 /* $Header: OKCVDVRB.pls 120.2 2006/04/25 15:17:57 rvohra noship $ */
3   l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
4 
5   ---------------------------------------------------------------------------
6   -- GLOBAL CONSTANTS
7   ---------------------------------------------------------------------------
8   G_PKG_NAME                   CONSTANT   VARCHAR2(200) := 'OKC_TERMS_VERSION_PVT';
9   G_TMPL_DOC_TYPE              CONSTANT   VARCHAR2(30)  := OKC_TERMS_UTIL_GRP.G_TMPL_DOC_TYPE;
10   G_AMEND_CODE_DELETED         CONSTANT   VARCHAR2(30)  := 'DELETED';
11   ------------------------------------------------------------------------------
12   -- GLOBAL CONSTANTS
13   ------------------------------------------------------------------------------
14   G_FALSE                      CONSTANT   VARCHAR2(1) := FND_API.G_FALSE;
15   G_TRUE                       CONSTANT   VARCHAR2(1) := FND_API.G_TRUE;
16   G_MISS_CHAR                  CONSTANT   VARCHAR2(1) := FND_API.G_MISS_CHAR;
17   G_MISS_NUM                   CONSTANT   NUMBER      := FND_API.G_MISS_NUM;
18   G_MISS_DATE                  CONSTANT   DATE        := FND_API.G_MISS_DATE;
19 
20   G_RET_STS_SUCCESS            CONSTANT   varchar2(1) := FND_API.G_RET_STS_SUCCESS;
21   G_RET_STS_ERROR              CONSTANT   varchar2(1) := FND_API.G_RET_STS_ERROR;
22   G_RET_STS_UNEXP_ERROR        CONSTANT   varchar2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
23 
24   G_DBG_LEVEL							  NUMBER 		:= FND_LOG.G_CURRENT_RUNTIME_LEVEL;
25   G_PROC_LEVEL							  NUMBER		:= FND_LOG.LEVEL_PROCEDURE;
26   G_EXCP_LEVEL							  NUMBER		:= FND_LOG.LEVEL_EXCEPTION;
27 
28 --<<<<<<<<<<<<<<<<<<<<<<<<<<< INTERNAL PROCEDURES <<<<<<<<<<<<<<<<<<<<<<<<<<<
29 
30 -->>>>>>>>>>>>>>>>>>>>>>>>>>> INTERNAL PROCEDURES >>>>>>>>>>>>>>>>>>>>>>>>>>>
31 
32 --<<<<<<<<<<<<<<<<<<<<<<<<<<< EXTERNAL PROCEDURES <<<<<<<<<<<<<<<<<<<<<<<<<<<
33  Procedure clear_amendment (
34     x_return_status    OUT NOCOPY VARCHAR2,
35 
36     p_doc_type         IN  VARCHAR2,
37     p_doc_id           IN  NUMBER,
38     p_keep_summary     IN  VARCHAR2
39   ) IS
40     l_api_name          CONSTANT VARCHAR2(30) := 'clear_amendment';
41     l_change_nonstd     okc_k_articles_b.change_nonstd_yn%TYPE;
42     --Fix for bug# 3990983
43     l_contract_source_code OKC_TEMPLATE_USAGES.CONTRACT_SOURCE_CODE%TYPE;
44 
45     CURSOR scn_crs IS
46      SELECT id, object_version_number,amendment_operation_code,summary_amend_operation_code
47        FROM okc_sections_b
48       WHERE document_type = p_doc_type AND document_id = p_doc_id
49        AND (amendment_operation_code IS NOT NULL OR amendment_description IS NOT NULL OR summary_amend_operation_code IS NOT NULL);
50 
51     CURSOR cat_crs IS
52      SELECT kart.id, kart.object_version_number,kart.amendment_operation_code,kart.summary_amend_operation_code,
53             DECODE(art.standard_yn,'N','Y',NULL) change_nonstd_yn
54        FROM okc_k_articles_b kart,okc_articles_all art
55       WHERE kart.document_type = p_doc_type AND kart.document_id = p_doc_id
56        AND kart.sav_sae_id = art.article_id
57        AND (kart.amendment_operation_code IS NOT NULL OR kart.amendment_description IS NOT NULL
58             OR kart.summary_amend_operation_code IS NOT NULL OR art.standard_yn='N');
59 
60     CURSOR scn_incremental_crs IS
61      SELECT id, object_version_number, amendment_operation_code
62        FROM okc_sections_b
63       WHERE document_type = p_doc_type AND document_id = p_doc_id
64        AND (amendment_operation_code IS NOT NULL OR amendment_description IS NOT NULL);
65 
66     CURSOR l_del_scn_crs IS
67      SELECT id, object_version_number
68        FROM okc_sections_b
69       WHERE document_type = p_doc_type AND document_id = p_doc_id
70        AND amendment_operation_code = G_AMEND_CODE_DELETED
71        AND SUMMARY_AMEND_OPERATION_CODE  IS NULL;
72 
73     CURSOR cat_incremental_crs IS
74      SELECT id, kart.object_version_number, amendment_operation_code,standard_yn
75        FROM okc_k_articles_b kart,okc_articles_all
76       WHERE document_type = p_doc_type AND document_id = p_doc_id
77        AND  sav_sae_id = article_id
78        AND (amendment_operation_code IS NOT NULL
79          OR standard_yn='N');
80 
81     CURSOR l_del_cat_crs IS
82      SELECT id, object_version_number
83        FROM okc_k_articles_b
84       WHERE document_type = p_doc_type AND document_id = p_doc_id
85        AND amendment_operation_code = G_AMEND_CODE_DELETED
86        AND SUMMARY_AMEND_OPERATION_CODE  IS NULL;
87 
88 -- Fix for bug# 3990983
89 -- Cursor to fetch the contract_source_code for the given document_type, document_id
90     CURSOR l_ctrt_src_crs IS
91       SELECT contract_source_code
92 	  FROM okc_template_usages
93 	  WHERE document_type = p_doc_type AND document_id = p_doc_id;
94 BEGIN
95 x_return_status :=  G_RET_STS_SUCCESS;
96 /* IF (l_debug = 'Y') THEN
97     Okc_Debug.Log('100: Entered clear_amendment', 2);
98 END IF; */
99 
100 IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
101     FND_LOG.STRING(G_PROC_LEVEL,
102         G_PKG_NAME, '100: Entered clear_amendment' );
103 END IF;
104 
105 
106 IF p_keep_summary = 'N' THEN
107 
108 /* IF (l_debug = 'Y') THEN
109     Okc_Debug.Log('110: p_keep_summary=N', 2);
110  END IF; */
111 
112 IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
113     FND_LOG.STRING(G_PROC_LEVEL,
114         G_PKG_NAME, '110: p_keep_summary=N' );
115 END IF;
116 
117  FOR cr in scn_crs LOOP
118     IF cr.amendment_operation_code=G_AMEND_CODE_DELETED OR
119        cr.summary_amend_operation_code=G_AMEND_CODE_DELETED THEN
120         --------------------------------------------
121         -- Delete section
122         --------------------------------------------
123         Okc_Terms_Sections_Pvt.delete_row(
124           x_return_status         => x_return_status,
125           p_id                    => cr.id,
126           p_object_version_number => cr.object_version_number
127         );
128         --------------------------------------------
129         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
130           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
131         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
132           RAISE FND_API.G_EXC_ERROR ;
133         END IF;
134         --------------------------------------------
135 
136         --------------------------------------------
137         -- Delete articles
138         --------------------------------------------
139         Okc_K_Articles_Pvt.Delete_Set(
140           x_return_status         => x_return_status,
141           p_scn_id                => cr.id
142         );
143         --------------------------------------------
144         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
145           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
146         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
147           RAISE FND_API.G_EXC_ERROR ;
148         END IF;
149         --------------------------------------------
150 
151         --------------------------------------------
152         -- Delete variables
153         --------------------------------------------
154         Okc_K_Art_Variables_Pvt.Delete_Set(
155           x_return_status         => x_return_status,
156           p_scn_id                => cr.id
157         );
158         --------------------------------------------
159         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
160           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
161         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
162           RAISE FND_API.G_EXC_ERROR ;
163         END IF;
164     ELSE
165       --------------------------------------------
166         -- Update section
167         --------------------------------------------
168         Okc_Terms_Sections_Pvt.Update_Row(
169           x_return_status            => x_return_status,
170           p_id                       => cr.id,
171           p_amendment_operation_code => G_MISS_CHAR,
172           p_summary_amend_operation_code => G_MISS_CHAR,
173           p_amendment_description    => G_MISS_CHAR,
174           p_last_amendment_date      => G_MISS_DATE,
175           p_last_amended_by          => G_MISS_NUM,
176           p_object_version_number    => cr.object_version_number
177         );
178         --------------------------------------------
179         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
180           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
181         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
182           RAISE FND_API.G_EXC_ERROR ;
183         END IF;
184         --------------------------------------------
185     END IF;
186   END LOOP;
187 
188 
189  FOR cr in cat_crs LOOP
190     IF cr.amendment_operation_code=G_AMEND_CODE_DELETED OR
191        cr.summary_amend_operation_code=G_AMEND_CODE_DELETED THEN
192 
193         --------------------------------------------
194         -- Delete article
195         --------------------------------------------
196         Okc_k_articles_pvt.delete_row(
197           x_return_status         => x_return_status,
198           p_id                    => cr.id,
199           p_object_version_number => cr.object_version_number
200         );
201         --------------------------------------------
202         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
203           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
204         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
205           RAISE FND_API.G_EXC_ERROR ;
206         END IF;
207         --------------------------------------------
208 
209         --------------------------------------------
210         -- Delete variables
211         --------------------------------------------
212         Okc_K_Art_Variables_Pvt.Delete_Set(
213           x_return_status         => x_return_status,
214           p_cat_id                => cr.id
215         );
216         --------------------------------------------
217         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
218           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
219         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
220           RAISE FND_API.G_EXC_ERROR ;
221         END IF;
222         --------------------------------------------
223     ELSE
224       --------------------------------------------
225         -- Update article
226         --------------------------------------------
227         Okc_k_articles_pvt.Update_Row(
228           x_return_status            => x_return_status,
229           p_id                       => cr.id,
230           p_amendment_operation_code => G_MISS_CHAR,
231           p_change_nonstd_yn         => cr.change_nonstd_yn,
232           p_summary_amend_operation_code => G_MISS_CHAR,
233           p_amendment_description    => G_MISS_CHAR,
234           p_last_amendment_date      => G_MISS_DATE,
235           p_last_amended_by          => G_MISS_NUM,
236           p_print_text_yn            => 'N',
237           p_object_version_number    => cr.object_version_number
238         );
239         --------------------------------------------
240         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
241           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
242         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
243           RAISE FND_API.G_EXC_ERROR ;
244         END IF;
245         --------------------------------------------
246     END IF;
247   END LOOP;
248 
249 ELSE  -- p_keep_summary = Y clear only inceramental amendments
250 
251 /* IF (l_debug = 'Y') THEN
252      Okc_Debug.Log('210: p_keep_summary=Y ', 2);
253  END IF; */
254 
255 IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
256     FND_LOG.STRING(G_PROC_LEVEL,
257         G_PKG_NAME, '210: p_keep_summary=Y' );
258 END IF;
259 
260     FOR cr in l_del_scn_crs LOOP
261         --------------------------------------------
262         -- Delete section
263         --------------------------------------------
264         Okc_Terms_Sections_Pvt.delete_row(
265           x_return_status         => x_return_status,
266           p_id                    => cr.id,
267           p_object_version_number => cr.object_version_number
268         );
269         --------------------------------------------
270         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
271           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
272         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
273           RAISE FND_API.G_EXC_ERROR ;
274         END IF;
275         --------------------------------------------
276 
277         --------------------------------------------
278         -- Delete articles
279         --------------------------------------------
280         Okc_K_Articles_Pvt.Delete_Set(
281           x_return_status         => x_return_status,
282           p_scn_id                => cr.id
283         );
284         --------------------------------------------
285         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
286           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
287         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
288           RAISE FND_API.G_EXC_ERROR ;
289         END IF;
290         --------------------------------------------
291 
292         --------------------------------------------
293         -- Delete variables
294         --------------------------------------------
295         Okc_K_Art_Variables_Pvt.Delete_Set(
296           x_return_status         => x_return_status,
297           p_scn_id                => cr.id
298         );
299         --------------------------------------------
300         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
301           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
302         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
303           RAISE FND_API.G_EXC_ERROR ;
304         END IF;
305 
306     END LOOP;
307 
308     FOR cr in l_del_cat_crs LOOP
309         --------------------------------------------
310         -- Delete article
311         --------------------------------------------
312         Okc_K_Articles_Pvt.Delete_Row(
313           x_return_status         => x_return_status,
314           p_id                    => cr.id,
315           p_object_version_number => cr.object_version_number
316         );
317         --------------------------------------------
318         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
319           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
320         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
321           RAISE FND_API.G_EXC_ERROR ;
322         END IF;
323         --------------------------------------------
324 
325         --------------------------------------------
326         -- Delete variables
327         --------------------------------------------
328         Okc_K_Art_Variables_Pvt.Delete_Set(
329           x_return_status         => x_return_status,
330           p_cat_id                => cr.id
331         );
332         --------------------------------------------
333         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
334           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
335         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
336           RAISE FND_API.G_EXC_ERROR ;
337         END IF;
338         --------------------------------------------
339     END LOOP;
340 
341     FOR cr IN scn_incremental_crs LOOP
342         --------------------------------------------
343         -- Update section
344         --------------------------------------------
345         Okc_Terms_Sections_Pvt.Update_Row(
346           x_return_status            => x_return_status,
347           p_id                       => cr.id,
348           p_amendment_operation_code => G_MISS_CHAR,
349           p_last_amendment_date      => G_MISS_DATE,
350           p_last_amended_by          => G_MISS_NUM,
351           p_object_version_number    => cr.object_version_number
352         );
353         --------------------------------------------
354         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
355           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
356         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
357           RAISE FND_API.G_EXC_ERROR ;
358         END IF;
359         --------------------------------------------
360     END LOOP;
361 
362     FOR cr IN cat_incremental_crs LOOP
363          select decode(cr.standard_yn,'N','Y',NULL)
364                 into l_change_nonstd from dual;
365             --------------------------------------------
366             -- Update article
367             --------------------------------------------
368             Okc_K_Articles_Pvt.Update_Row(
369               x_return_status            => x_return_status,
370               p_id                       => cr.id,
371               p_amendment_operation_code => G_MISS_CHAR,
372               p_change_nonstd_yn         => l_change_nonstd,
373               p_last_amendment_date      => G_MISS_DATE,
374               p_last_amended_by          => G_MISS_NUM,
375               p_object_version_number    => cr.object_version_number
376             );
377            --------------------------------------------
378            IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
379              RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
380            ELSIF (x_return_status = G_RET_STS_ERROR) THEN
381              RAISE FND_API.G_EXC_ERROR ;
382            END IF;
383     END LOOP;
384 
385 
386 END IF;
387     -------------------------------------------------------------------------------
388        -- bug# 3990983 Update Template Usages for source_change_allowed_flag to 'N'
389     -------------------------------------------------------------------------------
390 
391     OPEN l_ctrt_src_crs ;
392        FETCH l_ctrt_src_crs into l_contract_source_code;
393     CLOSE l_ctrt_src_crs;
394 
395     IF(l_contract_source_code = 'ATTACHED') THEN
396        OKC_TEMPLATE_USAGES_PVT.update_row(
397 	      p_validation_level => FND_API.G_VALID_LEVEL_FULL,
398 		 x_return_status => x_return_status,
399 	      p_document_type => p_doc_type,
400 		 p_document_id => p_doc_id,
401 		 p_source_change_allowed_flag => 'N');
402 
403     END IF;
404     -------------------------------------------------------------------------------
405        -- bug# 3990983 Update Template Usages for source_change_allowed_flag to 'N'
406     -------------------------------------------------------------------------------
407 
408 
409 
410 /*IF (l_debug = 'Y') THEN
411      Okc_Debug.Log('300: Leaving clear_amendment', 2);
412 END IF; */
413 
414 IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
415     FND_LOG.STRING(G_PROC_LEVEL,
416         G_PKG_NAME, '300: Leaving clear_amendment' );
417 END IF;
418 
419 EXCEPTION
420     WHEN FND_API.G_EXC_ERROR THEN
421       /*IF (l_debug = 'Y') THEN
422          okc_debug.log('400: Leaving clear_amendment : OKC_API.G_EXCEPTION_ERROR Exception', 2);
423       END IF;*/
424 
425       IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
426 	  FND_LOG.STRING(G_EXCP_LEVEL,
427 	      G_PKG_NAME, '400: Leaving clear_amendment : OKC_API.G_EXCEPTION_ERROR Exception' );
428       END IF;
429       x_return_status := G_RET_STS_ERROR ;
430      IF l_ctrt_src_crs%ISOPEN THEN
431 	      CLOSE l_ctrt_src_crs;
432      END IF;
433     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
434       /*IF (l_debug = 'Y') THEN
435          okc_debug.log('500: Leaving clear_amendment : OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception', 2);
436       END IF;*/
437 
438       IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
439 	  FND_LOG.STRING(G_EXCP_LEVEL,
440 	      G_PKG_NAME, '500: Leaving clear_amendment : OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception' );
441       END IF;
442       x_return_status := G_RET_STS_UNEXP_ERROR ;
443       IF l_ctrt_src_crs%ISOPEN THEN
444 	    CLOSE l_ctrt_src_crs;
445 	 END IF;
446     WHEN OTHERS THEN
447       /*IF (l_debug = 'Y') THEN
448         okc_debug.log('600: Leaving clear_amendment because of EXCEPTION: '||sqlerrm, 2);
449       END IF;*/
450 
451       IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
452 	  FND_LOG.STRING(G_EXCP_LEVEL,
453 	      G_PKG_NAME, '600: Leaving clear_amendment because of EXCEPTION: '||sqlerrm );
454       END IF;
455 
456       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
457         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
458       END IF;
459       x_return_status := G_RET_STS_UNEXP_ERROR ;
460 	 IF l_ctrt_src_crs%ISOPEN THEN
461 	    CLOSE l_ctrt_src_crs;
462       END IF;
463 END clear_amendment;
464 
465 /*
466 -- This API will be used to version terms whenever a document is versioned.
467 */
468   PROCEDURE Version_Doc (
469     x_return_status    OUT NOCOPY VARCHAR2,
470 
471     p_doc_type         IN  VARCHAR2,
472     p_doc_id           IN  NUMBER,
473     p_version_number   IN  NUMBER
474    ) IS
475     l_api_name          CONSTANT VARCHAR2(30) := 'Version_Doc';
476     l_msg_data          VARCHAR2(1000);
477     l_msg_count         NUMBER;
478     l_change_nonstd     okc_k_articles_b.change_nonstd_yn%TYPE;
479 
480     CURSOR scn_crs IS
481      SELECT id, object_version_number, amendment_operation_code
482        FROM okc_sections_b
483       WHERE document_type = p_doc_type AND document_id = p_doc_id
484        AND (amendment_operation_code IS NOT NULL OR amendment_description IS NOT NULL);
485 
486     CURSOR l_del_scn_crs IS
487      SELECT id, object_version_number
488        FROM okc_sections_b
489       WHERE document_type = p_doc_type AND document_id = p_doc_id
490        AND amendment_operation_code = G_AMEND_CODE_DELETED
491        AND SUMMARY_AMEND_OPERATION_CODE  IS NULL;
492 
493     CURSOR cat_crs IS
494      SELECT id, kart.object_version_number, amendment_operation_code,standard_yn
495        FROM okc_k_articles_b kart,okc_articles_all
496       WHERE document_type = p_doc_type AND document_id = p_doc_id
497        AND  sav_sae_id = article_id
498        AND (amendment_operation_code IS NOT NULL
499          OR standard_yn='N');
500 
501     CURSOR l_del_cat_crs IS
502      SELECT id, object_version_number
503        FROM okc_k_articles_b
504       WHERE document_type = p_doc_type AND document_id = p_doc_id
505        AND amendment_operation_code = G_AMEND_CODE_DELETED
506        AND SUMMARY_AMEND_OPERATION_CODE  IS NULL;
507    BEGIN
508 
509     x_return_status :=  G_RET_STS_SUCCESS;
510 
511     /*IF (l_debug = 'Y') THEN
512        Okc_Debug.Log('100: Entered Version_Doc', 2);
513        Okc_Debug.Log('100: Call Create_Version for sections', 2);
514     END IF;*/
515 
516     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
517        FND_LOG.STRING(G_PROC_LEVEL,
518            G_PKG_NAME, '100: Entered Version_Doc' );
519        FND_LOG.STRING(G_PROC_LEVEL,
520            G_PKG_NAME, '100: Call Create_Version for sections' );
521     END IF;
522 
523     --------------------------------------------
524     -- Call Create_Version for sections
525     --------------------------------------------
526     x_return_status := OKC_TERMS_SECTIONS_PVT.Create_Version(
527       p_doc_type         => p_doc_type,
528       p_doc_id           => p_doc_id,
529       p_major_version    => p_version_number
530     );
531     --------------------------------------------
532     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
533       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
534     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
535       RAISE FND_API.G_EXC_ERROR ;
536     END IF;
537     --------------------------------------------
538 
539     --------------------------------------------
540     -- Call Create_Version for articles
541     --------------------------------------------
542     /*IF (l_debug = 'Y') THEN
543        Okc_Debug.Log('100: Call Create_Version for articles', 2);
544     END IF;*/
545 
546     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
547        FND_LOG.STRING(G_PROC_LEVEL,
548            G_PKG_NAME, '100: Call Create_Version for articles' );
549     END IF;
550 
551     x_return_status := OKC_K_ARTICLES_PVT.Create_Version(
552       p_doc_type         => p_doc_type,
553       p_doc_id           => p_doc_id,
554       p_major_version    => p_version_number
555     );
556     --------------------------------------------
557     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
558       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
559     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
560       RAISE FND_API.G_EXC_ERROR ;
561     END IF;
562     --------------------------------------------
563 
564     --------------------------------------------
565     -- Call Create_Version for article variables
566     --------------------------------------------
567     /*IF (l_debug = 'Y') THEN
568        Okc_Debug.Log('100: Call Create_Version for article variables', 2);
569     END IF;*/
570 
571     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
572        FND_LOG.STRING(G_PROC_LEVEL,
573            G_PKG_NAME, '100: Call Create_Version for article variables' );
574     END IF;
575 
576     x_return_status := OKC_K_ART_VARIABLES_PVT.Create_Version(
577       p_doc_type         => p_doc_type,
578       p_doc_id           => p_doc_id,
579       p_major_version    => p_version_number
580     );
581     --------------------------------------------
582     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
583       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
584     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
585       RAISE FND_API.G_EXC_ERROR ;
586     END IF;
587     --------------------------------------------
588 
589     --------------------------------------------
590     -- Call Create_Version for template usages
591     --------------------------------------------
592     /*IF (l_debug = 'Y') THEN
593        Okc_Debug.Log('100: Call Create_Version for template usages', 2);
594     END IF;*/
595 
596     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
597        FND_LOG.STRING(G_PROC_LEVEL,
598            G_PKG_NAME, '100: Call Create_Version for template usages' );
599     END IF;
600 
601     x_return_status := OKC_TEMPLATE_USAGES_PVT.Create_Version(
602       p_doc_type         => p_doc_type,
603       p_doc_id           => p_doc_id,
604       p_major_version    => p_version_number
605     );
606     --------------------------------------------
607     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
608       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
609     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
610       RAISE FND_API.G_EXC_ERROR ;
611     END IF;
612     --------------------------------------------
613 
614     /********************
615      Commented out as this will be done in clear amendments
616     FOR cr in l_del_scn_crs LOOP
617         --------------------------------------------
618         -- Delete section
619         --------------------------------------------
620         Okc_Terms_Sections_Pvt.delete_row(
621           x_return_status         => x_return_status,
622           p_id                    => cr.id,
623           p_object_version_number => cr.object_version_number
624         );
625         --------------------------------------------
626         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
627           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
628         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
629           RAISE FND_API.G_EXC_ERROR ;
630         END IF;
631         --------------------------------------------
632 
633         --------------------------------------------
634         -- Delete articles
635         --------------------------------------------
636         Okc_K_Articles_Pvt.Delete_Set(
637           x_return_status         => x_return_status,
638           p_scn_id                => cr.id
639         );
640         --------------------------------------------
641         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
642           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
643         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
644           RAISE FND_API.G_EXC_ERROR ;
645         END IF;
646         --------------------------------------------
647 
648         --------------------------------------------
649         -- Delete variables
650         --------------------------------------------
651         Okc_K_Art_Variables_Pvt.Delete_Set(
652           x_return_status         => x_return_status,
653           p_scn_id                => cr.id
654         );
655         --------------------------------------------
656         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
657           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
658         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
659           RAISE FND_API.G_EXC_ERROR ;
660         END IF;
661 
662     END LOOP;
663 
664     FOR cr in l_del_cat_crs LOOP
665         --------------------------------------------
666         -- Delete article
667         --------------------------------------------
668         Okc_K_Articles_Pvt.Delete_Row(
669           x_return_status         => x_return_status,
670           p_id                    => cr.id,
671           p_object_version_number => cr.object_version_number
672         );
673         --------------------------------------------
674         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
675           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
676         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
677           RAISE FND_API.G_EXC_ERROR ;
678         END IF;
679         --------------------------------------------
680 
681         --------------------------------------------
682         -- Delete variables
683         --------------------------------------------
684         Okc_K_Art_Variables_Pvt.Delete_Set(
685           x_return_status         => x_return_status,
686           p_cat_id                => cr.id
687         );
688         --------------------------------------------
689         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
690           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
691         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
692           RAISE FND_API.G_EXC_ERROR ;
693         END IF;
694         --------------------------------------------
695     END LOOP;
696 
697     FOR cr IN scn_crs LOOP
698         --------------------------------------------
699         -- Update section
700         --------------------------------------------
701         Okc_Terms_Sections_Pvt.Update_Row(
702           x_return_status            => x_return_status,
703           p_id                       => cr.id,
704           p_amendment_operation_code => G_MISS_CHAR,
705           p_object_version_number    => cr.object_version_number
706         );
707         --------------------------------------------
708         IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
709           RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
710         ELSIF (x_return_status = G_RET_STS_ERROR) THEN
711           RAISE FND_API.G_EXC_ERROR ;
712         END IF;
713         --------------------------------------------
714     END LOOP;
715 
716     FOR cr IN cat_crs LOOP
717          select decode(cr.standard_yn,'N','Y',NULL)
718                 into l_change_nonstd from dual;
719             --------------------------------------------
720             -- Update article
721             --------------------------------------------
722             Okc_K_Articles_Pvt.Update_Row(
723               x_return_status            => x_return_status,
724               p_id                       => cr.id,
725               p_amendment_operation_code => G_MISS_CHAR,
726               p_change_nonstd_yn         => l_change_nonstd,
727               p_object_version_number    => cr.object_version_number
728             );
729            --------------------------------------------
730            IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
731              RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
732            ELSIF (x_return_status = G_RET_STS_ERROR) THEN
733              RAISE FND_API.G_EXC_ERROR ;
734            END IF;
735     END LOOP;
736     ****************************************/
737 
738 
739     -- Standard call to get message count and if count is 1, get message info.
740     /*IF (l_debug = 'Y') THEN
741      Okc_Debug.Log('300: Leaving Version_Doc', 2);
742     END IF;*/
743 
744     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
745        FND_LOG.STRING(G_PROC_LEVEL,
746            G_PKG_NAME, '300: Leaving Version_Doc' );
747     END IF;
748 
749    EXCEPTION
750     WHEN FND_API.G_EXC_ERROR THEN
751       /*IF (l_debug = 'Y') THEN
752          okc_debug.log('400: Leaving Version_Doc : OKC_API.G_EXCEPTION_ERROR Exception', 2);
753       END IF;*/
754 
755       IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
756          FND_LOG.STRING(G_EXCP_LEVEL,
757              G_PKG_NAME, '400: Leaving Version_Doc : OKC_API.G_EXCEPTION_ERROR Exception' );
758       END IF;
759       x_return_status := G_RET_STS_ERROR ;
760 
761     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
762       /*IF (l_debug = 'Y') THEN
763          okc_debug.log('500: Leaving Version_Doc : OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception', 2);
764       END IF;*/
765 
766       IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
767          FND_LOG.STRING(G_EXCP_LEVEL,
768              G_PKG_NAME, '500: Leaving Version_Doc : OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception' );
769       END IF;
770       x_return_status := G_RET_STS_UNEXP_ERROR ;
771     WHEN OTHERS THEN
772       /*IF (l_debug = 'Y') THEN
773         okc_debug.log('600: Leaving Version_Doc because of EXCEPTION: '||sqlerrm, 2);
774       END IF;*/
775 
776       IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
777          FND_LOG.STRING(G_EXCP_LEVEL,
778              G_PKG_NAME, '600: Leaving Version_Doc because of EXCEPTION: '||sqlerrm );
779       END IF;
780 
781       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
782         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
783       END IF;
784       x_return_status := G_RET_STS_UNEXP_ERROR ;
785   END Version_Doc ;
786 
787 /*
788 --This API will be used to restore a version terms whenever a version of
789 -- document is restored.It is a very OKS/OKC/OKO specific functionality
790 */
791   PROCEDURE Restore_Doc_Version (
792     x_return_status    OUT NOCOPY VARCHAR2,
793 
794     p_doc_type         IN  VARCHAR2,
795     p_doc_id           IN  NUMBER,
796     p_version_number   IN  NUMBER
797    ) IS
798     l_api_name          CONSTANT VARCHAR2(30) := 'Restore_Doc_Version';
799    BEGIN
800 x_return_status :=  G_RET_STS_SUCCESS;
801     /*IF (l_debug = 'Y') THEN
802        Okc_Debug.Log('100: Entered Restore_Doc_Version', 2);
803        Okc_Debug.Log('100: Call Restore_Version for sections', 2);
804     END IF;*/
805 
806     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
807          FND_LOG.STRING(G_PROC_LEVEL,
808              G_PKG_NAME, '100: Entered Restore_Doc_Version');
809          FND_LOG.STRING(G_PROC_LEVEL,
810              G_PKG_NAME, '100: Call Restore_Version for sections' );
811     END IF;
812 
813     --------------------------------------------
814     -- Call Restore_Version for sections
815     --------------------------------------------
816     x_return_status := OKC_TERMS_SECTIONS_PVT.Restore_Version(
817       p_doc_type         => p_doc_type,
818       p_doc_id           => p_doc_id,
819       p_major_version    => p_version_number
820     );
821     --------------------------------------------
822     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
823       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
824     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
825       RAISE FND_API.G_EXC_ERROR ;
826     END IF;
827     --------------------------------------------
828 
829     --------------------------------------------
830     -- Call Restore_Version for articles
831     --------------------------------------------
832     /*IF (l_debug = 'Y') THEN
833        Okc_Debug.Log('100: Call Restore_Version for articles', 2);
834     END IF;*/
835 
836     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
837          FND_LOG.STRING(G_PROC_LEVEL,
838              G_PKG_NAME, '100: Call Restore_Version for articles');
839     END IF;
840 
841     x_return_status := OKC_K_ARTICLES_PVT.Restore_Version(
842       p_doc_type         => p_doc_type,
843       p_doc_id           => p_doc_id,
844       p_major_version    => p_version_number
845     );
846     --------------------------------------------
847     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
848       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
849     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
850       RAISE FND_API.G_EXC_ERROR ;
851     END IF;
852     --------------------------------------------
853 
854     --------------------------------------------
855     -- Call Restore_Version for article variables
856     --------------------------------------------
857     /*IF (l_debug = 'Y') THEN
858        Okc_Debug.Log('100: Call Restore_Version for article variables', 2);
859     END IF;*/
860 
861     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
862          FND_LOG.STRING(G_PROC_LEVEL,
863              G_PKG_NAME, '100: Call Restore_Version for article variables');
864     END IF;
865     x_return_status := OKC_K_ART_VARIABLES_PVT.Restore_Version(
866       p_doc_type         => p_doc_type,
867       p_doc_id           => p_doc_id,
868       p_major_version    => p_version_number
869     );
870     --------------------------------------------
871     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
872       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
873     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
874       RAISE FND_API.G_EXC_ERROR ;
875     END IF;
876     --------------------------------------------
877 
878     --------------------------------------------
879     -- Call Restore_Version for template usages
880     --------------------------------------------
881     /*IF (l_debug = 'Y') THEN
882        Okc_Debug.Log('100: Call Restore_Version for template usages', 2);
883     END IF;*/
884 
885     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
886          FND_LOG.STRING(G_PROC_LEVEL,
887              G_PKG_NAME, '100: Call Restore_Version for template usages');
888     END IF;
889     x_return_status := OKC_TEMPLATE_USAGES_PVT.Restore_Version(
890       p_doc_type         => p_doc_type,
891       p_doc_id           => p_doc_id,
892       p_major_version    => p_version_number
893     );
894     --------------------------------------------
895     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
896       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
897     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
898       RAISE FND_API.G_EXC_ERROR ;
899     END IF;
900     --------------------------------------------
901 
902     -- Standard call to get message count and if count is 1, get message info.
903     /*IF (l_debug = 'Y') THEN
904      Okc_Debug.Log('300: Leaving Restore_Doc_Version', 2);
905     END IF;*/
906 
907     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
908          FND_LOG.STRING(G_PROC_LEVEL,
909              G_PKG_NAME, '300: Leaving Restore_Doc_Version');
910     END IF;
911 
912    EXCEPTION
913     WHEN FND_API.G_EXC_ERROR THEN
914       /*IF (l_debug = 'Y') THEN
915          okc_debug.log('400: Leaving Restore_Doc_Version : OKC_API.G_EXCEPTION_ERROR Exception', 2);
916       END IF;*/
917 
918       IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
919          FND_LOG.STRING(G_PROC_LEVEL,
920              G_PKG_NAME, '400: Leaving Restore_Doc_Version : OKC_API.G_EXCEPTION_ERROR Exception');
921       END IF;
922       x_return_status := G_RET_STS_ERROR ;
923 
924     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
925       /*IF (l_debug = 'Y') THEN
926          okc_debug.log('500: Leaving Restore_Doc_Version : OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception', 2);
927       END IF;*/
928 
929       IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
930          FND_LOG.STRING(G_EXCP_LEVEL,
931              G_PKG_NAME, '500: Leaving Restore_Doc_Version : OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception');
932       END IF;
933       x_return_status := G_RET_STS_UNEXP_ERROR ;
934 
935     WHEN OTHERS THEN
936       /*IF (l_debug = 'Y') THEN
937         okc_debug.log('600: Leaving Restore_Doc_Version because of EXCEPTION: '||sqlerrm, 2);
938       END IF;*/
939 
940       IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
941          FND_LOG.STRING(G_EXCP_LEVEL,
942              G_PKG_NAME, '600: Leaving Restore_Doc_Version because of EXCEPTION: '||sqlerrm);
943       END IF;
944 
945       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
946         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
947       END IF;
948       x_return_status := G_RET_STS_UNEXP_ERROR ;
949   END Restore_Doc_Version ;
950 
951 /*
952 --This API will be used to delete terms whenever a version of document is deleted.
953 */
954   Procedure Delete_Doc_Version (
955     x_return_status    OUT NOCOPY VARCHAR2,
956 
957     p_doc_type         IN  VARCHAR2,
958     p_doc_id           IN  NUMBER,
959     p_version_number   IN  NUMBER
960    ) IS
961     l_api_name          CONSTANT VARCHAR2(30) := 'Delete_Doc_Version';
962    BEGIN
963 x_return_status :=  G_RET_STS_SUCCESS;
964     /*IF (l_debug = 'Y') THEN
965        Okc_Debug.Log('100: Entered Delete_Doc_Version', 2);
966        Okc_Debug.Log('100: Call Delete_Version for sections', 2);
967     END IF;*/
968 
969     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
970          FND_LOG.STRING(G_PROC_LEVEL,
971              G_PKG_NAME, '100: Entered Delete_Doc_Version');
972          FND_LOG.STRING(G_PROC_LEVEL,
973              G_PKG_NAME, '100: Call Delete_Version for sections');
974     END IF;
975 
976 
977     --------------------------------------------
978     -- Call Delete_Version for sections
979     --------------------------------------------
980     x_return_status := OKC_TERMS_SECTIONS_PVT.Delete_Version(
981       p_doc_type         => p_doc_type,
982       p_doc_id           => p_doc_id,
983       p_major_version    => p_version_number
984     );
985     --------------------------------------------
986     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
987       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
988     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
989       RAISE FND_API.G_EXC_ERROR ;
990     END IF;
991     --------------------------------------------
992 
993     -- Bug 5171866 - Correct Sequence of call is
994     -- OKC_K_ART_VARIABLES_PVT.Delete_Version();
995     -- OKC_K_ARTICLE_PVT.Delete_Version();
996 
997     --------------------------------------------
998     -- Call Delete_Version for article variables
999     --------------------------------------------
1000     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
1001          FND_LOG.STRING(G_PROC_LEVEL,
1002              G_PKG_NAME, '100: Call Delete_Version for article variables');
1003     END IF;
1004     x_return_status := OKC_K_ART_VARIABLES_PVT.Delete_Version(
1005       p_doc_type         => p_doc_type,
1006       p_doc_id           => p_doc_id,
1007       p_major_version    => p_version_number
1008     );
1009     --------------------------------------------
1010     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1011       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1012     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1013       RAISE FND_API.G_EXC_ERROR ;
1014     END IF;
1015     --------------------------------------------
1016 
1017     --------------------------------------------
1018     -- Call Delete_Version for articles
1019     --------------------------------------------
1020 
1021     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
1022          FND_LOG.STRING(G_PROC_LEVEL,
1023              G_PKG_NAME, '100: Call Delete_Version for articles');
1024     END IF;
1025     x_return_status := OKC_K_ARTICLES_PVT.Delete_Version(
1026       p_doc_type         => p_doc_type,
1027       p_doc_id           => p_doc_id,
1028       p_major_version    => p_version_number
1029     );
1030     --------------------------------------------
1031     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1032       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1033     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1034       RAISE FND_API.G_EXC_ERROR ;
1035     END IF;
1036     --------------------------------------------
1037 
1038     --------------------------------------------
1039     -- Call Delete_Version for template usages
1040     --------------------------------------------
1041     /*IF (l_debug = 'Y') THEN
1042        Okc_Debug.Log('100: Call Delete_Version for template usages', 2);
1043     END IF;*/
1044 
1045     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
1046        FND_LOG.STRING(G_PROC_LEVEL,
1047            G_PKG_NAME, '100: Call Delete_Version for template usages' );
1048     END IF;
1049     x_return_status := OKC_TEMPLATE_USAGES_PVT.Delete_Version(
1050       p_doc_type         => p_doc_type,
1051       p_doc_id           => p_doc_id,
1052       p_major_version    => p_version_number
1053     );
1054     --------------------------------------------
1055     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1056       RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1057     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1058       RAISE FND_API.G_EXC_ERROR ;
1059     END IF;
1060     --------------------------------------------
1061 
1062     -- Standard call to get message count and if count is 1, get message info.
1063     /*IF (l_debug = 'Y') THEN
1064      Okc_Debug.Log('300: Leaving Delete_Doc_Version', 2);
1065     END IF;*/
1066 
1067     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
1068        FND_LOG.STRING(G_PROC_LEVEL,
1069            G_PKG_NAME, '300: Leaving Delete_Doc_Version' );
1070     END IF;
1071 
1072    EXCEPTION
1073     WHEN FND_API.G_EXC_ERROR THEN
1074       /*IF (l_debug = 'Y') THEN
1075          okc_debug.log('400: Leaving Delete_Doc_Version : OKC_API.G_EXCEPTION_ERROR Exception', 2);
1076       END IF;*/
1077 
1078       IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
1079          FND_LOG.STRING(G_EXCP_LEVEL,
1080              G_PKG_NAME, '400: Leaving Delete_Doc_Version : OKC_API.G_EXCEPTION_ERROR Exception' );
1081       END IF;
1082       x_return_status := G_RET_STS_ERROR ;
1083 
1084     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1085       /*IF (l_debug = 'Y') THEN
1086          okc_debug.log('500: Leaving Delete_Doc_Version : OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception', 2);
1087       END IF;*/
1088 
1089       IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
1090          FND_LOG.STRING(G_EXCP_LEVEL,
1091              G_PKG_NAME, '500: Leaving Delete_Doc_Version : OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception' );
1092       END IF;
1093       x_return_status := G_RET_STS_UNEXP_ERROR ;
1094 
1095     WHEN OTHERS THEN
1096       /*IF (l_debug = 'Y') THEN
1097         okc_debug.log('600: Leaving Delete_Doc_Version because of EXCEPTION: '||sqlerrm, 2);
1098       END IF;*/
1099 
1100       IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
1101          FND_LOG.STRING(G_EXCP_LEVEL,
1102              G_PKG_NAME, '600: Leaving Delete_Doc_Version because of EXCEPTION: '||sqlerrm );
1103       END IF;
1104 
1105       IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1106         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1107       END IF;
1108       x_return_status := G_RET_STS_UNEXP_ERROR ;
1109   END Delete_Doc_Version ;
1110 -->>>>>>>>>>>>>>>>>>>>>>>>>>> EXTERNAL PROCEDURES >>>>>>>>>>>>>>>>>>>>>>>>>>>
1111 
1112 END OKC_TERMS_VERSION_PVT;