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