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