[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;