[Home] [Help]
PACKAGE BODY: APPS.OKC_PDP_PVT
Source
1 PACKAGE BODY OKC_PDP_PVT AS
2 /* $Header: OKCSPDPB.pls 120.0 2005/05/25 19:39:03 appldev noship $ */
3
4 l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
5 ---------------------------------------------------------------------------
6 -- Define a local variable to get the value of USERENV('LANG')
7 ---------------------------------------------------------------------------
8 l_lang VARCHAR2(12) := OKC_UTIL.get_userenv_lang;
9
10 ---------------------------------------------------------------------------
11 -- FUNCTION get_seq_id
12 ---------------------------------------------------------------------------
13 FUNCTION get_seq_id RETURN NUMBER IS
14 BEGIN
15 RETURN(okc_p_util.raw_to_number(sys_guid()));
16 END get_seq_id;
17
18 ---------------------------------------------------------------------------
19 -- PROCEDURE qc
20 ---------------------------------------------------------------------------
21 PROCEDURE qc IS
22 BEGIN
23 null;
24 END qc;
25
26 ---------------------------------------------------------------------------
27 -- PROCEDURE change_version
28 ---------------------------------------------------------------------------
29 PROCEDURE change_version IS
30 BEGIN
31 null;
32 END change_version;
33
34 ---------------------------------------------------------------------------
35 -- PROCEDURE api_copy
36 ---------------------------------------------------------------------------
37 PROCEDURE api_copy IS
38 BEGIN
39 null;
40 END api_copy;
41
42 ---------------------------------------------------------------------------
43 -- PROCEDURE add_language
44 ---------------------------------------------------------------------------
45 PROCEDURE add_language IS
46 BEGIN
47 DELETE FROM OKC_PROCESS_DEF_PARMS_TL T
48 WHERE NOT EXISTS (
49 SELECT NULL
50 FROM OKC_PROCESS_DEF_PARMS_B B
51 WHERE B.ID = T.ID
52 );
53
54 UPDATE OKC_PROCESS_DEF_PARMS_TL T SET (
55 NAME,
56 DESCRIPTION) = (SELECT
57 B.NAME,
58 B.DESCRIPTION
59 FROM OKC_PROCESS_DEF_PARMS_TL B
60 WHERE B.ID = T.ID
61 AND B.LANGUAGE = T.SOURCE_LANG)
62 WHERE (
63 T.ID,
64 T.LANGUAGE)
65 IN (SELECT
66 SUBT.ID,
67 SUBT.LANGUAGE
68 FROM OKC_PROCESS_DEF_PARMS_TL SUBB, OKC_PROCESS_DEF_PARMS_TL SUBT
69 WHERE SUBB.ID = SUBT.ID
70 AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
71 AND (SUBB.NAME <> SUBT.NAME
72 OR SUBB.DESCRIPTION <> SUBT.DESCRIPTION
73 OR (SUBB.DESCRIPTION IS NULL AND SUBT.DESCRIPTION IS NOT NULL)
74 OR (SUBB.DESCRIPTION IS NOT NULL AND SUBT.DESCRIPTION IS NULL)
75 ));
76
77 INSERT INTO OKC_PROCESS_DEF_PARMS_TL (
78 ID,
79 LANGUAGE,
80 SOURCE_LANG,
81 SFWT_FLAG,
82 NAME,
83 DESCRIPTION,
84 CREATED_BY,
85 CREATION_DATE,
86 LAST_UPDATED_BY,
87 LAST_UPDATE_DATE,
88 LAST_UPDATE_LOGIN)
89 SELECT
90 B.ID,
91 L.LANGUAGE_CODE,
92 B.SOURCE_LANG,
93 B.SFWT_FLAG,
94 B.NAME,
95 B.DESCRIPTION,
96 B.CREATED_BY,
97 B.CREATION_DATE,
98 B.LAST_UPDATED_BY,
99 B.LAST_UPDATE_DATE,
100 B.LAST_UPDATE_LOGIN
101 FROM OKC_PROCESS_DEF_PARMS_TL B, FND_LANGUAGES L
102 WHERE L.INSTALLED_FLAG IN ('I', 'B')
103 AND B.LANGUAGE = USERENV('LANG')
104 AND NOT EXISTS(
105 SELECT NULL
106 FROM OKC_PROCESS_DEF_PARMS_TL T
107 WHERE T.ID = B.ID
108 AND T.LANGUAGE = L.LANGUAGE_CODE
109 );
110
111 END add_language;
112
113 ---------------------------------------------------------------------------
114 -- FUNCTION get_rec for: OKC_PROCESS_DEF_PARMS_TL
115 ---------------------------------------------------------------------------
116 FUNCTION get_rec (
117 p_okc_process_def_parms_tl_rec IN OkcProcessDefParmsTlRecType,
118 x_no_data_found OUT NOCOPY BOOLEAN
119 ) RETURN OkcProcessDefParmsTlRecType IS
120 CURSOR okc_process_def_parm1_csr (p_id IN NUMBER,
121 p_language IN VARCHAR2) IS
122 SELECT
123 ID,
124 LANGUAGE,
125 SOURCE_LANG,
126 SFWT_FLAG,
127 NAME,
128 DESCRIPTION,
129 CREATED_BY,
130 CREATION_DATE,
131 LAST_UPDATED_BY,
132 LAST_UPDATE_DATE,
133 LAST_UPDATE_LOGIN
134 FROM Okc_Process_Def_Parms_Tl
135 WHERE okc_process_def_parms_tl.id = p_id
136 AND okc_process_def_parms_tl.language = p_language;
137 l_okc_process_def_parms_tl_pk okc_process_def_parm1_csr%ROWTYPE;
138 l_okc_process_def_parms_tl_rec OkcProcessDefParmsTlRecType;
139 BEGIN
140 x_no_data_found := TRUE;
141 -- Get current database values
142 OPEN okc_process_def_parm1_csr (p_okc_process_def_parms_tl_rec.id,
143 p_okc_process_def_parms_tl_rec.language);
144 FETCH okc_process_def_parm1_csr INTO
145 l_okc_process_def_parms_tl_rec.ID,
146 l_okc_process_def_parms_tl_rec.LANGUAGE,
147 l_okc_process_def_parms_tl_rec.SOURCE_LANG,
148 l_okc_process_def_parms_tl_rec.SFWT_FLAG,
149 l_okc_process_def_parms_tl_rec.NAME,
150 l_okc_process_def_parms_tl_rec.DESCRIPTION,
151 l_okc_process_def_parms_tl_rec.CREATED_BY,
152 l_okc_process_def_parms_tl_rec.CREATION_DATE,
153 l_okc_process_def_parms_tl_rec.LAST_UPDATED_BY,
154 l_okc_process_def_parms_tl_rec.LAST_UPDATE_DATE,
155 l_okc_process_def_parms_tl_rec.LAST_UPDATE_LOGIN;
156 x_no_data_found := okc_process_def_parm1_csr%NOTFOUND;
157 CLOSE okc_process_def_parm1_csr;
158 RETURN(l_okc_process_def_parms_tl_rec);
159 END get_rec;
160
161 FUNCTION get_rec (
162 p_okc_process_def_parms_tl_rec IN OkcProcessDefParmsTlRecType
163 ) RETURN OkcProcessDefParmsTlRecType IS
164 l_row_notfound BOOLEAN := TRUE;
165 BEGIN
166 RETURN(get_rec(p_okc_process_def_parms_tl_rec, l_row_notfound));
167 END get_rec;
168 ---------------------------------------------------------------------------
169 -- FUNCTION get_rec for: OKC_PROCESS_DEF_PARMS_B
170 ---------------------------------------------------------------------------
171 FUNCTION get_rec (
172 p_pdp_rec IN pdp_rec_type,
173 x_no_data_found OUT NOCOPY BOOLEAN
174 ) RETURN pdp_rec_type IS
175 CURSOR okc_process_def_parms_b_pk_csr (p_id IN NUMBER) IS
176 SELECT
177 ID,
178 PDF_ID,
179 NAME,
180 DATA_TYPE,
181 REQUIRED_YN,
182 OBJECT_VERSION_NUMBER,
183 CREATED_BY,
184 CREATION_DATE,
185 LAST_UPDATED_BY,
186 LAST_UPDATE_DATE,
187 DEFAULT_VALUE,
188 LAST_UPDATE_LOGIN,
189 APPLICATION_ID,
190 SEEDED_FLAG,
191 JTOT_OBJECT_CODE,
192 NAME_COLUMN,
193 DESCRIPTION_COLUMN
194 FROM Okc_Process_Def_Parms_B
195 WHERE okc_process_def_parms_b.id = p_id;
196 l_okc_process_def_parms_b_pk okc_process_def_parms_b_pk_csr%ROWTYPE;
197 l_pdp_rec pdp_rec_type;
198 BEGIN
199 x_no_data_found := TRUE;
200 -- Get current database values
201 OPEN okc_process_def_parms_b_pk_csr (p_pdp_rec.id);
202 FETCH okc_process_def_parms_b_pk_csr INTO
203 l_pdp_rec.ID,
204 l_pdp_rec.PDF_ID,
205 l_pdp_rec.NAME,
206 l_pdp_rec.DATA_TYPE,
207 l_pdp_rec.REQUIRED_YN,
208 l_pdp_rec.OBJECT_VERSION_NUMBER,
209 l_pdp_rec.CREATED_BY,
210 l_pdp_rec.CREATION_DATE,
211 l_pdp_rec.LAST_UPDATED_BY,
212 l_pdp_rec.LAST_UPDATE_DATE,
213 l_pdp_rec.DEFAULT_VALUE,
214 l_pdp_rec.LAST_UPDATE_LOGIN,
215 l_pdp_rec.APPLICATION_ID,
216 l_pdp_rec.SEEDED_FLAG,
217 l_pdp_rec.JTOT_OBJECT_CODE,
218 l_pdp_rec.NAME_COLUMN,
219 l_pdp_rec.DESCRIPTION_COLUMN;
220 x_no_data_found := okc_process_def_parms_b_pk_csr%NOTFOUND;
221 CLOSE okc_process_def_parms_b_pk_csr;
222 RETURN(l_pdp_rec);
223 END get_rec;
224
225 FUNCTION get_rec (
226 p_pdp_rec IN pdp_rec_type
227 ) RETURN pdp_rec_type IS
228 l_row_notfound BOOLEAN := TRUE;
229 BEGIN
230 RETURN(get_rec(p_pdp_rec, l_row_notfound));
231 END get_rec;
232 ---------------------------------------------------------------------------
233 -- FUNCTION get_rec for: OKC_PROCESS_DEF_PARAMETERS_V
234 ---------------------------------------------------------------------------
235 FUNCTION get_rec (
236 p_pdpv_rec IN pdpv_rec_type,
237 x_no_data_found OUT NOCOPY BOOLEAN
238 ) RETURN pdpv_rec_type IS
239 CURSOR okc_pdpv_pk_csr (p_id IN NUMBER) IS
240 SELECT
241 ID,
242 OBJECT_VERSION_NUMBER,
243 SFWT_FLAG,
244 PDF_ID,
245 NAME,
246 USER_NAME,
247 DATA_TYPE,
248 DEFAULT_VALUE,
249 REQUIRED_YN,
250 DESCRIPTION,
251 APPLICATION_ID,
252 SEEDED_FLAG,
253 CREATED_BY,
254 CREATION_DATE,
255 LAST_UPDATED_BY,
256 LAST_UPDATE_DATE,
257 LAST_UPDATE_LOGIN,
258 JTOT_OBJECT_CODE,
259 NAME_COLUMN,
260 DESCRIPTION_COLUMN
261 FROM Okc_Process_Def_Parameters_V
262 WHERE okc_process_def_parameters_v.id = p_id;
263 l_okc_pdpv_pk okc_pdpv_pk_csr%ROWTYPE;
264 l_pdpv_rec pdpv_rec_type;
265 BEGIN
266 x_no_data_found := TRUE;
267 -- Get current database values
268 OPEN okc_pdpv_pk_csr (p_pdpv_rec.id);
269 FETCH okc_pdpv_pk_csr INTO
270 l_pdpv_rec.ID,
271 l_pdpv_rec.OBJECT_VERSION_NUMBER,
272 l_pdpv_rec.SFWT_FLAG,
273 l_pdpv_rec.PDF_ID,
274 l_pdpv_rec.NAME,
275 l_pdpv_rec.USER_NAME,
276 l_pdpv_rec.DATA_TYPE,
277 l_pdpv_rec.DEFAULT_VALUE,
278 l_pdpv_rec.REQUIRED_YN,
279 l_pdpv_rec.DESCRIPTION,
280 l_pdpv_rec.APPLICATION_ID,
281 l_pdpv_rec.SEEDED_FLAG,
282 l_pdpv_rec.CREATED_BY,
283 l_pdpv_rec.CREATION_DATE,
284 l_pdpv_rec.LAST_UPDATED_BY,
285 l_pdpv_rec.LAST_UPDATE_DATE,
286 l_pdpv_rec.LAST_UPDATE_LOGIN,
287 l_pdpv_rec.JTOT_OBJECT_CODE,
288 l_pdpv_rec.NAME_COLUMN,
289 l_pdpv_rec.DESCRIPTION_COLUMN;
290 x_no_data_found := okc_pdpv_pk_csr%NOTFOUND;
291 CLOSE okc_pdpv_pk_csr;
292 RETURN(l_pdpv_rec);
293 END get_rec;
294
295 FUNCTION get_rec (
296 p_pdpv_rec IN pdpv_rec_type
297 ) RETURN pdpv_rec_type IS
298 l_row_notfound BOOLEAN := TRUE;
299 BEGIN
300 RETURN(get_rec(p_pdpv_rec, l_row_notfound));
301 END get_rec;
302
303 ------------------------------------------------------------------
304 -- FUNCTION null_out_defaults for: OKC_PROCESS_DEF_PARAMETERS_V --
305 ------------------------------------------------------------------
306 FUNCTION null_out_defaults (
307 p_pdpv_rec IN pdpv_rec_type
308 ) RETURN pdpv_rec_type IS
309 l_pdpv_rec pdpv_rec_type := p_pdpv_rec;
310 BEGIN
311 IF (l_pdpv_rec.object_version_number = OKC_API.G_MISS_NUM) THEN
312 l_pdpv_rec.object_version_number := NULL;
313 END IF;
314 IF (l_pdpv_rec.sfwt_flag = OKC_API.G_MISS_CHAR) THEN
315 l_pdpv_rec.sfwt_flag := NULL;
316 END IF;
317 IF (l_pdpv_rec.pdf_id = OKC_API.G_MISS_NUM) THEN
318 l_pdpv_rec.pdf_id := NULL;
319 END IF;
320 IF (l_pdpv_rec.name = OKC_API.G_MISS_CHAR) THEN
321 l_pdpv_rec.name := NULL;
322 END IF;
323 IF (l_pdpv_rec.user_name = OKC_API.G_MISS_CHAR) THEN
324 l_pdpv_rec.user_name := NULL;
325 END IF;
326 IF (l_pdpv_rec.data_type = OKC_API.G_MISS_CHAR) THEN
327 l_pdpv_rec.data_type := NULL;
328 END IF;
329 IF (l_pdpv_rec.default_value = OKC_API.G_MISS_CHAR) THEN
330 l_pdpv_rec.default_value := NULL;
331 END IF;
332 IF (l_pdpv_rec.required_yn = OKC_API.G_MISS_CHAR) THEN
333 l_pdpv_rec.required_yn := NULL;
334 END IF;
335 IF (l_pdpv_rec.description = OKC_API.G_MISS_CHAR) THEN
336 l_pdpv_rec.description := NULL;
337 END IF;
338 IF (l_pdpv_rec.application_id = OKC_API.G_MISS_NUM) THEN
339 l_pdpv_rec.application_id := NULL;
340 END IF;
341 IF (l_pdpv_rec.seeded_flag = OKC_API.G_MISS_CHAR) THEN
342 l_pdpv_rec.seeded_flag := NULL;
343 END IF;
344 IF (l_pdpv_rec.created_by = OKC_API.G_MISS_NUM) THEN
345 l_pdpv_rec.created_by := NULL;
346 END IF;
347 IF (l_pdpv_rec.creation_date = OKC_API.G_MISS_DATE) THEN
348 l_pdpv_rec.creation_date := NULL;
349 END IF;
350 IF (l_pdpv_rec.last_updated_by = OKC_API.G_MISS_NUM) THEN
351 l_pdpv_rec.last_updated_by := NULL;
352 END IF;
353 IF (l_pdpv_rec.last_update_date = OKC_API.G_MISS_DATE) THEN
354 l_pdpv_rec.last_update_date := NULL;
355 END IF;
356 IF (l_pdpv_rec.last_update_login = OKC_API.G_MISS_NUM) THEN
357 l_pdpv_rec.last_update_login := NULL;
358 END IF;
359 IF (l_pdpv_rec.jtot_object_code = OKC_API.G_MISS_CHAR) THEN
360 l_pdpv_rec.jtot_object_code := NULL;
361 END IF;
362 IF (l_pdpv_rec.NAME_COLUMN = OKC_API.G_MISS_CHAR) THEN
363 l_pdpv_rec.NAME_COLUMN := NULL;
364 END IF;
365 IF (l_pdpv_rec.description_column = OKC_API.G_MISS_CHAR) THEN
366 l_pdpv_rec.description_column := NULL;
367 END IF;
368 RETURN(l_pdpv_rec);
369 END null_out_defaults;
370
371 /******* Commented out nocopy generated code in favor of hand written code ******
372 ---------------------------------------------------------------------------
373 -- PROCEDURE Validate_Attributes
374 ---------------------------------------------------------------------------
375 ----------------------------------------------------------
376 -- Validate_Attributes for:OKC_PROCESS_DEF_PARAMETERS_V --
377 ----------------------------------------------------------
378 FUNCTION Validate_Attributes (
379 p_pdpv_rec IN pdpv_rec_type
380 ) RETURN VARCHAR2 IS
381 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
382 BEGIN
383 IF p_pdpv_rec.id = OKC_API.G_MISS_NUM OR
384 p_pdpv_rec.id IS NULL
385 THEN
386 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'id');
387 l_return_status := OKC_API.G_RET_STS_ERROR;
388 ELSIF p_pdpv_rec.object_version_number = OKC_API.G_MISS_NUM OR
389 p_pdpv_rec.object_version_number IS NULL
390 THEN
391 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object_version_number');
392 l_return_status := OKC_API.G_RET_STS_ERROR;
393 ELSIF p_pdpv_rec.pdf_id = OKC_API.G_MISS_NUM OR
394 p_pdpv_rec.pdf_id IS NULL
395 THEN
396 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'pdf_id');
397 l_return_status := OKC_API.G_RET_STS_ERROR;
398 ELSIF p_pdpv_rec.name = OKC_API.G_MISS_CHAR OR
399 p_pdpv_rec.name IS NULL
400 THEN
401 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'name');
402 l_return_status := OKC_API.G_RET_STS_ERROR;
403 ELSIF p_pdpv_rec.user_name = OKC_API.G_MISS_CHAR OR
404 p_pdpv_rec.user_name IS NULL
405 THEN
406 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'user_name');
407 l_return_status := OKC_API.G_RET_STS_ERROR;
408 ELSIF p_pdpv_rec.data_type = OKC_API.G_MISS_CHAR OR
409 p_pdpv_rec.data_type IS NULL
410 THEN
411 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'data_type');
412 l_return_status := OKC_API.G_RET_STS_ERROR;
413 ELSIF p_pdpv_rec.required_yn = OKC_API.G_MISS_CHAR OR
414 p_pdpv_rec.required_yn IS NULL
415 THEN
416 OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'required_yn');
417 l_return_status := OKC_API.G_RET_STS_ERROR;
418 END IF;
419 RETURN(l_return_status);
420 END Validate_Attributes;
421
422 ---------------------------------------------------------------------------
423 -- PROCEDURE Validate_Record
424 ---------------------------------------------------------------------------
425 ------------------------------------------------------
426 -- Validate_Record for:OKC_PROCESS_DEF_PARAMETERS_V --
427 ------------------------------------------------------
428 FUNCTION Validate_Record (
429 p_pdpv_rec IN pdpv_rec_type
430 ) RETURN VARCHAR2 IS
431 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
432 ------------------------------------
433 -- FUNCTION validate_foreign_keys --
434 ------------------------------------
435 FUNCTION validate_foreign_keys (
436 p_pdpv_rec IN pdpv_rec_type
437 ) RETURN VARCHAR2 IS
438 item_not_found_error EXCEPTION;
439 CURSOR okc_pdfv_pk_csr (p_id IN NUMBER) IS
440 SELECT 'x'
441 FROM Okc_Process_Defs_V
442 WHERE okc_process_defs_v.id = p_id;
443 l_okc_pdfv_pk okc_pdfv_pk_csr%ROWTYPE;
444 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
445 l_row_notfound BOOLEAN := TRUE;
446 BEGIN
447 IF (p_pdpv_rec.PDF_ID IS NOT NULL)
448 THEN
449 OPEN okc_pdfv_pk_csr(p_pdpv_rec.PDF_ID);
450 FETCH okc_pdfv_pk_csr INTO l_okc_pdfv_pk;
451 l_row_notfound := okc_pdfv_pk_csr%NOTFOUND;
452 CLOSE okc_pdfv_pk_csr;
453 IF (l_row_notfound) THEN
454 OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'PDF_ID');
455 RAISE item_not_found_error;
456 END IF;
457 END IF;
458 RETURN (l_return_status);
459 EXCEPTION
460 WHEN item_not_found_error THEN
461 l_return_status := OKC_API.G_RET_STS_ERROR;
462 RETURN (l_return_status);
463 END validate_foreign_keys;
464 BEGIN
465 l_return_status := validate_foreign_keys (p_pdpv_rec);
466 RETURN (l_return_status);
467 END Validate_Record;
468
469 ************************ End Commented out nocopy Generated Code ****************/
470
471 /*********** Hand Written Code *******************************************/
472 ---------------------------------------------------------------------------
473 -- PROCEDURE Validate_Attributes
474 ---------------------------------------------------------------------------
475 ----------------------------------------------------------
476 -- Validate_Attributes for:OKC_PROCESS_DEF_PARAMETERS_V --
477 ----------------------------------------------------------
478 -- Start of comments
479 -- Procedure Name : validate_object_version_number
480 -- Description : Check if object version number is null
481 -- Version : 1.0
482 -- End of comments
483
484 PROCEDURE validate_object_version_number(
485 x_return_status OUT NOCOPY VARCHAR2,
486 p_pdpv_rec IN pdpv_rec_type) IS
487
488 BEGIN
489 -- initialize return status
490 x_return_status := OKC_API.G_RET_STS_SUCCESS;
491
492 -- Check if the data is null
493 IF p_pdpv_rec.object_version_number = OKC_API.G_MISS_NUM OR
494 p_pdpv_rec.object_version_number IS NULL THEN
495 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
496 p_msg_name => g_required_value,
497 p_token1 => g_col_name_token,
498 p_token1_value => 'object_version_number');
499 x_return_status := OKC_API.G_RET_STS_ERROR;
500 raise G_EXCEPTION_HALT_VALIDATION;
501 END IF;
502 EXCEPTION
503 when G_EXCEPTION_HALT_VALIDATION then
504 -- no processing necessary; validation can continue
505 -- with the next column
506 null;
507
508 when OTHERS then
509 -- store SQL error message on message stack for caller
510 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
511 p_msg_name => g_unexpected_error,
512 p_token1 => g_sqlcode_token,
513 p_token1_value => sqlcode,
514 p_token2 => g_sqlerrm_token,
515 p_token2_value => sqlerrm);
516
517 -- notify caller of an UNEXPECTED error
518 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
519 END validate_object_version_number;
520
521 -- Start of comments
522 -- Procedure Name : validate_pdf_id
523 -- Description : Check if pdf id is null
524 -- Version : 1.0
525 -- End of comments
526
527 PROCEDURE validate_pdf_id(
528 x_return_status OUT NOCOPY VARCHAR2,
529 p_pdpv_rec IN pdpv_rec_type) IS
530
531 CURSOR okc_pdfv_pk_csr IS
532 SELECT '1'
533 FROM Okc_Process_Defs_V
534 WHERE okc_process_defs_v.id = p_pdpv_rec.pdf_id;
535
536 l_dummy VARCHAR2(1) := '?';
537
538 BEGIN
539 -- initialize return status
540 x_return_status := OKC_API.G_RET_STS_SUCCESS;
541
542 -- Check if pdf_id is null
543 IF p_pdpv_rec.pdf_id = OKC_API.G_MISS_NUM OR
544 p_pdpv_rec.pdf_id IS NULL THEN
545 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
546 p_msg_name => g_required_value,
547 p_token1 => g_col_name_token,
548 p_token1_value => 'pdf_id');
549 x_return_status := OKC_API.G_RET_STS_ERROR;
550 raise G_EXCEPTION_HALT_VALIDATION;
551 END IF;
552
553 -- Enforce foreign key
554 OPEN okc_pdfv_pk_csr;
555 FETCH okc_pdfv_pk_csr INTO l_dummy;
556 CLOSE okc_pdfv_pk_csr;
557
558 -- If l_dummy is still set to default, data was not found
559 IF (l_dummy = '?') THEN
560 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
561 p_msg_name => g_no_parent_record,
562 p_token1 => g_col_name_token,
563 p_token1_value => 'pdf_id',
564 p_token2 => g_child_table_token,
565 p_token2_value => 'OKC_PROCESS_DEF_PARAMETERS_V',
566 p_token3 => g_parent_table_token,
567 p_token3_value => 'OKC_PROCESS_DEFS_V');
568
569 x_return_status := OKC_API.G_RET_STS_ERROR;
570 RAISE G_EXCEPTION_HALT_VALIDATION;
571 END IF;
572 EXCEPTION
573 when G_EXCEPTION_HALT_VALIDATION then
574 -- no processing necessary; validation can continue
575 -- with the next column
576 null;
577
578 when OTHERS then
579 -- store SQL error message on message stack for caller
580 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
581 p_msg_name => g_unexpected_error,
582 p_token1 => g_sqlcode_token,
583 p_token1_value => sqlcode,
584 p_token2 => g_sqlerrm_token,
585 p_token2_value => sqlerrm);
586
587 -- notify caller of an UNEXPECTED error
588 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
589
590 END validate_pdf_id;
591
592 -- Start of comments
593 -- Procedure Name : validate_name
594 -- Description : Checks for valid length, Uniqueness and upper case for column NAME
595 -- Version : 1.0
596 -- End of comments
597
598 PROCEDURE validate_name(
599 x_return_status OUT NOCOPY VARCHAR2,
600 p_pdpv_rec IN pdpv_rec_type) IS
601
602 pdf_usage varchar2(60);
603 pdf_type varchar2(30);
604
605 CURSOR k1_csr is
606 SELECT pdf.USAGE , pdf.pdf_type from okc_process_defs_v pdf
607 where pdf.id = p_pdpv_rec.pdf_id ;
608
609 k1_rec k1_csr%ROWTYPE;
610
611 BEGIN
612 -- initialize return status
613 x_return_status := OKC_API.G_RET_STS_SUCCESS;
614
615 -- Checks if name is null
616 IF p_pdpv_rec.name = OKC_API.G_MISS_CHAR OR
617 p_pdpv_rec.name IS NULL THEN
618 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
619 p_msg_name => g_required_value,
620 p_token1 => g_col_name_token,
621 p_token1_value => 'name');
622 x_return_status := OKC_API.G_RET_STS_ERROR;
623 raise G_EXCEPTION_HALT_VALIDATION;
624 END IF;
625
626 --Check if the data is in upper case
627 IF p_pdpv_rec.name <> UPPER(p_pdpv_rec.name) THEN
628 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
629 p_msg_name => g_uppercase_required,
630 p_token1 => g_col_name_token,
631 p_token1_value => 'name');
632
633 x_return_status := OKC_API.G_RET_STS_ERROR;
634 raise G_EXCEPTION_HALT_VALIDATION;
635 END IF;
636
637 --- Check for duplicate standard parameters
638
639 FOR k1_rec in k1_csr() LOOP
640 pdf_usage := k1_rec.usage;
641 pdf_type := k1_rec.pdf_type;
642 END LOOP;
643
644 IF UPPER(pdf_usage) IN ('OUTCOME') THEN
645 IF UPPER(pdf_type) IN ('PPS') THEN
646 IF p_pdpv_rec.name IN ('P_INIT_MSG_LIST', 'X_MSG_DATA', 'X_MSG_COUNT', 'X_RETURN_STATUS') THEN
647 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
648 p_msg_name => 'PROCESS_DEF_PARMS_INVALID',
649 p_token1 => 'PARAM_NAME',
650 p_token1_value => p_pdpv_rec.name);
651 x_return_status := OKC_API.G_RET_STS_ERROR;
652 raise G_EXCEPTION_HALT_VALIDATION;
653 END IF;
654 END IF;
655 END IF;
656
657
658 EXCEPTION
659 when G_EXCEPTION_HALT_VALIDATION then
660 -- no processing necessary; validation can continue
661 -- with the next column
662 null;
663
664 when OTHERS then
665 -- store SQL error message on message stack for caller
666 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
667 p_msg_name => g_unexpected_error,
668 p_token1 => g_sqlcode_token,
669 p_token1_value => sqlcode,
670 p_token2 => g_sqlerrm_token,
671 p_token2_value => sqlerrm);
672
673 -- notify caller of an UNEXPECTED error
674 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
675 END validate_name;
676
677
678 -- Start of comments
679 -- Procedure Name : validate_user_name
680 -- Description : Checks for valid length, Uniqueness and upper case for column USER_NAME
681 -- Version : 1.0
682 -- End of comments
683
684 PROCEDURE validate_user_name(
685 x_return_status OUT NOCOPY VARCHAR2,
686 p_pdpv_rec IN pdpv_rec_type) IS
687
688 BEGIN
689 -- initialize return status
690 x_return_status := OKC_API.G_RET_STS_SUCCESS;
691
692 -- Checks if user_name is null
693 IF p_pdpv_rec.user_name = OKC_API.G_MISS_CHAR OR
694 p_pdpv_rec.user_name IS NULL THEN
695 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
696 p_msg_name => g_required_value,
697 p_token1 => g_col_name_token,
698 p_token1_value => 'user_name');
699 x_return_status := OKC_API.G_RET_STS_ERROR;
700 raise G_EXCEPTION_HALT_VALIDATION;
701 END IF;
702
703 EXCEPTION
704 when G_EXCEPTION_HALT_VALIDATION then
705 -- no processing necessary; validation can continue
706 -- with the next column
707 null;
708
709 when OTHERS then
710 -- store SQL error message on message stack for caller
711 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
712 p_msg_name => g_unexpected_error,
713 p_token1 => g_sqlcode_token,
714 p_token1_value => sqlcode,
715 p_token2 => g_sqlerrm_token,
716 p_token2_value => sqlerrm);
717
718 -- notify caller of an UNEXPECTED error
719 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
720 END validate_user_name;
721
722
723 -- Start of comments
724 -- Procedure Name : validate_data_type
725 -- Description : Checks for valid data type and uppercase
726 -- Version : 1.0
727 -- End of comments
728
729 PROCEDURE validate_data_type(
730 x_return_status OUT NOCOPY VARCHAR2,
731 p_pdpv_rec IN pdpv_rec_type) IS
732 BEGIN
733 -- initialize return status
734 x_return_status := OKC_API.G_RET_STS_SUCCESS;
735
736 -- Check if data_type is null
737 IF p_pdpv_rec.data_type = OKC_API.G_MISS_CHAR OR
738 p_pdpv_rec.data_type IS NULL THEN
739 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
740 p_msg_name => g_required_value,
741 p_token1 => g_col_name_token,
742 p_token1_value => 'data_type');
743 x_return_status := OKC_API.G_RET_STS_ERROR;
744 raise G_EXCEPTION_HALT_VALIDATION;
745 END IF;
746
747 -- Check for valid Data type
748 IF (p_pdpv_rec.data_type NOT IN ('CHAR', 'NUMBER', 'DATE')) THEN
749 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
750 p_msg_name => g_invalid_value,
751 p_token1 => g_col_name_token,
752 p_token1_value => 'data_type');
753 x_return_status := OKC_API.G_RET_STS_ERROR;
754 raise G_EXCEPTION_HALT_VALIDATION;
755 END IF;
756
757 --Check if the data is in upper case
758 IF p_pdpv_rec.data_type <> UPPER(p_pdpv_rec.data_type) THEN
759 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
760 p_msg_name => g_uppercase_required,
761 p_token1 => g_col_name_token,
762 p_token1_value => 'data_type');
763 x_return_status := OKC_API.G_RET_STS_ERROR;
764 raise G_EXCEPTION_HALT_VALIDATION;
765 END IF;
766 EXCEPTION
767 when G_EXCEPTION_HALT_VALIDATION then
768 -- no processing necessary; validation can continue
769 -- with the next column
770 null;
771
772 when OTHERS then
773 -- store SQL error message on message stack for caller
774 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
775 p_msg_name => g_unexpected_error,
776 p_token1 => g_sqlcode_token,
777 p_token1_value => sqlcode,
778 p_token2 => g_sqlerrm_token,
779 p_token2_value => sqlerrm);
780
781 -- notify caller of an UNEXPECTED error
782 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
783 END validate_data_type;
784
785 -- Start of comments
786 -- Procedure Name : validate_required_yn
787 -- Description : Checks for valid data type and uppercase
788 -- Version : 1.0
789 -- End of comments
790
791 PROCEDURE validate_required_yn(
792 x_return_status OUT NOCOPY VARCHAR2,
793 p_pdpv_rec IN pdpv_rec_type) IS
794 BEGIN
795 -- initialize return status
796 x_return_status := OKC_API.G_RET_STS_SUCCESS;
797
798 -- Check if data_type is null
799 IF p_pdpv_rec.required_yn = OKC_API.G_MISS_CHAR OR
800 p_pdpv_rec.required_yn IS NULL THEN
801 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
802 p_msg_name => g_required_value,
803 p_token1 => g_col_name_token,
804 p_token1_value => 'required_yn');
805 x_return_status := OKC_API.G_RET_STS_ERROR;
806 raise G_EXCEPTION_HALT_VALIDATION;
807 END IF;
808
809 -- Check for valid required_yn
810 IF (p_pdpv_rec.required_yn NOT IN ('Y', 'N')) THEN
811 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
812 p_msg_name => g_invalid_value,
813 p_token1 => g_col_name_token,
814 p_token1_value => 'required_yn');
815 x_return_status := OKC_API.G_RET_STS_ERROR;
816 raise G_EXCEPTION_HALT_VALIDATION;
817 END IF;
818
819 --Check if the data is in upper case
820 IF p_pdpv_rec.required_yn <> UPPER(p_pdpv_rec.required_yn) THEN
821 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
822 p_msg_name => g_uppercase_required,
823 p_token1 => g_col_name_token,
824 p_token1_value => 'required_yn');
825 x_return_status := OKC_API.G_RET_STS_ERROR;
826 raise G_EXCEPTION_HALT_VALIDATION;
827 END IF;
828 EXCEPTION
829 when G_EXCEPTION_HALT_VALIDATION then
830 -- no processing necessary; validation can continue
831 -- with the next column
832 null;
833
834 when OTHERS then
835 -- store SQL error message on message stack for caller
836 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
837 p_msg_name => g_unexpected_error,
838 p_token1 => g_sqlcode_token,
839 p_token1_value => sqlcode,
840 p_token2 => g_sqlerrm_token,
841 p_token2_value => sqlerrm);
842
843 -- notify caller of an UNEXPECTED error
844 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
845 END validate_required_yn;
846
847 -- Start of comments
848 -- Procedure Name : validate_sfwt_flag
849 -- Description : Checks if sfwt_flag is Y or N
850 -- Version : 1.0
851 -- End of comments
852
853 PROCEDURE validate_sfwt_flag(
854 x_return_status OUT NOCOPY VARCHAR2,
855 p_pdpv_rec IN pdpv_rec_type) IS
856
857 BEGIN
858 -- initialize return status
859 x_return_status := OKC_API.G_RET_STS_SUCCESS;
860
861 -- Check for valid sfwt_flag
862 IF (p_pdpv_rec.sfwt_flag NOT IN ('Y', 'N')) THEN
863 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
864 p_msg_name => g_invalid_value,
865 p_token1 => g_col_name_token,
866 p_token1_value => 'sfwt_flag');
867 x_return_status := OKC_API.G_RET_STS_ERROR;
868 RAISE G_EXCEPTION_HALT_VALIDATION;
869 END IF;
870
871 --Check if the data is in upper case
872 IF p_pdpv_rec.sfwt_flag <> UPPER(p_pdpv_rec.sfwt_flag) THEN
873 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
874 p_msg_name => g_uppercase_required,
875 p_token1 => g_col_name_token,
876 p_token1_value => 'sfwt_flag');
877 x_return_status := OKC_API.G_RET_STS_ERROR;
878 RAISE G_EXCEPTION_HALT_VALIDATION;
879 END IF;
880 EXCEPTION
881 when G_EXCEPTION_HALT_VALIDATION then
882 -- no processing necessary; validation can continue
883 -- with the next column
884 null;
885
886 when OTHERS then
887 -- store SQL error message on message stack for caller
888 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
889 p_msg_name => g_unexpected_error,
890 p_token1 => g_sqlcode_token,
891 p_token1_value => sqlcode,
892 p_token2 => g_sqlerrm_token,
893 p_token2_value => sqlerrm);
894
895 -- notify caller of an UNEXPECTED error
896 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
897 END validate_sfwt_flag;
898
899 -- Start of comments
900 -- Procedure Name : validate_seeded_flag
901 -- Description : Checks if seeded_flag is Y or N
902 -- Version : 1.0
903 -- End of comments
904
905 PROCEDURE validate_seeded_flag(
906 x_return_status OUT NOCOPY VARCHAR2,
907 p_pdpv_rec IN pdpv_rec_type) IS
908
909 BEGIN
910 -- initialize return status
911 x_return_status := OKC_API.G_RET_STS_SUCCESS;
912
913 -- Check for valid seeded_flag
914 IF (p_pdpv_rec.seeded_flag NOT IN ('Y', 'N')) THEN
915 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
916 p_msg_name => g_invalid_value,
917 p_token1 => g_col_name_token,
918 p_token1_value => 'seeded_flag');
919 x_return_status := OKC_API.G_RET_STS_ERROR;
920 RAISE G_EXCEPTION_HALT_VALIDATION;
921 END IF;
922
923 --Check if the data is in upper case
924 IF p_pdpv_rec.seeded_flag <> UPPER(p_pdpv_rec.seeded_flag) THEN
925 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
926 p_msg_name => g_uppercase_required,
927 p_token1 => g_col_name_token,
928 p_token1_value => 'seeded_flag');
929 x_return_status := OKC_API.G_RET_STS_ERROR;
930 RAISE G_EXCEPTION_HALT_VALIDATION;
931 END IF;
932 EXCEPTION
933 when G_EXCEPTION_HALT_VALIDATION then
934 -- no processing necessary; validation can continue
935 -- with the next column
936 null;
937
938 when OTHERS then
939 -- store SQL error message on message stack for caller
940 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
941 p_msg_name => g_unexpected_error,
942 p_token1 => g_sqlcode_token,
943 p_token1_value => sqlcode,
944 p_token2 => g_sqlerrm_token,
945 p_token2_value => sqlerrm);
946
947 -- notify caller of an UNEXPECTED error
948 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
949 END validate_seeded_flag;
950
951 -- Start of comments
952 -- Procedure Name : validate_application_id
953 -- Description : Checks if application_id exists in fnd_application
954 -- Version : 1.0
955 -- End of comments
956
957 PROCEDURE validate_application_id(
958 x_return_status OUT NOCOPY VARCHAR2,
959 p_pdpv_rec IN pdpv_rec_type) IS
960
961 CURSOR application_id_cur(p_application_id IN NUMBER) IS
962 SELECT '1'
963 FROM fnd_application
964 WHERE application_id = p_application_id;
965 l_dummy VARCHAR2(1) := '?';
966
967 BEGIN
968 -- initialize return status
969 x_return_status := OKC_API.G_RET_STS_SUCCESS;
970 IF p_pdpv_rec.application_id IS NOT NULL THEN
971 -- Check if application id exists in the fnd_application or not
972 OPEN application_id_cur(p_pdpv_rec.application_id);
973 FETCH application_id_cur INTO l_dummy;
974 CLOSE application_id_cur;
975
976 IF l_dummy = '?' THEN
977 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
978 p_msg_name => g_invalid_value,
979 p_token1 => g_col_name_token,
980 p_token1_value => 'application_id');
981 x_return_status := OKC_API.G_RET_STS_ERROR;
982 RAISE G_EXCEPTION_HALT_VALIDATION;
983 END IF;
984 END IF;
985
986 EXCEPTION
987 when G_EXCEPTION_HALT_VALIDATION then
988 -- no processing necessary; validation can continue
989 -- with the next column
990 null;
991
992 when OTHERS then
993 -- store SQL error message on message stack for caller
994 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
995 p_msg_name => g_unexpected_error,
996 p_token1 => g_sqlcode_token,
997 p_token1_value => sqlcode,
998 p_token2 => g_sqlerrm_token,
999 p_token2_value => sqlerrm);
1000
1001 -- notify caller of an UNEXPECTED error
1002 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1003 END validate_application_id;
1004
1005 FUNCTION Validate_Attributes (
1006 p_pdpv_rec IN pdpv_rec_type
1007 ) RETURN VARCHAR2 IS
1008 x_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1009 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1010 BEGIN
1011
1012 validate_object_version_number(x_return_status
1013 ,p_pdpv_rec);
1014 -- store the highest degree of error
1015 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1016 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN -- need to leave
1017 l_return_status := x_return_status;
1018 RAISE G_EXCEPTION_HALT_VALIDATION;
1019 ELSE
1020 l_return_status := x_return_status; -- record that there was an error
1021 END IF;
1022 END IF;
1023
1024 validate_pdf_id(x_return_status
1025 ,p_pdpv_rec);
1026 -- store the highest degree of error
1027 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1028 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN -- need to leave
1029 l_return_status := x_return_status;
1030 RAISE G_EXCEPTION_HALT_VALIDATION;
1031 ELSE
1032 l_return_status := x_return_status; -- record that there was an error
1033 END IF;
1034 END IF;
1035
1036 validate_name(x_return_status
1037 ,p_pdpv_rec);
1038 -- store the highest degree of error
1039 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1040 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN -- need to leave
1041 l_return_status := x_return_status;
1042 RAISE G_EXCEPTION_HALT_VALIDATION;
1043 ELSE
1044 l_return_status := x_return_status; -- record that there was an error
1045 END IF;
1046 END IF;
1047
1048 validate_user_name(x_return_status
1049 ,p_pdpv_rec);
1050 -- store the highest degree of error
1051 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1052 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN -- need to leave
1053 l_return_status := x_return_status;
1054 RAISE G_EXCEPTION_HALT_VALIDATION;
1055 ELSE
1056 l_return_status := x_return_status; -- record that there was an error
1057 END IF;
1058 END IF;
1059
1060 validate_data_type(x_return_status
1061 ,p_pdpv_rec);
1062 -- store the highest degree of error
1063 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1064 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN -- need to leave
1065 l_return_status := x_return_status;
1066 RAISE G_EXCEPTION_HALT_VALIDATION;
1067 ELSE
1068 l_return_status := x_return_status; -- record that there was an error
1069 END IF;
1070 END IF;
1071
1072 validate_required_yn(x_return_status
1073 ,p_pdpv_rec);
1074 -- store the highest degree of error
1075 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1076 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN -- need to leave
1077 l_return_status := x_return_status;
1078 RAISE G_EXCEPTION_HALT_VALIDATION;
1079 ELSE
1080 l_return_status := x_return_status; -- record that there was an error
1081 END IF;
1082 END IF;
1083
1084 validate_sfwt_flag(x_return_status
1085 ,p_pdpv_rec);
1086 -- store the highest degree of error
1087 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1088 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN -- need to leave
1089 l_return_status := x_return_status;
1090 RAISE G_EXCEPTION_HALT_VALIDATION;
1091 ELSE
1092 l_return_status := x_return_status; -- record that there was an error
1093 END IF;
1094 END IF;
1095
1096 validate_seeded_flag(x_return_status
1097 ,p_pdpv_rec);
1098 -- store the highest degree of error
1099 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1100 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN -- need to leave
1101 l_return_status := x_return_status;
1102 RAISE G_EXCEPTION_HALT_VALIDATION;
1103 ELSE
1104 l_return_status := x_return_status; -- record that there was an error
1105 END IF;
1106 END IF;
1107
1108 validate_application_id(x_return_status
1109 ,p_pdpv_rec);
1110 -- store the highest degree of error
1111 IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1112 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN -- need to leave
1113 l_return_status := x_return_status;
1114 RAISE G_EXCEPTION_HALT_VALIDATION;
1115 ELSE
1116 l_return_status := x_return_status; -- record that there was an error
1117 END IF;
1118 END IF;
1119
1120 RETURN(l_return_status);
1121 EXCEPTION
1122 When G_EXCEPTION_HALT_VALIDATION then
1123 --just come out with return status
1124 null;
1125 RETURN(l_return_status);
1126
1127 when OTHERS then
1128 -- store SQL error message on message stack for caller
1129 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1130 p_msg_name => g_unexpected_error,
1131 p_token1 => g_sqlcode_token,
1132 p_token1_value => sqlcode,
1133 p_token2 => g_sqlerrm_token,
1134 p_token2_value => sqlerrm);
1135
1136 -- notify caller of an UNEXPECTED error
1137 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1138 RETURN(l_return_status);
1139 END Validate_Attributes;
1140
1141 ---------------------------------------------------------------------------
1142 -- PROCEDURE Validate_Record
1143 ---------------------------------------------------------------------------
1144 ------------------------------------------------------
1145 -- Validate_Record for:OKC_PROCESS_DEF_PARAMETERS_V --
1146 ------------------------------------------------------
1147 FUNCTION Validate_Record (
1148 p_pdpv_rec IN pdpv_rec_type
1149 ) RETURN VARCHAR2 IS
1150 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1151 l_dummy Varchar2(1);
1152 l_row_found Boolean;
1153 cursor c1 is
1154 SELECT 'x'
1155 FROM okc_process_def_parameters_v
1156 WHERE name = p_pdpv_rec.name
1157 AND pdf_id = p_pdpv_rec.pdf_id
1158 AND id <> p_pdpv_rec.id;
1159 -- OR p_pdfv_rec.id is null)
1160 BEGIN
1161 Open c1;
1162 Fetch c1 Into l_Dummy;
1163 l_row_found := c1%Found;
1164 Close c1;
1165 If l_row_found Then
1166 OKC_API.set_message(G_APP_NAME, 'OKC_DUPLICATE_PARMS_NAME');
1167 l_Return_status := OKC_API.G_RET_STS_ERROR;
1168 End If;
1169 RETURN(l_return_status);
1170 EXCEPTION
1171 When Others Then
1172 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
1173 p_msg_name => g_unexpected_error,
1174 p_token1 => g_sqlcode_token,
1175 p_token1_value => sqlcode,
1176 p_token2 => g_sqlerrm_token,
1177 p_token2_value => sqlerrm);
1178 -- notify caller of an UNEXPECTED error
1179 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1180 RETURN(l_return_status);
1181 END Validate_Record;
1182
1183 /**************** End Hand Written Code **********************************/
1184
1185 ---------------------------------------------------------------------------
1186 -- PROCEDURE Migrate
1187 ---------------------------------------------------------------------------
1188 PROCEDURE migrate (
1189 p_from IN pdpv_rec_type,
1190 p_to OUT NOCOPY OkcProcessDefParmsTlRecType
1191 ) IS
1192 BEGIN
1193 p_to.id := p_from.id;
1194 p_to.sfwt_flag := p_from.sfwt_flag;
1195 p_to.name := p_from.user_name;
1196 p_to.description := p_from.description;
1197 p_to.created_by := p_from.created_by;
1198 p_to.creation_date := p_from.creation_date;
1199 p_to.last_updated_by := p_from.last_updated_by;
1200 p_to.last_update_date := p_from.last_update_date;
1201 p_to.last_update_login := p_from.last_update_login;
1202 END migrate;
1203 PROCEDURE migrate (
1204 p_from IN OkcProcessDefParmsTlRecType,
1205 p_to IN OUT NOCOPY pdpv_rec_type
1206 ) IS
1207 BEGIN
1208 p_to.id := p_from.id;
1209 p_to.sfwt_flag := p_from.sfwt_flag;
1210 p_to.user_name := p_from.name;
1211 p_to.description := p_from.description;
1212 p_to.created_by := p_from.created_by;
1213 p_to.creation_date := p_from.creation_date;
1214 p_to.last_updated_by := p_from.last_updated_by;
1215 p_to.last_update_date := p_from.last_update_date;
1216 p_to.last_update_login := p_from.last_update_login;
1217 END migrate;
1218 PROCEDURE migrate (
1219 p_from IN pdpv_rec_type,
1220 p_to OUT NOCOPY pdp_rec_type
1221 ) IS
1222 BEGIN
1223 p_to.id := p_from.id;
1224 p_to.pdf_id := p_from.pdf_id;
1225 p_to.name := p_from.name;
1226 p_to.data_type := p_from.data_type;
1227 p_to.required_yn := p_from.required_yn;
1228 p_to.object_version_number := p_from.object_version_number;
1229 p_to.created_by := p_from.created_by;
1230 p_to.creation_date := p_from.creation_date;
1231 p_to.last_updated_by := p_from.last_updated_by;
1232 p_to.last_update_date := p_from.last_update_date;
1233 p_to.default_value := p_from.default_value;
1234 p_to.last_update_login := p_from.last_update_login;
1235 p_to.application_id := p_from.application_id;
1236 p_to.seeded_flag := p_from.seeded_flag;
1237 p_to.jtot_object_code := p_from.jtot_object_code;
1238 p_to.NAME_COLUMN := p_from.NAME_COLUMN;
1239 p_to.description_column := p_from.description_column;
1240 END migrate;
1241 PROCEDURE migrate (
1242 p_from IN pdp_rec_type,
1243 p_to IN OUT NOCOPY pdpv_rec_type
1244 ) IS
1245 BEGIN
1246 p_to.id := p_from.id;
1247 p_to.pdf_id := p_from.pdf_id;
1248 p_to.name := p_from.name;
1249 p_to.data_type := p_from.data_type;
1250 p_to.required_yn := p_from.required_yn;
1251 p_to.object_version_number := p_from.object_version_number;
1252 p_to.created_by := p_from.created_by;
1253 p_to.creation_date := p_from.creation_date;
1254 p_to.last_updated_by := p_from.last_updated_by;
1255 p_to.last_update_date := p_from.last_update_date;
1256 p_to.default_value := p_from.default_value;
1257 p_to.last_update_login := p_from.last_update_login;
1258 p_to.application_id := p_from.application_id;
1259 p_to.seeded_flag := p_from.seeded_flag;
1260 p_to.jtot_object_code := p_from.jtot_object_code;
1261 p_to.NAME_COLUMN := p_from.NAME_COLUMN;
1262 p_to.description_column := p_from.description_column;
1263 END migrate;
1264
1265 ---------------------------------------------------------------------------
1266 -- PROCEDURE validate_row
1267 ---------------------------------------------------------------------------
1268 ---------------------------------------------------
1269 -- validate_row for:OKC_PROCESS_DEF_PARAMETERS_V --
1270 ---------------------------------------------------
1271 PROCEDURE validate_row(
1272 p_api_version IN NUMBER,
1273 p_init_msg_list IN VARCHAR2 ,
1274 x_return_status OUT NOCOPY VARCHAR2,
1275 x_msg_count OUT NOCOPY NUMBER,
1276 x_msg_data OUT NOCOPY VARCHAR2,
1277 p_pdpv_rec IN pdpv_rec_type) IS
1278
1279 l_api_version CONSTANT NUMBER := 1;
1280 l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
1281 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1282 l_pdpv_rec pdpv_rec_type := p_pdpv_rec;
1283 l_okc_process_def_parms_tl_rec OkcProcessDefParmsTlRecType;
1284 l_pdp_rec pdp_rec_type;
1285 BEGIN
1286 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1287 G_PKG_NAME,
1288 p_init_msg_list,
1289 l_api_version,
1290 p_api_version,
1291 '_PVT',
1292 x_return_status);
1293 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1294 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1295 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1296 RAISE OKC_API.G_EXCEPTION_ERROR;
1297 END IF;
1298 --- Validate all non-missing attributes (Item Level Validation)
1299 l_return_status := Validate_Attributes(l_pdpv_rec);
1300 --- If any errors happen abort API
1301 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1302 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1303 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1304 RAISE OKC_API.G_EXCEPTION_ERROR;
1305 END IF;
1306 l_return_status := Validate_Record(l_pdpv_rec);
1307 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1308 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1309 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1310 RAISE OKC_API.G_EXCEPTION_ERROR;
1311 END IF;
1312 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1313 EXCEPTION
1314 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1315 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1316 (
1317 l_api_name,
1318 G_PKG_NAME,
1319 'OKC_API.G_RET_STS_ERROR',
1320 x_msg_count,
1321 x_msg_data,
1322 '_PVT'
1323 );
1324 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1325 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1326 (
1327 l_api_name,
1328 G_PKG_NAME,
1329 'OKC_API.G_RET_STS_UNEXP_ERROR',
1330 x_msg_count,
1331 x_msg_data,
1332 '_PVT'
1333 );
1334 WHEN OTHERS THEN
1335 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1336 (
1337 l_api_name,
1338 G_PKG_NAME,
1339 'OTHERS',
1340 x_msg_count,
1341 x_msg_data,
1342 '_PVT'
1343 );
1344 END validate_row;
1345 ------------------------------------------
1346 -- PL/SQL TBL validate_row for:PDPV_TBL --
1347 ------------------------------------------
1348 PROCEDURE validate_row(
1349 p_api_version IN NUMBER,
1350 p_init_msg_list IN VARCHAR2 ,
1351 x_return_status OUT NOCOPY VARCHAR2,
1352 x_msg_count OUT NOCOPY NUMBER,
1353 x_msg_data OUT NOCOPY VARCHAR2,
1354 p_pdpv_tbl IN pdpv_tbl_type) IS
1355
1356 l_api_version CONSTANT NUMBER := 1;
1357 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
1358 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1359 i NUMBER := 0;
1360 BEGIN
1361 OKC_API.init_msg_list(p_init_msg_list);
1362 -- Make sure PL/SQL table has records in it before passing
1363 IF (p_pdpv_tbl.COUNT > 0) THEN
1364 i := p_pdpv_tbl.FIRST;
1365 LOOP
1366 validate_row (
1367 p_api_version => p_api_version,
1368 p_init_msg_list => OKC_API.G_FALSE,
1369 x_return_status => x_return_status,
1370 x_msg_count => x_msg_count,
1371 x_msg_data => x_msg_data,
1372 p_pdpv_rec => p_pdpv_tbl(i));
1373 EXIT WHEN (i = p_pdpv_tbl.LAST);
1374 i := p_pdpv_tbl.NEXT(i);
1375 END LOOP;
1376 END IF;
1377 EXCEPTION
1378 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1379 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1380 (
1381 l_api_name,
1382 G_PKG_NAME,
1383 'OKC_API.G_RET_STS_ERROR',
1384 x_msg_count,
1385 x_msg_data,
1386 '_PVT'
1387 );
1388 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1389 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1390 (
1391 l_api_name,
1392 G_PKG_NAME,
1393 'OKC_API.G_RET_STS_UNEXP_ERROR',
1394 x_msg_count,
1395 x_msg_data,
1396 '_PVT'
1397 );
1398 WHEN OTHERS THEN
1399 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1400 (
1401 l_api_name,
1402 G_PKG_NAME,
1403 'OTHERS',
1404 x_msg_count,
1405 x_msg_data,
1406 '_PVT'
1407 );
1408 END validate_row;
1409
1410 ---------------------------------------------------------------------------
1411 -- PROCEDURE insert_row
1412 ---------------------------------------------------------------------------
1413 ---------------------------------------------
1414 -- insert_row for:OKC_PROCESS_DEF_PARMS_TL --
1415 ---------------------------------------------
1416 PROCEDURE insert_row(
1417 p_init_msg_list IN VARCHAR2 ,
1418 x_return_status OUT NOCOPY VARCHAR2,
1419 x_msg_count OUT NOCOPY NUMBER,
1420 x_msg_data OUT NOCOPY VARCHAR2,
1421 p_okc_process_def_parms_tl_rec IN OkcProcessDefParmsTlRecType,
1422 x_okc_process_def_parms_tl_rec OUT NOCOPY OkcProcessDefParmsTlRecType) IS
1423
1424 l_api_version CONSTANT NUMBER := 1;
1425 l_api_name CONSTANT VARCHAR2(30) := 'TL_insert_row';
1426 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1427 l_okc_process_def_parms_tl_rec OkcProcessDefParmsTlRecType := p_okc_process_def_parms_tl_rec;
1428 ldefokcprocessdefparmstlrec OkcProcessDefParmsTlRecType;
1429 CURSOR get_languages IS
1430 SELECT *
1431 FROM FND_LANGUAGES
1432 WHERE INSTALLED_FLAG IN ('I', 'B');
1433 -------------------------------------------------
1434 -- Set_Attributes for:OKC_PROCESS_DEF_PARMS_TL --
1435 -------------------------------------------------
1436 FUNCTION Set_Attributes (
1437 p_okc_process_def_parms_tl_rec IN OkcProcessDefParmsTlRecType,
1438 x_okc_process_def_parms_tl_rec OUT NOCOPY OkcProcessDefParmsTlRecType
1439 ) RETURN VARCHAR2 IS
1440 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1441 BEGIN
1442 x_okc_process_def_parms_tl_rec := p_okc_process_def_parms_tl_rec;
1443 x_okc_process_def_parms_tl_rec.LANGUAGE := l_lang;
1444 x_okc_process_def_parms_tl_rec.SOURCE_LANG := l_lang;
1445 RETURN(l_return_status);
1446 END Set_Attributes;
1447 BEGIN
1448 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1449 p_init_msg_list,
1450 '_PVT',
1451 x_return_status);
1452 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1453 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1454 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1455 RAISE OKC_API.G_EXCEPTION_ERROR;
1456 END IF;
1457 --- Setting item attributes
1458 l_return_status := Set_Attributes(
1459 p_okc_process_def_parms_tl_rec, -- IN
1460 l_okc_process_def_parms_tl_rec); -- OUT
1461 --- If any errors happen abort API
1462 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1463 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1464 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1465 RAISE OKC_API.G_EXCEPTION_ERROR;
1466 END IF;
1467 FOR l_lang_rec IN get_languages LOOP
1468 l_okc_process_def_parms_tl_rec.language := l_lang_rec.language_code;
1469 INSERT INTO OKC_PROCESS_DEF_PARMS_TL(
1470 id,
1471 language,
1472 source_lang,
1473 sfwt_flag,
1474 name,
1475 description,
1476 created_by,
1477 creation_date,
1478 last_updated_by,
1479 last_update_date,
1480 last_update_login)
1481 VALUES (
1482 l_okc_process_def_parms_tl_rec.id,
1483 l_okc_process_def_parms_tl_rec.language,
1484 l_okc_process_def_parms_tl_rec.source_lang,
1485 l_okc_process_def_parms_tl_rec.sfwt_flag,
1486 l_okc_process_def_parms_tl_rec.name,
1487 l_okc_process_def_parms_tl_rec.description,
1488 l_okc_process_def_parms_tl_rec.created_by,
1489 l_okc_process_def_parms_tl_rec.creation_date,
1490 l_okc_process_def_parms_tl_rec.last_updated_by,
1491 l_okc_process_def_parms_tl_rec.last_update_date,
1492 l_okc_process_def_parms_tl_rec.last_update_login);
1493 END LOOP;
1494 -- Set OUT values
1495 x_okc_process_def_parms_tl_rec := l_okc_process_def_parms_tl_rec;
1496 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1497 EXCEPTION
1498 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1499 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1500 (
1501 l_api_name,
1502 G_PKG_NAME,
1503 'OKC_API.G_RET_STS_ERROR',
1504 x_msg_count,
1505 x_msg_data,
1506 '_PVT'
1507 );
1508 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1509 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1510 (
1511 l_api_name,
1512 G_PKG_NAME,
1513 'OKC_API.G_RET_STS_UNEXP_ERROR',
1514 x_msg_count,
1515 x_msg_data,
1516 '_PVT'
1517 );
1518 WHEN OTHERS THEN
1519 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1520 (
1521 l_api_name,
1522 G_PKG_NAME,
1523 'OTHERS',
1524 x_msg_count,
1525 x_msg_data,
1526 '_PVT'
1527 );
1528 END insert_row;
1529 --------------------------------------------
1530 -- insert_row for:OKC_PROCESS_DEF_PARMS_B --
1531 --------------------------------------------
1532 PROCEDURE insert_row(
1533 p_init_msg_list IN VARCHAR2 ,
1534 x_return_status OUT NOCOPY VARCHAR2,
1535 x_msg_count OUT NOCOPY NUMBER,
1536 x_msg_data OUT NOCOPY VARCHAR2,
1537 p_pdp_rec IN pdp_rec_type,
1538 x_pdp_rec OUT NOCOPY pdp_rec_type) IS
1539
1540 l_api_version CONSTANT NUMBER := 1;
1541 l_api_name CONSTANT VARCHAR2(30) := 'B_insert_row';
1542 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1543 l_pdp_rec pdp_rec_type := p_pdp_rec;
1544 l_def_pdp_rec pdp_rec_type;
1545 ------------------------------------------------
1546 -- Set_Attributes for:OKC_PROCESS_DEF_PARMS_B --
1547 ------------------------------------------------
1548 FUNCTION Set_Attributes (
1549 p_pdp_rec IN pdp_rec_type,
1550 x_pdp_rec OUT NOCOPY pdp_rec_type
1551 ) RETURN VARCHAR2 IS
1552 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1553 BEGIN
1554 x_pdp_rec := p_pdp_rec;
1555 RETURN(l_return_status);
1556 END Set_Attributes;
1557 BEGIN
1558 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1559 p_init_msg_list,
1560 '_PVT',
1561 x_return_status);
1562 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1563 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1564 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1565 RAISE OKC_API.G_EXCEPTION_ERROR;
1566 END IF;
1567 --- Setting item attributes
1568 l_return_status := Set_Attributes(
1569 p_pdp_rec, -- IN
1570 l_pdp_rec); -- OUT
1571 --- If any errors happen abort API
1572 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1573 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1574 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1575 RAISE OKC_API.G_EXCEPTION_ERROR;
1576 END IF;
1577 INSERT INTO OKC_PROCESS_DEF_PARMS_B(
1578 id,
1579 pdf_id,
1580 name,
1581 data_type,
1582 required_yn,
1583 object_version_number,
1584 created_by,
1585 creation_date,
1586 last_updated_by,
1587 last_update_date,
1588 default_value,
1589 last_update_login,
1590 application_id,
1591 seeded_flag,
1592 jtot_object_code,
1593 NAME_COLUMN,
1594 description_column)
1595 VALUES (
1596 l_pdp_rec.id,
1597 l_pdp_rec.pdf_id,
1598 l_pdp_rec.name,
1599 l_pdp_rec.data_type,
1600 l_pdp_rec.required_yn,
1601 l_pdp_rec.object_version_number,
1602 l_pdp_rec.created_by,
1603 l_pdp_rec.creation_date,
1604 l_pdp_rec.last_updated_by,
1605 l_pdp_rec.last_update_date,
1606 l_pdp_rec.default_value,
1607 l_pdp_rec.last_update_login,
1608 l_pdp_rec.application_id,
1609 l_pdp_rec.seeded_flag,
1610 l_pdp_rec.jtot_object_code,
1611 l_pdp_rec.NAME_COLUMN,
1612 l_pdp_rec.description_column);
1613 -- Set OUT values
1614 x_pdp_rec := l_pdp_rec;
1615 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1616 EXCEPTION
1617 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1618 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1619 (
1620 l_api_name,
1621 G_PKG_NAME,
1622 'OKC_API.G_RET_STS_ERROR',
1623 x_msg_count,
1624 x_msg_data,
1625 '_PVT'
1626 );
1627 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1628 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1629 (
1630 l_api_name,
1631 G_PKG_NAME,
1632 'OKC_API.G_RET_STS_UNEXP_ERROR',
1633 x_msg_count,
1634 x_msg_data,
1635 '_PVT'
1636 );
1637 WHEN OTHERS THEN
1638 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1639 (
1640 l_api_name,
1641 G_PKG_NAME,
1642 'OTHERS',
1643 x_msg_count,
1644 x_msg_data,
1645 '_PVT'
1646 );
1647 END insert_row;
1648 -------------------------------------------------
1649 -- insert_row for:OKC_PROCESS_DEF_PARAMETERS_V --
1650 -------------------------------------------------
1651 PROCEDURE insert_row(
1652 p_api_version IN NUMBER,
1653 p_init_msg_list IN VARCHAR2 ,
1654 x_return_status OUT NOCOPY VARCHAR2,
1655 x_msg_count OUT NOCOPY NUMBER,
1656 x_msg_data OUT NOCOPY VARCHAR2,
1657 p_pdpv_rec IN pdpv_rec_type,
1658 x_pdpv_rec OUT NOCOPY pdpv_rec_type) IS
1659
1660 l_id NUMBER;
1661 l_api_version CONSTANT NUMBER := 1;
1662 l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
1663 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1664 l_pdpv_rec pdpv_rec_type;
1665 l_def_pdpv_rec pdpv_rec_type;
1666 l_okc_process_def_parms_tl_rec OkcProcessDefParmsTlRecType;
1667 LxOkcProcessDefParmsTlRec OkcProcessDefParmsTlRecType;
1668 l_pdp_rec pdp_rec_type;
1669 lx_pdp_rec pdp_rec_type;
1670 -------------------------------
1671 -- FUNCTION fill_who_columns --
1672 -------------------------------
1673 FUNCTION fill_who_columns (
1674 p_pdpv_rec IN pdpv_rec_type
1675 ) RETURN pdpv_rec_type IS
1676 l_pdpv_rec pdpv_rec_type := p_pdpv_rec;
1677 BEGIN
1678 l_pdpv_rec.CREATION_DATE := SYSDATE;
1679 l_pdpv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
1680 l_pdpv_rec.LAST_UPDATE_DATE := l_pdpv_rec.CREATION_DATE;
1681 l_pdpv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1682 l_pdpv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
1683 RETURN(l_pdpv_rec);
1684 END fill_who_columns;
1685 -----------------------------------------------------
1686 -- Set_Attributes for:OKC_PROCESS_DEF_PARAMETERS_V --
1687 -----------------------------------------------------
1688 FUNCTION Set_Attributes (
1689 p_pdpv_rec IN pdpv_rec_type,
1690 x_pdpv_rec OUT NOCOPY pdpv_rec_type
1691 ) RETURN VARCHAR2 IS
1692 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1693 BEGIN
1694 x_pdpv_rec := p_pdpv_rec;
1695 x_pdpv_rec.OBJECT_VERSION_NUMBER := 1;
1696 x_pdpv_rec.SFWT_FLAG := 'N';
1697 x_pdpv_rec.user_name := p_pdpv_rec.name;
1698 RETURN(l_return_status);
1699 END Set_Attributes;
1700 BEGIN
1701 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1702 G_PKG_NAME,
1703 p_init_msg_list,
1704 l_api_version,
1705 p_api_version,
1706 '_PVT',
1707 x_return_status);
1708 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1709 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1710 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1711 RAISE OKC_API.G_EXCEPTION_ERROR;
1712 END IF;
1713 l_pdpv_rec := null_out_defaults(p_pdpv_rec);
1714 -- Set primary key value
1715 -- If parameters are created by seed the use sequence generated id
1716 IF l_pdpv_rec.CREATED_BY = 1 THEN
1717 SELECT OKC_PROCESS_DEF_PARMS_S1.nextval INTO l_id FROM dual;
1718 l_pdpv_rec.ID := l_id;
1719 l_pdpv_rec.seeded_flag := 'Y';
1720 ELSE
1721 l_pdpv_rec.ID := get_seq_id;
1722 l_pdpv_rec.seeded_flag := 'N';
1723 END IF;
1724 --l_pdpv_rec.ID := get_seq_id;
1725 --- Setting item attributes
1726 l_return_status := Set_Attributes(
1727 l_pdpv_rec, -- IN
1728 l_def_pdpv_rec); -- OUT
1729 --- If any errors happen abort API
1730 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1731 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1732 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1733 RAISE OKC_API.G_EXCEPTION_ERROR;
1734 END IF;
1735 l_def_pdpv_rec := fill_who_columns(l_def_pdpv_rec);
1736 --- Validate all non-missing attributes (Item Level Validation)
1737 l_return_status := Validate_Attributes(l_def_pdpv_rec);
1738 --- If any errors happen abort API
1739 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1740 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1741 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1742 RAISE OKC_API.G_EXCEPTION_ERROR;
1743 END IF;
1744 l_return_status := Validate_Record(l_def_pdpv_rec);
1745 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1746 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1747 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1748 RAISE OKC_API.G_EXCEPTION_ERROR;
1749 END IF;
1750 --------------------------------------
1751 -- Move VIEW record to "Child" records
1752 --------------------------------------
1753 migrate(l_def_pdpv_rec, l_okc_process_def_parms_tl_rec);
1754 migrate(l_def_pdpv_rec, l_pdp_rec);
1755 --------------------------------------------
1756 -- Call the INSERT_ROW for each child record
1757 --------------------------------------------
1758 insert_row(
1759 p_init_msg_list,
1760 x_return_status,
1761 x_msg_count,
1762 x_msg_data,
1763 l_okc_process_def_parms_tl_rec,
1764 LxOkcProcessDefParmsTlRec
1765 );
1766 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1767 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1768 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1769 RAISE OKC_API.G_EXCEPTION_ERROR;
1770 END IF;
1771 migrate(LxOkcProcessDefParmsTlRec, l_def_pdpv_rec);
1772 insert_row(
1773 p_init_msg_list,
1774 x_return_status,
1775 x_msg_count,
1776 x_msg_data,
1777 l_pdp_rec,
1778 lx_pdp_rec
1779 );
1780 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1781 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1782 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1783 RAISE OKC_API.G_EXCEPTION_ERROR;
1784 END IF;
1785 migrate(lx_pdp_rec, l_def_pdpv_rec);
1786 -- Set OUT values
1787 x_pdpv_rec := l_def_pdpv_rec;
1788 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1789 EXCEPTION
1790 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1791 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1792 (
1793 l_api_name,
1794 G_PKG_NAME,
1795 'OKC_API.G_RET_STS_ERROR',
1796 x_msg_count,
1797 x_msg_data,
1798 '_PVT'
1799 );
1800 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1801 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1802 (
1803 l_api_name,
1804 G_PKG_NAME,
1805 'OKC_API.G_RET_STS_UNEXP_ERROR',
1806 x_msg_count,
1807 x_msg_data,
1808 '_PVT'
1809 );
1810 WHEN OTHERS THEN
1811 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1812 (
1813 l_api_name,
1814 G_PKG_NAME,
1815 'OTHERS',
1816 x_msg_count,
1817 x_msg_data,
1818 '_PVT'
1819 );
1820 END insert_row;
1821 ----------------------------------------
1822 -- PL/SQL TBL insert_row for:PDPV_TBL --
1823 ----------------------------------------
1824 PROCEDURE insert_row(
1825 p_api_version IN NUMBER,
1826 p_init_msg_list IN VARCHAR2 ,
1827 x_return_status OUT NOCOPY VARCHAR2,
1828 x_msg_count OUT NOCOPY NUMBER,
1829 x_msg_data OUT NOCOPY VARCHAR2,
1830 p_pdpv_tbl IN pdpv_tbl_type,
1831 x_pdpv_tbl OUT NOCOPY pdpv_tbl_type) IS
1832
1833 l_api_version CONSTANT NUMBER := 1;
1834 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
1835 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1836 i NUMBER := 0;
1837 BEGIN
1838 OKC_API.init_msg_list(p_init_msg_list);
1839 -- Make sure PL/SQL table has records in it before passing
1840 IF (p_pdpv_tbl.COUNT > 0) THEN
1841 i := p_pdpv_tbl.FIRST;
1842 LOOP
1843 insert_row (
1844 p_api_version => p_api_version,
1845 p_init_msg_list => OKC_API.G_FALSE,
1846 x_return_status => x_return_status,
1847 x_msg_count => x_msg_count,
1848 x_msg_data => x_msg_data,
1849 p_pdpv_rec => p_pdpv_tbl(i),
1850 x_pdpv_rec => x_pdpv_tbl(i));
1851 EXIT WHEN (i = p_pdpv_tbl.LAST);
1852 i := p_pdpv_tbl.NEXT(i);
1853 END LOOP;
1854 END IF;
1855 EXCEPTION
1856 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1857 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1858 (
1859 l_api_name,
1860 G_PKG_NAME,
1861 'OKC_API.G_RET_STS_ERROR',
1862 x_msg_count,
1863 x_msg_data,
1864 '_PVT'
1865 );
1866 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1867 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1868 (
1869 l_api_name,
1870 G_PKG_NAME,
1871 'OKC_API.G_RET_STS_UNEXP_ERROR',
1872 x_msg_count,
1873 x_msg_data,
1874 '_PVT'
1875 );
1876 WHEN OTHERS THEN
1877 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1878 (
1879 l_api_name,
1880 G_PKG_NAME,
1881 'OTHERS',
1882 x_msg_count,
1883 x_msg_data,
1884 '_PVT'
1885 );
1886 END insert_row;
1887
1888 ---------------------------------------------------------------------------
1889 -- PROCEDURE lock_row
1890 ---------------------------------------------------------------------------
1891 -------------------------------------------
1892 -- lock_row for:OKC_PROCESS_DEF_PARMS_TL --
1893 -------------------------------------------
1894 PROCEDURE lock_row(
1895 p_init_msg_list IN VARCHAR2 ,
1896 x_return_status OUT NOCOPY VARCHAR2,
1897 x_msg_count OUT NOCOPY NUMBER,
1898 x_msg_data OUT NOCOPY VARCHAR2,
1899 p_okc_process_def_parms_tl_rec IN OkcProcessDefParmsTlRecType) IS
1900
1901 E_Resource_Busy EXCEPTION;
1902 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
1903 CURSOR lock_csr (p_okc_process_def_parms_tl_rec IN OkcProcessDefParmsTlRecType) IS
1904 SELECT *
1905 FROM OKC_PROCESS_DEF_PARMS_TL
1906 WHERE ID = p_okc_process_def_parms_tl_rec.id
1907 FOR UPDATE NOWAIT;
1908
1909 l_api_version CONSTANT NUMBER := 1;
1910 l_api_name CONSTANT VARCHAR2(30) := 'TL_lock_row';
1911 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1912 l_lock_var lock_csr%ROWTYPE;
1913 l_row_notfound BOOLEAN := FALSE;
1914 lc_row_notfound BOOLEAN := FALSE;
1915 BEGIN
1916 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1917 p_init_msg_list,
1918 '_PVT',
1919 x_return_status);
1920 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1921 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1922 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1923 RAISE OKC_API.G_EXCEPTION_ERROR;
1924 END IF;
1925 BEGIN
1926 OPEN lock_csr(p_okc_process_def_parms_tl_rec);
1927 FETCH lock_csr INTO l_lock_var;
1928 l_row_notfound := lock_csr%NOTFOUND;
1929 CLOSE lock_csr;
1930 EXCEPTION
1931 WHEN E_Resource_Busy THEN
1932 IF (lock_csr%ISOPEN) THEN
1933 CLOSE lock_csr;
1934 END IF;
1935 OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
1936 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
1937 END;
1938
1939 IF ( l_row_notfound ) THEN
1940 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
1941 RAISE OKC_API.G_EXCEPTION_ERROR;
1942 END IF;
1943 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1944 EXCEPTION
1945 WHEN OKC_API.G_EXCEPTION_ERROR THEN
1946 x_return_status := OKC_API.HANDLE_EXCEPTIONS
1947 (
1948 l_api_name,
1949 G_PKG_NAME,
1950 'OKC_API.G_RET_STS_ERROR',
1951 x_msg_count,
1952 x_msg_data,
1953 '_PVT'
1954 );
1955 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1956 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1957 (
1958 l_api_name,
1959 G_PKG_NAME,
1960 'OKC_API.G_RET_STS_UNEXP_ERROR',
1961 x_msg_count,
1962 x_msg_data,
1963 '_PVT'
1964 );
1965 WHEN OTHERS THEN
1966 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
1967 (
1968 l_api_name,
1969 G_PKG_NAME,
1970 'OTHERS',
1971 x_msg_count,
1972 x_msg_data,
1973 '_PVT'
1974 );
1975 END lock_row;
1976 ------------------------------------------
1977 -- lock_row for:OKC_PROCESS_DEF_PARMS_B --
1978 ------------------------------------------
1979 PROCEDURE lock_row(
1980 p_init_msg_list IN VARCHAR2 ,
1981 x_return_status OUT NOCOPY VARCHAR2,
1982 x_msg_count OUT NOCOPY NUMBER,
1983 x_msg_data OUT NOCOPY VARCHAR2,
1984 p_pdp_rec IN pdp_rec_type) IS
1985
1986 E_Resource_Busy EXCEPTION;
1987 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
1988 CURSOR lock_csr (p_pdp_rec IN pdp_rec_type) IS
1989 SELECT OBJECT_VERSION_NUMBER
1990 FROM OKC_PROCESS_DEF_PARMS_B
1991 WHERE ID = p_pdp_rec.id
1992 AND OBJECT_VERSION_NUMBER = p_pdp_rec.object_version_number
1993 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
1994
1995 CURSOR lchk_csr (p_pdp_rec IN pdp_rec_type) IS
1996 SELECT OBJECT_VERSION_NUMBER
1997 FROM OKC_PROCESS_DEF_PARMS_B
1998 WHERE ID = p_pdp_rec.id;
1999 l_api_version CONSTANT NUMBER := 1;
2000 l_api_name CONSTANT VARCHAR2(30) := 'B_lock_row';
2001 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2002 l_object_version_number OKC_PROCESS_DEF_PARMS_B.OBJECT_VERSION_NUMBER%TYPE;
2003 lc_object_version_number OKC_PROCESS_DEF_PARMS_B.OBJECT_VERSION_NUMBER%TYPE;
2004 l_row_notfound BOOLEAN := FALSE;
2005 lc_row_notfound BOOLEAN := FALSE;
2006 BEGIN
2007 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2008 p_init_msg_list,
2009 '_PVT',
2010 x_return_status);
2011 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2012 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2013 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2014 RAISE OKC_API.G_EXCEPTION_ERROR;
2015 END IF;
2016 BEGIN
2017 OPEN lock_csr(p_pdp_rec);
2018 FETCH lock_csr INTO l_object_version_number;
2019 l_row_notfound := lock_csr%NOTFOUND;
2020 CLOSE lock_csr;
2021 EXCEPTION
2022 WHEN E_Resource_Busy THEN
2023 IF (lock_csr%ISOPEN) THEN
2024 CLOSE lock_csr;
2025 END IF;
2026 OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2027 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2028 END;
2029
2030 IF ( l_row_notfound ) THEN
2031 OPEN lchk_csr(p_pdp_rec);
2032 FETCH lchk_csr INTO lc_object_version_number;
2033 lc_row_notfound := lchk_csr%NOTFOUND;
2034 CLOSE lchk_csr;
2035 END IF;
2036 IF (lc_row_notfound) THEN
2037 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2038 RAISE OKC_API.G_EXCEPTION_ERROR;
2039 ELSIF lc_object_version_number > p_pdp_rec.object_version_number THEN
2040 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2041 RAISE OKC_API.G_EXCEPTION_ERROR;
2042 ELSIF lc_object_version_number <> p_pdp_rec.object_version_number THEN
2043 OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2044 RAISE OKC_API.G_EXCEPTION_ERROR;
2045 ELSIF lc_object_version_number = -1 THEN
2046 OKC_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
2047 RAISE OKC_API.G_EXCEPTION_ERROR;
2048 END IF;
2049 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2050 EXCEPTION
2051 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2052 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2053 (
2054 l_api_name,
2055 G_PKG_NAME,
2056 'OKC_API.G_RET_STS_ERROR',
2057 x_msg_count,
2058 x_msg_data,
2059 '_PVT'
2060 );
2061 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2062 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2063 (
2064 l_api_name,
2065 G_PKG_NAME,
2066 'OKC_API.G_RET_STS_UNEXP_ERROR',
2067 x_msg_count,
2068 x_msg_data,
2069 '_PVT'
2070 );
2071 WHEN OTHERS THEN
2072 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2073 (
2074 l_api_name,
2075 G_PKG_NAME,
2076 'OTHERS',
2077 x_msg_count,
2078 x_msg_data,
2079 '_PVT'
2080 );
2081 END lock_row;
2082 -----------------------------------------------
2083 -- lock_row for:OKC_PROCESS_DEF_PARAMETERS_V --
2084 -----------------------------------------------
2085 PROCEDURE lock_row(
2086 p_api_version IN NUMBER,
2087 p_init_msg_list IN VARCHAR2 ,
2088 x_return_status OUT NOCOPY VARCHAR2,
2089 x_msg_count OUT NOCOPY NUMBER,
2090 x_msg_data OUT NOCOPY VARCHAR2,
2091 p_pdpv_rec IN pdpv_rec_type) IS
2092
2093 l_api_version CONSTANT NUMBER := 1;
2094 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
2095 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2096 l_okc_process_def_parms_tl_rec OkcProcessDefParmsTlRecType;
2097 l_pdp_rec pdp_rec_type;
2098 BEGIN
2099 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2100 G_PKG_NAME,
2101 p_init_msg_list,
2102 l_api_version,
2103 p_api_version,
2104 '_PVT',
2105 x_return_status);
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 -- Move VIEW record to "Child" records
2113 --------------------------------------
2114 migrate(p_pdpv_rec, l_okc_process_def_parms_tl_rec);
2115 migrate(p_pdpv_rec, l_pdp_rec);
2116 --------------------------------------------
2117 -- Call the LOCK_ROW for each child record
2118 --------------------------------------------
2119 lock_row(
2120 p_init_msg_list,
2121 x_return_status,
2122 x_msg_count,
2123 x_msg_data,
2124 l_okc_process_def_parms_tl_rec
2125 );
2126 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2127 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2128 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2129 RAISE OKC_API.G_EXCEPTION_ERROR;
2130 END IF;
2131 lock_row(
2132 p_init_msg_list,
2133 x_return_status,
2134 x_msg_count,
2135 x_msg_data,
2136 l_pdp_rec
2137 );
2138 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2139 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2140 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2141 RAISE OKC_API.G_EXCEPTION_ERROR;
2142 END IF;
2143 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2144 EXCEPTION
2145 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2146 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2147 (
2148 l_api_name,
2149 G_PKG_NAME,
2150 'OKC_API.G_RET_STS_ERROR',
2151 x_msg_count,
2152 x_msg_data,
2153 '_PVT'
2154 );
2155 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2156 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2157 (
2158 l_api_name,
2159 G_PKG_NAME,
2160 'OKC_API.G_RET_STS_UNEXP_ERROR',
2161 x_msg_count,
2162 x_msg_data,
2163 '_PVT'
2164 );
2165 WHEN OTHERS THEN
2166 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2167 (
2168 l_api_name,
2169 G_PKG_NAME,
2170 'OTHERS',
2171 x_msg_count,
2172 x_msg_data,
2173 '_PVT'
2174 );
2175 END lock_row;
2176 --------------------------------------
2177 -- PL/SQL TBL lock_row for:PDPV_TBL --
2178 --------------------------------------
2179 PROCEDURE lock_row(
2180 p_api_version IN NUMBER,
2181 p_init_msg_list IN VARCHAR2 ,
2182 x_return_status OUT NOCOPY VARCHAR2,
2183 x_msg_count OUT NOCOPY NUMBER,
2184 x_msg_data OUT NOCOPY VARCHAR2,
2185 p_pdpv_tbl IN pdpv_tbl_type) IS
2186
2187 l_api_version CONSTANT NUMBER := 1;
2188 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
2189 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2190 i NUMBER := 0;
2191 BEGIN
2192 OKC_API.init_msg_list(p_init_msg_list);
2193 -- Make sure PL/SQL table has records in it before passing
2194 IF (p_pdpv_tbl.COUNT > 0) THEN
2195 i := p_pdpv_tbl.FIRST;
2196 LOOP
2197 lock_row (
2198 p_api_version => p_api_version,
2199 p_init_msg_list => OKC_API.G_FALSE,
2200 x_return_status => x_return_status,
2201 x_msg_count => x_msg_count,
2202 x_msg_data => x_msg_data,
2203 p_pdpv_rec => p_pdpv_tbl(i));
2204 EXIT WHEN (i = p_pdpv_tbl.LAST);
2205 i := p_pdpv_tbl.NEXT(i);
2206 END LOOP;
2207 END IF;
2208 EXCEPTION
2209 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2210 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2211 (
2212 l_api_name,
2213 G_PKG_NAME,
2214 'OKC_API.G_RET_STS_ERROR',
2215 x_msg_count,
2216 x_msg_data,
2217 '_PVT'
2218 );
2219 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2220 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2221 (
2222 l_api_name,
2223 G_PKG_NAME,
2224 'OKC_API.G_RET_STS_UNEXP_ERROR',
2225 x_msg_count,
2226 x_msg_data,
2227 '_PVT'
2228 );
2229 WHEN OTHERS THEN
2230 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2231 (
2232 l_api_name,
2233 G_PKG_NAME,
2234 'OTHERS',
2235 x_msg_count,
2236 x_msg_data,
2237 '_PVT'
2238 );
2239 END lock_row;
2240
2241 ---------------------------------------------------------------------------
2242 -- PROCEDURE update_row
2243 ---------------------------------------------------------------------------
2244 ---------------------------------------------
2245 -- update_row for:OKC_PROCESS_DEF_PARMS_TL --
2246 ---------------------------------------------
2247 PROCEDURE update_row(
2248 p_init_msg_list IN VARCHAR2 ,
2249 x_return_status OUT NOCOPY VARCHAR2,
2250 x_msg_count OUT NOCOPY NUMBER,
2251 x_msg_data OUT NOCOPY VARCHAR2,
2252 p_okc_process_def_parms_tl_rec IN OkcProcessDefParmsTlRecType,
2253 x_okc_process_def_parms_tl_rec OUT NOCOPY OkcProcessDefParmsTlRecType) IS
2254
2255 l_api_version CONSTANT NUMBER := 1;
2256 l_api_name CONSTANT VARCHAR2(30) := 'TL_update_row';
2257 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2258 l_okc_process_def_parms_tl_rec OkcProcessDefParmsTlRecType := p_okc_process_def_parms_tl_rec;
2259 ldefokcprocessdefparmstlrec OkcProcessDefParmsTlRecType;
2260 l_row_notfound BOOLEAN := TRUE;
2261 ----------------------------------
2262 -- FUNCTION populate_new_record --
2263 ----------------------------------
2264 FUNCTION populate_new_record (
2265 p_okc_process_def_parms_tl_rec IN OkcProcessDefParmsTlRecType,
2266 x_okc_process_def_parms_tl_rec OUT NOCOPY OkcProcessDefParmsTlRecType
2267 ) RETURN VARCHAR2 IS
2268 l_okc_process_def_parms_tl_rec OkcProcessDefParmsTlRecType;
2269 l_row_notfound BOOLEAN := TRUE;
2270 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2271 BEGIN
2272 x_okc_process_def_parms_tl_rec := p_okc_process_def_parms_tl_rec;
2273 -- Get current database values
2274 l_okc_process_def_parms_tl_rec := get_rec(p_okc_process_def_parms_tl_rec, l_row_notfound);
2275 IF (l_row_notfound) THEN
2276 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2277 END IF;
2278 IF (x_okc_process_def_parms_tl_rec.id = OKC_API.G_MISS_NUM)
2279 THEN
2280 x_okc_process_def_parms_tl_rec.id := l_okc_process_def_parms_tl_rec.id;
2281 END IF;
2282 IF (x_okc_process_def_parms_tl_rec.language = OKC_API.G_MISS_CHAR)
2283 THEN
2284 x_okc_process_def_parms_tl_rec.language := l_okc_process_def_parms_tl_rec.language;
2285 END IF;
2286 IF (x_okc_process_def_parms_tl_rec.source_lang = OKC_API.G_MISS_CHAR)
2287 THEN
2288 x_okc_process_def_parms_tl_rec.source_lang := l_okc_process_def_parms_tl_rec.source_lang;
2289 END IF;
2290 IF (x_okc_process_def_parms_tl_rec.sfwt_flag = OKC_API.G_MISS_CHAR)
2291 THEN
2292 x_okc_process_def_parms_tl_rec.sfwt_flag := l_okc_process_def_parms_tl_rec.sfwt_flag;
2293 END IF;
2294 IF (x_okc_process_def_parms_tl_rec.name = OKC_API.G_MISS_CHAR)
2295 THEN
2296 x_okc_process_def_parms_tl_rec.name := l_okc_process_def_parms_tl_rec.name;
2297 END IF;
2298 IF (x_okc_process_def_parms_tl_rec.description = OKC_API.G_MISS_CHAR)
2299 THEN
2300 x_okc_process_def_parms_tl_rec.description := l_okc_process_def_parms_tl_rec.description;
2301 END IF;
2302 IF (x_okc_process_def_parms_tl_rec.created_by = OKC_API.G_MISS_NUM)
2303 THEN
2304 x_okc_process_def_parms_tl_rec.created_by := l_okc_process_def_parms_tl_rec.created_by;
2305 END IF;
2306 IF (x_okc_process_def_parms_tl_rec.creation_date = OKC_API.G_MISS_DATE)
2307 THEN
2308 x_okc_process_def_parms_tl_rec.creation_date := l_okc_process_def_parms_tl_rec.creation_date;
2309 END IF;
2310 IF (x_okc_process_def_parms_tl_rec.last_updated_by = OKC_API.G_MISS_NUM)
2311 THEN
2312 x_okc_process_def_parms_tl_rec.last_updated_by := l_okc_process_def_parms_tl_rec.last_updated_by;
2313 END IF;
2314 IF (x_okc_process_def_parms_tl_rec.last_update_date = OKC_API.G_MISS_DATE)
2315 THEN
2316 x_okc_process_def_parms_tl_rec.last_update_date := l_okc_process_def_parms_tl_rec.last_update_date;
2317 END IF;
2318 IF (x_okc_process_def_parms_tl_rec.last_update_login = OKC_API.G_MISS_NUM)
2319 THEN
2320 x_okc_process_def_parms_tl_rec.last_update_login := l_okc_process_def_parms_tl_rec.last_update_login;
2321 END IF;
2322 RETURN(l_return_status);
2323 END populate_new_record;
2324 -------------------------------------------------
2325 -- Set_Attributes for:OKC_PROCESS_DEF_PARMS_TL --
2326 -------------------------------------------------
2327 FUNCTION Set_Attributes (
2328 p_okc_process_def_parms_tl_rec IN OkcProcessDefParmsTlRecType,
2329 x_okc_process_def_parms_tl_rec OUT NOCOPY OkcProcessDefParmsTlRecType
2330 ) RETURN VARCHAR2 IS
2331 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2332 BEGIN
2333 x_okc_process_def_parms_tl_rec := p_okc_process_def_parms_tl_rec;
2334 x_okc_process_def_parms_tl_rec.LANGUAGE := l_lang;
2335 x_okc_process_def_parms_tl_rec.SOURCE_LANG := l_lang;
2336 RETURN(l_return_status);
2337 END Set_Attributes;
2338 BEGIN
2339 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2340 p_init_msg_list,
2341 '_PVT',
2342 x_return_status);
2343 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2344 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2345 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2346 RAISE OKC_API.G_EXCEPTION_ERROR;
2347 END IF;
2348 --- Setting item attributes
2349 l_return_status := Set_Attributes(
2350 p_okc_process_def_parms_tl_rec, -- IN
2351 l_okc_process_def_parms_tl_rec); -- OUT
2352 --- If any errors happen abort API
2353 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2354 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2355 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2356 RAISE OKC_API.G_EXCEPTION_ERROR;
2357 END IF;
2358 l_return_status := populate_new_record(l_okc_process_def_parms_tl_rec, ldefokcprocessdefparmstlrec);
2359 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2360 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2361 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2362 RAISE OKC_API.G_EXCEPTION_ERROR;
2363 END IF;
2364 UPDATE OKC_PROCESS_DEF_PARMS_TL
2365 SET NAME = ldefokcprocessdefparmstlrec.name,
2366 DESCRIPTION = ldefokcprocessdefparmstlrec.description,
2367 CREATED_BY = ldefokcprocessdefparmstlrec.created_by,
2368 CREATION_DATE = ldefokcprocessdefparmstlrec.creation_date,
2369 LAST_UPDATED_BY = ldefokcprocessdefparmstlrec.last_updated_by,
2370 LAST_UPDATE_DATE = ldefokcprocessdefparmstlrec.last_update_date,
2371 LAST_UPDATE_LOGIN = ldefokcprocessdefparmstlrec.last_update_login
2372 WHERE ID = ldefokcprocessdefparmstlrec.id
2373 AND USERENV('LANG') IN (SOURCE_LANG,LANGUAGE);
2374 --AND SOURCE_LANG = USERENV('LANG');
2375
2376 UPDATE OKC_PROCESS_DEF_PARMS_TL
2377 SET SFWT_FLAG = 'Y'
2378 WHERE ID = ldefokcprocessdefparmstlrec.id
2379 AND SOURCE_LANG <> USERENV('LANG');
2380
2381 x_okc_process_def_parms_tl_rec := ldefokcprocessdefparmstlrec;
2382 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2383 EXCEPTION
2384 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2385 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2386 (
2387 l_api_name,
2388 G_PKG_NAME,
2389 'OKC_API.G_RET_STS_ERROR',
2390 x_msg_count,
2391 x_msg_data,
2392 '_PVT'
2393 );
2394 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2395 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2396 (
2397 l_api_name,
2398 G_PKG_NAME,
2399 'OKC_API.G_RET_STS_UNEXP_ERROR',
2400 x_msg_count,
2401 x_msg_data,
2402 '_PVT'
2403 );
2404 WHEN OTHERS THEN
2405 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2406 (
2407 l_api_name,
2408 G_PKG_NAME,
2409 'OTHERS',
2410 x_msg_count,
2411 x_msg_data,
2412 '_PVT'
2413 );
2414 END update_row;
2415 --------------------------------------------
2416 -- update_row for:OKC_PROCESS_DEF_PARMS_B --
2417 --------------------------------------------
2418 PROCEDURE update_row(
2419 p_init_msg_list IN VARCHAR2 ,
2420 x_return_status OUT NOCOPY VARCHAR2,
2421 x_msg_count OUT NOCOPY NUMBER,
2422 x_msg_data OUT NOCOPY VARCHAR2,
2423 p_pdp_rec IN pdp_rec_type,
2424 x_pdp_rec OUT NOCOPY pdp_rec_type) IS
2425
2426 l_api_version CONSTANT NUMBER := 1;
2427 l_api_name CONSTANT VARCHAR2(30) := 'B_update_row';
2428 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2429 l_pdp_rec pdp_rec_type := p_pdp_rec;
2430 l_def_pdp_rec pdp_rec_type;
2431 l_row_notfound BOOLEAN := TRUE;
2432 ----------------------------------
2433 -- FUNCTION populate_new_record --
2434 ----------------------------------
2435 FUNCTION populate_new_record (
2436 p_pdp_rec IN pdp_rec_type,
2437 x_pdp_rec OUT NOCOPY pdp_rec_type
2438 ) RETURN VARCHAR2 IS
2439 l_pdp_rec pdp_rec_type;
2440 l_row_notfound BOOLEAN := TRUE;
2441 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2442 BEGIN
2443 x_pdp_rec := p_pdp_rec;
2444 -- Get current database values
2445 l_pdp_rec := get_rec(p_pdp_rec, l_row_notfound);
2446 IF (l_row_notfound) THEN
2447 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2448 END IF;
2449 IF (x_pdp_rec.id = OKC_API.G_MISS_NUM)
2450 THEN
2451 x_pdp_rec.id := l_pdp_rec.id;
2452 END IF;
2453 IF (x_pdp_rec.pdf_id = OKC_API.G_MISS_NUM)
2454 THEN
2455 x_pdp_rec.pdf_id := l_pdp_rec.pdf_id;
2456 END IF;
2457 IF (x_pdp_rec.name = OKC_API.G_MISS_CHAR)
2458 THEN
2459 x_pdp_rec.name := l_pdp_rec.name;
2460 END IF;
2461 IF (x_pdp_rec.data_type = OKC_API.G_MISS_CHAR)
2462 THEN
2463 x_pdp_rec.data_type := l_pdp_rec.data_type;
2464 END IF;
2465 IF (x_pdp_rec.required_yn = OKC_API.G_MISS_CHAR)
2466 THEN
2467 x_pdp_rec.required_yn := l_pdp_rec.required_yn;
2468 END IF;
2469 IF (x_pdp_rec.object_version_number = OKC_API.G_MISS_NUM)
2470 THEN
2471 x_pdp_rec.object_version_number := l_pdp_rec.object_version_number;
2472 END IF;
2473 IF (x_pdp_rec.created_by = OKC_API.G_MISS_NUM)
2474 THEN
2475 x_pdp_rec.created_by := l_pdp_rec.created_by;
2476 END IF;
2477 IF (x_pdp_rec.creation_date = OKC_API.G_MISS_DATE)
2478 THEN
2479 x_pdp_rec.creation_date := l_pdp_rec.creation_date;
2480 END IF;
2481 IF (x_pdp_rec.last_updated_by = OKC_API.G_MISS_NUM)
2482 THEN
2483 x_pdp_rec.last_updated_by := l_pdp_rec.last_updated_by;
2484 END IF;
2485 IF (x_pdp_rec.last_update_date = OKC_API.G_MISS_DATE)
2486 THEN
2487 x_pdp_rec.last_update_date := l_pdp_rec.last_update_date;
2488 END IF;
2489 IF (x_pdp_rec.default_value = OKC_API.G_MISS_CHAR)
2490 THEN
2491 x_pdp_rec.default_value := l_pdp_rec.default_value;
2492 END IF;
2493 IF (x_pdp_rec.last_update_login = OKC_API.G_MISS_NUM)
2494 THEN
2495 x_pdp_rec.last_update_login := l_pdp_rec.last_update_login;
2496 END IF;
2497 IF (x_pdp_rec.application_id = OKC_API.G_MISS_NUM)
2498 THEN
2499 x_pdp_rec.application_id := l_pdp_rec.application_id;
2500 END IF;
2501 IF (x_pdp_rec.seeded_flag = OKC_API.G_MISS_CHAR)
2502 THEN
2503 x_pdp_rec.seeded_flag := l_pdp_rec.seeded_flag;
2504 END IF;
2505 IF (x_pdp_rec.jtot_object_code = OKC_API.G_MISS_CHAR)
2506 THEN
2507 x_pdp_rec.jtot_object_code := l_pdp_rec.jtot_object_code;
2508 END IF;
2509 IF (x_pdp_rec.NAME_COLUMN = OKC_API.G_MISS_CHAR)
2510 THEN
2511 x_pdp_rec.NAME_COLUMN := l_pdp_rec.NAME_COLUMN;
2512 END IF;
2513 IF (x_pdp_rec.description_column = OKC_API.G_MISS_CHAR)
2514 THEN
2515 x_pdp_rec.description_column := l_pdp_rec.description_column;
2516 END IF;
2517 RETURN(l_return_status);
2518 END populate_new_record;
2519 ------------------------------------------------
2520 -- Set_Attributes for:OKC_PROCESS_DEF_PARMS_B --
2521 ------------------------------------------------
2522 FUNCTION Set_Attributes (
2523 p_pdp_rec IN pdp_rec_type,
2524 x_pdp_rec OUT NOCOPY pdp_rec_type
2525 ) RETURN VARCHAR2 IS
2526 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2527 BEGIN
2528 x_pdp_rec := p_pdp_rec;
2529 RETURN(l_return_status);
2530 END Set_Attributes;
2531 BEGIN
2532 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2533 p_init_msg_list,
2534 '_PVT',
2535 x_return_status);
2536 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2537 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2538 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2539 RAISE OKC_API.G_EXCEPTION_ERROR;
2540 END IF;
2541 --- Setting item attributes
2542 l_return_status := Set_Attributes(
2543 p_pdp_rec, -- IN
2544 l_pdp_rec); -- OUT
2545 --- If any errors happen abort API
2546 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2547 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2548 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2549 RAISE OKC_API.G_EXCEPTION_ERROR;
2550 END IF;
2551 l_return_status := populate_new_record(l_pdp_rec, l_def_pdp_rec);
2552 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2553 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2554 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2555 RAISE OKC_API.G_EXCEPTION_ERROR;
2556 END IF;
2557 UPDATE OKC_PROCESS_DEF_PARMS_B
2558 SET PDF_ID = l_def_pdp_rec.pdf_id,
2559 NAME = l_def_pdp_rec.name,
2560 DATA_TYPE = l_def_pdp_rec.data_type,
2561 REQUIRED_YN = l_def_pdp_rec.required_yn,
2562 OBJECT_VERSION_NUMBER = l_def_pdp_rec.object_version_number,
2563 CREATED_BY = l_def_pdp_rec.created_by,
2564 CREATION_DATE = l_def_pdp_rec.creation_date,
2565 LAST_UPDATED_BY = l_def_pdp_rec.last_updated_by,
2566 LAST_UPDATE_DATE = l_def_pdp_rec.last_update_date,
2567 DEFAULT_VALUE = l_def_pdp_rec.default_value,
2568 LAST_UPDATE_LOGIN = l_def_pdp_rec.last_update_login,
2569 APPLICATION_ID = l_def_pdp_rec.application_id,
2570 SEEDED_FLAG = l_def_pdp_rec.seeded_flag,
2571 JTOT_OBJECT_CODE = l_def_pdp_rec.jtot_object_code,
2572 NAME_COLUMN = l_def_pdp_rec.NAME_COLUMN,
2573 DESCRIPTION_COLUMN = l_def_pdp_rec.description_column
2574 WHERE ID = l_def_pdp_rec.id;
2575
2576 x_pdp_rec := l_def_pdp_rec;
2577 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2578 EXCEPTION
2579 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2580 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2581 (
2582 l_api_name,
2583 G_PKG_NAME,
2584 'OKC_API.G_RET_STS_ERROR',
2585 x_msg_count,
2586 x_msg_data,
2587 '_PVT'
2588 );
2589 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2590 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2591 (
2592 l_api_name,
2593 G_PKG_NAME,
2594 'OKC_API.G_RET_STS_UNEXP_ERROR',
2595 x_msg_count,
2596 x_msg_data,
2597 '_PVT'
2598 );
2599 WHEN OTHERS THEN
2600 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2601 (
2602 l_api_name,
2603 G_PKG_NAME,
2604 'OTHERS',
2605 x_msg_count,
2606 x_msg_data,
2607 '_PVT'
2608 );
2609 END update_row;
2610 -------------------------------------------------
2611 -- update_row for:OKC_PROCESS_DEF_PARAMETERS_V --
2612 -------------------------------------------------
2613 PROCEDURE update_row(
2614 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_pdpv_rec IN pdpv_rec_type,
2620 x_pdpv_rec OUT NOCOPY pdpv_rec_type) IS
2621
2622 l_api_version CONSTANT NUMBER := 1;
2623 l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
2624 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2625 l_pdpv_rec pdpv_rec_type := p_pdpv_rec;
2626 l_def_pdpv_rec pdpv_rec_type;
2627 l_pdp_rec pdp_rec_type;
2628 lx_pdp_rec pdp_rec_type;
2629 l_okc_process_def_parms_tl_rec OkcProcessDefParmsTlRecType;
2630 LxOkcProcessDefParmsTlRec OkcProcessDefParmsTlRecType;
2631 -------------------------------
2632 -- FUNCTION fill_who_columns --
2633 -------------------------------
2634 FUNCTION fill_who_columns (
2635 p_pdpv_rec IN pdpv_rec_type
2636 ) RETURN pdpv_rec_type IS
2637 l_pdpv_rec pdpv_rec_type := p_pdpv_rec;
2638 BEGIN
2639 l_pdpv_rec.LAST_UPDATE_DATE := SYSDATE;
2640 l_pdpv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2641 l_pdpv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2642 RETURN(l_pdpv_rec);
2643 END fill_who_columns;
2644 ----------------------------------
2645 -- FUNCTION populate_new_record --
2646 ----------------------------------
2647 FUNCTION populate_new_record (
2648 p_pdpv_rec IN pdpv_rec_type,
2649 x_pdpv_rec OUT NOCOPY pdpv_rec_type
2650 ) RETURN VARCHAR2 IS
2651 l_pdpv_rec pdpv_rec_type;
2652 l_row_notfound BOOLEAN := TRUE;
2653 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2654 BEGIN
2655 x_pdpv_rec := p_pdpv_rec;
2656 -- Get current database values
2657 l_pdpv_rec := get_rec(p_pdpv_rec, l_row_notfound);
2658 IF (l_row_notfound) THEN
2659 l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2660 END IF;
2661 IF (x_pdpv_rec.id = OKC_API.G_MISS_NUM)
2662 THEN
2663 x_pdpv_rec.id := l_pdpv_rec.id;
2664 END IF;
2665 IF (x_pdpv_rec.object_version_number = OKC_API.G_MISS_NUM)
2666 THEN
2667 x_pdpv_rec.object_version_number := l_pdpv_rec.object_version_number;
2668 END IF;
2669 IF (x_pdpv_rec.sfwt_flag = OKC_API.G_MISS_CHAR)
2670 THEN
2671 x_pdpv_rec.sfwt_flag := l_pdpv_rec.sfwt_flag;
2672 END IF;
2673 IF (x_pdpv_rec.pdf_id = OKC_API.G_MISS_NUM)
2674 THEN
2675 x_pdpv_rec.pdf_id := l_pdpv_rec.pdf_id;
2676 END IF;
2677 IF (x_pdpv_rec.name = OKC_API.G_MISS_CHAR)
2678 THEN
2679 x_pdpv_rec.name := l_pdpv_rec.name;
2680 END IF;
2681 IF (x_pdpv_rec.user_name = OKC_API.G_MISS_CHAR)
2682 THEN
2683 x_pdpv_rec.user_name := l_pdpv_rec.user_name;
2684 END IF;
2685 IF (x_pdpv_rec.data_type = OKC_API.G_MISS_CHAR)
2686 THEN
2687 x_pdpv_rec.data_type := l_pdpv_rec.data_type;
2688 END IF;
2689 IF (x_pdpv_rec.default_value = OKC_API.G_MISS_CHAR)
2690 THEN
2691 x_pdpv_rec.default_value := l_pdpv_rec.default_value;
2692 END IF;
2693 IF (x_pdpv_rec.required_yn = OKC_API.G_MISS_CHAR)
2694 THEN
2695 x_pdpv_rec.required_yn := l_pdpv_rec.required_yn;
2696 END IF;
2697 IF (x_pdpv_rec.description = OKC_API.G_MISS_CHAR)
2698 THEN
2699 x_pdpv_rec.description := l_pdpv_rec.description;
2700 END IF;
2701 IF (x_pdpv_rec.application_id = OKC_API.G_MISS_NUM)
2702 THEN
2703 x_pdpv_rec.application_id := l_pdpv_rec.application_id;
2704 END IF;
2705 IF (x_pdpv_rec.seeded_flag = OKC_API.G_MISS_CHAR)
2706 THEN
2707 x_pdpv_rec.seeded_flag := l_pdpv_rec.seeded_flag;
2708 END IF;
2709 IF (x_pdpv_rec.created_by = OKC_API.G_MISS_NUM)
2710 THEN
2711 x_pdpv_rec.created_by := l_pdpv_rec.created_by;
2712 END IF;
2713 IF (x_pdpv_rec.creation_date = OKC_API.G_MISS_DATE)
2714 THEN
2715 x_pdpv_rec.creation_date := l_pdpv_rec.creation_date;
2716 END IF;
2717 IF (x_pdpv_rec.last_updated_by = OKC_API.G_MISS_NUM)
2718 THEN
2719 x_pdpv_rec.last_updated_by := l_pdpv_rec.last_updated_by;
2720 END IF;
2721 IF (x_pdpv_rec.last_update_date = OKC_API.G_MISS_DATE)
2722 THEN
2723 x_pdpv_rec.last_update_date := l_pdpv_rec.last_update_date;
2724 END IF;
2725 IF (x_pdpv_rec.last_update_login = OKC_API.G_MISS_NUM)
2726 THEN
2727 x_pdpv_rec.last_update_login := l_pdpv_rec.last_update_login;
2728 END IF;
2729 IF (x_pdpv_rec.jtot_object_code = OKC_API.G_MISS_CHAR)
2730 THEN
2731 x_pdpv_rec.jtot_object_code := l_pdpv_rec.jtot_object_code;
2732 END IF;
2733 IF (x_pdpv_rec.NAME_COLUMN = OKC_API.G_MISS_CHAR)
2734 THEN
2735 x_pdpv_rec.NAME_COLUMN := l_pdpv_rec.NAME_COLUMN;
2736 END IF;
2737 IF (x_pdpv_rec.description_column = OKC_API.G_MISS_CHAR)
2738 THEN
2739 x_pdpv_rec.description_column := l_pdpv_rec.description_column;
2740 END IF;
2741 RETURN(l_return_status);
2742 END populate_new_record;
2743 -----------------------------------------------------
2744 -- Set_Attributes for:OKC_PROCESS_DEF_PARAMETERS_V --
2745 -----------------------------------------------------
2746 FUNCTION Set_Attributes (
2747 p_pdpv_rec IN pdpv_rec_type,
2748 x_pdpv_rec OUT NOCOPY pdpv_rec_type
2749 ) RETURN VARCHAR2 IS
2750 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2751 BEGIN
2752 x_pdpv_rec := p_pdpv_rec;
2753 x_pdpv_rec.OBJECT_VERSION_NUMBER := NVL(x_pdpv_rec.OBJECT_VERSION_NUMBER, 0) + 1;
2754 x_pdpv_rec.user_name := p_pdpv_rec.name;
2755 RETURN(l_return_status);
2756 END Set_Attributes;
2757 BEGIN
2758 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2759 G_PKG_NAME,
2760 p_init_msg_list,
2761 l_api_version,
2762 p_api_version,
2763 '_PVT',
2764 x_return_status);
2765 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2766 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2767 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2768 RAISE OKC_API.G_EXCEPTION_ERROR;
2769 END IF;
2770 --
2771 -- Seed data should not be updated unless it is updated by datamerge
2772 --
2773 IF l_pdpv_rec.last_updated_by <> 1 THEN
2774 IF l_pdpv_rec.seeded_flag = 'Y' THEN
2775 OKC_API.set_message(p_app_name => G_APP_NAME,
2776 p_msg_name => 'OKC_NOT_DELETE_SEEDED');
2777 RAISE OKC_API.G_EXCEPTION_ERROR;
2778 END IF;
2779 END IF;
2780 --- Setting item attributes
2781 l_return_status := Set_Attributes(
2782 p_pdpv_rec, -- IN
2783 l_pdpv_rec); -- OUT
2784 --- If any errors happen abort API
2785 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2786 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2787 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2788 RAISE OKC_API.G_EXCEPTION_ERROR;
2789 END IF;
2790 l_return_status := populate_new_record(l_pdpv_rec, l_def_pdpv_rec);
2791 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2792 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2793 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2794 RAISE OKC_API.G_EXCEPTION_ERROR;
2795 END IF;
2796 l_def_pdpv_rec := fill_who_columns(l_def_pdpv_rec);
2797 --- Validate all non-missing attributes (Item Level Validation)
2798 l_return_status := Validate_Attributes(l_def_pdpv_rec);
2799 --- If any errors happen abort API
2800 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2801 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2802 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2803 RAISE OKC_API.G_EXCEPTION_ERROR;
2804 END IF;
2805 l_return_status := Validate_Record(l_def_pdpv_rec);
2806 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2807 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2808 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2809 RAISE OKC_API.G_EXCEPTION_ERROR;
2810 END IF;
2811
2812 --------------------------------------
2813 -- Move VIEW record to "Child" records
2814 --------------------------------------
2815 migrate(l_def_pdpv_rec, l_pdp_rec);
2816 migrate(l_def_pdpv_rec, l_okc_process_def_parms_tl_rec);
2817 --------------------------------------------
2818 -- Call the UPDATE_ROW for each child record
2819 --------------------------------------------
2820 update_row(
2821 p_init_msg_list,
2822 x_return_status,
2823 x_msg_count,
2824 x_msg_data,
2825 l_pdp_rec,
2826 lx_pdp_rec
2827 );
2828 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2829 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2830 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2831 RAISE OKC_API.G_EXCEPTION_ERROR;
2832 END IF;
2833 migrate(lx_pdp_rec, l_def_pdpv_rec);
2834 update_row(
2835 p_init_msg_list,
2836 x_return_status,
2837 x_msg_count,
2838 x_msg_data,
2839 l_okc_process_def_parms_tl_rec,
2840 LxOkcProcessDefParmsTlRec
2841 );
2842 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2843 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2844 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2845 RAISE OKC_API.G_EXCEPTION_ERROR;
2846 END IF;
2847 migrate(LxOkcProcessDefParmsTlRec, l_def_pdpv_rec);
2848 x_pdpv_rec := l_def_pdpv_rec;
2849 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2850 EXCEPTION
2851 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2852 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2853 (
2854 l_api_name,
2855 G_PKG_NAME,
2856 'OKC_API.G_RET_STS_ERROR',
2857 x_msg_count,
2858 x_msg_data,
2859 '_PVT'
2860 );
2861 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2862 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2863 (
2864 l_api_name,
2865 G_PKG_NAME,
2866 'OKC_API.G_RET_STS_UNEXP_ERROR',
2867 x_msg_count,
2868 x_msg_data,
2869 '_PVT'
2870 );
2871 WHEN OTHERS THEN
2872 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2873 (
2874 l_api_name,
2875 G_PKG_NAME,
2876 'OTHERS',
2877 x_msg_count,
2878 x_msg_data,
2879 '_PVT'
2880 );
2881 END update_row;
2882 ----------------------------------------
2883 -- PL/SQL TBL update_row for:PDPV_TBL --
2884 ----------------------------------------
2885 PROCEDURE update_row(
2886 p_api_version IN NUMBER,
2887 p_init_msg_list IN VARCHAR2 ,
2888 x_return_status OUT NOCOPY VARCHAR2,
2889 x_msg_count OUT NOCOPY NUMBER,
2890 x_msg_data OUT NOCOPY VARCHAR2,
2891 p_pdpv_tbl IN pdpv_tbl_type,
2892 x_pdpv_tbl OUT NOCOPY pdpv_tbl_type) IS
2893
2894 l_api_version CONSTANT NUMBER := 1;
2895 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
2896 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2897 i NUMBER := 0;
2898 BEGIN
2899 OKC_API.init_msg_list(p_init_msg_list);
2900 -- Make sure PL/SQL table has records in it before passing
2901 IF (p_pdpv_tbl.COUNT > 0) THEN
2902 i := p_pdpv_tbl.FIRST;
2903 LOOP
2904 update_row (
2905 p_api_version => p_api_version,
2906 p_init_msg_list => OKC_API.G_FALSE,
2907 x_return_status => x_return_status,
2908 x_msg_count => x_msg_count,
2909 x_msg_data => x_msg_data,
2910 p_pdpv_rec => p_pdpv_tbl(i),
2911 x_pdpv_rec => x_pdpv_tbl(i));
2912 EXIT WHEN (i = p_pdpv_tbl.LAST);
2913 i := p_pdpv_tbl.NEXT(i);
2914 END LOOP;
2915 END IF;
2916 EXCEPTION
2917 WHEN OKC_API.G_EXCEPTION_ERROR THEN
2918 x_return_status := OKC_API.HANDLE_EXCEPTIONS
2919 (
2920 l_api_name,
2921 G_PKG_NAME,
2922 'OKC_API.G_RET_STS_ERROR',
2923 x_msg_count,
2924 x_msg_data,
2925 '_PVT'
2926 );
2927 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2928 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2929 (
2930 l_api_name,
2931 G_PKG_NAME,
2932 'OKC_API.G_RET_STS_UNEXP_ERROR',
2933 x_msg_count,
2934 x_msg_data,
2935 '_PVT'
2936 );
2937 WHEN OTHERS THEN
2938 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2939 (
2940 l_api_name,
2941 G_PKG_NAME,
2942 'OTHERS',
2943 x_msg_count,
2944 x_msg_data,
2945 '_PVT'
2946 );
2947 END update_row;
2948
2949 ---------------------------------------------------------------------------
2950 -- PROCEDURE delete_row
2951 ---------------------------------------------------------------------------
2952 ---------------------------------------------
2953 -- delete_row for:OKC_PROCESS_DEF_PARMS_TL --
2954 ---------------------------------------------
2955 PROCEDURE delete_row(
2956 p_init_msg_list IN VARCHAR2 ,
2957 x_return_status OUT NOCOPY VARCHAR2,
2958 x_msg_count OUT NOCOPY NUMBER,
2959 x_msg_data OUT NOCOPY VARCHAR2,
2960 p_okc_process_def_parms_tl_rec IN OkcProcessDefParmsTlRecType) IS
2961
2962 l_api_version CONSTANT NUMBER := 1;
2963 l_api_name CONSTANT VARCHAR2(30) := 'TL_delete_row';
2964 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2965 l_okc_process_def_parms_tl_rec OkcProcessDefParmsTlRecType:= p_okc_process_def_parms_tl_rec;
2966 l_row_notfound BOOLEAN := TRUE;
2967 -------------------------------------------------
2968 -- Set_Attributes for:OKC_PROCESS_DEF_PARMS_TL --
2969 -------------------------------------------------
2970 FUNCTION Set_Attributes (
2971 p_okc_process_def_parms_tl_rec IN OkcProcessDefParmsTlRecType,
2972 x_okc_process_def_parms_tl_rec OUT NOCOPY OkcProcessDefParmsTlRecType
2973 ) RETURN VARCHAR2 IS
2974 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2975 BEGIN
2976 x_okc_process_def_parms_tl_rec := p_okc_process_def_parms_tl_rec;
2977 x_okc_process_def_parms_tl_rec.LANGUAGE := USERENV('LANG');
2978 RETURN(l_return_status);
2979 END Set_Attributes;
2980 BEGIN
2981 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2982 p_init_msg_list,
2983 '_PVT',
2984 x_return_status);
2985 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2986 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2987 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2988 RAISE OKC_API.G_EXCEPTION_ERROR;
2989 END IF;
2990 --- Setting item attributes
2991 l_return_status := Set_Attributes(
2992 p_okc_process_def_parms_tl_rec, -- IN
2993 l_okc_process_def_parms_tl_rec); -- OUT
2994 --- If any errors happen abort API
2995 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2996 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2997 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2998 RAISE OKC_API.G_EXCEPTION_ERROR;
2999 END IF;
3000 DELETE FROM OKC_PROCESS_DEF_PARMS_TL
3001 WHERE ID = l_okc_process_def_parms_tl_rec.id;
3002
3003 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3004 EXCEPTION
3005 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3006 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3007 (
3008 l_api_name,
3009 G_PKG_NAME,
3010 'OKC_API.G_RET_STS_ERROR',
3011 x_msg_count,
3012 x_msg_data,
3013 '_PVT'
3014 );
3015 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3016 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3017 (
3018 l_api_name,
3019 G_PKG_NAME,
3020 'OKC_API.G_RET_STS_UNEXP_ERROR',
3021 x_msg_count,
3022 x_msg_data,
3023 '_PVT'
3024 );
3025 WHEN OTHERS THEN
3026 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3027 (
3028 l_api_name,
3029 G_PKG_NAME,
3030 'OTHERS',
3031 x_msg_count,
3032 x_msg_data,
3033 '_PVT'
3034 );
3035 END delete_row;
3036 --------------------------------------------
3037 -- delete_row for:OKC_PROCESS_DEF_PARMS_B --
3038 --------------------------------------------
3039 PROCEDURE delete_row(
3040 p_init_msg_list IN VARCHAR2 ,
3041 x_return_status OUT NOCOPY VARCHAR2,
3042 x_msg_count OUT NOCOPY NUMBER,
3043 x_msg_data OUT NOCOPY VARCHAR2,
3044 p_pdp_rec IN pdp_rec_type) IS
3045
3046 l_api_version CONSTANT NUMBER := 1;
3047 l_api_name CONSTANT VARCHAR2(30) := 'B_delete_row';
3048 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3049 l_pdp_rec pdp_rec_type:= p_pdp_rec;
3050 l_row_notfound BOOLEAN := TRUE;
3051 BEGIN
3052 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3053 p_init_msg_list,
3054 '_PVT',
3055 x_return_status);
3056 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3057 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3058 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3059 RAISE OKC_API.G_EXCEPTION_ERROR;
3060 END IF;
3061 DELETE FROM OKC_PROCESS_DEF_PARMS_B
3062 WHERE ID = l_pdp_rec.id;
3063
3064 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3065 EXCEPTION
3066 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3067 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3068 (
3069 l_api_name,
3070 G_PKG_NAME,
3071 'OKC_API.G_RET_STS_ERROR',
3072 x_msg_count,
3073 x_msg_data,
3074 '_PVT'
3075 );
3076 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3077 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3078 (
3079 l_api_name,
3080 G_PKG_NAME,
3081 'OKC_API.G_RET_STS_UNEXP_ERROR',
3082 x_msg_count,
3083 x_msg_data,
3084 '_PVT'
3085 );
3086 WHEN OTHERS THEN
3087 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3088 (
3089 l_api_name,
3090 G_PKG_NAME,
3091 'OTHERS',
3092 x_msg_count,
3093 x_msg_data,
3094 '_PVT'
3095 );
3096 END delete_row;
3097 -------------------------------------------------
3098 -- delete_row for:OKC_PROCESS_DEF_PARAMETERS_V --
3099 -------------------------------------------------
3100 PROCEDURE delete_row(
3101 p_api_version IN NUMBER,
3102 p_init_msg_list IN VARCHAR2 ,
3103 x_return_status OUT NOCOPY VARCHAR2,
3104 x_msg_count OUT NOCOPY NUMBER,
3105 x_msg_data OUT NOCOPY VARCHAR2,
3106 p_pdpv_rec IN pdpv_rec_type) IS
3107
3108 l_api_version CONSTANT NUMBER := 1;
3109 l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
3110 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3111 l_pdpv_rec pdpv_rec_type := p_pdpv_rec;
3112 l_pdp_rec pdp_rec_type;
3113 l_okc_process_def_parms_tl_rec OkcProcessDefParmsTlRecType;
3114 BEGIN
3115 l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3116 G_PKG_NAME,
3117 p_init_msg_list,
3118 l_api_version,
3119 p_api_version,
3120 '_PVT',
3121 x_return_status);
3122 IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3123 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3124 ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3125 RAISE OKC_API.G_EXCEPTION_ERROR;
3126 END IF;
3127 --
3128 -- Seed data should not be deleted unless it is deleted by datamerge
3129 --
3130 IF l_pdpv_rec.last_updated_by <> 1 THEN
3131 IF l_pdpv_rec.seeded_flag = 'Y' THEN
3132 OKC_API.set_message(p_app_name => G_APP_NAME,
3133 p_msg_name => 'OKC_NOT_DELETE_SEEDED');
3134 RAISE OKC_API.G_EXCEPTION_ERROR;
3135 END IF;
3136 END IF;
3137 --------------------------------------
3138 -- Move VIEW record to "Child" records
3139 --------------------------------------
3140 migrate(l_pdpv_rec, l_pdp_rec);
3141 migrate(l_pdpv_rec, l_okc_process_def_parms_tl_rec);
3142 --------------------------------------------
3143 -- Call the DELETE_ROW for each child record
3144 --------------------------------------------
3145 delete_row(
3146 p_init_msg_list,
3147 x_return_status,
3148 x_msg_count,
3149 x_msg_data,
3150 l_pdp_rec
3151 );
3152 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3153 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3154 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3155 RAISE OKC_API.G_EXCEPTION_ERROR;
3156 END IF;
3157 delete_row(
3158 p_init_msg_list,
3159 x_return_status,
3160 x_msg_count,
3161 x_msg_data,
3162 l_okc_process_def_parms_tl_rec
3163 );
3164 IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3165 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3166 ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3167 RAISE OKC_API.G_EXCEPTION_ERROR;
3168 END IF;
3169 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3170 EXCEPTION
3171 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3172 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3173 (
3174 l_api_name,
3175 G_PKG_NAME,
3176 'OKC_API.G_RET_STS_ERROR',
3177 x_msg_count,
3178 x_msg_data,
3179 '_PVT'
3180 );
3181 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3182 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3183 (
3184 l_api_name,
3185 G_PKG_NAME,
3186 'OKC_API.G_RET_STS_UNEXP_ERROR',
3187 x_msg_count,
3188 x_msg_data,
3189 '_PVT'
3190 );
3191 WHEN OTHERS THEN
3192 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3193 (
3194 l_api_name,
3195 G_PKG_NAME,
3196 'OTHERS',
3197 x_msg_count,
3198 x_msg_data,
3199 '_PVT'
3200 );
3201 END delete_row;
3202 ----------------------------------------
3203 -- PL/SQL TBL delete_row for:PDPV_TBL --
3204 ----------------------------------------
3205 PROCEDURE delete_row(
3206 p_api_version IN NUMBER,
3207 p_init_msg_list IN VARCHAR2 ,
3208 x_return_status OUT NOCOPY VARCHAR2,
3209 x_msg_count OUT NOCOPY NUMBER,
3210 x_msg_data OUT NOCOPY VARCHAR2,
3211 p_pdpv_tbl IN pdpv_tbl_type) IS
3212
3213 l_api_version CONSTANT NUMBER := 1;
3214 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
3215 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3216 i NUMBER := 0;
3217 BEGIN
3218 OKC_API.init_msg_list(p_init_msg_list);
3219 -- Make sure PL/SQL table has records in it before passing
3220 IF (p_pdpv_tbl.COUNT > 0) THEN
3221 i := p_pdpv_tbl.FIRST;
3222 LOOP
3223 delete_row (
3224 p_api_version => p_api_version,
3225 p_init_msg_list => OKC_API.G_FALSE,
3226 x_return_status => x_return_status,
3227 x_msg_count => x_msg_count,
3228 x_msg_data => x_msg_data,
3229 p_pdpv_rec => p_pdpv_tbl(i));
3230 EXIT WHEN (i = p_pdpv_tbl.LAST);
3231 i := p_pdpv_tbl.NEXT(i);
3232 END LOOP;
3233 END IF;
3234 EXCEPTION
3235 WHEN OKC_API.G_EXCEPTION_ERROR THEN
3236 x_return_status := OKC_API.HANDLE_EXCEPTIONS
3237 (
3238 l_api_name,
3239 G_PKG_NAME,
3240 'OKC_API.G_RET_STS_ERROR',
3241 x_msg_count,
3242 x_msg_data,
3243 '_PVT'
3244 );
3245 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3246 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3247 (
3248 l_api_name,
3249 G_PKG_NAME,
3250 'OKC_API.G_RET_STS_UNEXP_ERROR',
3251 x_msg_count,
3252 x_msg_data,
3253 '_PVT'
3254 );
3255 WHEN OTHERS THEN
3256 x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3257 (
3258 l_api_name,
3259 G_PKG_NAME,
3260 'OTHERS',
3261 x_msg_count,
3262 x_msg_data,
3263 '_PVT'
3264 );
3265 END delete_row;
3266 END OKC_PDP_PVT;