DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_TGN_PVT

Source


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