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