[Home] [Help]
PACKAGE BODY: APPS.OKC_K_ARTICLE_PUB
Source
1 package body OKC_K_ARTICLE_PUB as
2 /* $Header: OKCPCATB.pls 120.0 2005/05/25 19:11:14 appldev noship $ */
3 l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
4
5 G_APP_NAME CONSTANT VARCHAR2(3) := OKC_API.G_APP_NAME;
6 G_PKG_NAME CONSTANT VARCHAR2(200) := 'OKC_K_ARTICLE_PUB';
7 G_API_VERSION CONSTANT NUMBER := 1;
8 G_SCOPE CONSTANT varchar2(4) := '_PUB';
9 ------------------------------------------------------------------------------
10 -- GLOBAL CONSTANTS
11 ------------------------------------------------------------------------------
12 G_FALSE CONSTANT VARCHAR2(1) := FND_API.G_FALSE;
13 G_TRUE CONSTANT VARCHAR2(1) := FND_API.G_TRUE;
14 G_MISS_NUM CONSTANT NUMBER := FND_API.G_MISS_NUM;
15 G_MISS_CHAR CONSTANT VARCHAR2(1) := FND_API.G_MISS_CHAR;
16 G_MISS_DATE CONSTANT DATE := FND_API.G_MISS_DATE;
17 G_RET_STS_SUCCESS CONSTANT VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
18 G_RET_STS_ERROR CONSTANT VARCHAR2(1) := FND_API.G_RET_STS_ERROR;
19 G_RET_STS_UNEXP_ERROR CONSTANT VARCHAR2(1) := FND_API.G_RET_STS_UNEXP_ERROR;
20 G_UNEXPECTED_ERROR CONSTANT VARCHAR2(200) := 'OKC_UNEXPECTED_ERROR';
21 G_SQLERRM_TOKEN CONSTANT VARCHAR2(200) := 'ERROR_MESSAGE';
22 G_SQLCODE_TOKEN CONSTANT VARCHAR2(200) := 'ERROR_CODE';
23 -- ??? should be moved to OKC_TERMS_UTIL_PVT
24 G_UNASSIGNED_SECTION_CODE CONSTANT VARCHAR2(30) := 'UNASSIGNED';
25
26 TYPE catv_11510_rec_type IS RECORD (
27 id NUMBER,
28 chr_id NUMBER,
29 cle_id NUMBER,
30 cat_id NUMBER,
31 object_version_number NUMBER,
32 sfwt_flag OKC_K_ARTICLES_V.SFWT_FLAG%TYPE,
33 sav_sae_id NUMBER,
34 sav_sav_release OKC_K_ARTICLES_V.SAV_SAV_RELEASE%TYPE,
35 sbt_code OKC_K_ARTICLES_V.SBT_CODE%TYPE,
36 dnz_chr_id NUMBER,
37 comments OKC_K_ARTICLES_V.COMMENTS%TYPE,
38 fulltext_yn OKC_K_ARTICLES_V.FULLTEXT_YN%TYPE,
39 variation_description OKC_K_ARTICLES_V.VARIATION_DESCRIPTION%TYPE,
40 name OKC_K_ARTICLES_V.NAME%TYPE,
41 -- text ... commented out to treat empty CLOB as an of empty content:
42 -- if need to nullify it then nullify contents, not the pointer
43 -- text OKC_K_ARTICLES_V.TEXT%TYPE := OKC_API.G_MISS_CHAR,
44 --+Hand code start
45 text OKC_K_ARTICLES_V.TEXT%TYPE,
46 --+Hand code end
47 attribute_category OKC_K_ARTICLES_V.ATTRIBUTE_CATEGORY%TYPE,
48 attribute1 OKC_K_ARTICLES_V.ATTRIBUTE1%TYPE,
49 attribute2 OKC_K_ARTICLES_V.ATTRIBUTE2%TYPE,
50 attribute3 OKC_K_ARTICLES_V.ATTRIBUTE3%TYPE,
51 attribute4 OKC_K_ARTICLES_V.ATTRIBUTE4%TYPE,
52 attribute5 OKC_K_ARTICLES_V.ATTRIBUTE5%TYPE,
53 attribute6 OKC_K_ARTICLES_V.ATTRIBUTE6%TYPE,
54 attribute7 OKC_K_ARTICLES_V.ATTRIBUTE7%TYPE,
55 attribute8 OKC_K_ARTICLES_V.ATTRIBUTE8%TYPE,
56 attribute9 OKC_K_ARTICLES_V.ATTRIBUTE9%TYPE,
57 attribute10 OKC_K_ARTICLES_V.ATTRIBUTE10%TYPE,
58 attribute11 OKC_K_ARTICLES_V.ATTRIBUTE11%TYPE,
59 attribute12 OKC_K_ARTICLES_V.ATTRIBUTE12%TYPE,
60 attribute13 OKC_K_ARTICLES_V.ATTRIBUTE13%TYPE,
61 attribute14 OKC_K_ARTICLES_V.ATTRIBUTE14%TYPE,
62 attribute15 OKC_K_ARTICLES_V.ATTRIBUTE15%TYPE,
63 cat_type OKC_K_ARTICLES_V.CAT_TYPE%TYPE,
64 created_by NUMBER,
65 creation_date OKC_K_ARTICLES_V.CREATION_DATE%TYPE,
66 last_updated_by NUMBER,
67 last_update_date OKC_K_ARTICLES_V.LAST_UPDATE_DATE%TYPE,
68 last_update_login NUMBER,
69 -- new 11i10 columns
70 -- defaulted during insert based on App_Id
71 document_type OKC_K_ARTICLES_B.DOCUMENT_TYPE%TYPE,
72 document_id NUMBER ,
73
74 source_flag VARCHAR2(1) ,
75 mandatory_yn OKC_K_ARTICLES_B.mandatory_yn%TYPE ,
76 scn_id NUMBER ,
77 label OKC_K_ARTICLES_B.label%TYPE ,
78 amendment_description OKC_K_ARTICLES_B.amendment_description%TYPE ,
79 amendment_operation_code OKC_K_ARTICLES_B.amendment_operation_code%TYPE ,
80 article_version_id NUMBER ,
81 change_nonstd_yn OKC_K_ARTICLES_B.change_nonstd_yn%TYPE ,
82 orig_system_reference_code OKC_K_ARTICLES_B.orig_system_reference_code%TYPE ,
83 orig_system_reference_id1 NUMBER ,
84 orig_system_reference_id2 NUMBER ,
85 display_sequence NUMBER ,
86 print_text_yn OKC_K_ARTICLES_B.print_text_yn%TYPE ,
87 summary_amend_operation_code OKC_K_ARTICLES_B.summary_amend_operation_code%TYPE ,
88 ref_article_id NUMBER ,
89 ref_article_version_id NUMBER,
90 b_sav_sae_id NUMBER,
91 last_amended_by OKC_K_ARTICLES_B.LAST_AMENDED_BY%TYPE,
92 last_amendment_date OKC_K_ARTICLES_B.LAST_AMENDMENT_DATE%TYPE
93 );
94 gi_catv_rec catv_11510_rec_type;
95
96 /*
97 --
98 -- reset some columns procedures after "before user hooks"
99 --
100 procedure reset(p_catv_rec IN catv_rec_type) is
101 begin
102 gi_catv_rec.id := p_catv_rec.id;
103 gi_catv_rec.object_version_number := p_catv_rec.object_version_number;
104 gi_catv_rec.created_by := p_catv_rec.created_by;
105 gi_catv_rec.creation_date := p_catv_rec.creation_date;
106 gi_catv_rec.last_updated_by := p_catv_rec.last_updated_by;
107 gi_catv_rec.last_update_date := p_catv_rec.last_update_date;
108 gi_catv_rec.last_update_login := p_catv_rec.last_update_login;
109 end reset;
110 procedure reset(p_atnv_rec IN atnv_rec_type) is
111 begin
112 g_atnv_rec.id := p_atnv_rec.id;
113 g_atnv_rec.object_version_number := p_atnv_rec.object_version_number;
114 g_atnv_rec.created_by := p_atnv_rec.created_by;
115 g_atnv_rec.creation_date := p_atnv_rec.creation_date;
116 g_atnv_rec.last_updated_by := p_atnv_rec.last_updated_by;
117 g_atnv_rec.last_update_date := p_atnv_rec.last_update_date;
118 g_atnv_rec.last_update_login := p_atnv_rec.last_update_login;
119 end reset;
120 */
121 PROCEDURE Flip_GMISS_Record ;
122
123 PROCEDURE Dump_Rec( p_catv_rec catv_11510_rec_type ) IS
124 PROCEDURE Print( str VARCHAR2 ) IS
125 BEGIN
126 okc_debug.log( str, 2 );
127 -- Dbms_Output.Put_line( str );
128 END;
129 BEGIN
130 Print( '-----------------------------------------------------------------');
131 Print( 'Dump of CATV_REC structure:');
132 Print( ' id=['||p_catv_rec.id||']');
133 Print( ' chr_id=['||p_catv_rec.chr_id||']');
134 Print( ' cle_id=['||p_catv_rec.cle_id||']');
135 Print( ' cat_id=['||p_catv_rec.cat_id||']');
136 Print( ' object_version_number=['||p_catv_rec.object_version_number||']');
137 Print( ' sfwt_flag=['||p_catv_rec.sfwt_flag||']');
138 Print( ' sav_sae_id=['||p_catv_rec.sav_sae_id||']');
139 Print( ' sav_sav_release=['||p_catv_rec.sav_sav_release||']');
140 Print( ' sbt_code=['||p_catv_rec.sbt_code||']');
141 Print( ' dnz_chr_id=['||p_catv_rec.dnz_chr_id||']');
142 Print( ' comments=['||p_catv_rec.comments||']');
143 Print( ' fulltext_yn=['||p_catv_rec.fulltext_yn||']');
144 Print( ' variation_description=['||p_catv_rec.variation_description||']');
145 Print( ' name=['||p_catv_rec.name||']');
146 Print( ' text=['||Dbms_Lob.Substr(p_catv_rec.text,80,1)||'...]');
147 Print( ' cat_type=['||p_catv_rec.cat_type||']');
148 Print( ' document_type=['||p_catv_rec.document_type||']');
149 Print( ' document_id=['||p_catv_rec.document_id||']');
150 Print( ' source_flag=['||p_catv_rec.source_flag||']');
151 Print( ' mandatory_yn=['||p_catv_rec.mandatory_yn||']');
152 Print( ' scn_id=['||p_catv_rec.scn_id||']');
153 Print( ' label=['||p_catv_rec.label||']');
154 Print( ' amendment_description=['||p_catv_rec.amendment_description||']');
155 Print( ' amendment_operation_code=['||p_catv_rec.amendment_operation_code||']');
156 Print( ' article_version_id=['||p_catv_rec.article_version_id||']');
157 Print( ' change_nonstd_yn=['||p_catv_rec.change_nonstd_yn||']');
158 Print( ' orig_system_reference_code=['||p_catv_rec.orig_system_reference_code||']');
159 Print( ' orig_system_reference_id1=['||p_catv_rec.orig_system_reference_id1||']');
160 Print( ' orig_system_reference_id2=['||p_catv_rec.orig_system_reference_id2||']');
161 Print( ' display_sequence=['||p_catv_rec.display_sequence||']');
162 Print( ' print_text_yn=['||p_catv_rec.print_text_yn||']');
163 Print( ' summary_amend_operation_code=['||p_catv_rec.summary_amend_operation_code||']');
164 Print( ' ref_article_id=['||p_catv_rec.ref_article_id||']');
165 Print( ' ref_article_version_id=['||p_catv_rec.ref_article_version_id||']');
166 Print( ' b_sav_sae_id=['||p_catv_rec.b_sav_sae_id||']');
167 END;
168
169 PROCEDURE Dump_Rec( p_catv_rec catv_rec_type ) IS
170 PROCEDURE Print( str VARCHAR2 ) IS
171 BEGIN
172 okc_debug.log( str, 2 );
173 -- Dbms_Output.Put_line( str );
174 END;
175 BEGIN
176 Print( '-----------------------------------------------------------------');
177 Print( 'Dump of CATV_REC structure:');
178 Print( ' id=['||p_catv_rec.id||']');
179 Print( ' chr_id=['||p_catv_rec.chr_id||']');
180 Print( ' cle_id=['||p_catv_rec.cle_id||']');
181 Print( ' cat_id=['||p_catv_rec.cat_id||']');
182 Print( ' object_version_number=['||p_catv_rec.object_version_number||']');
183 Print( ' sfwt_flag=['||p_catv_rec.sfwt_flag||']');
184 Print( ' sav_sae_id=['||p_catv_rec.sav_sae_id||']');
185 Print( ' sav_sav_release=['||p_catv_rec.sav_sav_release||']');
186 Print( ' sbt_code=['||p_catv_rec.sbt_code||']');
187 Print( ' dnz_chr_id=['||p_catv_rec.dnz_chr_id||']');
188 Print( ' comments=['||p_catv_rec.comments||']');
189 Print( ' fulltext_yn=['||p_catv_rec.fulltext_yn||']');
190 Print( ' variation_description=['||p_catv_rec.variation_description||']');
191 Print( ' name=['||p_catv_rec.name||']');
192 Print( ' text=['||Dbms_Lob.Substr(p_catv_rec.text,80,1)||'...]');
193 Print( ' cat_type=['||p_catv_rec.cat_type||']');
194 END;
195
196 ---------------------------------------------------------------------------
197 -- FUNCTION get_rec for: OKC_K_ARTICLES_V
198 ---------------------------------------------------------------------------
199 FUNCTION get_rec (
200 p_id IN NUMBER,
201 p_major_version IN NUMBER := NULL,
202 x_no_data_found OUT NOCOPY BOOLEAN
203 ) RETURN catv_rec_type IS
204 CURSOR okc_catv_pk_csr (p_id IN NUMBER) IS
205 SELECT
206 ID,
207 CHR_ID,
208 CLE_ID,
209 CAT_ID,
210 OBJECT_VERSION_NUMBER,
211 SFWT_FLAG,
212 SAV_SAE_ID,
213 SAV_SAV_RELEASE,
214 SBT_CODE,
215 DNZ_CHR_ID,
216 COMMENTS,
217 FULLTEXT_YN,
218 VARIATION_DESCRIPTION,
219 NAME,
220 TEXT,
221 ATTRIBUTE_CATEGORY,
222 ATTRIBUTE1,
223 ATTRIBUTE2,
224 ATTRIBUTE3,
225 ATTRIBUTE4,
226 ATTRIBUTE5,
227 ATTRIBUTE6,
228 ATTRIBUTE7,
229 ATTRIBUTE8,
230 ATTRIBUTE9,
231 ATTRIBUTE10,
232 ATTRIBUTE11,
233 ATTRIBUTE12,
234 ATTRIBUTE13,
235 ATTRIBUTE14,
236 ATTRIBUTE15,
237 CAT_TYPE,
238 CREATED_BY,
239 CREATION_DATE,
240 LAST_UPDATED_BY,
241 LAST_UPDATE_DATE,
242 LAST_UPDATE_LOGIN
243 FROM Okc_K_Articles_V
244 WHERE id = p_id;
245 CURSOR okc_catv_h_pk_csr (p_id IN NUMBER, p_major_version NUMBER) IS
246 SELECT
247 ID,
248 CHR_ID,
249 CLE_ID,
250 CAT_ID,
251 OBJECT_VERSION_NUMBER,
252 SFWT_FLAG,
253 SAV_SAE_ID,
254 SAV_SAV_RELEASE,
255 SBT_CODE,
256 DNZ_CHR_ID,
257 COMMENTS,
258 FULLTEXT_YN,
259 VARIATION_DESCRIPTION,
260 NAME,
261 TEXT,
262 ATTRIBUTE_CATEGORY,
263 ATTRIBUTE1,
264 ATTRIBUTE2,
265 ATTRIBUTE3,
266 ATTRIBUTE4,
267 ATTRIBUTE5,
268 ATTRIBUTE6,
269 ATTRIBUTE7,
270 ATTRIBUTE8,
271 ATTRIBUTE9,
272 ATTRIBUTE10,
273 ATTRIBUTE11,
274 ATTRIBUTE12,
275 ATTRIBUTE13,
276 ATTRIBUTE14,
277 ATTRIBUTE15,
278 CAT_TYPE,
279 CREATED_BY,
280 CREATION_DATE,
281 LAST_UPDATED_BY,
282 LAST_UPDATE_DATE,
283 LAST_UPDATE_LOGIN
284 FROM Okc_K_Articles_HV
285 WHERE id = p_id AND major_version=p_major_version;
286 l_catv_rec catv_rec_type;
287 BEGIN
288
289 IF (l_debug = 'Y') THEN
290 okc_debug.Set_Indentation('KART');
291 okc_debug.log('1000: Entered get_rec', 2);
292 END IF;
293
294 x_no_data_found := TRUE;
295 -- Get current database values
296 IF p_major_version IS NULL THEN
297 OPEN okc_catv_pk_csr (p_id);
298 FETCH okc_catv_pk_csr INTO
299 l_catv_rec.ID,
300 l_catv_rec.CHR_ID,
301 l_catv_rec.CLE_ID,
302 l_catv_rec.CAT_ID,
303 l_catv_rec.OBJECT_VERSION_NUMBER,
304 l_catv_rec.SFWT_FLAG,
305 l_catv_rec.SAV_SAE_ID,
306 l_catv_rec.SAV_SAV_RELEASE,
307 l_catv_rec.SBT_CODE,
308 l_catv_rec.DNZ_CHR_ID,
309 l_catv_rec.COMMENTS,
310 l_catv_rec.FULLTEXT_YN,
311 l_catv_rec.VARIATION_DESCRIPTION,
312 l_catv_rec.NAME,
313 l_catv_rec.TEXT,
314 l_catv_rec.ATTRIBUTE_CATEGORY,
315 l_catv_rec.ATTRIBUTE1,
316 l_catv_rec.ATTRIBUTE2,
317 l_catv_rec.ATTRIBUTE3,
318 l_catv_rec.ATTRIBUTE4,
319 l_catv_rec.ATTRIBUTE5,
320 l_catv_rec.ATTRIBUTE6,
321 l_catv_rec.ATTRIBUTE7,
322 l_catv_rec.ATTRIBUTE8,
323 l_catv_rec.ATTRIBUTE9,
324 l_catv_rec.ATTRIBUTE10,
325 l_catv_rec.ATTRIBUTE11,
326 l_catv_rec.ATTRIBUTE12,
327 l_catv_rec.ATTRIBUTE13,
328 l_catv_rec.ATTRIBUTE14,
329 l_catv_rec.ATTRIBUTE15,
330 l_catv_rec.CAT_TYPE,
331 l_catv_rec.CREATED_BY,
332 l_catv_rec.CREATION_DATE,
333 l_catv_rec.LAST_UPDATED_BY,
334 l_catv_rec.LAST_UPDATE_DATE,
335 l_catv_rec.LAST_UPDATE_LOGIN;
336 x_no_data_found := okc_catv_pk_csr%NOTFOUND;
337 CLOSE okc_catv_pk_csr;
338 ELSE
339 OPEN okc_catv_h_pk_csr (p_id, p_major_version);
340 FETCH okc_catv_h_pk_csr INTO
341 l_catv_rec.ID,
342 l_catv_rec.CHR_ID,
343 l_catv_rec.CLE_ID,
344 l_catv_rec.CAT_ID,
345 l_catv_rec.OBJECT_VERSION_NUMBER,
349 l_catv_rec.SBT_CODE,
346 l_catv_rec.SFWT_FLAG,
347 l_catv_rec.SAV_SAE_ID,
348 l_catv_rec.SAV_SAV_RELEASE,
350 l_catv_rec.DNZ_CHR_ID,
351 l_catv_rec.COMMENTS,
352 l_catv_rec.FULLTEXT_YN,
353 l_catv_rec.VARIATION_DESCRIPTION,
354 l_catv_rec.NAME,
355 l_catv_rec.TEXT,
356 l_catv_rec.ATTRIBUTE_CATEGORY,
357 l_catv_rec.ATTRIBUTE1,
358 l_catv_rec.ATTRIBUTE2,
359 l_catv_rec.ATTRIBUTE3,
360 l_catv_rec.ATTRIBUTE4,
361 l_catv_rec.ATTRIBUTE5,
362 l_catv_rec.ATTRIBUTE6,
363 l_catv_rec.ATTRIBUTE7,
364 l_catv_rec.ATTRIBUTE8,
365 l_catv_rec.ATTRIBUTE9,
366 l_catv_rec.ATTRIBUTE10,
367 l_catv_rec.ATTRIBUTE11,
368 l_catv_rec.ATTRIBUTE12,
369 l_catv_rec.ATTRIBUTE13,
370 l_catv_rec.ATTRIBUTE14,
371 l_catv_rec.ATTRIBUTE15,
372 l_catv_rec.CAT_TYPE,
373 l_catv_rec.CREATED_BY,
374 l_catv_rec.CREATION_DATE,
375 l_catv_rec.LAST_UPDATED_BY,
376 l_catv_rec.LAST_UPDATE_DATE,
377 l_catv_rec.LAST_UPDATE_LOGIN;
378 x_no_data_found := okc_catv_h_pk_csr%NOTFOUND;
379 CLOSE okc_catv_h_pk_csr;
380 END IF;
381
382 IF (l_debug = 'Y') THEN
383 okc_debug.log('1000: Leaving Get_Rec ', 2);
384 okc_debug.Reset_Indentation;
385 END IF;
386
387 RETURN(l_catv_rec);
388
389 END get_rec;
390
391 FUNCTION get_rec (
392 p_id IN NUMBER,
393 p_major_version IN NUMBER := NULL
394 ) RETURN catv_rec_type IS
395 l_row_notfound BOOLEAN := TRUE;
396 BEGIN
397 RETURN( get_rec(p_id, p_major_version, l_row_notfound) );
398 END get_rec;
399
400 FUNCTION migrate(
401 p_catv_rec IN catv_rec_type,
402 p_major_version IN NUMBER := NULL
403 ) RETURN catv_11510_rec_type IS
404 x_catv_rec catv_11510_rec_type;
405 l_return_status VARCHAR2(1) := G_RET_STS_SUCCESS;
406 BEGIN
407 IF (l_debug = 'Y') THEN
408 okc_debug.Set_Indentation('KART');
409 okc_debug.log('1000: Entered migrate1', 2);
410 END IF;
411
412 IF p_catv_rec.ID IS NOT NULL AND p_catv_rec.id <> G_MISS_NUM THEN
413 IF (l_debug = 'Y') THEN
414 okc_debug.log('1000: cat_id IS NOT NULL('||p_catv_rec.ID||')', 2);
415 END IF;
416 -- Get current database values
417 l_return_status := OKC_K_ARTICLES_PVT.Get_Rec(
418 p_id => p_catv_rec.id,
419 p_major_version => p_major_version,
420 x_document_type => x_catv_rec.document_type,
421 x_document_id => x_catv_rec.document_id,
422 x_source_flag => x_catv_rec.source_flag,
423 x_mandatory_yn => x_catv_rec.mandatory_yn,
424 x_scn_id => x_catv_rec.scn_id,
425 x_label => x_catv_rec.label,
426 x_amendment_description => x_catv_rec.amendment_description,
427 x_amendment_operation_code => x_catv_rec.amendment_operation_code,
428 x_article_version_id => x_catv_rec.article_version_id,
429 x_change_nonstd_yn => x_catv_rec.change_nonstd_yn,
430 x_orig_system_reference_code => x_catv_rec.orig_system_reference_code,
431 x_orig_system_reference_id1 => x_catv_rec.orig_system_reference_id1,
432 x_orig_system_reference_id2 => x_catv_rec.orig_system_reference_id2,
433 x_display_sequence => x_catv_rec.display_sequence,
434 x_print_text_yn => x_catv_rec.print_text_yn,
435 x_summary_amend_operation_code => x_catv_rec.summary_amend_operation_code,
436 x_ref_article_id => x_catv_rec.ref_article_id,
437 x_ref_article_version_id => x_catv_rec.ref_article_version_id,
438 -- setting rest of attributes to the same record - but they will be overwritten below
439 x_cle_id => x_catv_rec.cle_id,
440 x_sav_sae_id => x_catv_rec.b_sav_sae_id,
441 x_attribute_category => x_catv_rec.attribute_category,
442 x_attribute1 => x_catv_rec.attribute1,
443 x_attribute2 => x_catv_rec.attribute2,
444 x_attribute3 => x_catv_rec.attribute3,
445 x_attribute4 => x_catv_rec.attribute4,
446 x_attribute5 => x_catv_rec.attribute5,
447 x_attribute6 => x_catv_rec.attribute6,
448 x_attribute7 => x_catv_rec.attribute7,
449 x_attribute8 => x_catv_rec.attribute8,
450 x_attribute9 => x_catv_rec.attribute9,
451 x_attribute10 => x_catv_rec.attribute10,
452 x_attribute11 => x_catv_rec.attribute11,
453 x_attribute12 => x_catv_rec.attribute12,
454 x_attribute13 => x_catv_rec.attribute13,
455 x_attribute14 => x_catv_rec.attribute14,
456 x_attribute15 => x_catv_rec.attribute15,
457 x_object_version_number => x_catv_rec.object_version_number,
458 x_created_by => x_catv_rec.created_by,
459 x_creation_date => x_catv_rec.creation_date,
463 x_last_amended_by => x_catv_rec.last_amended_by,
460 x_last_updated_by => x_catv_rec.last_updated_by,
461 x_last_update_login => x_catv_rec.last_update_login,
462 x_last_update_date => x_catv_rec.last_update_date,
464 x_last_amendment_date => x_catv_rec.last_amendment_date
465 );
466 END IF;
467 x_catv_rec.ID := p_catv_rec.ID;
468 x_catv_rec.CHR_ID := p_catv_rec.CHR_ID;
469 x_catv_rec.CLE_ID := p_catv_rec.CLE_ID;
470 x_catv_rec.CAT_ID := p_catv_rec.CAT_ID;
471 x_catv_rec.object_version_number := p_catv_rec.object_version_number;
472 x_catv_rec.SFWT_FLAG := p_catv_rec.SFWT_FLAG;
473 x_catv_rec.SAV_SAE_ID := p_catv_rec.SAV_SAE_ID;
474 x_catv_rec.SAV_SAV_RELEASE := p_catv_rec.SAV_SAV_RELEASE;
475 x_catv_rec.SBT_CODE := p_catv_rec.SBT_CODE;
476 x_catv_rec.DNZ_CHR_ID := p_catv_rec.DNZ_CHR_ID;
477 x_catv_rec.COMMENTS := p_catv_rec.COMMENTS;
478 x_catv_rec.FULLTEXT_YN := p_catv_rec.FULLTEXT_YN;
479 x_catv_rec.VARIATION_DESCRIPTION := p_catv_rec.VARIATION_DESCRIPTION;
480 x_catv_rec.NAME := p_catv_rec.NAME;
481 x_catv_rec.TEXT := p_catv_rec.TEXT;
482 x_catv_rec.ATTRIBUTE_CATEGORY := p_catv_rec.ATTRIBUTE_CATEGORY;
483 x_catv_rec.ATTRIBUTE1 := p_catv_rec.ATTRIBUTE1;
484 x_catv_rec.ATTRIBUTE2 := p_catv_rec.ATTRIBUTE2;
485 x_catv_rec.ATTRIBUTE3 := p_catv_rec.ATTRIBUTE3;
486 x_catv_rec.ATTRIBUTE4 := p_catv_rec.ATTRIBUTE4;
487 x_catv_rec.ATTRIBUTE5 := p_catv_rec.ATTRIBUTE5;
488 x_catv_rec.ATTRIBUTE6 := p_catv_rec.ATTRIBUTE6;
489 x_catv_rec.ATTRIBUTE7 := p_catv_rec.ATTRIBUTE7;
490 x_catv_rec.ATTRIBUTE8 := p_catv_rec.ATTRIBUTE8;
491 x_catv_rec.ATTRIBUTE9 := p_catv_rec.ATTRIBUTE9;
492 x_catv_rec.ATTRIBUTE10 := p_catv_rec.ATTRIBUTE10;
493 x_catv_rec.ATTRIBUTE11 := p_catv_rec.ATTRIBUTE11;
494 x_catv_rec.ATTRIBUTE12 := p_catv_rec.ATTRIBUTE12;
495 x_catv_rec.ATTRIBUTE13 := p_catv_rec.ATTRIBUTE13;
496 x_catv_rec.ATTRIBUTE14 := p_catv_rec.ATTRIBUTE14;
497 x_catv_rec.ATTRIBUTE15 := p_catv_rec.ATTRIBUTE15;
498 x_catv_rec.CAT_TYPE := p_catv_rec.CAT_TYPE;
499 x_catv_rec.CREATED_BY := p_catv_rec.CREATED_BY;
500 x_catv_rec.CREATION_DATE := p_catv_rec.CREATION_DATE;
501 x_catv_rec.LAST_UPDATED_BY := p_catv_rec.LAST_UPDATED_BY;
502 x_catv_rec.LAST_UPDATE_DATE := p_catv_rec.LAST_UPDATE_DATE;
503 x_catv_rec.LAST_UPDATE_LOGIN := p_catv_rec.LAST_UPDATE_LOGIN;
504
505 IF (l_debug = 'Y') THEN
506 okc_debug.log('1000: Leaving migrate1', 2);
507 okc_debug.Reset_Indentation;
508 END IF;
509
510 RETURN x_catv_rec;
511 END migrate;
512
513 FUNCTION migrate(p_catv_rec IN catv_11510_rec_type) RETURN catv_rec_type IS
514 x_catv_rec catv_rec_type;
515 BEGIN
516 IF (l_debug = 'Y') THEN
517 okc_debug.Set_Indentation('KART');
518 okc_debug.log('1000: Entered migrate2', 2);
519 END IF;
520 x_catv_rec.ID := p_catv_rec.ID;
521 x_catv_rec.CHR_ID := p_catv_rec.CHR_ID;
522 x_catv_rec.CLE_ID := p_catv_rec.CLE_ID;
523 x_catv_rec.CAT_ID := p_catv_rec.CAT_ID;
524 x_catv_rec.object_version_number := p_catv_rec.object_version_number;
525 x_catv_rec.SFWT_FLAG := p_catv_rec.SFWT_FLAG;
526 x_catv_rec.SAV_SAE_ID := p_catv_rec.SAV_SAE_ID;
527 x_catv_rec.SAV_SAV_RELEASE := p_catv_rec.SAV_SAV_RELEASE;
528 x_catv_rec.SBT_CODE := p_catv_rec.SBT_CODE;
529 x_catv_rec.DNZ_CHR_ID := p_catv_rec.DNZ_CHR_ID;
530 x_catv_rec.COMMENTS := p_catv_rec.COMMENTS;
531 x_catv_rec.FULLTEXT_YN := p_catv_rec.FULLTEXT_YN;
532 x_catv_rec.VARIATION_DESCRIPTION := p_catv_rec.VARIATION_DESCRIPTION;
533 x_catv_rec.NAME := p_catv_rec.NAME;
534 x_catv_rec.TEXT := p_catv_rec.TEXT;
535 x_catv_rec.ATTRIBUTE_CATEGORY := p_catv_rec.ATTRIBUTE_CATEGORY;
536 x_catv_rec.ATTRIBUTE1 := p_catv_rec.ATTRIBUTE1;
537 x_catv_rec.ATTRIBUTE2 := p_catv_rec.ATTRIBUTE2;
538 x_catv_rec.ATTRIBUTE3 := p_catv_rec.ATTRIBUTE3;
539 x_catv_rec.ATTRIBUTE4 := p_catv_rec.ATTRIBUTE4;
540 x_catv_rec.ATTRIBUTE5 := p_catv_rec.ATTRIBUTE5;
541 x_catv_rec.ATTRIBUTE6 := p_catv_rec.ATTRIBUTE6;
542 x_catv_rec.ATTRIBUTE7 := p_catv_rec.ATTRIBUTE7;
543 x_catv_rec.ATTRIBUTE8 := p_catv_rec.ATTRIBUTE8;
544 x_catv_rec.ATTRIBUTE9 := p_catv_rec.ATTRIBUTE9;
545 x_catv_rec.ATTRIBUTE10 := p_catv_rec.ATTRIBUTE10;
546 x_catv_rec.ATTRIBUTE11 := p_catv_rec.ATTRIBUTE11;
547 x_catv_rec.ATTRIBUTE12 := p_catv_rec.ATTRIBUTE12;
548 x_catv_rec.ATTRIBUTE13 := p_catv_rec.ATTRIBUTE13;
549 x_catv_rec.ATTRIBUTE14 := p_catv_rec.ATTRIBUTE14;
550 x_catv_rec.ATTRIBUTE15 := p_catv_rec.ATTRIBUTE15;
551 x_catv_rec.CAT_TYPE := p_catv_rec.CAT_TYPE;
552 x_catv_rec.CREATED_BY := p_catv_rec.CREATED_BY;
553 x_catv_rec.CREATION_DATE := p_catv_rec.CREATION_DATE;
554 x_catv_rec.LAST_UPDATED_BY := p_catv_rec.LAST_UPDATED_BY;
555 x_catv_rec.LAST_UPDATE_DATE := p_catv_rec.LAST_UPDATE_DATE;
556 x_catv_rec.LAST_UPDATE_LOGIN := p_catv_rec.LAST_UPDATE_LOGIN;
557 IF (l_debug = 'Y') THEN
558 okc_debug.log('1000: Leaving migrate2', 2);
559 okc_debug.Reset_Indentation;
560 END IF;
561
562 RETURN x_catv_rec;
563 END migrate;
564
565 -- Start of comments
566 --
567 -- Procedure Name : add_language
568 -- Description :
569 -- Business Rules :
570 -- Parameters :
571 -- Version : 1.0
575 NULL;
572 -- End of comments
573 PROCEDURE add_language is
574 BEGIN
576 -- OKC_K_ARTICLE_PVT.add_language_k_article;
577 END add_language;
578
579 FUNCTION Get_Unassign_Section_ID(
580 p_api_version IN NUMBER,
581 x_return_status OUT NOCOPY VARCHAR2,
582 x_msg_count OUT NOCOPY NUMBER,
583 x_msg_data OUT NOCOPY VARCHAR2,
584 p_doc_id IN NUMBER,
585 p_doc_type IN VARCHAR2
586 ) RETURN NUMBER IS
587 l_doc_type VARCHAR2(20);
588 l_doc_id NUMBER;
589 l_scn_id NUMBER;
590 l_tmpl_id NUMBER;
591 l_tmpl_name VARCHAR2(100);
592 l_org_id NUMBER;
593 CURSOR org_id_crs IS
594 SELECT authoring_org_id
595 FROM OKC_K_HEADERS_B WHERE document_id=p_doc_id;
596 CURSOR get_unasgn_scn_id_crs IS
597 SELECT ID FROM OKC_SECTIONS_B
598 WHERE document_type = p_doc_type AND document_id = p_doc_id
599 AND scn_code = G_UNASSIGNED_SECTION_CODE;
600 CURSOR get_doc_usage_crs IS
601 SELECT TEMPLATE_ID FROM okc_template_usages_v
602 WHERE document_type = p_doc_type AND document_id = p_doc_id ;
603 CURSOR get_apps_upg_tmpl_id_crs IS
604 SELECT TEMPLATE_ID FROM okc_terms_templates_all
605 WHERE template_name = l_tmpl_name and nvl(org_id,-99)=nvl(l_org_id,-99);
606 BEGIN
607 IF (l_debug = 'Y') THEN
608 okc_debug.Set_Indentation(G_PKG_NAME);
609 okc_debug.log('1000: Entered Get_Unassign_Section_ID', 2);
610 END IF;
611
612 x_return_status := G_RET_STS_SUCCESS;
613
614 OPEN get_unasgn_scn_id_crs;
615 FETCH get_unasgn_scn_id_crs INTO l_scn_id;
616 CLOSE get_unasgn_scn_id_crs;
617 IF l_scn_id IS NULL THEN
618 OKC_TERMS_UTIL_PVT.create_unassigned_section(
619 p_api_version => p_api_version,
620 p_init_msg_list => FND_API.G_FALSE,
621 p_commit => FND_API.G_FALSE,
622 x_return_status => x_return_status,
623 x_msg_data => x_msg_data,
624 x_msg_count => x_msg_count,
625 p_doc_type => p_doc_type,
626 p_doc_id => p_doc_id,
627 x_scn_id => l_scn_id
628 );
629 IF (x_return_status <> G_RET_STS_SUCCESS) then
630 IF (l_debug = 'Y') THEN
631 okc_debug.log('11400: Leaving Get_Unassign_Section_ID because of an exception in OKC_TERMS_UTIL_PVT.create_unassigned_section', 2);
632 okc_debug.Reset_Indentation;
633 END IF;
634 RETURN NULL;
635 END IF;
636 END IF;
637 OPEN get_doc_usage_crs;
638 FETCH get_doc_usage_crs INTO l_tmpl_id;
639 CLOSE get_doc_usage_crs;
640 IF l_tmpl_id IS NULL THEN
641 OPEN org_id_crs;
642 FETCH org_id_crs INTO l_org_id;
643 CLOSE org_id_crs;
644
645 l_tmpl_name := p_doc_type || '_11510_UPG_TEMPLATE';
646
647 OPEN get_apps_upg_tmpl_id_crs;
648 FETCH get_apps_upg_tmpl_id_crs INTO l_tmpl_id;
649 CLOSE get_apps_upg_tmpl_id_crs;
650 IF l_tmpl_id IS NULL THEN
651 SELECT OKC_TERMS_TEMPLATES_ALL_S.NEXTVAL
652 INTO l_tmpl_id FROM DUAL;
653 INSERT INTO OKC_TERMS_TEMPLATES_ALL(
654 TEMPLATE_NAME,
655 TEMPLATE_ID,
656 WORKING_COPY_FLAG,
657 INTENT,
658 STATUS_CODE,
659 START_DATE,
660 GLOBAL_FLAG,
661 CONTRACT_EXPERT_ENABLED,
662 DESCRIPTION,
663 ORG_ID,
664 ORIG_SYSTEM_REFERENCE_CODE,
665 HIDE_YN,
666 OBJECT_VERSION_NUMBER,
667 CREATED_BY,
668 CREATION_DATE,
669 LAST_UPDATED_BY,
670 LAST_UPDATE_LOGIN,
671 LAST_UPDATE_DATE)
672 VALUES (
673 l_tmpl_name,
674 l_tmpl_id,
675 'N',
676 Decode( p_doc_type,'OKC_BUY','B','OKE_BUY','B', 'S'),
677 'APPROVED',
678 to_date('01-01-1951','DD-MM-YYYY'),
679 'N',
680 'N',
681 'Dummy Template for 11.5.10 Upgrade',
682 l_org_id,
683 decode (p_doc_type,'OKE_SELL', 'OKC11510UPG:OKE', 'OKE_BUY', 'OKC11510UPG:OKE', 'OKC11510UPG'),
684 decode(p_doc_type,'OKS','N','Y'),
685 1,
686 Fnd_Global.User_Id,
687 trunc(sysdate),
688 Fnd_Global.User_Id,
689 Fnd_Global.Login_Id,
690 trunc(sysdate)
691 );
692
693 INSERT INTO OKC_ALLOWED_TMPL_USAGES(
694 ALLOWED_TMPL_USAGES_ID,
695 TEMPLATE_ID,
696 DOCUMENT_TYPE,
697 DEFAULT_YN,
698 OBJECT_VERSION_NUMBER,
699 CREATED_BY,
700 CREATION_DATE,
701 LAST_UPDATED_BY,
702 LAST_UPDATE_LOGIN,
703 LAST_UPDATE_DATE)
704 VALUES (
705 OKC_ALLOWED_TMPL_USAGES_S.NEXTVAL,
706 l_tmpl_id,
707 p_doc_type,
708 'N',
709 1,
710 Fnd_Global.User_Id,
711 trunc(sysdate),
712 Fnd_Global.User_Id,
713 Fnd_Global.Login_Id,
714 trunc(sysdate)
715 );
716 END IF;
717 IF l_tmpl_id IS NOT NULL THEN
721 p_commit => FND_API.G_FALSE,
718 OKC_TEMPLATE_USAGES_GRP.create_template_usages(
719 p_api_version => p_api_version,
720 p_init_msg_list => FND_API.G_FALSE,
722 x_return_status => x_return_status,
723 x_msg_data => x_msg_data,
724 x_msg_count => x_msg_count,
725 p_document_type => p_doc_type,
726 p_document_id => p_doc_id,
727 p_template_id => l_tmpl_id,
728 p_doc_numbering_scheme => NULL,
729 p_document_number => NULL,
730 p_article_effective_date => sysdate,
731 p_config_header_id => NULL,
732 p_config_revision_number => NULL,
733 p_valid_config_yn => NULL,
734 x_document_type => l_doc_type,
735 x_document_id => l_doc_id
736 );
737 IF (x_return_status <> G_RET_STS_SUCCESS) then
738 IF (l_debug = 'Y') THEN
739 okc_debug.log('11400: Leaving Get_Unassign_Section_ID because of an exception in OKC_TEMPLATE_USAGES_GRP.create_template_usages', 2);
740 okc_debug.Reset_Indentation;
741 END IF;
742 RETURN NULL;
743 END IF;
744 ELSE
745 -- It shouldn't ever happend
746 IF (l_debug = 'Y') THEN
747 okc_debug.log('11400: Leaving Get_Unassign_Section_ID because there is no UPGRADE template for '||p_doc_type, 2);
748 okc_debug.Reset_Indentation;
749 END IF;
750 OKC_API.SET_MESSAGE('OKC', 'OKC_NOTDEFINED_11510_UPG_TMPL','DOC_TYPE', p_doc_type);
751 x_return_status := G_RET_STS_UNEXP_ERROR;
752 RETURN NULL;
753 END IF;
754 END IF;
755
756 IF (l_debug = 'Y') THEN
757 okc_debug.log('1000: Leaving Get_Unassign_Section_ID ', 2);
758 okc_debug.Reset_Indentation;
759 END IF;
760
761 RETURN l_scn_id;
762 END Get_Unassign_Section_ID;
763
764 FUNCTION get_art_ver_id(p_art_id NUMBER,p_ver_num VARCHAR2)
765 RETURN NUMBER IS
766 l_art_ver_id NUMBER;
767 CURSOR get_art_ver_id_crs IS
768 SELECT article_version_id
769 FROM okc_article_versions
770 WHERE article_id=p_art_id
771 AND (nvl(sav_release, To_Char(article_version_number))=p_ver_num
772 OR p_ver_num IS NULL AND SYSDATE BETWEEN Start_date AND nvl(end_date,sysdate)
773 )
774 ;
775 BEGIN
776 OPEN get_art_ver_id_crs;
777 FETCH get_art_ver_id_crs INTO l_art_ver_id;
778 CLOSE get_art_ver_id_crs;
779 RETURN l_art_ver_id;
780 EXCEPTION
781 WHEN OTHERS THEN RETURN NULL;
782 END;
783
784 PROCEDURE Process_Non_Std_Article(
785 p_api_version IN NUMBER,
786 x_return_status OUT NOCOPY VARCHAR2,
787 x_msg_count OUT NOCOPY NUMBER,
788 x_msg_data OUT NOCOPY VARCHAR2,
789 p_catv_rec IN catv_11510_rec_type,
790 x_art_id OUT NOCOPY NUMBER,
791 x_art_ver_id OUT NOCOPY NUMBER,
792 x_std_art_id OUT NOCOPY NUMBER,
793 x_std_art_ver_id OUT NOCOPY NUMBER
794 ) IS
795 l_api_version CONSTANT NUMBER := 1;
796 l_api_name CONSTANT VARCHAR2(30) := 'Process_Non_Std_Article';
797 l_art_id NUMBER;
798 l_art_number VARCHAR2(240);
799 l_art_ver_id NUMBER;
800 l_std_yn VARCHAR2(3) := 'Y';
801 l_intent VARCHAR2(1);
802 l_txt CLOB;
803 CURSOR art_id_crs (p_id NUMBER) IS
804 SELECT t.sav_sae_id, t.article_version_id, a.standard_yn
805 FROM okc_terms_articles_v t, okc_articles_all a
806 WHERE t.id=p_id AND t.sav_sae_id=a.article_id;
807 CURSOR l_get_intent_csr(p_doc_type VARCHAR2) IS
808 SELECT intent FROM OKC_BUS_DOC_TYPES_B
809 WHERE DOCUMENT_TYPE=p_doc_type;
810 BEGIN
811 IF (l_debug = 'Y') THEN
812 okc_debug.log('11400: Entering Process_Non_Std_Article', 2);
813 END IF;
814 x_return_status := OKC_API.G_RET_STS_SUCCESS;
815 IF (p_catv_rec.id IS NOT NULL ) THEN
816 -- 1. Check current db state (is there std or nonstd)
817 OPEN art_id_crs(p_catv_rec.id);
818 FETCH art_id_crs INTO l_art_id, l_art_ver_id, l_std_yn;
819 CLOSE art_id_crs;
820 END IF;
821 -- if the procedure is called - we have non-std article
822 IF p_catv_rec.b_sav_sae_id <> G_MISS_NUM THEN
823 l_art_id := p_catv_rec.b_sav_sae_id;
824 END IF;
825 IF p_catv_rec.article_version_id <> G_MISS_NUM THEN
826 l_art_ver_id := p_catv_rec.article_version_id;
827 END IF;
828 -- if current DB art type is std - create nonstd else update it.
829 IF ( p_catv_rec.id IS NULL OR l_std_yn='Y' /*OR l_art_id<>p_catv_rec.sav_sae_id*/) THEN
830 OPEN l_get_intent_csr(p_catv_rec.document_type);
831 FETCH l_get_intent_csr INTO l_intent;
832 CLOSE l_get_intent_csr;
833
834 IF l_art_ver_id IS NULL THEN
835 l_art_ver_id := Get_Art_Ver_Id(p_catv_rec.sav_sae_id,p_catv_rec.sav_sav_release);
836 END IF;
837
838 IF (p_catv_rec.TEXT IS NULL) THEN
839 Dbms_Lob.createtemporary( l_txt, TRUE, Dbms_Lob.Session);
840 Dbms_Lob.writeappend( l_txt, 1, ' ');
841 ELSE
842 l_txt := p_catv_rec.TEXT;
843 END IF;
844
845 IF (l_debug = 'Y') THEN
846 okc_debug.log('11400: non-std article is to be created.Version id of StdArt is '||l_art_ver_id, 2);
847 END IF;
848
849 OKC_ARTICLES_GRP.create_article(
850 p_api_version => 1,
851 p_init_msg_list => FND_API.G_FALSE,
852 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
853 p_commit => FND_API.G_FALSE,
854 x_return_status => x_return_status,
855 x_msg_count => x_msg_count,
856 x_msg_data => x_msg_data,
857
858 p_article_title => p_catv_rec.name,
859 p_article_number => NULL,
860 p_standard_yn => 'N',
861 p_article_intent => l_intent,
862 p_article_language => USERENV('LANG'),
863 p_article_type => p_catv_rec.sbt_code,
864 p_orig_system_reference_code => p_catv_rec.orig_system_reference_code,
865 p_orig_system_reference_id1 => NULL,
866 p_orig_system_reference_id2 => NULL,
867 p_cz_transfer_status_flag => 'N',
868 x_article_id => x_art_id,
869 x_article_number => l_art_number,
870 -- Article Version Attributes
871 p_article_text => l_txt,
872 p_provision_yn => 'N',
873 p_insert_by_reference => 'N',
874 p_lock_text => 'N',
875 p_global_yn => 'N',
876 p_article_status => NULL,
877 p_sav_release => p_catv_rec.sav_sav_release,
878 p_start_date => NULL,
879 p_end_date => NULL,
880 p_std_article_version_id => l_art_ver_id,
881 p_display_name => p_catv_rec.name,
882 p_translated_yn => 'N',
883 p_article_description => p_catv_rec.comments,
884 p_date_approved => NULL,
885 p_default_section => NULL,
886 p_reference_source => NULL,
887 p_reference_text => NULL,
888 p_additional_instructions => NULL,
889 p_variation_description => p_catv_rec.variation_description,
890 p_v_orig_system_reference_code => p_catv_rec.orig_system_reference_code,
891 p_v_orig_system_reference_id1 => NULL,
892 p_v_orig_system_reference_id2 => NULL,
893 p_global_article_version_id => NULL,
894 x_article_version_id => x_art_ver_id
895 );
896 x_std_art_id := l_art_id;
897 x_std_art_ver_id := l_art_ver_id;
898 IF Dbms_Lob.istemporary( l_txt )=1 THEN
899 Dbms_Lob.freetemporary( l_txt );
900 END IF;
901 --------------------------------------------
902 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
903 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
904 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
905 RAISE FND_API.G_EXC_ERROR ;
906 END IF;
907 --------------------------------------------
908
909 IF (l_debug = 'Y') THEN
910 okc_debug.log('300: non-std article created.Version id is '||x_art_ver_id, 2);
911 END IF;
912
913 ELSE
914 x_art_id := l_art_id;
915 x_art_ver_id := l_art_ver_id;
916
917 IF (l_debug = 'Y') THEN
918 okc_debug.log('11400: non-std article is to be updated.Version id is '||l_art_ver_id, 2);
919 END IF;
920
921 OKC_ARTICLES_GRP.update_article(
922 p_api_version => 1,
923 p_init_msg_list => FND_API.G_FALSE,
924 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
925 p_commit => FND_API.G_FALSE,
926 x_return_status => x_return_status,
927 x_msg_count => x_msg_count,
928 x_msg_data => x_msg_data,
929 p_article_id => l_art_id,
930 p_article_title => p_catv_rec.name,
931 p_article_number => NULL,
932 p_standard_yn => NULL,
933 p_article_intent => NULL,
934 p_article_language => NULL,
935 p_article_type => p_catv_rec.sbt_code,
936 p_orig_system_reference_code => NULL,
937 p_orig_system_reference_id1 => NULL,
938 p_orig_system_reference_id2 => NULL,
939 p_cz_transfer_status_flag => NULL,
940 -- Article Version Attributes
941 p_article_version_id => l_art_ver_id,
942 p_article_text => p_catv_rec.text,
943 p_provision_yn => NULL,
944 p_insert_by_reference => NULL,
945 p_lock_text => NULL,
946 p_global_yn => NULL,
947 p_article_status => NULL,
948 p_sav_release => NULL,
949 p_start_date => NULL,
950 p_end_date => NULL,
951 p_std_article_version_id => NULL,
952 p_display_name => p_catv_rec.name,
953 p_translated_yn => NULL,
954 p_article_description => p_catv_rec.comments,
955 p_date_approved => NULL,
956 p_default_section => NULL,
957 p_reference_source => NULL,
958 p_reference_text => NULL,
959 p_additional_instructions => NULL,
960 p_variation_description => NULL,
961 p_v_orig_system_reference_code => NULL,
962 p_v_orig_system_reference_id1 => NULL,
963 p_v_orig_system_reference_id2 => NULL
964 );
965 x_std_art_id := p_catv_rec.ref_article_id;
966 x_std_art_ver_id := p_catv_rec.ref_article_version_id;
967 --------------------------------------------
968 IF (x_return_status = G_RET_STS_UNEXP_ERROR) THEN
969 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
970 ELSIF (x_return_status = G_RET_STS_ERROR) THEN
971 RAISE FND_API.G_EXC_ERROR ;
972 END IF;
973 --------------------------------------------
974
975 IF (l_debug = 'Y') THEN
976 okc_debug.log('300: non-std article updated.', 2);
977 END IF;
978
979 END IF;
980
981 -- Standard call to get message count and if count is 1, get message info.
982 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
983
984 IF (l_debug = 'Y') THEN
985 okc_debug.log('900: Leaving Process_Non_Std_Article.', 2);
986 END IF;
987
988 EXCEPTION
989 WHEN FND_API.G_EXC_ERROR THEN
990 IF (l_debug = 'Y') THEN
991 okc_debug.log('300: Leaving Process_Non_Std_Article: G_EXCEPTION_ERROR Exception', 2);
992 END IF;
993
994 IF l_get_intent_csr%ISOPEN THEN
995 CLOSE l_get_intent_csr;
996 END IF;
997
998 x_return_status := G_RET_STS_ERROR ;
999 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1000
1001 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1002 IF (l_debug = 'Y') THEN
1003 okc_debug.log('400: Leaving Process_Non_Std_Article: G_EXCEPTION_UNEXPECTED_ERROR Exception', 2);
1004 END IF;
1005
1006 IF l_get_intent_csr%ISOPEN THEN
1007 CLOSE l_get_intent_csr;
1008 END IF;
1009
1010 x_return_status := G_RET_STS_UNEXP_ERROR ;
1011 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1012
1013 WHEN OTHERS THEN
1014 IF (l_debug = 'Y') THEN
1015 okc_debug.log('500: Leaving Process_Non_Std_Article because of EXCEPTION: '||sqlerrm, 2);
1016 END IF;
1017
1018 IF l_get_intent_csr%ISOPEN THEN
1019 CLOSE l_get_intent_csr;
1020 END IF;
1021
1022 IF l_txt IS NOT NULL THEN
1023 IF Dbms_Lob.istemporary( l_txt )=1 THEN
1024 Dbms_Lob.freetemporary( l_txt );
1025 END IF;
1026 END IF;
1027 x_return_status := G_RET_STS_UNEXP_ERROR ;
1028 IF FND_MSG_PUB.Check_Msg_Level( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR ) THEN
1029 FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME, l_api_name );
1030 END IF;
1031
1032 FND_MSG_PUB.Count_And_Get(p_encoded=>'F', p_count => x_msg_count, p_data => x_msg_data );
1033
1034 END Process_Non_Std_Article;
1035
1036
1037 -------------------------------------------------
1038 -- PROCEDURE Null_Out_Record - set default values -
1039 -------------------------------------------------
1040 PROCEDURE Null_Out_Record (
1041 p_api_version IN NUMBER,
1042 x_return_status OUT NOCOPY VARCHAR2,
1043 x_msg_count OUT NOCOPY NUMBER,
1044 x_msg_data OUT NOCOPY VARCHAR2
1045 ) IS
1046 BEGIN
1047 x_return_status := OKC_API.G_RET_STS_SUCCESS;
1048
1049 IF (l_debug = 'Y') THEN
1050 okc_debug.Set_Indentation(G_PKG_NAME);
1051 okc_debug.log('11300: Entered Null_Out_Record', 2);
1052 END IF;
1053
1054 -- Primary key - Should be NULL
1055 gi_catv_rec.id := NULL;
1056
1057 IF (gi_catv_rec.sav_sae_id = G_MISS_NUM) THEN
1058 gi_catv_rec.sav_sae_id := NULL;
1059 END IF;
1060
1061 IF (gi_catv_rec.sav_sav_release = G_MISS_CHAR) THEN
1062 gi_catv_rec.sav_sav_release := NULL;
1063 END IF;
1064
1065 IF (gi_catv_rec.comments = G_MISS_CHAR) THEN
1066 gi_catv_rec.comments := NULL;
1067 END IF;
1068
1069 IF (gi_catv_rec.variation_description = G_MISS_CHAR) THEN
1070 gi_catv_rec.variation_description := NULL;
1071 END IF;
1072
1073 IF (gi_catv_rec.name = G_MISS_CHAR) THEN
1074 gi_catv_rec.name := NULL;
1075 END IF;
1076
1077 IF (gi_catv_rec.sbt_code = G_MISS_CHAR) THEN
1078 gi_catv_rec.sbt_code := NULL;
1079 END IF;
1080
1081 IF (gi_catv_rec.cat_type = G_MISS_CHAR) THEN
1082 gi_catv_rec.cat_type := NULL;
1083 END IF;
1084
1085 IF (gi_catv_rec.chr_id = G_MISS_NUM) THEN
1086 gi_catv_rec.chr_id := NULL;
1087 END IF;
1088
1089 IF (gi_catv_rec.cle_id = G_MISS_NUM) THEN
1090 gi_catv_rec.cle_id := NULL;
1091 END IF;
1092
1093 IF (gi_catv_rec.cat_id = G_MISS_NUM) THEN
1094 gi_catv_rec.cat_id := NULL;
1095 END IF;
1096
1097 IF (gi_catv_rec.dnz_chr_id = G_MISS_NUM) THEN
1098 gi_catv_rec.dnz_chr_id := NULL;
1099 END IF;
1100
1101 IF (gi_catv_rec.fulltext_yn = G_MISS_CHAR) THEN
1102 gi_catv_rec.fulltext_yn := NULL;
1103 END IF;
1104
1105 IF (gi_catv_rec.document_type = G_MISS_CHAR) THEN
1106 gi_catv_rec.document_type := NULL;
1107 END IF;
1108
1109 IF (gi_catv_rec.document_id = G_MISS_NUM) THEN
1110 gi_catv_rec.document_id := NULL;
1111 END IF;
1112
1113 IF (gi_catv_rec.source_flag = G_MISS_CHAR) THEN
1114 gi_catv_rec.source_flag := NULL;
1115 END IF;
1116
1117 IF (gi_catv_rec.mandatory_yn = G_MISS_CHAR) THEN
1118 gi_catv_rec.mandatory_yn := NULL;
1119 END IF;
1120
1121 IF (gi_catv_rec.scn_id = G_MISS_NUM) THEN
1122 gi_catv_rec.scn_id := NULL;
1123 END IF;
1124
1125 IF (gi_catv_rec.label = G_MISS_CHAR) THEN
1126 gi_catv_rec.label := NULL;
1127 END IF;
1128
1129 IF (gi_catv_rec.amendment_description = G_MISS_CHAR) THEN
1130 gi_catv_rec.amendment_description := NULL;
1131 END IF;
1132
1133 IF (gi_catv_rec.amendment_operation_code = G_MISS_CHAR) THEN
1134 gi_catv_rec.amendment_operation_code := NULL;
1135 END IF;
1136
1137 IF (gi_catv_rec.article_version_id = G_MISS_NUM) THEN
1138 gi_catv_rec.article_version_id := NULL;
1139 END IF;
1140
1141 IF (gi_catv_rec.change_nonstd_yn = G_MISS_CHAR) THEN
1142 gi_catv_rec.change_nonstd_yn := NULL;
1143 END IF;
1144
1145 IF (gi_catv_rec.orig_system_reference_code = G_MISS_CHAR) THEN
1146 gi_catv_rec.orig_system_reference_code := NULL;
1147 END IF;
1148
1149 IF (gi_catv_rec.orig_system_reference_id1 = G_MISS_NUM) THEN
1150 gi_catv_rec.orig_system_reference_id1 := NULL;
1151 END IF;
1152
1153 IF (gi_catv_rec.orig_system_reference_id2 = G_MISS_NUM) THEN
1154 gi_catv_rec.orig_system_reference_id2 := NULL;
1155 END IF;
1156
1157 IF (gi_catv_rec.display_sequence = G_MISS_NUM) THEN
1158 gi_catv_rec.display_sequence := NULL;
1159 END IF;
1160
1161 IF (gi_catv_rec.print_text_yn = G_MISS_CHAR) THEN
1162 gi_catv_rec.print_text_yn := NULL;
1163 END IF;
1164
1165 IF (gi_catv_rec.summary_amend_operation_code = G_MISS_CHAR) THEN
1166 gi_catv_rec.summary_amend_operation_code := NULL;
1167 END IF;
1168
1169 IF (gi_catv_rec.ref_article_id = G_MISS_NUM) THEN
1170 gi_catv_rec.ref_article_id := NULL;
1171 END IF;
1172
1173 IF (gi_catv_rec.ref_article_version_id = G_MISS_NUM) THEN
1174 gi_catv_rec.ref_article_version_id := NULL;
1175 END IF;
1176
1177 IF (gi_catv_rec.attribute_category = G_MISS_CHAR) THEN
1178 gi_catv_rec.attribute_category := NULL;
1179 END IF;
1180
1181 IF (gi_catv_rec.attribute1 = G_MISS_CHAR) THEN
1182 gi_catv_rec.attribute1 := NULL;
1183 END IF;
1184
1185 IF (gi_catv_rec.attribute2 = G_MISS_CHAR) THEN
1186 gi_catv_rec.attribute2 := NULL;
1187 END IF;
1188
1189 IF (gi_catv_rec.attribute3 = G_MISS_CHAR) THEN
1190 gi_catv_rec.attribute3 := NULL;
1191 END IF;
1192
1193 IF (gi_catv_rec.attribute4 = G_MISS_CHAR) THEN
1194 gi_catv_rec.attribute4 := NULL;
1195 END IF;
1196
1197 IF (gi_catv_rec.attribute5 = G_MISS_CHAR) THEN
1198 gi_catv_rec.attribute5 := NULL;
1199 END IF;
1200
1201 IF (gi_catv_rec.attribute6 = G_MISS_CHAR) THEN
1202 gi_catv_rec.attribute6 := NULL;
1203 END IF;
1204
1205 IF (gi_catv_rec.attribute7 = G_MISS_CHAR) THEN
1206 gi_catv_rec.attribute7 := NULL;
1207 END IF;
1208
1209 IF (gi_catv_rec.attribute8 = G_MISS_CHAR) THEN
1210 gi_catv_rec.attribute8 := NULL;
1211 END IF;
1212
1213 IF (gi_catv_rec.attribute9 = G_MISS_CHAR) THEN
1214 gi_catv_rec.attribute9 := NULL;
1215 END IF;
1216
1217 IF (gi_catv_rec.attribute10 = G_MISS_CHAR) THEN
1218 gi_catv_rec.attribute10 := NULL;
1219 END IF;
1220
1221 IF (gi_catv_rec.attribute11 = G_MISS_CHAR) THEN
1222 gi_catv_rec.attribute11 := NULL;
1223 END IF;
1224
1225 IF (gi_catv_rec.attribute12 = G_MISS_CHAR) THEN
1226 gi_catv_rec.attribute12 := NULL;
1227 END IF;
1228
1229 IF (gi_catv_rec.attribute13 = G_MISS_CHAR) THEN
1230 gi_catv_rec.attribute13 := NULL;
1231 END IF;
1232
1233 IF (gi_catv_rec.attribute14 = G_MISS_CHAR) THEN
1234 gi_catv_rec.attribute14 := NULL;
1235 END IF;
1236
1237 IF (gi_catv_rec.attribute15 = G_MISS_CHAR) THEN
1238 gi_catv_rec.attribute15 := NULL;
1239 END IF;
1240
1241 IF (l_debug = 'Y') THEN
1242 okc_debug.log('11400: Leaving Null_Out_Record ', 2);
1243 okc_debug.Reset_Indentation;
1244 END IF;
1245
1246 END Null_Out_Record;
1247
1248 -------------------------------------------------
1249 -- PROCEDURE Default_Record - set default values -
1250 -------------------------------------------------
1251 PROCEDURE Default_Record (
1252 p_api_version IN NUMBER,
1253 x_return_status OUT NOCOPY VARCHAR2,
1254 x_msg_count OUT NOCOPY NUMBER,
1255 x_msg_data OUT NOCOPY VARCHAR2
1256 ) IS
1257 Cursor l_get_max_seq_csr(p_doc_type VARCHAR2, p_doc_id NUMBER,p_scn_id NUMBER) IS
1258 SELECT nvl(max(display_sequence),0)+10
1259 FROM OKC_K_ARTICLES_B
1260 WHERE DOCUMENT_TYPE= p_doc_type
1261 AND DOCUMENT_ID = p_doc_id
1262 AND SCN_ID = p_scn_id;
1263 BEGIN
1264 x_return_status := OKC_API.G_RET_STS_SUCCESS;
1265
1266 IF (l_debug = 'Y') THEN
1267 okc_debug.Set_Indentation(G_PKG_NAME);
1268 okc_debug.log('11300: Entered Default_Record', 2);
1269 END IF;
1270
1271 -------------------------------------------------
1272 -- Populating/Defaulting new API attributes
1273 -------------------------------------------------
1274 IF (gi_catv_rec.document_type IS NULL) THEN
1275 OKC_TERMS_UTIL_GRP.Get_Contract_Document_Type_Id(
1276 p_api_version => p_api_version,
1277 x_return_status => x_return_status,
1278 x_msg_data => x_msg_data,
1279 x_msg_count => x_msg_count,
1280 p_chr_id => gi_catv_rec.dnz_chr_id,
1281 x_doc_id => gi_catv_rec.document_id,
1282 x_doc_type => gi_catv_rec.document_type
1283 );
1284 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1285 IF (l_debug = 'Y') THEN
1286 okc_debug.log('11400: Leaving Default_Record because of an exception in Get_Contract_Document_Type', 2);
1287 okc_debug.Reset_Indentation;
1288 END IF;
1289 RETURN;
1290 END IF;
1291 END IF;
1292
1293 IF (gi_catv_rec.document_id IS NULL) THEN
1294 gi_catv_rec.document_id := gi_catv_rec.dnz_chr_id;
1295 END IF;
1296
1297 IF (gi_catv_rec.mandatory_yn IS NULL) THEN
1298 gi_catv_rec.mandatory_yn := 'N';
1299 END IF;
1300
1301 -- if article is unassigned (it should be always for old API) it should
1302 -- be assigned to 'UNASSIGNED' section fo document
1303 IF ( gi_catv_rec.scn_id IS NULL ) THEN
1304 gi_catv_rec.scn_id := Get_Unassign_Section_ID(
1305 p_api_version => p_api_version,
1306 x_return_status => x_return_status,
1307 x_msg_data => x_msg_data,
1308 x_msg_count => x_msg_count,
1309 p_doc_id => gi_catv_rec.document_id,
1310 p_doc_type => gi_catv_rec.document_type
1311 );
1312 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1313 IF (l_debug = 'Y') THEN
1314 okc_debug.log('11400: Leaving Default_Record because of an exception in Get_Unassign_Section_ID', 2);
1315 okc_debug.Reset_Indentation;
1316 END IF;
1317 RETURN;
1318 END IF;
1319 END IF;
1320
1321 IF (gi_catv_rec.DISPLAY_SEQUENCE IS NULL) THEN
1322 OPEN l_get_max_seq_csr(gi_catv_rec.document_type,gi_catv_rec.document_id,gi_catv_rec.scn_id);
1323 FETCH l_get_max_seq_csr INTO gi_catv_rec.DISPLAY_SEQUENCE;
1324 CLOSE l_get_max_seq_csr;
1325 END IF;
1326
1327 IF (gi_catv_rec.TEXT IS NOT NULL OR gi_catv_rec.sav_sae_id IS NULL
1328 OR gi_catv_rec.cat_type = 'NSD' OR gi_catv_rec.document_type LIKE 'OKE%') THEN
1329 IF (gi_catv_rec.name IS NULL) THEN
1330 gi_catv_rec.name := 'NONSTANDARD';
1331 END IF;
1332 IF (gi_catv_rec.cat_type = 'STA' and gi_catv_rec.document_type LIKE 'OKE%') THEN
1333 gi_catv_rec.orig_system_reference_code := 'OKE';
1334 END IF;
1335
1336 Process_Non_Std_Article(
1337 p_api_version => p_api_version,
1338 x_return_status => x_return_status,
1339 x_msg_data => x_msg_data,
1340 x_msg_count => x_msg_count,
1341 p_catv_rec => gi_catv_rec,
1342 x_art_id => gi_catv_rec.b_sav_sae_id,
1343 x_art_ver_id => gi_catv_rec.article_version_id,
1344 x_std_art_id => gi_catv_rec.ref_article_id,
1345 x_std_art_ver_id => gi_catv_rec.ref_article_version_id
1346 );
1347 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1348 IF (l_debug = 'Y') THEN
1349 okc_debug.log('11400: Leaving Default_Record because of an exception in Process_Non_Std_Article', 2);
1350 okc_debug.Reset_Indentation;
1351 END IF;
1352 RETURN;
1353 END IF;
1354
1355 gi_catv_rec.FULLTEXT_YN := NULL;
1356 gi_catv_rec.VARIATION_DESCRIPTION := NULL;
1357 ELSE
1358 IF gi_catv_rec.article_version_id IS NULL THEN
1359 gi_catv_rec.article_version_id := Get_Art_Ver_Id(gi_catv_rec.sav_sae_id,gi_catv_rec.sav_sav_release);
1360 END IF;
1361 IF gi_catv_rec.b_sav_sae_id IS NULL THEN
1362 gi_catv_rec.b_sav_sae_id := gi_catv_rec.sav_sae_id;
1363 END IF;
1364 END IF;
1365
1366 -------------------------------------------------
1367
1368 IF (l_debug = 'Y') THEN
1369 okc_debug.log('11400: Leaving Default_Record ', 2);
1370 okc_debug.Reset_Indentation;
1371 END IF;
1372
1373 END Default_Record;
1374
1375 -- Start of comments
1376 --
1377 -- Procedure Name : create_k_article
1378 -- Description :
1379 -- Business Rules :
1380 -- Parameters :
1381 -- Version : 1.0
1382 -- End of comments
1383 procedure create_k_article(p_api_version IN NUMBER,
1384 p_init_msg_list IN VARCHAR2 ,
1385 x_return_status OUT NOCOPY VARCHAR2,
1386 x_msg_count OUT NOCOPY NUMBER,
1387 x_msg_data OUT NOCOPY VARCHAR2,
1388 p_catv_rec IN catv_rec_type,
1389 x_catv_rec OUT NOCOPY catv_rec_type) is
1390 l_api_name CONSTANT VARCHAR2(30) := 'CREATE_K_ARTICLE';
1391 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1392 -- l_clob clob;
1393 BEGIN
1394 l_return_status := OKC_API.START_ACTIVITY(substr(l_api_name,1,26),
1395 G_PKG_NAME,
1396 p_init_msg_list,
1397 G_API_VERSION,
1398 p_api_version,
1399 G_SCOPE,
1400 x_return_status);
1401 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1402 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1403 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1404 RAISE OKC_API.G_EXCEPTION_ERROR;
1405 END IF;
1406 --
1407 -- code for temporary clob ... start
1408 --
1409 -- if (dbms_lob.istemporary(p_catv_rec.TEXT) = 1) then
1410 -- DBMS_LOB.CREATETEMPORARY(gi_catv_rec.TEXT,FALSE,DBMS_LOB.CALL);
1411 -- l_clob := p_catv_rec.TEXT;
1412 -- DBMS_LOB.OPEN(l_clob, DBMS_LOB.LOB_READONLY);
1413 -- DBMS_LOB.OPEN(gi_catv_rec.TEXT, DBMS_LOB.LOB_READWRITE);
1414 -- DBMS_LOB.COPY(dest_lob => gi_catv_rec.TEXT,src_lob => l_clob,
1415 -- amount => dbms_lob.getlength(l_clob));
1416 -- DBMS_LOB.CLOSE(gi_catv_rec.TEXT);
1417 -- DBMS_LOB.CLOSE(l_clob);
1418 -- DBMS_LOB.freetemporary(l_clob);
1419 -- end if;
1420 --
1421 -- code for temporary clob ... end
1422 --
1423
1424 IF (l_debug = 'Y') THEN
1425 okc_debug.log('1000: Entered '||l_api_name, 2);
1426 END IF;
1427
1428 gi_catv_rec := Migrate( p_catv_rec );
1429
1430 IF (l_debug = 'Y') THEN
1431 Dump_Rec( gi_catv_rec );
1432 END IF;
1433 --
1434 -- Prepare record for Create article new group API
1435 --
1436 Null_Out_Record(
1437 p_api_version => p_api_version,
1438 x_return_status => l_return_status,
1439 x_msg_count => x_msg_count,
1440 x_msg_data => x_msg_data
1441 );
1442 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1443 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1444 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1445 RAISE OKC_API.G_EXCEPTION_ERROR;
1446 END IF;
1447
1448 Default_Record(
1449 p_api_version => p_api_version,
1450 x_return_status => l_return_status,
1451 x_msg_count => x_msg_count,
1452 x_msg_data => x_msg_data
1453 );
1454 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1455 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1456 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1457 RAISE OKC_API.G_EXCEPTION_ERROR;
1458 END IF;
1459
1460 IF (l_debug = 'Y') THEN
1461 Dump_Rec( gi_catv_rec );
1462 END IF;
1463 --------------------------------------------
1464 -- Call the INSERT_ROW for each child record
1465 --------------------------------------------
1466 --Bug 3341342 Included cat_type
1467 OKC_K_ARTICLES_GRP.create_article(
1468 p_api_version => p_api_version,
1469 p_init_msg_list => FND_API.G_FALSE,
1470 x_return_status => x_return_status,
1471 x_msg_count => x_msg_count,
1472 x_msg_data => x_msg_data,
1473 p_id => gi_catv_rec.id,
1474 p_sav_sae_id => gi_catv_rec.b_sav_sae_id,
1475 p_cat_type => gi_catv_rec.cat_type, --Bug 3341342
1476 p_document_type => gi_catv_rec.document_type,
1477 p_document_id => gi_catv_rec.document_id,
1478 p_source_flag => gi_catv_rec.source_flag,
1479 p_mandatory_yn => gi_catv_rec.mandatory_yn,
1480 p_scn_id => gi_catv_rec.scn_id,
1481 p_cle_id => gi_catv_rec.cle_id,
1482 p_label => gi_catv_rec.label,
1483 p_amendment_description => gi_catv_rec.amendment_description,
1484 p_article_version_id => gi_catv_rec.article_version_id,
1485 p_change_nonstd_yn => gi_catv_rec.change_nonstd_yn,
1486 p_orig_system_reference_code => gi_catv_rec.orig_system_reference_code,
1487 p_orig_system_reference_id1 => gi_catv_rec.orig_system_reference_id1,
1488 p_orig_system_reference_id2 => gi_catv_rec.orig_system_reference_id2,
1489 p_display_sequence => gi_catv_rec.display_sequence,
1490 p_attribute_category => gi_catv_rec.attribute_category,
1491 p_attribute1 => gi_catv_rec.attribute1,
1492 p_attribute2 => gi_catv_rec.attribute2,
1493 p_attribute3 => gi_catv_rec.attribute3,
1494 p_attribute4 => gi_catv_rec.attribute4,
1495 p_attribute5 => gi_catv_rec.attribute5,
1496 p_attribute6 => gi_catv_rec.attribute6,
1497 p_attribute7 => gi_catv_rec.attribute7,
1498 p_attribute8 => gi_catv_rec.attribute8,
1499 p_attribute9 => gi_catv_rec.attribute9,
1500 p_attribute10 => gi_catv_rec.attribute10,
1501 p_attribute11 => gi_catv_rec.attribute11,
1502 p_attribute12 => gi_catv_rec.attribute12,
1503 p_attribute13 => gi_catv_rec.attribute13,
1504 p_attribute14 => gi_catv_rec.attribute14,
1505 p_attribute15 => gi_catv_rec.attribute15,
1506 p_print_text_yn => gi_catv_rec.print_text_yn,
1507 p_ref_article_id => gi_catv_rec.ref_article_id,
1508 p_ref_article_version_id => gi_catv_rec.ref_article_version_id,
1509 x_id => gi_catv_rec.id
1510 );
1511 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1512 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1513 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1514 RAISE OKC_API.G_EXCEPTION_ERROR;
1515 END IF;
1516
1517 -- Set OUT values
1518 x_catv_rec := get_rec( gi_catv_rec.id );
1519 g_catv_rec := x_catv_rec;
1520
1521 IF (l_debug = 'Y') THEN
1522 okc_debug.log('1000: Leaving '||l_api_name, 2);
1523 Dump_Rec( x_catv_rec );
1524 END IF;
1525
1526 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1527 EXCEPTION
1528 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1529 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1530 (substr(l_api_name,1,26),
1531 G_PKG_NAME,
1532 'OKC_API.G_RET_STS_ERROR',
1533 x_msg_count,
1534 x_msg_data,
1535 G_SCOPE);
1536 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1537 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1538 (substr(l_api_name,1,26),
1539 G_PKG_NAME,
1540 'OKC_API.G_RET_STS_UNEXP_ERROR',
1541 x_msg_count,
1542 x_msg_data,
1543 G_SCOPE);
1544 WHEN OTHERS THEN
1545 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1546 (substr(l_api_name,1,26),
1547 G_PKG_NAME,
1548 'OTHERS',
1549 x_msg_count,
1550 x_msg_data,
1551 G_SCOPE);
1552 end create_k_article;
1553
1554 -- Start of comments
1555 --
1556 -- Procedure Name : create_k_article
1557 -- Description :
1558 -- Business Rules :
1559 -- Parameters :
1560 -- Version : 1.0
1561 -- End of comments
1562 procedure create_k_article(p_api_version IN NUMBER,
1563 p_init_msg_list IN VARCHAR2 ,
1564 x_return_status OUT NOCOPY VARCHAR2,
1565 x_msg_count OUT NOCOPY NUMBER,
1566 x_msg_data OUT NOCOPY VARCHAR2,
1567 p_catv_tbl IN catv_tbl_type,
1568 x_catv_tbl OUT NOCOPY catv_tbl_type) is
1569 c NUMBER;
1570 i NUMBER;
1571 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1572 BEGIN
1573 OKC_API.init_msg_list(p_init_msg_list);
1574 x_return_status:= OKC_API.G_RET_STS_SUCCESS;
1575 c:=p_catv_tbl.COUNT;
1576 if (c>0) then
1577 i := p_catv_tbl.FIRST;
1578 LOOP
1579 create_k_article
1580 (
1581 p_api_version => p_api_version,
1582 p_init_msg_list => OKC_API.G_FALSE,
1583 x_return_status => l_return_status,
1584 x_msg_count => x_msg_count,
1585 x_msg_data => x_msg_data,
1586 p_catv_rec => p_catv_tbl(i),
1587 x_catv_rec => x_catv_tbl(i)
1588 );
1589 if (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
1590 x_return_status := l_return_status;
1591 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1592 elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
1593 x_return_status := l_return_status;
1594 end if;
1595 c:=c-1;
1596 EXIT WHEN (c=0);
1597 i := p_catv_tbl.NEXT(i);
1598 END LOOP;
1599 end if;
1600 exception
1601 when others then NULL;
1602 end create_k_article;
1603
1604 -- Start of comments
1605 --
1606 -- Procedure Name : lock_k_article
1607 -- Description :
1608 -- Business Rules :
1609 -- Parameters :
1610 -- Version : 1.0
1611 -- End of comments
1612 procedure lock_k_article(p_api_version IN NUMBER,
1613 p_init_msg_list IN VARCHAR2 ,
1614 x_return_status OUT NOCOPY VARCHAR2,
1615 x_msg_count OUT NOCOPY NUMBER,
1616 x_msg_data OUT NOCOPY VARCHAR2,
1617 p_catv_rec IN catv_rec_type) is
1618 l_api_name CONSTANT VARCHAR2(30) := 'LOCK_K_ARTICLE';
1619 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1620 BEGIN
1621 l_return_status := OKC_API.START_ACTIVITY(substr(l_api_name,1,26),
1622 G_PKG_NAME,
1623 p_init_msg_list,
1624 G_API_VERSION,
1625 p_api_version,
1626 G_SCOPE,
1627 x_return_status);
1628 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1629 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1630 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1631 RAISE OKC_API.G_EXCEPTION_ERROR;
1632 END IF;
1633
1634 OKC_K_ARTICLES_GRP.lock_row(
1635 p_api_version => p_api_version,
1636 p_init_msg_list => OKC_API.G_FALSE,
1637 x_return_status => x_return_status,
1638 x_msg_count => x_msg_count,
1639 x_msg_data => x_msg_data,
1640 p_id => p_catv_rec.id,
1641 p_object_version_number => p_catv_rec.object_version_number
1642 );
1643 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1644 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1645 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1646 RAISE OKC_API.G_EXCEPTION_ERROR;
1647 END IF;
1648 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1649 EXCEPTION
1650 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1651 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1652 (substr(l_api_name,1,26),
1653 G_PKG_NAME,
1654 'OKC_API.G_RET_STS_ERROR',
1655 x_msg_count,
1656 x_msg_data,
1657 G_SCOPE);
1658 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1659 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1660 (substr(l_api_name,1,26),
1661 G_PKG_NAME,
1662 'OKC_API.G_RET_STS_UNEXP_ERROR',
1663 x_msg_count,
1664 x_msg_data,
1665 G_SCOPE);
1666 WHEN OTHERS THEN
1667 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1668 (substr(l_api_name,1,26),
1669 G_PKG_NAME,
1670 'OTHERS',
1671 x_msg_count,
1672 x_msg_data,
1673 G_SCOPE);
1674 end lock_k_article;
1675
1676 -- Start of comments
1677 --
1678 -- Procedure Name : lock_k_article
1679 -- Description :
1680 -- Business Rules :
1681 -- Parameters :
1682 -- Version : 1.0
1683 -- End of comments
1684 procedure lock_k_article(p_api_version IN NUMBER,
1685 p_init_msg_list IN VARCHAR2 ,
1686 x_return_status OUT NOCOPY VARCHAR2,
1687 x_msg_count OUT NOCOPY NUMBER,
1688 x_msg_data OUT NOCOPY VARCHAR2,
1689 p_catv_tbl IN catv_tbl_type) is
1690 i NUMBER;
1691 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1692 begin
1693 OKC_API.init_msg_list(p_init_msg_list);
1694 x_return_status:= OKC_API.G_RET_STS_SUCCESS;
1695 if (p_catv_tbl.COUNT>0) then
1696 i := p_catv_tbl.FIRST;
1697 LOOP
1698 lock_k_article(p_api_version=>p_api_version,
1699 p_init_msg_list=>OKC_API.G_FALSE,
1700 x_return_status=>l_return_status,
1701 x_msg_count=>x_msg_count,
1702 x_msg_data=>x_msg_data,
1703 p_catv_rec=>p_catv_tbl(i));
1704 if (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
1705 x_return_status := l_return_status;
1706 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1707 elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
1708 x_return_status := l_return_status;
1709 end if;
1710 EXIT WHEN (i=p_catv_tbl.LAST);
1711 i := p_catv_tbl.NEXT(i);
1712 END LOOP;
1713 end if;
1714 exception
1715 when others then NULL;
1716 end lock_k_article;
1717
1718 -------------------------------------------------
1719 -- PROCEDURE Flip_GMISS_Record - set default values -
1720 -------------------------------------------------
1721 PROCEDURE Flip_GMISS_Record IS
1722 BEGIN
1723
1724 IF (l_debug = 'Y') THEN
1725 okc_debug.Set_Indentation(G_PKG_NAME);
1726 okc_debug.log('11300: Entered Flip_GMISS_Record', 2);
1727 END IF;
1728
1729 ----------------------------------------------------------------
1730 -- Start of GMISS logic flipping
1731 ----------------------------------------------------------------
1732 IF (gi_catv_rec.chr_id = G_MISS_NUM) THEN
1733 gi_catv_rec.chr_id := NULL;
1734 ELSIF (gi_catv_rec.chr_id IS NULL) THEN
1735 gi_catv_rec.chr_id := G_MISS_NUM;
1736 END IF;
1737
1738 IF (gi_catv_rec.cle_id = G_MISS_NUM) THEN
1739 gi_catv_rec.cle_id := NULL;
1740 ELSIF (gi_catv_rec.cle_id IS NULL) THEN
1741 gi_catv_rec.cle_id := G_MISS_NUM;
1742 END IF;
1743
1744 IF (gi_catv_rec.cat_id = G_MISS_NUM) THEN
1745 gi_catv_rec.cat_id := NULL;
1746 ELSIF (gi_catv_rec.cat_id IS NULL) THEN
1747 gi_catv_rec.cat_id := G_MISS_NUM;
1748 END IF;
1749
1750 IF (gi_catv_rec.sfwt_flag = G_MISS_CHAR) THEN
1751 gi_catv_rec.sfwt_flag := NULL;
1752 ELSIF (gi_catv_rec.sfwt_flag IS NULL) THEN
1753 gi_catv_rec.sfwt_flag := G_MISS_CHAR;
1754 END IF;
1755
1756 IF (gi_catv_rec.sav_sae_id = G_MISS_NUM) THEN
1757 gi_catv_rec.sav_sae_id := NULL;
1758 ELSIF (gi_catv_rec.sav_sae_id IS NULL) THEN
1759 gi_catv_rec.sav_sae_id := G_MISS_NUM;
1760 END IF;
1761
1762 IF (gi_catv_rec.sav_sav_release = G_MISS_CHAR) THEN
1763 gi_catv_rec.sav_sav_release := NULL;
1764 ELSIF (gi_catv_rec.sav_sav_release IS NULL) THEN
1765 gi_catv_rec.sav_sav_release := G_MISS_CHAR;
1766 END IF;
1767
1768 IF (gi_catv_rec.sbt_code = G_MISS_CHAR) THEN
1769 gi_catv_rec.sbt_code := NULL;
1770 ELSIF (gi_catv_rec.sbt_code IS NULL) THEN
1771 gi_catv_rec.sbt_code := G_MISS_CHAR;
1772 END IF;
1773
1774 IF (gi_catv_rec.dnz_chr_id = G_MISS_NUM) THEN
1775 gi_catv_rec.dnz_chr_id := NULL;
1776 ELSIF (gi_catv_rec.dnz_chr_id IS NULL) THEN
1777 gi_catv_rec.dnz_chr_id := G_MISS_NUM;
1778 END IF;
1779
1780 IF (gi_catv_rec.comments = G_MISS_CHAR) THEN
1781 gi_catv_rec.comments := NULL;
1782 ELSIF (gi_catv_rec.comments IS NULL) THEN
1783 gi_catv_rec.comments := G_MISS_CHAR;
1784 END IF;
1785
1786 IF (gi_catv_rec.fulltext_yn = G_MISS_CHAR) THEN
1787 gi_catv_rec.fulltext_yn := NULL;
1788 ELSIF (gi_catv_rec.fulltext_yn IS NULL) THEN
1789 gi_catv_rec.fulltext_yn := G_MISS_CHAR;
1790 END IF;
1791
1792 IF (gi_catv_rec.variation_description = G_MISS_CHAR) THEN
1793 gi_catv_rec.variation_description := NULL;
1794 ELSIF (gi_catv_rec.variation_description IS NULL) THEN
1795 gi_catv_rec.variation_description := G_MISS_CHAR;
1796 END IF;
1797
1798 IF (gi_catv_rec.name = G_MISS_CHAR) THEN
1799 gi_catv_rec.name := NULL;
1800 ELSIF (gi_catv_rec.name IS NULL) THEN
1801 gi_catv_rec.name := G_MISS_CHAR;
1802 END IF;
1803
1804 IF (gi_catv_rec.cat_type = G_MISS_CHAR) THEN
1805 gi_catv_rec.cat_type := NULL;
1806 ELSIF (gi_catv_rec.cat_type IS NULL) THEN
1807 gi_catv_rec.cat_type := G_MISS_CHAR;
1808 END IF;
1809
1810 IF (gi_catv_rec.document_type = G_MISS_CHAR) THEN
1811 gi_catv_rec.document_type := NULL;
1812 ELSIF (gi_catv_rec.document_type IS NULL) THEN
1813 gi_catv_rec.document_type := G_MISS_CHAR;
1814 END IF;
1815
1816 IF (gi_catv_rec.document_id = G_MISS_NUM) THEN
1817 gi_catv_rec.document_id := NULL;
1818 ELSIF (gi_catv_rec.document_id IS NULL) THEN
1819 gi_catv_rec.document_id := G_MISS_NUM;
1820 END IF;
1821
1822 IF (gi_catv_rec.source_flag = G_MISS_CHAR) THEN
1823 gi_catv_rec.source_flag := NULL;
1824 ELSIF (gi_catv_rec.source_flag IS NULL) THEN
1825 gi_catv_rec.source_flag := G_MISS_CHAR;
1826 END IF;
1827
1828 IF (gi_catv_rec.mandatory_yn = G_MISS_CHAR) THEN
1829 gi_catv_rec.mandatory_yn := NULL;
1830 ELSIF (gi_catv_rec.mandatory_yn IS NULL) THEN
1831 gi_catv_rec.mandatory_yn := G_MISS_CHAR;
1832 END IF;
1833
1834 IF (gi_catv_rec.scn_id = G_MISS_NUM) THEN
1835 gi_catv_rec.scn_id := NULL;
1836 ELSIF (gi_catv_rec.scn_id IS NULL) THEN
1837 gi_catv_rec.scn_id := G_MISS_NUM;
1838 END IF;
1839
1840 IF (gi_catv_rec.label = G_MISS_CHAR) THEN
1841 gi_catv_rec.label := NULL;
1842 ELSIF (gi_catv_rec.label IS NULL) THEN
1843 gi_catv_rec.label := G_MISS_CHAR;
1844 END IF;
1845
1846 IF (gi_catv_rec.amendment_description = G_MISS_CHAR) THEN
1847 gi_catv_rec.amendment_description := NULL;
1848 ELSIF (gi_catv_rec.amendment_description IS NULL) THEN
1849 gi_catv_rec.amendment_description := G_MISS_CHAR;
1850 END IF;
1851
1852 IF (gi_catv_rec.amendment_operation_code = G_MISS_CHAR) THEN
1853 gi_catv_rec.amendment_operation_code := NULL;
1854 ELSIF (gi_catv_rec.amendment_operation_code IS NULL) THEN
1855 gi_catv_rec.amendment_operation_code := G_MISS_CHAR;
1856 END IF;
1857
1858 IF (gi_catv_rec.article_version_id = G_MISS_NUM) THEN
1859 gi_catv_rec.article_version_id := NULL;
1860 ELSIF (gi_catv_rec.article_version_id IS NULL) THEN
1861 gi_catv_rec.article_version_id := G_MISS_NUM;
1862 END IF;
1863
1864 IF (gi_catv_rec.change_nonstd_yn = G_MISS_CHAR) THEN
1865 gi_catv_rec.change_nonstd_yn := NULL;
1866 ELSIF (gi_catv_rec.change_nonstd_yn IS NULL) THEN
1867 gi_catv_rec.change_nonstd_yn := G_MISS_CHAR;
1868 END IF;
1869
1870 IF (gi_catv_rec.orig_system_reference_code = G_MISS_CHAR) THEN
1871 gi_catv_rec.orig_system_reference_code := NULL;
1872 ELSIF (gi_catv_rec.orig_system_reference_code IS NULL) THEN
1873 gi_catv_rec.orig_system_reference_code := G_MISS_CHAR;
1874 END IF;
1875
1876 IF (gi_catv_rec.orig_system_reference_id1 = G_MISS_NUM) THEN
1877 gi_catv_rec.orig_system_reference_id1 := NULL;
1878 ELSIF (gi_catv_rec.orig_system_reference_id1 IS NULL) THEN
1879 gi_catv_rec.orig_system_reference_id1 := G_MISS_NUM;
1880 END IF;
1881
1882 IF (gi_catv_rec.orig_system_reference_id2 = G_MISS_NUM) THEN
1883 gi_catv_rec.orig_system_reference_id2 := NULL;
1884 ELSIF (gi_catv_rec.orig_system_reference_id2 IS NULL) THEN
1885 gi_catv_rec.orig_system_reference_id2 := G_MISS_NUM;
1886 END IF;
1887
1888 IF (gi_catv_rec.display_sequence = G_MISS_NUM) THEN
1889 gi_catv_rec.display_sequence := NULL;
1890 ELSIF (gi_catv_rec.display_sequence IS NULL) THEN
1891 gi_catv_rec.display_sequence := G_MISS_NUM;
1892 END IF;
1893
1894 IF (gi_catv_rec.print_text_yn = G_MISS_CHAR) THEN
1895 gi_catv_rec.print_text_yn := NULL;
1896 ELSIF (gi_catv_rec.print_text_yn IS NULL) THEN
1897 gi_catv_rec.print_text_yn := G_MISS_CHAR;
1898 END IF;
1899
1900 IF (gi_catv_rec.summary_amend_operation_code = G_MISS_CHAR) THEN
1901 gi_catv_rec.summary_amend_operation_code := NULL;
1902 ELSIF (gi_catv_rec.summary_amend_operation_code IS NULL) THEN
1903 gi_catv_rec.summary_amend_operation_code := G_MISS_CHAR;
1904 END IF;
1905
1906 IF (gi_catv_rec.ref_article_id = G_MISS_NUM) THEN
1907 gi_catv_rec.ref_article_id := NULL;
1908 ELSIF (gi_catv_rec.ref_article_id IS NULL) THEN
1909 gi_catv_rec.ref_article_id := G_MISS_NUM;
1910 END IF;
1911
1912 IF (gi_catv_rec.ref_article_version_id = G_MISS_NUM) THEN
1913 gi_catv_rec.ref_article_version_id := NULL;
1914 ELSIF (gi_catv_rec.ref_article_version_id IS NULL) THEN
1915 gi_catv_rec.ref_article_version_id := G_MISS_NUM;
1916 END IF;
1917
1918 IF (gi_catv_rec.attribute_category = G_MISS_CHAR) THEN
1919 gi_catv_rec.attribute_category := NULL;
1920 ELSIF (gi_catv_rec.attribute_category IS NULL) THEN
1921 gi_catv_rec.attribute_category := G_MISS_CHAR;
1922 END IF;
1923
1924 IF (gi_catv_rec.attribute1 = G_MISS_CHAR) THEN
1925 gi_catv_rec.attribute1 := NULL;
1926 ELSIF (gi_catv_rec.attribute1 IS NULL) THEN
1927 gi_catv_rec.attribute1 := G_MISS_CHAR;
1928 END IF;
1929
1930 IF (gi_catv_rec.attribute2 = G_MISS_CHAR) THEN
1931 gi_catv_rec.attribute2 := NULL;
1932 ELSIF (gi_catv_rec.attribute2 IS NULL) THEN
1933 gi_catv_rec.attribute2 := G_MISS_CHAR;
1934 END IF;
1935
1936 IF (gi_catv_rec.attribute3 = G_MISS_CHAR) THEN
1937 gi_catv_rec.attribute3 := NULL;
1938 ELSIF (gi_catv_rec.attribute3 IS NULL) THEN
1939 gi_catv_rec.attribute3 := G_MISS_CHAR;
1940 END IF;
1941
1942 IF (gi_catv_rec.attribute4 = G_MISS_CHAR) THEN
1943 gi_catv_rec.attribute4 := NULL;
1944 ELSIF (gi_catv_rec.attribute4 IS NULL) THEN
1945 gi_catv_rec.attribute4 := G_MISS_CHAR;
1946 END IF;
1947
1948 IF (gi_catv_rec.attribute5 = G_MISS_CHAR) THEN
1949 gi_catv_rec.attribute5 := NULL;
1950 ELSIF (gi_catv_rec.attribute5 IS NULL) THEN
1951 gi_catv_rec.attribute5 := G_MISS_CHAR;
1952 END IF;
1953
1954 IF (gi_catv_rec.attribute6 = G_MISS_CHAR) THEN
1955 gi_catv_rec.attribute6 := NULL;
1956 ELSIF (gi_catv_rec.attribute6 IS NULL) THEN
1957 gi_catv_rec.attribute6 := G_MISS_CHAR;
1958 END IF;
1959
1960 IF (gi_catv_rec.attribute7 = G_MISS_CHAR) THEN
1961 gi_catv_rec.attribute7 := NULL;
1962 ELSIF (gi_catv_rec.attribute7 IS NULL) THEN
1963 gi_catv_rec.attribute7 := G_MISS_CHAR;
1964 END IF;
1965
1966 IF (gi_catv_rec.attribute8 = G_MISS_CHAR) THEN
1967 gi_catv_rec.attribute8 := NULL;
1968 ELSIF (gi_catv_rec.attribute8 IS NULL) THEN
1969 gi_catv_rec.attribute8 := G_MISS_CHAR;
1970 END IF;
1971
1972 IF (gi_catv_rec.attribute9 = G_MISS_CHAR) THEN
1973 gi_catv_rec.attribute9 := NULL;
1974 ELSIF (gi_catv_rec.attribute9 IS NULL) THEN
1975 gi_catv_rec.attribute9 := G_MISS_CHAR;
1976 END IF;
1977
1978 IF (gi_catv_rec.attribute10 = G_MISS_CHAR) THEN
1979 gi_catv_rec.attribute10 := NULL;
1980 ELSIF (gi_catv_rec.attribute10 IS NULL) THEN
1981 gi_catv_rec.attribute10 := G_MISS_CHAR;
1982 END IF;
1983
1984 IF (gi_catv_rec.attribute11 = G_MISS_CHAR) THEN
1985 gi_catv_rec.attribute11 := NULL;
1986 ELSIF (gi_catv_rec.attribute11 IS NULL) THEN
1987 gi_catv_rec.attribute11 := G_MISS_CHAR;
1988 END IF;
1989
1990 IF (gi_catv_rec.attribute12 = G_MISS_CHAR) THEN
1991 gi_catv_rec.attribute12 := NULL;
1992 ELSIF (gi_catv_rec.attribute12 IS NULL) THEN
1993 gi_catv_rec.attribute12 := G_MISS_CHAR;
1994 END IF;
1995
1996 IF (gi_catv_rec.attribute13 = G_MISS_CHAR) THEN
1997 gi_catv_rec.attribute13 := NULL;
1998 ELSIF (gi_catv_rec.attribute13 IS NULL) THEN
1999 gi_catv_rec.attribute13 := G_MISS_CHAR;
2000 END IF;
2001
2002 IF (gi_catv_rec.attribute14 = G_MISS_CHAR) THEN
2003 gi_catv_rec.attribute14 := NULL;
2004 ELSIF (gi_catv_rec.attribute14 IS NULL) THEN
2005 gi_catv_rec.attribute14 := G_MISS_CHAR;
2006 END IF;
2007
2008 IF (gi_catv_rec.attribute15 = G_MISS_CHAR) THEN
2009 gi_catv_rec.attribute15 := NULL;
2010 ELSIF (gi_catv_rec.attribute15 IS NULL) THEN
2011 gi_catv_rec.attribute15 := G_MISS_CHAR;
2012 END IF;
2013
2014 IF (gi_catv_rec.object_version_number = G_MISS_NUM) THEN
2015 gi_catv_rec.object_version_number := NULL;
2016 END IF;
2017 ----------------------------------------------------------------
2018 -- End of GMISS logic flipping
2019 ----------------------------------------------------------------
2020
2021 IF (l_debug = 'Y') THEN
2022 okc_debug.log('11400: Leaving Flip_GMISS_Record ', 2);
2023 okc_debug.Reset_Indentation;
2024 END IF;
2025
2026 END Flip_GMISS_Record;
2027
2028 -- Start of comments
2029 --
2030 -- Procedure Name : update_k_article
2031 -- Description :
2032 -- Business Rules :
2033 -- Parameters :
2034 -- Version : 1.0
2035 -- End of comments
2036 procedure update_k_article(p_api_version IN NUMBER,
2037 p_init_msg_list IN VARCHAR2 ,
2038 x_return_status OUT NOCOPY VARCHAR2,
2039 x_msg_count OUT NOCOPY NUMBER,
2040 x_msg_data OUT NOCOPY VARCHAR2,
2041 p_catv_rec IN catv_rec_type,
2042 x_catv_rec OUT NOCOPY catv_rec_type) is
2043 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_K_ARTICLE';
2044 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2045 l_catv_rec catv_rec_type;
2046 begin
2047 l_return_status := OKC_API.START_ACTIVITY(substr(l_api_name,1,26),
2048 G_PKG_NAME,
2049 p_init_msg_list,
2050 G_API_VERSION,
2051 p_api_version,
2052 G_SCOPE,
2053 x_return_status);
2054 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2055 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2056 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2057 RAISE OKC_API.G_EXCEPTION_ERROR;
2058 END IF;
2059 --
2060 -- code for temporary clob ... start
2061 --
2062 -- if (dbms_lob.istemporary(p_catv_rec.TEXT) = 1) then
2063 -- DBMS_LOB.CREATETEMPORARY(gi_catv_rec.TEXT,FALSE,DBMS_LOB.CALL);
2064 -- l_clob := p_catv_rec.TEXT;
2065 -- DBMS_LOB.OPEN(l_clob, DBMS_LOB.LOB_READONLY);
2066 -- DBMS_LOB.OPEN(gi_catv_rec.TEXT, DBMS_LOB.LOB_READWRITE);
2067 -- DBMS_LOB.COPY(dest_lob => gi_catv_rec.TEXT,src_lob => l_clob,
2068 -- amount => dbms_lob.getlength(l_clob));
2069 -- DBMS_LOB.CLOSE(gi_catv_rec.TEXT);
2070 -- DBMS_LOB.CLOSE(l_clob);
2071 -- DBMS_LOB.freetemporary(l_clob);
2072 -- end if;
2073 --
2074 -- code for temporary clob ... end
2075 --
2076 IF (l_debug = 'Y') THEN
2077 okc_debug.log('1000: Entered '||l_api_name, 2);
2078 Dump_Rec( p_catv_rec );
2079 END IF;
2080
2081 g_catv_rec := p_catv_rec;
2082 gi_catv_rec := Migrate( p_catv_rec );
2083 --
2084 -- Prepare record for Create article new group API
2085 --
2086 Default_Record(
2087 p_api_version => p_api_version,
2088 x_return_status => l_return_status,
2089 x_msg_count => x_msg_count,
2090 x_msg_data => x_msg_data
2091 );
2092 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2093 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2094 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2095 RAISE OKC_API.G_EXCEPTION_ERROR;
2096 END IF;
2097
2098 Flip_GMISS_Record;
2099
2100 IF (l_debug = 'Y') THEN
2101 okc_debug.log('1000: before update_article', 2);
2102 Dump_Rec( gi_catv_rec );
2103 END IF;
2104
2105 OKC_K_ARTICLES_GRP.update_article(
2106 p_api_version => p_api_version,
2107 p_init_msg_list => OKC_API.G_FALSE,
2108 x_return_status => x_return_status,
2109 x_msg_count => x_msg_count,
2110 x_msg_data => x_msg_data,
2111 p_id => gi_catv_rec.id,
2112 p_sav_sae_id => gi_catv_rec.b_sav_sae_id,
2113 p_document_type => gi_catv_rec.document_type,
2114 p_document_id => gi_catv_rec.document_id,
2115 p_source_flag => gi_catv_rec.source_flag,
2116 p_mandatory_yn => gi_catv_rec.mandatory_yn,
2117 p_scn_id => gi_catv_rec.scn_id,
2118 p_label => gi_catv_rec.label,
2119 p_amendment_description => gi_catv_rec.amendment_description,
2120 p_article_version_id => gi_catv_rec.article_version_id,
2121 p_change_nonstd_yn => gi_catv_rec.change_nonstd_yn,
2122 p_orig_system_reference_code => gi_catv_rec.orig_system_reference_code,
2123 p_orig_system_reference_id1 => gi_catv_rec.orig_system_reference_id1,
2124 p_orig_system_reference_id2 => gi_catv_rec.orig_system_reference_id2,
2125 p_display_sequence => gi_catv_rec.display_sequence,
2126 p_attribute_category => gi_catv_rec.attribute_category,
2127 p_attribute1 => gi_catv_rec.attribute1,
2128 p_attribute2 => gi_catv_rec.attribute2,
2129 p_attribute3 => gi_catv_rec.attribute3,
2130 p_attribute4 => gi_catv_rec.attribute4,
2131 p_attribute5 => gi_catv_rec.attribute5,
2132 p_attribute6 => gi_catv_rec.attribute6,
2133 p_attribute7 => gi_catv_rec.attribute7,
2134 p_attribute8 => gi_catv_rec.attribute8,
2135 p_attribute9 => gi_catv_rec.attribute9,
2136 p_attribute10 => gi_catv_rec.attribute10,
2137 p_attribute11 => gi_catv_rec.attribute11,
2138 p_attribute12 => gi_catv_rec.attribute12,
2139 p_attribute13 => gi_catv_rec.attribute13,
2140 p_attribute14 => gi_catv_rec.attribute14,
2141 p_attribute15 => gi_catv_rec.attribute15,
2142 p_print_text_yn => gi_catv_rec.print_text_yn,
2143 p_ref_article_id => gi_catv_rec.ref_article_id,
2144 p_ref_article_version_id => gi_catv_rec.ref_article_version_id,
2145 p_object_version_number => gi_catv_rec.object_version_number
2146 );
2147 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2148 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2149 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2150 RAISE OKC_API.G_EXCEPTION_ERROR;
2151 END IF;
2152
2153 -- Set OUT values
2154 x_catv_rec := get_rec( gi_catv_rec.id );
2155 g_catv_rec := x_catv_rec;
2156
2157 IF (l_debug = 'Y') THEN
2158 okc_debug.log('1000: Leaving '||l_api_name, 2);
2159 Dump_Rec( x_catv_rec );
2160 END IF;
2161
2162 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2163 EXCEPTION
2164 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2165 IF (l_debug = 'Y') THEN
2166 okc_debug.log('1000: Leaving '||l_api_name||' because of G_EXCEPTION_ERROR ', 2);
2167 END IF;
2168 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2169 (substr(l_api_name,1,26),
2170 G_PKG_NAME,
2171 'OKC_API.G_RET_STS_ERROR',
2172 x_msg_count,
2173 x_msg_data,
2174 G_SCOPE);
2175 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2176 IF (l_debug = 'Y') THEN
2177 okc_debug.log('1000: Leaving '||l_api_name||' because of G_EXCEPTION_UNEXPECTED_ERROR ', 2);
2178 END IF;
2179 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2180 (substr(l_api_name,1,26),
2181 G_PKG_NAME,
2182 'OKC_API.G_RET_STS_UNEXP_ERROR',
2183 x_msg_count,
2184 x_msg_data,
2185 G_SCOPE);
2186 WHEN OTHERS THEN
2187 IF (l_debug = 'Y') THEN
2188 okc_debug.log('500: Leaving '||l_api_name||' because of EXCEPTION: '||sqlerrm, 2);
2189 END IF;
2190 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2191 (substr(l_api_name,1,26),
2192 G_PKG_NAME,
2193 'OTHERS',
2194 x_msg_count,
2195 x_msg_data,
2196 G_SCOPE);
2197 end update_k_article;
2198
2199 -- Start of comments
2200 --
2201 -- Procedure Name : update_k_article
2202 -- Description :
2203 -- Business Rules :
2204 -- Parameters :
2205 -- Version : 1.0
2206 -- End of comments
2207
2208 procedure update_k_article(p_api_version IN NUMBER,
2209 p_init_msg_list IN VARCHAR2 ,
2210 x_return_status OUT NOCOPY VARCHAR2,
2211 x_msg_count OUT NOCOPY NUMBER,
2212 x_msg_data OUT NOCOPY VARCHAR2,
2213 p_catv_tbl IN catv_tbl_type,
2214 x_catv_tbl OUT NOCOPY catv_tbl_type) is
2215 i NUMBER;
2216 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2217 begin
2218 OKC_API.init_msg_list(p_init_msg_list);
2219 x_return_status:= OKC_API.G_RET_STS_SUCCESS;
2220 if (p_catv_tbl.COUNT>0) then
2221 i := p_catv_tbl.FIRST;
2222 LOOP
2223
2224 update_k_article(p_api_version=>p_api_version,
2225 p_init_msg_list=>OKC_API.G_FALSE,
2226 x_return_status=>l_return_status,
2227 x_msg_count=>x_msg_count,
2228 x_msg_data=>x_msg_data,
2229 p_catv_rec=> p_catv_tbl(i),
2230 x_catv_rec=>x_catv_tbl(i));
2231 if (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
2232 x_return_status := l_return_status;
2233 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2234 elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
2235 x_return_status := l_return_status;
2236 end if;
2237 EXIT WHEN (i=p_catv_tbl.LAST);
2238 i := p_catv_tbl.NEXT(i);
2239 END LOOP;
2240 end if;
2241 exception
2242 when others then NULL;
2243 end update_k_article;
2244
2245 -- Start of comments
2246 --
2247 -- Procedure Name : delete_k_article
2248 -- Description :
2249 -- Business Rules :
2250 -- Parameters :
2251 -- Version : 1.0
2252 -- End of comments
2253 procedure delete_k_article(p_api_version IN NUMBER,
2254 p_init_msg_list IN VARCHAR2 ,
2255 x_return_status OUT NOCOPY VARCHAR2,
2256 x_msg_count OUT NOCOPY NUMBER,
2257 x_msg_data OUT NOCOPY VARCHAR2,
2258 p_catv_rec IN catv_rec_type) is
2259 l_api_name CONSTANT VARCHAR2(30) := 'DELETE_K_ARTICLE';
2260 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2261 begin
2262 l_return_status := OKC_API.START_ACTIVITY(substr(l_api_name,1,26),
2263 G_PKG_NAME,
2264 p_init_msg_list,
2265 G_API_VERSION,
2266 p_api_version,
2267 G_SCOPE,
2268 x_return_status);
2269 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2270 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2271 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2272 RAISE OKC_API.G_EXCEPTION_ERROR;
2273 END IF;
2274 OKC_K_ARTICLES_GRP.delete_article(
2275 p_api_version => p_api_version,
2276 p_init_msg_list => OKC_API.G_FALSE,
2277 x_return_status => x_return_status,
2278 x_msg_count => x_msg_count,
2279 x_msg_data => x_msg_data,
2280 p_validation_string => NULL,
2281 p_id => p_catv_rec.id,
2282 p_object_version_number => p_catv_rec.object_version_number
2283 );
2284 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2285 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2286 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2287 RAISE OKC_API.G_EXCEPTION_ERROR;
2288 END IF;
2289 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2290 EXCEPTION
2291 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2292 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2293 (substr(l_api_name,1,26),
2294 G_PKG_NAME,
2295 'OKC_API.G_RET_STS_ERROR',
2296 x_msg_count,
2297 x_msg_data,
2298 G_SCOPE);
2299 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2300 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2301 (substr(l_api_name,1,26),
2302 G_PKG_NAME,
2303 'OKC_API.G_RET_STS_UNEXP_ERROR',
2304 x_msg_count,
2305 x_msg_data,
2306 G_SCOPE);
2307 WHEN OTHERS THEN
2308 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2309 (substr(l_api_name,1,26),
2310 G_PKG_NAME,
2311 'OTHERS',
2312 x_msg_count,
2313 x_msg_data,
2314 G_SCOPE);
2315 end delete_k_article;
2316
2317 -- Start of comments
2318 --
2319 -- Procedure Name : delete_k_article
2320 -- Description :
2321 -- Business Rules :
2322 -- Parameters :
2323 -- Version : 1.0
2324 -- End of comments
2325
2326 procedure delete_k_article(p_api_version IN NUMBER,
2327 p_init_msg_list IN VARCHAR2 ,
2328 x_return_status OUT NOCOPY VARCHAR2,
2329 x_msg_count OUT NOCOPY NUMBER,
2330 x_msg_data OUT NOCOPY VARCHAR2,
2331 p_catv_tbl IN catv_tbl_type) is
2332 i NUMBER;
2333 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2334 begin
2335 OKC_API.init_msg_list(p_init_msg_list);
2336 x_return_status:= OKC_API.G_RET_STS_SUCCESS;
2337 if (p_catv_tbl.COUNT>0) then
2338 i := p_catv_tbl.FIRST;
2339 LOOP
2340 delete_k_article(p_api_version=>p_api_version,
2341 p_init_msg_list=>OKC_API.G_FALSE,
2342 x_return_status=>l_return_status,
2343 x_msg_count=>x_msg_count,
2344 x_msg_data=>x_msg_data,
2345 p_catv_rec=>p_catv_tbl(i));
2346 if (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
2347 x_return_status := l_return_status;
2348 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2349 elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
2350 x_return_status := l_return_status;
2351 end if;
2352 EXIT WHEN (i=p_catv_tbl.LAST);
2353 i := p_catv_tbl.NEXT(i);
2354 END LOOP;
2355 end if;
2356 exception
2357 when others then NULL;
2358 end delete_k_article;
2359
2360 -- Start of comments
2361 --
2362 -- Procedure Name : validate_k_article
2363 -- Description :
2364 -- Business Rules :
2365 -- Parameters :
2366 -- Version : 1.0
2367 -- End of comments
2368 procedure validate_k_article(p_api_version IN NUMBER,
2369 p_init_msg_list IN VARCHAR2 ,
2370 x_return_status OUT NOCOPY VARCHAR2,
2371 x_msg_count OUT NOCOPY NUMBER,
2372 x_msg_data OUT NOCOPY VARCHAR2,
2373 p_catv_rec IN catv_rec_type) is
2374 l_api_name CONSTANT VARCHAR2(30) := 'VALIDATE_K_ARTICLE';
2375 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2376 begin
2377 l_return_status := OKC_API.START_ACTIVITY(substr(l_api_name,1,26),
2378 G_PKG_NAME,
2379 p_init_msg_list,
2380 G_API_VERSION,
2381 p_api_version,
2382 G_SCOPE,
2383 x_return_status);
2384 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2385 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2386 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2387 RAISE OKC_API.G_EXCEPTION_ERROR;
2388 END IF;
2389
2390 gi_catv_rec := Migrate( p_catv_rec );
2391
2392 OKC_K_ARTICLES_GRP.validate_row(
2393 p_api_version => p_api_version,
2394 p_init_msg_list => OKC_API.G_FALSE,
2395 x_return_status => x_return_status,
2396 x_msg_count => x_msg_count,
2397 x_msg_data => x_msg_data,
2398 p_id => gi_catv_rec.id,
2399 p_sav_sae_id => gi_catv_rec.sav_sae_id,
2400 p_document_type => gi_catv_rec.document_type,
2401 p_document_id => gi_catv_rec.document_id,
2402 p_source_flag => gi_catv_rec.source_flag,
2403 p_mandatory_yn => gi_catv_rec.mandatory_yn,
2404 p_scn_id => gi_catv_rec.scn_id,
2405 p_label => gi_catv_rec.label,
2406 p_amendment_description => gi_catv_rec.amendment_description,
2407 p_amendment_operation_code => gi_catv_rec.amendment_operation_code,
2408 p_article_version_id => gi_catv_rec.article_version_id,
2409 p_change_nonstd_yn => gi_catv_rec.change_nonstd_yn,
2410 p_orig_system_reference_code => gi_catv_rec.orig_system_reference_code,
2411 p_orig_system_reference_id1 => gi_catv_rec.orig_system_reference_id1,
2412 p_orig_system_reference_id2 => gi_catv_rec.orig_system_reference_id2,
2413 p_display_sequence => gi_catv_rec.display_sequence,
2414 p_attribute_category => gi_catv_rec.attribute_category,
2415 p_attribute1 => gi_catv_rec.attribute1,
2416 p_attribute2 => gi_catv_rec.attribute2,
2417 p_attribute3 => gi_catv_rec.attribute3,
2418 p_attribute4 => gi_catv_rec.attribute4,
2419 p_attribute5 => gi_catv_rec.attribute5,
2420 p_attribute6 => gi_catv_rec.attribute6,
2421 p_attribute7 => gi_catv_rec.attribute7,
2422 p_attribute8 => gi_catv_rec.attribute8,
2423 p_attribute9 => gi_catv_rec.attribute9,
2424 p_attribute10 => gi_catv_rec.attribute10,
2425 p_attribute11 => gi_catv_rec.attribute11,
2426 p_attribute12 => gi_catv_rec.attribute12,
2427 p_attribute13 => gi_catv_rec.attribute13,
2428 p_attribute14 => gi_catv_rec.attribute14,
2429 p_attribute15 => gi_catv_rec.attribute15,
2430 p_print_text_yn => gi_catv_rec.print_text_yn,
2431 p_summary_amend_operation_code => gi_catv_rec.summary_amend_operation_code,
2432 p_ref_article_id => gi_catv_rec.ref_article_id,
2433 p_ref_article_version_id => gi_catv_rec.ref_article_version_id,
2434 p_object_version_number => gi_catv_rec.object_version_number
2435 );
2436 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2437 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2438 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2439 RAISE OKC_API.G_EXCEPTION_ERROR;
2440 END IF;
2441 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2442 EXCEPTION
2443 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2444 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2445 (substr(l_api_name,1,26),
2446 G_PKG_NAME,
2447 'OKC_API.G_RET_STS_ERROR',
2448 x_msg_count,
2449 x_msg_data,
2450 G_SCOPE);
2451 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2452 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2453 (substr(l_api_name,1,26),
2454 G_PKG_NAME,
2455 'OKC_API.G_RET_STS_UNEXP_ERROR',
2456 x_msg_count,
2457 x_msg_data,
2458 G_SCOPE);
2459 WHEN OTHERS THEN
2460 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2461 (substr(l_api_name,1,26),
2462 G_PKG_NAME,
2463 'OTHERS',
2464 x_msg_count,
2465 x_msg_data,
2466 G_SCOPE);
2467 end validate_k_article;
2468
2469 -- Start of comments
2470 --
2471 -- Procedure Name : validate_k_article
2472 -- Description :
2473 -- Business Rules :
2474 -- Parameters :
2475 -- Version : 1.0
2476 -- End of comments
2477 procedure validate_k_article(p_api_version IN NUMBER,
2478 p_init_msg_list IN VARCHAR2 ,
2479 x_return_status OUT NOCOPY VARCHAR2,
2480 x_msg_count OUT NOCOPY NUMBER,
2481 x_msg_data OUT NOCOPY VARCHAR2,
2482 p_catv_tbl IN catv_tbl_type) is
2483 c NUMBER;
2484 i NUMBER;
2485 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2486 BEGIN
2487 OKC_API.init_msg_list(p_init_msg_list);
2488 x_return_status:= OKC_API.G_RET_STS_SUCCESS;
2489 c:=p_catv_tbl.COUNT;
2490 if (c>0) then
2491 i := p_catv_tbl.FIRST;
2492 LOOP
2493 validate_k_article(p_api_version=>p_api_version,
2494 p_init_msg_list=>OKC_API.G_FALSE,
2495 x_return_status=>l_return_status,
2496 x_msg_count=>x_msg_count,
2497 x_msg_data=>x_msg_data,
2498 p_catv_rec=>p_catv_tbl(i));
2499 if (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) then
2500 x_return_status := l_return_status;
2501 raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2502 elsif (l_return_status = OKC_API.G_RET_STS_ERROR) then
2503 x_return_status := l_return_status;
2504 end if;
2505 c:=c-1;
2506 EXIT WHEN (c=0);
2507 i := p_catv_tbl.NEXT(i);
2508 END LOOP;
2509 end if;
2510 end validate_k_article;
2511
2512 -- Start of comments
2513 --
2514 -- Procedure Name : create_article_translation
2515 -- Description :
2516 -- Business Rules :
2517 -- Parameters :
2518 -- Version : 1.0
2519 -- End of comments
2520 procedure create_article_translation(p_api_version IN NUMBER,
2521 p_init_msg_list IN VARCHAR2 ,
2522 x_return_status OUT NOCOPY VARCHAR2,
2523 x_msg_count OUT NOCOPY NUMBER,
2524 x_msg_data OUT NOCOPY VARCHAR2,
2525 p_atnv_rec IN atnv_rec_type,
2526 x_atnv_rec OUT NOCOPY atnv_rec_type) is
2527 begin
2528 OKC_API.init_msg_list(p_init_msg_list);
2529 IF (l_debug = 'Y') THEN
2530 Okc_Debug.Log('400: Entered create_article_translation - DUMMY procedure', 2);
2531 END IF;
2532 -- We won't create a record - keep g_atnv_rec empty
2533 -- g_atnv_rec := p_atnv_rec;
2534 -- x_atnv_rec := p_atnv_rec;
2535 x_msg_count := 0;
2536 x_return_status := OKC_API.G_RET_STS_SUCCESS;
2537 end create_article_translation;
2538
2539 -- Start of comments
2540 --
2541 -- Procedure Name : create_article_translation
2542 -- Description :
2543 -- Business Rules :
2544 -- Parameters :
2545 -- Version : 1.0
2546 -- End of comments
2547 procedure create_article_translation(p_api_version IN NUMBER,
2548 p_init_msg_list IN VARCHAR2 ,
2549 x_return_status OUT NOCOPY VARCHAR2,
2550 x_msg_count OUT NOCOPY NUMBER,
2551 x_msg_data OUT NOCOPY VARCHAR2,
2552 p_atnv_tbl IN atnv_tbl_type,
2553 x_atnv_tbl OUT NOCOPY atnv_tbl_type) is
2554 begin
2555 OKC_API.init_msg_list(p_init_msg_list);
2556 IF (l_debug = 'Y') THEN
2557 Okc_Debug.Log('400: Entered create_article_translation - DUMMY procedure', 2);
2558 END IF;
2559 -- We won't create a record - keep g_atnv_rec empty
2560 -- g_atnv_rec := p_atnv_rec;
2561 -- x_atnv_rec := p_atnv_rec;
2562 x_msg_count := 0;
2563 x_return_status := OKC_API.G_RET_STS_SUCCESS;
2564 end create_article_translation;
2565
2566 -- Start of comments
2567 --
2568 -- Procedure Name : lock_article_translation
2569 -- Description :
2570 -- Business Rules :
2571 -- Parameters :
2572 -- Version : 1.0
2573 -- End of comments
2574 procedure lock_article_translation(p_api_version IN NUMBER,
2575 p_init_msg_list IN VARCHAR2 ,
2576 x_return_status OUT NOCOPY VARCHAR2,
2577 x_msg_count OUT NOCOPY NUMBER,
2578 x_msg_data OUT NOCOPY VARCHAR2,
2579 p_atnv_rec IN atnv_rec_type) is
2580 begin
2581 OKC_API.init_msg_list(p_init_msg_list);
2582 IF (l_debug = 'Y') THEN
2583 Okc_Debug.Log('400: Entered lock_article_translation - DUMMY procedure', 2);
2584 END IF;
2585 x_msg_count := 0;
2586 x_return_status := OKC_API.G_RET_STS_SUCCESS;
2587 end lock_article_translation;
2588
2589 -- Start of comments
2590 --
2591 -- Procedure Name : lock_article_translation
2592 -- Description :
2593 -- Business Rules :
2594 -- Parameters :
2595 -- Version : 1.0
2596 -- End of comments
2597 procedure lock_article_translation(p_api_version IN NUMBER,
2598 p_init_msg_list IN VARCHAR2 ,
2599 x_return_status OUT NOCOPY VARCHAR2,
2600 x_msg_count OUT NOCOPY NUMBER,
2601 x_msg_data OUT NOCOPY VARCHAR2,
2602 p_atnv_tbl IN atnv_tbl_type) is
2603 begin
2604 OKC_API.init_msg_list(p_init_msg_list);
2605 IF (l_debug = 'Y') THEN
2606 Okc_Debug.Log('400: Entered lock_article_translation - DUMMY procedure', 2);
2607 END IF;
2608 x_msg_count := 0;
2609 x_return_status := OKC_API.G_RET_STS_SUCCESS;
2610 end lock_article_translation;
2611
2612 -- Start of comments
2613 --
2614 -- Procedure Name : delete_article_translation
2615 -- Description :
2616 -- Business Rules :
2617 -- Parameters :
2618 -- Version : 1.0
2619 -- End of comments
2620 procedure delete_article_translation(p_api_version IN NUMBER,
2621 p_init_msg_list IN VARCHAR2 ,
2622 x_return_status OUT NOCOPY VARCHAR2,
2623 x_msg_count OUT NOCOPY NUMBER,
2624 x_msg_data OUT NOCOPY VARCHAR2,
2625 p_atnv_rec IN atnv_rec_type) is
2626 begin
2627 OKC_API.init_msg_list(p_init_msg_list);
2628 IF (l_debug = 'Y') THEN
2629 Okc_Debug.Log('400: Entered delete_article_translation - DUMMY procedure', 2);
2630 END IF;
2631 x_msg_count := 0;
2632 x_return_status := OKC_API.G_RET_STS_SUCCESS;
2633 end delete_article_translation;
2634
2635 -- Start of comments
2636 --
2637 -- Procedure Name : delete_article_translation
2638 -- Description :
2639 -- Business Rules :
2640 -- Parameters :
2641 -- Version : 1.0
2642 -- End of comments
2643 procedure delete_article_translation(p_api_version IN NUMBER,
2644 p_init_msg_list IN VARCHAR2 ,
2645 x_return_status OUT NOCOPY VARCHAR2,
2646 x_msg_count OUT NOCOPY NUMBER,
2647 x_msg_data OUT NOCOPY VARCHAR2,
2648 p_atnv_tbl IN atnv_tbl_type) is
2649 begin
2650 OKC_API.init_msg_list(p_init_msg_list);
2651 IF (l_debug = 'Y') THEN
2652 Okc_Debug.Log('400: Entered delete_article_translation - DUMMY procedure', 2);
2653 END IF;
2654 x_msg_count := 0;
2655 x_return_status := OKC_API.G_RET_STS_SUCCESS;
2656 end delete_article_translation;
2657
2658 -- Start of comments
2659 --
2660 -- Procedure Name : validate_article_translation
2661 -- Description :
2662 -- Business Rules :
2663 -- Parameters :
2664 -- Version : 1.0
2665 -- End of comments
2666 procedure validate_article_translation(p_api_version IN NUMBER,
2667 p_init_msg_list IN VARCHAR2 ,
2668 x_return_status OUT NOCOPY VARCHAR2,
2669 x_msg_count OUT NOCOPY NUMBER,
2670 x_msg_data OUT NOCOPY VARCHAR2,
2671 p_atnv_rec IN atnv_rec_type) is
2672 begin
2673 OKC_API.init_msg_list(p_init_msg_list);
2674 IF (l_debug = 'Y') THEN
2675 Okc_Debug.Log('400: Entered validate_article_translation - DUMMY procedure', 2);
2676 END IF;
2677 x_msg_count := 0;
2678 x_return_status := OKC_API.G_RET_STS_SUCCESS;
2679 end validate_article_translation;
2680
2681 -- Start of comments
2682 --
2683 -- Procedure Name : validate_article_translation
2684 -- Description :
2685 -- Business Rules :
2686 -- Parameters :
2687 -- Version : 1.0
2688 -- End of comments
2689 procedure validate_article_translation(p_api_version IN NUMBER,
2690 p_init_msg_list IN VARCHAR2 ,
2691 x_return_status OUT NOCOPY VARCHAR2,
2692 x_msg_count OUT NOCOPY NUMBER,
2693 x_msg_data OUT NOCOPY VARCHAR2,
2694 p_atnv_tbl IN atnv_tbl_type) is
2695 begin
2696 OKC_API.init_msg_list(p_init_msg_list);
2697 IF (l_debug = 'Y') THEN
2698 Okc_Debug.Log('400: Entered validate_article_translation - DUMMY procedure', 2);
2699 END IF;
2700 x_msg_count := 0;
2701 x_return_status := OKC_API.G_RET_STS_SUCCESS;
2702 end validate_article_translation;
2703
2704 -- Start of comments
2705 --
2706 -- Procedure Name : std_art_name
2707 -- Description :
2708 -- Business Rules :
2709 -- Parameters :
2710 -- Version : 1.0
2711 -- End of comments
2712 function std_art_name(p_sav_sae_id IN NUMBER) return varchar2 is
2713 l_name varchar2(150);
2714 cursor c1 is
2715 select name
2716 from OKC_STD_ARTICLES_V
2717 where ID = p_sav_sae_id;
2718 begin
2719 open c1;
2720 fetch c1 into l_name;
2721 close c1;
2722 return l_name;
2723 end std_art_name;
2724
2725 end OKC_K_ARTICLE_PUB;