DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_K_NON_STD_ART_GRP

Source


1 PACKAGE BODY OKC_K_NON_STD_ART_GRP AS
2 /* $Header: OKCGNSAB.pls 120.3 2006/04/18 11:01:13 vnanjang noship $ */
3  l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
4 
5   ---------------------------------------------------------------------------
6   -- GLOBAL MESSAGE CONSTANTS
7   ---------------------------------------------------------------------------
8   G_FND_APP                    CONSTANT VARCHAR2(200) := OKC_API.G_FND_APP;
9   ---------------------------------------------------------------------------
10   -- GLOBAL VARIABLES
11   ---------------------------------------------------------------------------
12   G_PKG_NAME                   CONSTANT   VARCHAR2(200) := 'OKC_K_NON_STD_ART_GRP';
13   G_APP_NAME                   CONSTANT   VARCHAR2(3)   :=  OKC_API.G_APP_NAME;
14 
15   ------------------------------------------------------------------------------
16   -- GLOBAL CONSTANTS
17   ------------------------------------------------------------------------------
18   G_FALSE	               CONSTANT   VARCHAR2(1) := FND_API.G_FALSE;
19   G_TRUE                       CONSTANT   VARCHAR2(1) := FND_API.G_TRUE;
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   G_UNEXPECTED_ERROR           CONSTANT   VARCHAR2(200) := 'OKC_UNEXPECTED_ERROR';
24   G_SQLERRM_TOKEN              CONSTANT   VARCHAR2(200) := 'ERROR_MESSAGE';
25   G_SQLCODE_TOKEN              CONSTANT   VARCHAR2(200) := 'ERROR_CODE';
26   G_AMEND_CODE_ADDED           CONSTANT   VARCHAR2(30) := 'ADDED';
27   G_AMEND_CODE_UPDATED         CONSTANT   VARCHAR2(30) := 'UPDATED';
28 
29   G_MISS_NUM                   CONSTANT   NUMBER      := FND_API.G_MISS_NUM;
30   G_MISS_CHAR                  CONSTANT   VARCHAR2(1) := FND_API.G_MISS_CHAR;
31   G_MISS_DATE                  CONSTANT   DATE        := FND_API.G_MISS_DATE;
32 
33   G_DBG_LEVEL							  NUMBER 		:= FND_LOG.G_CURRENT_RUNTIME_LEVEL;
34   G_PROC_LEVEL							  NUMBER		:= FND_LOG.LEVEL_PROCEDURE;
35   G_EXCP_LEVEL							  NUMBER		:= FND_LOG.LEVEL_EXCEPTION;
36 
37 Procedure create_non_std_article(
38     p_api_version                IN NUMBER,
39     p_init_msg_list              IN VARCHAR2,
40     p_validate_commit            IN VARCHAR2,
41     p_validation_string          IN VARCHAR2,
42     p_commit                     IN VARCHAR2,
43     p_mode                       IN VARCHAR2, -- Values 'NORMAL' and  'AMEND'
44     x_return_status              OUT NOCOPY VARCHAR2,
45     x_msg_count                  OUT NOCOPY NUMBER,
46     x_msg_data                   OUT NOCOPY VARCHAR2,
47     p_article_title              IN VARCHAR2,
48     p_article_type               IN VARCHAR2,
49 
50 -- Article Version Attributes
51     p_article_text               IN CLOB,
52     p_provision_yn               IN VARCHAR2,
53     p_std_article_version_id     IN NUMBER,
54     p_display_name               IN VARCHAR2,
55     p_article_description        IN VARCHAR2,
56 
57 -- K Article Attributes
58     p_ref_type                   IN VARCHAR2,
59     p_ref_id                     IN NUMBER,
60     p_doc_type                   IN VARCHAR2,
61     p_doc_id                     IN NUMBER,
62     p_cat_id                     IN NUMBER, -- Should be passed when existing std is modified to make non-std.If it is passed then ref_type and ref_id doesnt need to be passed.
63 
64     p_amendment_description      IN VARCHAR2,
65     p_print_text_yn              IN VARCHAR2,
66     x_cat_id                     OUT NOCOPY NUMBER,
67     x_article_version_id         OUT NOCOPY NUMBER
68     ) IS
69 
70     l_api_version             CONSTANT NUMBER := 1;
71     l_api_name                CONSTANT VARCHAR2(30) := 'g_create_non_std_article';
72     l_intent                 VARCHAR2(1);
73     lx_article_id             NUMBER;
74     l_std_article_id          NUMBER;
75     lx_article_number         okc_articles_all.article_number%TYPE;
76     -- Fix for bug# 5158268. Added variable for  article_number
77     l_article_number         okc_articles_all.article_number%TYPE;
78     l_amendment_description   okc_k_articles_b.amendment_description%TYPE;
79     l_kart_tbl                OKC_TERMS_MULTIREC_GRP.kart_tbl_type;
80     lx_kart_tbl               OKC_TERMS_MULTIREC_GRP.kart_tbl_type;
81     l_ref_article_id          okc_k_articles_b.ref_article_id%TYPE := NULL;
82     l_ref_article_version_id  okc_k_articles_b.ref_article_version_id%TYPE := NULL;
83 Cursor l_get_intent_csr IS
84 SELECT intent FROM OKC_BUS_DOC_TYPES_B
85 WHERE DOCUMENT_TYPE=P_DOC_TYPE;
86 
87 
88 -- Fix for bug# 5158268. Modified the cursor to query okc_articles_all for article_number
89 Cursor l_get_std_article IS
90 SELECT ver.article_id,ver.article_version_id, art.article_number
91 FROM OKC_ARTICLE_VERSIONS ver, okc_articles_all art
92 WHERE ver.ARTICLE_VERSION_ID=p_std_article_version_id
93       and art.article_id = ver.article_id;
94 
95 
96 BEGIN
97 
98     /*IF (l_debug = 'Y') THEN
99        okc_debug.log('100: Entered create_non_std_article', 2);
100     END IF;*/
101 
102     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
103         FND_LOG.STRING(G_PROC_LEVEL,
104             G_PKG_NAME, '100: Entered create_non_std_article' );
105     END IF;
106 
107     -- Standard Start of API savepoint
108     SAVEPOINT g_create_non_std_article_GRP;
109     -- Standard call to check for call compatibility.
110     IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
111       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
112     END IF;
113     -- Initialize message list if p_init_msg_list is set to TRUE.
114     IF FND_API.to_Boolean( p_init_msg_list ) THEN
115       FND_MSG_PUB.initialize;
116     END IF;
117 
118    IF FND_API.To_Boolean( p_validate_commit ) THEN
119 
120       IF  NOT FND_API.To_Boolean(OKC_TERMS_UTIL_GRP.ok_to_commit (
121                                          p_api_version => l_api_version,
122                                          p_init_msg_list => FND_API.G_FALSE,
123                                          p_doc_type	 => p_doc_type,
124                                          p_doc_id	 => p_doc_id,
125                                          p_validation_string => p_validation_string,
126                                          x_return_status => x_return_status,
127                                          x_msg_data	 => x_msg_data,
128                                          x_msg_count	 => x_msg_count)                  ) THEN
129 
130            /*IF (l_debug = 'Y') THEN
131                 okc_debug.log('110: Issue with document header Record.Cannot commit', 2);
132            END IF;*/
133 
134 	   IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
135  	       FND_LOG.STRING(G_PROC_LEVEL,
136   	           G_PKG_NAME, '110: Issue with document header Record.Cannot commit' );
137 	   END IF;
138            RAISE FND_API.G_EXC_ERROR ;
139         END IF;
140   END IF;
141 
142     --  Initialize API return status to success
143   x_return_status := FND_API.G_RET_STS_SUCCESS;
144 
145   /*IF (l_debug = 'Y') THEN
146       okc_debug.log('200: Creating non-std article', 2);
147   END IF;*/
148 
149   IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
150       FND_LOG.STRING(G_PROC_LEVEL,
151           G_PKG_NAME, '200: Creating non-std article' );
152   END IF;
153   OPEN  l_get_intent_csr;
154   FETCH l_get_intent_csr INTO l_intent;
155   CLOSE l_get_intent_csr;
156 
157 -- Fix for bug# 5158268. added variable for article_number
158   OPEN  l_get_std_article;
159   FETCH l_get_std_article INTO l_ref_article_id,l_ref_article_version_id, l_article_number;
160   CLOSE l_get_std_article;
161 
162 
163   OKC_ARTICLES_GRP.create_article(
164                        p_api_version                  => 1,
165                        p_init_msg_list                => FND_API.G_FALSE,
166                        p_validation_level	          => FND_API.G_VALID_LEVEL_FULL,
167                        p_commit                       => FND_API.G_FALSE,
168                        x_return_status                => x_return_status,
169                        x_msg_count                    => x_msg_count,
170                        x_msg_data                     => x_msg_data,
171                        p_article_title                => p_article_title,
172                        p_article_number               => l_article_number,
173                        p_standard_yn                  =>'N',
174                        p_article_intent               => l_intent,
175                        p_article_language             => USERENV('LANG'),
176                        p_article_type                 => p_article_type,
177                        p_orig_system_reference_code   => NULL,
178                        p_orig_system_reference_id1    => NULL,
179                        p_orig_system_reference_id2    => NULL,
180                        p_cz_transfer_status_flag      => 'N',
181                        x_article_id                   => lx_article_id,
182                        x_article_number               => lx_article_number,
183                        -- Article Version Attributes
184                        p_article_text                 => p_article_text,
185                        p_provision_yn                 => p_provision_yn,
186                        p_insert_by_reference          => 'N',
187                        p_lock_text                    => 'N',
188                        p_global_yn                    =>'N',
189                        p_article_status               => NULL,
190                        p_sav_release                  => NULL,
191                        p_start_date                   => NULL,
192                        p_end_date                     => NULL,
193                        p_std_article_version_id       => p_std_article_version_id,
194                        p_display_name                 => p_display_name,
195                        p_translated_yn                => 'N',
196                        p_article_description          => p_article_description,
197                        p_date_approved                => NULL,
198                        p_default_section              => NULL,
199                        p_reference_source             => NULL,
200                        p_reference_text               => NULL,
201                        p_additional_instructions      => NULL,
202                        p_variation_description        => NULL,
203                        p_v_orig_system_reference_code => NULL,
204                        p_v_orig_system_reference_id1  => NULL,
205                        p_v_orig_system_reference_id2  => NULL,
206                        p_global_article_version_id    => NULL,
207                        x_article_version_id           => x_article_version_id
208                                );
209 
210     --------------------------------------------
211     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
212                RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
213     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
214                RAISE FND_API.G_EXC_ERROR ;
215     END IF;
216     --------------------------------------------
217 
218 
219     /*IF (l_debug = 'Y') THEN
220         okc_debug.log('300: non-std article created.Version id is '||x_article_version_id, 2);
221     END IF;*/
222 
223     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
224         FND_LOG.STRING(G_PROC_LEVEL,
225             G_PKG_NAME, '300: non-std article created.Version id is '||x_article_version_id );
226     END IF;
227 
228     IF p_cat_id IS NOT NULL THEN
229 
230       /*IF (l_debug = 'Y') THEN
231             okc_debug.log('400: Updating k article record', 2);
232       END IF;*/
233 
234       IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
235           FND_LOG.STRING(G_PROC_LEVEL,
236               G_PKG_NAME, '400: Updating k article record' );
237       END IF;
238 
239       OKC_K_ARTICLES_GRP.update_article(
240                                    p_api_version       =>1,
241                                    p_init_msg_list     => FND_API.G_FALSE,
242                                    p_validation_level  => FND_API.G_VALID_LEVEL_FULL,
243                                    p_validate_commit   => FND_API.G_FALSE,
244                                    p_validation_string => NULL,
245                                    p_commit            => FND_API.G_FALSE,
246                                    p_mode              => p_mode,
247                                    x_return_status     => x_return_status,
248                                    x_msg_count         => x_msg_count,
249                                    x_msg_data          => x_msg_data,
250                                    p_id                => p_cat_id,
251                                    p_sav_sae_id        => lx_article_id,
252                                    p_amendment_description => p_amendment_description,
253                                    p_print_text_yn         => p_print_text_yn,
254                                    p_article_version_id    => x_article_version_id,
255                                    p_ref_article_id        => l_ref_article_id ,
256                                    p_ref_article_version_id=> l_ref_article_version_id,
257                                    p_change_nonstd_yn      => 'N',
258                                    p_object_version_number => NULL
259                                      );
260       --------------------------------------------
261       IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
262                RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
263       ELSIF (x_return_status = G_RET_STS_ERROR) THEN
264                RAISE FND_API.G_EXC_ERROR ;
265       END IF;
266       --------------------------------------------
267 
268       x_cat_id := p_cat_id;
269 
270     ELSE
271 
272        l_kart_tbl(0).sav_sae_id            := lx_article_id;
273        l_kart_tbl(0).article_version_id    := x_article_version_id;
274        l_kart_tbl(0).print_text_yn         := p_print_text_yn;
275        l_kart_tbl(0).ref_article_id        := l_ref_article_id;
276        l_kart_tbl(0).ref_article_version_id:= l_ref_article_version_id;
277        l_kart_tbl(0).amendment_description := p_amendment_description;
278 
279        /*IF (l_debug = 'Y') THEN
280            okc_debug.log('500: Creating k article record', 2);
281        END IF;*/
282 
283        IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
284            FND_LOG.STRING(G_PROC_LEVEL,
285                G_PKG_NAME, '500: Creating k article record' );
286        END IF;
287 
288        OKC_TERMS_MULTIREC_GRP.create_article(
289              p_api_version        =>1,
290              p_init_msg_list      => FND_API.G_FALSE,
291              p_mode               => p_mode,
292              p_validation_level   => FND_API.G_VALID_LEVEL_FULL,
293              p_validate_commit    => FND_API.G_FALSE,
294              p_validation_string  => NULL,
295              p_commit             => FND_API.G_FALSE,
296              p_ref_type           => p_ref_type,
297              p_ref_id             => p_ref_id,
298              p_doc_type           => p_doc_type,
299              p_doc_id             => p_doc_id,
300              p_kart_tbl           => l_kart_tbl,
301              x_kart_tbl           => lx_kart_tbl,
302              x_return_status      => x_return_status,
303              x_msg_count          => x_msg_count,
304              x_msg_data           => x_msg_count
305                  );
306 
307        --------------------------------------------
308        IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
309                RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
310        ELSIF (x_return_status = G_RET_STS_ERROR) THEN
311                RAISE FND_API.G_EXC_ERROR ;
312        END IF;
313        --------------------------------------------
314 
315        x_cat_id := lx_kart_tbl(0).id;
316 
317     END IF;
318 
319 
320 -- Standard check of p_commit
321 IF FND_API.To_Boolean( p_commit ) THEN
322     COMMIT WORK;
323 END IF;
324 
325 -- Standard call to get message count and if count is 1, get message info.
326 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
327 
328 /*IF (l_debug = 'Y') THEN
329      okc_debug.log('900: Leaving create_non_std_article', 2);
330 END IF;*/
331 
332 IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
333     FND_LOG.STRING(G_PROC_LEVEL,
334         G_PKG_NAME, '900: Leaving create_non_std_article' );
335 END IF;
336 
337 EXCEPTION
338  WHEN FND_API.G_EXC_ERROR THEN
339     /*IF (l_debug = 'Y') THEN
340         okc_debug.log('300: Leaving create_non_std_article: OKC_API.G_EXCEPTION_ERROR Exception', 2);
341     END IF;*/
342 
343     IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
344         FND_LOG.STRING(G_EXCP_LEVEL,
345     	    G_PKG_NAME, '300: Leaving create_non_std_article: OKC_API.G_EXCEPTION_ERROR Exception' );
346     END IF;
347 
348     IF l_get_intent_csr%ISOPEN THEN
349        CLOSE l_get_intent_csr;
350     END IF;
351 
352     ROLLBACK TO g_create_non_std_article_GRP;
353     x_return_status := G_RET_STS_ERROR ;
354     FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
355 
356  WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
357     /*IF (l_debug = 'Y') THEN
358          okc_debug.log('400: Leaving create_non_std_article: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception', 2);
359     END IF;*/
360 
361     IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
362         FND_LOG.STRING(G_EXCP_LEVEL,
363     	    G_PKG_NAME, '400: Leaving create_non_std_article: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception' );
364     END IF;
365 
366     IF l_get_intent_csr%ISOPEN THEN
367        CLOSE l_get_intent_csr;
368     END IF;
369 
370     ROLLBACK TO g_create_non_std_article_GRP;
371     x_return_status := G_RET_STS_UNEXP_ERROR ;
372     FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
373 
374  WHEN OTHERS THEN
375     /*IF (l_debug = 'Y') THEN
376        okc_debug.log('500: Leaving create_non_std_article because of EXCEPTION: '||sqlerrm, 2);
377     END IF;*/
378 
379     IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
380         FND_LOG.STRING(G_EXCP_LEVEL,
381     	    G_PKG_NAME, '500: Leaving create_non_std_article because of EXCEPTION: '||sqlerrm );
382     END IF;
383 
384     IF l_get_intent_csr%ISOPEN THEN
385        CLOSE l_get_intent_csr;
386     END IF;
387 
388     ROLLBACK TO g_create_non_std_article_GRP;
389     x_return_status := G_RET_STS_UNEXP_ERROR ;
390     IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
391         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
392     END IF;
393 
394     FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
395 
396 END  create_non_std_article;
397 
398 Procedure update_non_std_article(
399     p_api_version                IN NUMBER,
400     p_init_msg_list              IN VARCHAR2 ,
401     p_validate_commit            IN VARCHAR2,
402     p_validation_string          IN VARCHAR2,
403     p_commit                     IN VARCHAR2,
404     p_mode                       IN VARCHAR2,
405     x_return_status              OUT NOCOPY VARCHAR2,
406     x_msg_count                  OUT NOCOPY NUMBER,
407     x_msg_data                   OUT NOCOPY VARCHAR2,
408     p_article_title              IN VARCHAR2,
409     p_article_type               IN VARCHAR2,
410 
411 -- Article Version Attributes
412     p_article_text               IN CLOB,
413     p_provision_yn               IN VARCHAR2,
414     p_display_name               IN VARCHAR2,
415     p_article_description        IN VARCHAR2,
416 
417 -- K Article Attributes
418     p_doc_type                   IN VARCHAR2,
419     p_doc_id                     IN NUMBER,
420     p_cat_id                     IN NUMBER,
421     p_amendment_description      IN VARCHAR2,
422     p_print_text_yn              IN VARCHAR2,
423     x_cat_id                     OUT NOCOPY NUMBER,
424     x_article_version_id         OUT NOCOPY NUMBER
425     ) IS
426 
427     l_api_version             CONSTANT NUMBER := 1;
428     l_api_name                CONSTANT VARCHAR2(30) := 'g_update_non_std_article';
429     l_article_id             NUMBER;
430     l_ref_article_version_id NUMBER;
431     l_change_nonstd_yn       VARCHAR2(1);
432     l_ovn                    NUMBER;
433 
434 
435 
436 Cursor l_get_kart_dtl_csr IS
437 SELECT sav_sae_id,
438        article_version_id,
439        ref_article_version_id,
440        change_nonstd_yn,
441        object_version_number
442 FROM OKC_K_ARTICLES_B
443 WHERE id=p_cat_id;
444 
445 l_display_name          okc_article_versions.display_name%TYPE;
446 l_article_description   okc_article_versions.article_description%TYPE;
447 
448 
449 BEGIN
450     /*IF (l_debug = 'Y') THEN
451        okc_debug.log('100: Entered update_non_std_article', 2);
452     END IF;*/
453 
454     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
455         FND_LOG.STRING(G_PROC_LEVEL,
456             G_PKG_NAME, '100: Entered update_non_std_article' );
457     END IF;
458 
459     -- Standard Start of API savepoint
460     SAVEPOINT g_update_non_std_article_GRP;
461     -- Standard call to check for call compatibility.
462     IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
463       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
464     END IF;
465     -- Initialize message list if p_init_msg_list is set to TRUE.
466     IF FND_API.to_Boolean( p_init_msg_list ) THEN
467       FND_MSG_PUB.initialize;
468     END IF;
469 
470    IF FND_API.To_Boolean( p_validate_commit ) THEN
471 
472       IF  NOT FND_API.To_Boolean(OKC_TERMS_UTIL_GRP.ok_to_commit (
473                                          p_api_version => l_api_version,
474                                          p_init_msg_list => FND_API.G_FALSE,
475                                          p_doc_type	 => p_doc_type,
476                                          p_doc_id	 => p_doc_id,
477                                          p_validation_string => p_validation_string,
478                                          x_return_status => x_return_status,
479                                          x_msg_data	 => x_msg_data,
480                                          x_msg_count	 => x_msg_count)                  ) THEN
481 
482            /*IF (l_debug = 'Y') THEN
483                 okc_debug.log('110: Issue with document header Record.Cannot commit', 2);
484            END IF;*/
485 
486            IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
487                FND_LOG.STRING(G_PROC_LEVEL,
488                    G_PKG_NAME, '110: Issue with document header Record.Cannot commit' );
489            END IF;
490            RAISE FND_API.G_EXC_ERROR ;
491         END IF;
492   END IF;
493 
494     --  Initialize API return status to success
495   x_return_status := FND_API.G_RET_STS_SUCCESS;
496 
497   /*IF (l_debug = 'Y') THEN
498       okc_debug.log('200: Updating non-std article', 2);
499   END IF;*/
500 
501   IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
502       FND_LOG.STRING(G_PROC_LEVEL,
503           G_PKG_NAME, '200: Updating non-std article' );
504   END IF;
505 
506   OPEN  l_get_kart_dtl_csr;
507   FETCH l_get_kart_dtl_csr INTO l_article_id,x_article_version_id,l_ref_article_version_id,l_change_nonstd_yn,l_ovn;
508   CLOSE l_get_kart_dtl_csr;
509   IF l_change_nonstd_yn='Y' THEN
510 
511       -- check if any parameters are NULL from UI
512       IF (p_display_name = G_MISS_CHAR) THEN
513           l_display_name := NULL;
514       ELSIF (p_display_name IS NOT NULL) THEN
515           l_display_name := p_display_name;
516       END IF;
517 
518       IF (p_article_description = G_MISS_CHAR) THEN
519           l_article_description := NULL;
520       ELSIF (p_article_description IS NOT NULL ) THEN
521           l_article_description := p_article_description;
522       END IF;
523 
524       create_non_std_article(
525                 p_api_version     =>1,
526                 p_init_msg_list   => FND_API.G_FALSE,
527                 p_validate_commit => FND_API.G_FALSE,
528                 p_validation_string => NULL,
529                 p_commit            => FND_API.G_FALSE,
530                 p_mode              => p_mode,
531                 x_return_status     => x_return_status,
532                 x_msg_count         => x_msg_count,
533                 x_msg_data          => x_msg_data,
534                 p_article_title     => p_article_title,
535                 p_article_text      => p_article_text,
536                 p_provision_yn      => p_provision_yn,
537                 p_std_article_version_id => l_ref_article_version_id,
538                 p_display_name           => l_display_name,
539                 p_article_type           => p_article_type,
540                 p_article_description     => l_article_description,
541                 p_ref_type                => NULL,
542                 p_ref_id                  =>NULL,
543                 p_doc_type                =>P_doc_type,
544                 p_doc_id                  =>P_doc_id,
545                 p_cat_id                  => p_cat_id,
546                 p_amendment_description   => p_amendment_description,
547                 p_print_text_yn           => p_print_text_yn,
548                 x_cat_id                  => x_cat_id,
549                 x_article_version_id      => x_article_version_id
550              );
551   ELSE
552   OKC_ARTICLES_GRP.update_article(
553                        p_api_version                  => 1,
554                        p_init_msg_list                => FND_API.G_FALSE,
555                        p_validation_level	          => FND_API.G_VALID_LEVEL_FULL,
556                        p_commit                       => FND_API.G_FALSE,
557                        x_return_status                => x_return_status,
558                        x_msg_count                    => x_msg_count,
559                        x_msg_data                     => x_msg_data,
560                        p_article_id                   => l_article_id,
561                        p_article_title                => p_article_title,
562                        p_article_number               => NULL,
563                        p_standard_yn                  => NULL,
564                        p_article_intent               => NULL,
565                        p_article_language             => NULL,
566                        p_article_type                 => p_article_type,
567                        p_orig_system_reference_code   => NULL,
568                        p_orig_system_reference_id1    => NULL,
569                        p_orig_system_reference_id2    => NULL,
570                        p_cz_transfer_status_flag      => NULL,
571                        p_object_version_number        => NULL,
572                        -- Article Version Attributes
573                        p_article_version_id           => x_article_version_id,
574                        p_article_text                 => p_article_text,
575                        p_provision_yn                 => p_provision_yn,
576                        p_insert_by_reference          => NULL,
577                        p_lock_text                    => NULL,
578                        p_global_yn                    => NULL,
579                        p_article_status               => NULL,
580                        p_sav_release                  => NULL,
581                        p_start_date                   => NULL,
582                        p_end_date                     => NULL,
583                        p_std_article_version_id       => NULL,
584                        p_display_name                 => p_display_name,
585                        p_translated_yn                => NULL,
586                        p_article_description          => p_article_description,
587                        p_date_approved                => NULL,
588                        p_default_section              => NULL,
589                        p_reference_source             => NULL,
590                        p_reference_text               => NULL,
591                        p_additional_instructions      => NULL,
592                        p_variation_description        => NULL,
593                        p_v_orig_system_reference_code => NULL,
594                        p_v_orig_system_reference_id1  => NULL,
595                        p_v_orig_system_reference_id2  => NULL,
596                        p_v_object_version_number      => NULL
597                                );
598 
599 
600     --------------------------------------------
601     IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
602                RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
603     ELSIF (x_return_status = G_RET_STS_ERROR) THEN
604                RAISE FND_API.G_EXC_ERROR ;
605     END IF;
606     --------------------------------------------
607 
608 
609     /*IF (l_debug = 'Y') THEN
610         okc_debug.log('300: non-std article created.Version id is '||x_article_version_id, 2);
611     END IF;*/
612 
613     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
614         FND_LOG.STRING(G_PROC_LEVEL,
615             G_PKG_NAME, '300: non-std article created.Version id is '||x_article_version_id );
616     END IF;
617 
618     /*IF (l_debug = 'Y') THEN
619             okc_debug.log('400: Updating k article record', 2);
620     END IF;*/
621 
622     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
623         FND_LOG.STRING(G_PROC_LEVEL,
624             G_PKG_NAME, '400: Updating k article record' );
625     END IF;
626 
627       OKC_K_ARTICLES_GRP.update_article(
628                                    p_api_version       =>1,
629                                    p_init_msg_list     => FND_API.G_FALSE,
630                                    p_validation_level  => FND_API.G_VALID_LEVEL_FULL,
631                                    p_validate_commit   => FND_API.G_FALSE,
632                                    p_validation_string => NULL,
633                                    p_commit            => FND_API.G_FALSE,
634                                    p_mode              => p_mode,
635                                    x_return_status     => x_return_status,
636                                    x_msg_count         => x_msg_count,
637                                    x_msg_data          => x_msg_data,
638                                    p_id                => p_cat_id,
639                                    p_sav_sae_id        => l_article_id,
640                                    p_amendment_description => p_amendment_description,
641                                    p_print_text_yn            =>p_print_text_yn,
642                                    p_article_version_id       => x_article_version_id,
643                                    p_object_version_number    => l_ovn
644                                      );
645       --------------------------------------------
646       IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
647                RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
648       ELSIF (x_return_status = G_RET_STS_ERROR) THEN
649                RAISE FND_API.G_EXC_ERROR ;
650       END IF;
651       --------------------------------------------
652  END IF; -- IF change_nonstd_yn='Y' THEN
653 
654 -- Standard check of p_commit
655 IF FND_API.To_Boolean( p_commit ) THEN
656     COMMIT WORK;
657 END IF;
658 
659 -- Standard call to get message count and if count is 1, get message info.
660 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
661 
662 /*IF (l_debug = 'Y') THEN
663      okc_debug.log('900: Leavingupdate_non_std_article', 2);
664 END IF;*/
665 
666 IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
667     FND_LOG.STRING(G_PROC_LEVEL,
668         G_PKG_NAME, '900: Leavingupdate_non_std_article' );
669 END IF;
670 
671 EXCEPTION
672  WHEN FND_API.G_EXC_ERROR THEN
673     /*IF (l_debug = 'Y') THEN
674         okc_debug.log('300: Leaving update_non_std_article: OKC_API.G_EXCEPTION_ERROR Exception', 2);
675     END IF;*/
676 
677     IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
678         FND_LOG.STRING(G_EXCP_LEVEL,
679     	    G_PKG_NAME, '300: Leaving update_non_std_article: OKC_API.G_EXCEPTION_ERROR Exception' );
680     END IF;
681 
682     IF l_get_kart_dtl_csr%ISOPEN THEN
683        CLOSE l_get_kart_dtl_csr;
684     END IF;
685 
686 
687     ROLLBACK TO g_update_non_std_article_GRP;
688     x_return_status := G_RET_STS_ERROR ;
689     FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
690 
691  WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
692     /*IF (l_debug = 'Y') THEN
693          okc_debug.log('400: Leavingupdate_non_std_article: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception', 2);
694     END IF;*/
695 
696     IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
697         FND_LOG.STRING(G_EXCP_LEVEL,
698     	    G_PKG_NAME, '400: Leavingupdate_non_std_article: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception' );
699     END IF;
700 
701     IF l_get_kart_dtl_csr%ISOPEN THEN
702        CLOSE l_get_kart_dtl_csr;
703     END IF;
704 
705 
706     ROLLBACK TO g_update_non_std_article_GRP;
707     x_return_status := G_RET_STS_UNEXP_ERROR ;
708     FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
709 
710  WHEN OTHERS THEN
711     /*IF (l_debug = 'Y') THEN
712        okc_debug.log('500: Leaving update_non_std_article because of EXCEPTION: '||sqlerrm, 2);
713     END IF;*/
714 
715     IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
716         FND_LOG.STRING(G_EXCP_LEVEL,
717     	    G_PKG_NAME, '500: Leaving update_non_std_article because of EXCEPTION: '||sqlerrm );
718     END IF;
719 
720     IF l_get_kart_dtl_csr%ISOPEN THEN
721        CLOSE l_get_kart_dtl_csr;
722     END IF;
723 
724 
725     ROLLBACK TO g_update_non_std_article_GRP;
726     x_return_status := G_RET_STS_UNEXP_ERROR ;
727     IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
728         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
729     END IF;
730 
731     FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
732 END update_non_std_article;
733 
734 Procedure revert_to_standard(
735     p_api_version                IN NUMBER,
736     p_init_msg_list              IN VARCHAR2 ,
737     p_validate_commit            IN VARCHAR2,
738     p_validation_string          IN VARCHAR2,
739     p_commit                     IN VARCHAR2,
740     p_mode                       IN VARCHAR2,
741     x_return_status              OUT NOCOPY VARCHAR2,
742     x_msg_count                  OUT NOCOPY NUMBER,
743     x_msg_data                   OUT NOCOPY VARCHAR2,
744     p_doc_type                   IN VARCHAR2,
745     p_doc_id                     IN NUMBER,
746     p_k_art_id                   IN NUMBER,
747     x_cat_id                     OUT NOCOPY NUMBER,
748     x_article_version_id         OUT NOCOPY NUMBER
749     ) IS
750 
751     l_api_version             CONSTANT NUMBER := 1;
752     l_api_name                CONSTANT VARCHAR2(30) := 'revert_to_standard';
753     l_sav_sae_id              OKC_K_ARTICLES_B.sav_sae_id%TYPE;
754     l_scn_id                  OKC_K_ARTICLES_B.scn_id%TYPE;
755     l_orig_article_id         OKC_K_ARTICLES_B.orig_article_id%TYPE;
756     l_ref_article_version_id  OKC_K_ARTICLES_B.ref_article_version_id%TYPE;
757     l_display_sequence        OKC_K_ARTICLES_B.display_sequence%TYPE;
758     l_ovn                     OKC_K_ARTICLES_B.object_version_number%TYPE;
759     l_variable_value_id       OKC_K_ART_VARIABLES.variable_value_id%TYPE;
760     l_variable_value          OKC_K_ART_VARIABLES.variable_value%TYPE;
761     l_x_cat_id                OKC_K_ART_VARIABLES.cat_id%TYPE;
762     l_x_variable_code         OKC_K_ART_VARIABLES.variable_code%TYPE;
763     l_ref_article_id          OKC_K_ARTICLES_B.ref_article_id%TYPE;
764 
765 
766 Cursor l_get_kart_dtl_csr IS
767 SELECT sav_sae_id, scn_id , orig_article_id, display_sequence, object_Version_number,
768        ref_article_id
769 FROM OKC_K_ARTICLES_B
770 WHERE id=p_k_art_id ;
771 
772 cursor l_get_delete_var IS
773     select variable_code, object_Version_number from okc_k_art_variables
774     where variable_code not in (
775         select artvar.variable_code
776         from okc_k_art_variables artvar, okc_article_variables ar
777         where ar.variable_code = artvar.variable_code
778         and artvar.cat_id = p_k_art_id
779         and ar.article_version_id = x_article_version_id)
780     and cat_id = p_k_art_id;
781 
782 cursor l_get_insert_var IS
783   select  var.variable_code, bus.variable_type,bus.external_yn,bus.value_set_id
784           from okc_article_variables var, okc_bus_variables_b bus
785           where var.variable_code not in (
786                         select artvar.variable_code
787                         from okc_k_art_variables artvar, okc_article_variables ar
788                         where ar.variable_code = artvar.variable_code
789                         and artvar.cat_id = p_k_art_id
790                         and ar.article_version_id = x_article_version_id
791                   )
792           and var.article_version_id = x_article_version_id
793           and var.variable_code = bus.variable_code;
794 
795 
796 
797 BEGIN
798     /*IF (l_debug = 'Y') THEN
799        okc_debug.log('100: Entered revert_to_standard', 2);
800     END IF;*/
801 
802     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
803         FND_LOG.STRING(G_PROC_LEVEL,
804             G_PKG_NAME, '100: Entered revert_to_standard' );
805     END IF;
806 
807     -- Standard Start of API savepoint
808     SAVEPOINT g_revert_to_standard_GRP;
809     -- Standard call to check for call compatibility.
810     IF NOT FND_API.Compatible_API_Call(l_api_version, p_api_version, l_api_name, G_PKG_NAME) THEN
811       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
812     END IF;
813     -- Initialize message list if p_init_msg_list is set to TRUE.
814     IF FND_API.to_Boolean( p_init_msg_list ) THEN
815       FND_MSG_PUB.initialize;
816     END IF;
817 
818    IF FND_API.To_Boolean( p_validate_commit ) THEN
819 
820       IF  NOT FND_API.To_Boolean(OKC_TERMS_UTIL_GRP.ok_to_commit (
821                                          p_api_version => l_api_version,
822                                          p_init_msg_list => FND_API.G_FALSE,
823                                          p_doc_type	 => p_doc_type,
824                                          p_doc_id	 => p_doc_id,
825                                          p_validation_string => p_validation_string,
826                                          x_return_status => x_return_status,
827                                          x_msg_data	 => x_msg_data,
828                                          x_msg_count	 => x_msg_count)                  ) THEN
829 
830            /*IF (l_debug = 'Y') THEN
831                 okc_debug.log('110: Issue with document header Record.Cannot commit', 2);
832            END IF;*/
833 
834 	   IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
835  	       FND_LOG.STRING(G_PROC_LEVEL,
836   	           G_PKG_NAME, '110: Issue with document header Record.Cannot commit' );
837 	   END IF;
838            RAISE FND_API.G_EXC_ERROR ;
839         END IF;
840   END IF;
841 
842     --  Initialize API return status to success
843   x_return_status := FND_API.G_RET_STS_SUCCESS;
844 
845   /*IF (l_debug = 'Y') THEN
846       okc_debug.log('200: revert_to_standard', 2);
847   END IF;*/
848 
849   IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
850       FND_LOG.STRING(G_PROC_LEVEL,
851           G_PKG_NAME, '200: revert_to_standard' );
852   END IF;
853 
854   OPEN  l_get_kart_dtl_csr;
855   FETCH l_get_kart_dtl_csr
856   INTO  l_sav_sae_id, l_scn_id, l_orig_article_id,l_display_sequence, l_ovn, l_ref_article_id;
857 
858   if(l_ref_article_id is NOT NULL)THEN
859      l_orig_article_id := l_ref_article_id;
860   end if;
861 --  x_article_version_id := l_ref_article_version_id;
862   x_article_version_id := OKC_TERMS_UTIL_PVT.get_latest_art_version_id(l_orig_article_id,
863   p_doc_type, p_doc_id);
864   CLOSE l_get_kart_dtl_csr;
865 
866     /*IF (l_debug = 'Y') THEN
867             okc_debug.log('400: Before invoking OKC_K_ARTICLES_GRP.delete_article record for p_id = ' || p_k_art_id, 2);
868     END IF;*/
869 
870     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
871         FND_LOG.STRING(G_PROC_LEVEL,
872             G_PKG_NAME, '400: Before invoking OKC_K_ARTICLES_GRP.delete_article record for p_id = ' || p_k_art_id );
873     END IF;
874 
875 /*
876     OKC_K_ARTICLES_GRP.delete_article(
877     p_api_version                  =>1,
878     p_init_msg_list                => FND_API.G_FALSE,
879     p_validate_commit              => FND_API.G_FALSE,
880     p_validation_string            => NULL,
881     p_commit                       => FND_API.G_FALSE,
882     p_mode                         => p_mode, -- Other value 'AMEND'
883     x_return_status                => x_return_status,
884     x_msg_count                    => x_msg_count,
885     x_msg_data                     => x_msg_data,
886     p_id                           => p_k_art_id,
887     p_object_version_number        => l_ovn); */
888 
889     /*IF (l_debug = 'Y') THEN
890             okc_debug.log('500: After invoking OKC_K_ARTICLES_GRP.delete_article record x_return_status = ' || x_return_status, 2);
891     END IF;*/
892 
893     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
894         FND_LOG.STRING(G_PROC_LEVEL,
895             G_PKG_NAME, '500: After invoking OKC_K_ARTICLES_GRP.delete_article record x_return_status = ' || x_return_status );
896     END IF;
897 
898       --------------------------------------------
899       IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
900                RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
901       ELSIF (x_return_status = G_RET_STS_ERROR) THEN
902                RAISE FND_API.G_EXC_ERROR ;
903       END IF;
904       --------------------------------------------
905 
906 
907     /*IF (l_debug = 'Y') THEN
908             okc_debug.log('600: Before invoking OKC_K_ARTICLES_GRP.create_article record for orig_article_id = ' || l_orig_article_id, 2);
909     END IF;*/
910 
911     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
912         FND_LOG.STRING(G_PROC_LEVEL,
913             G_PKG_NAME, '600: Before invoking OKC_K_ARTICLES_GRP.create_article record for orig_article_id = ' || l_orig_article_id );
914     END IF;
915 /*
916       OKC_K_ARTICLES_GRP.create_article(
917                                    p_api_version       =>1,
918                                    p_init_msg_list     => FND_API.G_FALSE,
919                                    p_validation_level  => FND_API.G_VALID_LEVEL_FULL,
920                                    p_mode              => p_mode,
921                                    x_return_status     => x_return_status,
922                                    x_msg_count         => x_msg_count,
923                                    x_msg_data          => x_msg_data,
924                                    p_id                => null,
925                                    p_sav_sae_id        => l_ref_article_id,
926                                    p_document_type     => p_doc_type,
927                                    p_document_id       => p_doc_id,
928                                    p_scn_id            => l_scn_id,
929                                    p_article_version_id => x_article_version_id,
930                                    p_display_sequence   => l_display_sequence,
931                                    x_id                 => x_cat_id
932                                      );
933 
934     */
935 
936  /*   update okc_k_articles_b
937     set sav_sae_id = l_orig_article_id,
938         article_version_id = x_article_version_id
939     where id = p_k_art_id; */
940     OKC_K_ARTICLES_GRP.update_article(
941     p_api_version                  => 1.0,
942     p_init_msg_list                => p_init_msg_list ,
943     p_validate_commit              => p_validate_commit,
944     p_validation_string            => p_validation_string,
945     p_commit                       => p_commit,
946     p_mode                         => p_mode, -- Other value 'AMEND'
947     x_return_status                => x_return_status,
948     x_msg_count                    => x_msg_count,
949     x_msg_data                     => x_msg_data,
950     p_id                           => p_k_art_id,
951     p_sav_sae_id                 => l_orig_article_id,
952     p_article_version_id         => x_article_version_id,
953     p_object_version_number      => NULL,
954     p_ref_article_id             => G_MISS_NUM,
955     p_ref_article_version_id     => G_MISS_NUM);
956 
957      --------------------------------------------
958       IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
959                RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
960       ELSIF (x_return_status = G_RET_STS_ERROR) THEN
961                RAISE FND_API.G_EXC_ERROR ;
962       END IF;
963       --------------------------------------------
964 
965 
966     /*IF (l_debug = 'Y') THEN
967             okc_debug.log('700: After invoking OKC_K_ARTICLES_GRP.create_article record x_return_status = ' || x_return_status, 2);
968     END IF;*/
969 
970     IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
971         FND_LOG.STRING(G_PROC_LEVEL,
972             G_PKG_NAME, '700: After invoking OKC_K_ARTICLES_GRP.create_article record x_return_status = ' || x_return_status );
973     END IF;
974     /*
975         Delete those variables that are not in the Standard Article Version
976         to which we are reverting to
977     */
978     for del_var_csr in l_get_delete_var loop
979         OKC_K_ART_VARIABLES_PVT.Delete_Row(
980             x_return_status          => x_return_status,
981             p_cat_id                 => p_k_art_id,
982             p_variable_code          => del_var_csr.variable_code,
983             p_object_version_number  => del_var_csr.object_version_number);
984             --------------------------------------------
985             IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
986                    RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
987             ELSIF (x_return_status = G_RET_STS_ERROR) THEN
988                    RAISE FND_API.G_EXC_ERROR ;
989             END IF;
990             --------------------------------------------
991     end loop;
992 
993 
994     /*
995         Insert those variables that are not in the Current Clause, but are
996         available in the Standard Article Version to which we are reverting to
997     */
998 
999 
1000     for ins_var_csr in l_get_insert_var loop
1001         OKC_K_ART_VARIABLES_PVT.insert_row(
1002         x_return_status          => x_return_status,
1003         p_cat_id                 => p_k_art_id,
1004         p_variable_code          => ins_var_csr.variable_code,
1005         p_variable_type          => ins_var_csr.variable_type,
1006         p_external_yn            => ins_var_csr.external_yn,
1007         p_attribute_value_set_id => ins_var_csr.value_set_id,
1008         p_variable_value_id      => l_variable_value_id,
1009         p_variable_value         => l_variable_value,
1010         x_cat_id                 => l_x_cat_id,
1011         x_variable_code          => l_x_variable_code);
1012     --------------------------------------------
1013       IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
1014                RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
1015       ELSIF (x_return_status = G_RET_STS_ERROR) THEN
1016                RAISE FND_API.G_EXC_ERROR ;
1017       END IF;
1018     --------------------------------------------
1019 
1020 
1021     end loop;
1022 
1023 -- Standard check of p_commit
1024 IF FND_API.To_Boolean( p_commit ) THEN
1025     COMMIT WORK;
1026 END IF;
1027 
1028 -- Standard call to get message count and if count is 1, get message info.
1029 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1030 
1031 /*IF (l_debug = 'Y') THEN
1032      okc_debug.log('900: Leaving revert_to_standard', 2);
1033 END IF;*/
1034 
1035 IF ( G_PROC_LEVEL >= G_DBG_LEVEL ) THEN
1036     FND_LOG.STRING(G_PROC_LEVEL,
1037         G_PKG_NAME, '900: Leaving revert_to_standard' );
1038 END IF;
1039 
1040 EXCEPTION
1041  WHEN FND_API.G_EXC_ERROR THEN
1042     /*IF (l_debug = 'Y') THEN
1043         okc_debug.log('300: Leaving revert_to_standard: OKC_API.G_EXCEPTION_ERROR Exception', 2);
1044     END IF;*/
1045 
1046     IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
1047         FND_LOG.STRING(G_EXCP_LEVEL,
1048     	    G_PKG_NAME, '300: Leaving revert_to_standard: OKC_API.G_EXCEPTION_ERROR Exception' );
1049     END IF;
1050 
1051     IF l_get_kart_dtl_csr%ISOPEN THEN
1052        CLOSE l_get_kart_dtl_csr;
1053     END IF;
1054 
1055 
1056     ROLLBACK TO g_revert_to_standard_GRP;
1057     x_return_status := G_RET_STS_ERROR ;
1058     FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1059 
1060  WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1061     /*IF (l_debug = 'Y') THEN
1062          okc_debug.log('400: Leaving revert_to_standard: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception', 2);
1063     END IF;*/
1064 
1065     IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
1066         FND_LOG.STRING(G_EXCP_LEVEL,
1067     	    G_PKG_NAME, '400: Leaving revert_to_standard: OKC_API.G_EXCEPTION_UNEXPECTED_ERROR Exception' );
1068     END IF;
1069 
1070     IF l_get_kart_dtl_csr%ISOPEN THEN
1071        CLOSE l_get_kart_dtl_csr;
1072     END IF;
1073 
1074 
1075     ROLLBACK TO g_revert_to_standard_GRP;
1076     x_return_status := G_RET_STS_UNEXP_ERROR ;
1077     FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1078 
1079  WHEN OTHERS THEN
1080     /*IF (l_debug = 'Y') THEN
1081        okc_debug.log('500: Leaving revert_to_standard because of EXCEPTION: '||sqlerrm, 2);
1082     END IF;*/
1083 
1084     IF ( G_EXCP_LEVEL >= G_DBG_LEVEL ) THEN
1085         FND_LOG.STRING(G_EXCP_LEVEL,
1086     	    G_PKG_NAME, '500: Leaving revert_to_standard because of EXCEPTION: '||sqlerrm );
1087     END IF;
1088 
1089     IF l_get_kart_dtl_csr%ISOPEN THEN
1090        CLOSE l_get_kart_dtl_csr;
1091     END IF;
1092 
1093 
1094     ROLLBACK TO g_revert_to_standard_GRP;
1095     x_return_status := G_RET_STS_UNEXP_ERROR ;
1096     IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1097         FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1098     END IF;
1099 
1100     FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1101 END revert_to_standard;
1102 
1103 END OKC_K_NON_STD_ART_GRP;