DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_AVLEXC_PVT

Source


1 PACKAGE BODY OKS_AVLEXC_PVT AS
2 /* $Header: OKSSEXCB.pls 120.0 2005/05/25 17:45:45 appldev noship $ */
3   ---------------------------------------------------------------------------
4   -- FUNCTION get_seq_id
5   ---------------------------------------------------------------------------
6   FUNCTION get_seq_id RETURN NUMBER IS
7   BEGIN
8     RETURN(okc_p_util.raw_to_number(sys_guid()));
9   END get_seq_id;
10 
11   ---------------------------------------------------------------------------
12   -- PROCEDURE qc
13   ---------------------------------------------------------------------------
14   PROCEDURE qc IS
15   BEGIN
16     null;
17   END qc;
18 
19   ---------------------------------------------------------------------------
20   -- PROCEDURE change_version
21   ---------------------------------------------------------------------------
22   PROCEDURE change_version IS
23   BEGIN
24     null;
25   END change_version;
26 
27   ---------------------------------------------------------------------------
28   -- PROCEDURE api_copy
29   ---------------------------------------------------------------------------
30   PROCEDURE api_copy IS
31   BEGIN
32     null;
33   END api_copy;
34 
35   ---------------------------------------------------------------------------
36   -- FUNCTION get_rec for: OKS_SERV_AVAIL_EXCEPTS
37   ---------------------------------------------------------------------------
38   FUNCTION get_rec (
39     p_sax_rec                      IN sax_rec_type,
40     x_no_data_found                OUT NOCOPY BOOLEAN
41   ) RETURN sax_rec_type IS
42     CURSOR sax_pk_csr (p_id                 IN NUMBER) IS
43     SELECT
44             ID,
45             SAV_ID,
46             OBJECT1_ID1,
47             OBJECT1_ID2,
48             JTOT_OBJECT1_CODE,
49             OBJECT_VERSION_NUMBER,
50             CREATED_BY,
51             CREATION_DATE,
52             LAST_UPDATED_BY,
53             LAST_UPDATE_DATE,
54             MANUFACTURING_ORG_ID,
55             REVISION_LOW,
56             REVISION_HIGH,
57             START_DATE_ACTIVE,
58             END_DATE_ACTIVE,
59             LAST_UPDATE_LOGIN,
60             ATTRIBUTE_CATEGORY,
61             ATTRIBUTE1,
62             ATTRIBUTE2,
63             ATTRIBUTE3,
64             ATTRIBUTE4,
65             ATTRIBUTE5,
66             ATTRIBUTE6,
67             ATTRIBUTE7,
68             ATTRIBUTE8,
69             ATTRIBUTE9,
70             ATTRIBUTE10,
71             ATTRIBUTE11,
72             ATTRIBUTE12,
73             ATTRIBUTE13,
74             ATTRIBUTE14,
75             ATTRIBUTE15
76       FROM Oks_Serv_Avail_Excepts
77      WHERE oks_serv_avail_excepts.id = p_id;
78     l_sax_pk                       sax_pk_csr%ROWTYPE;
79     l_sax_rec                      sax_rec_type;
80   BEGIN
81     x_no_data_found := TRUE;
82     -- Get current database values
83     OPEN sax_pk_csr (p_sax_rec.id);
84     FETCH sax_pk_csr INTO
85               l_sax_rec.ID,
86               l_sax_rec.SAV_ID,
87               l_sax_rec.OBJECT1_ID1,
88               l_sax_rec.OBJECT1_ID2,
89               l_sax_rec.JTOT_OBJECT1_CODE,
90               l_sax_rec.OBJECT_VERSION_NUMBER,
91               l_sax_rec.CREATED_BY,
92               l_sax_rec.CREATION_DATE,
93               l_sax_rec.LAST_UPDATED_BY,
94               l_sax_rec.LAST_UPDATE_DATE,
95               l_sax_rec.MANUFACTURING_ORG_ID,
96               l_sax_rec.REVISION_LOW,
97               l_sax_rec.REVISION_HIGH,
98               l_sax_rec.START_DATE_ACTIVE,
99               l_sax_rec.END_DATE_ACTIVE,
100               l_sax_rec.LAST_UPDATE_LOGIN,
101               l_sax_rec.ATTRIBUTE_CATEGORY,
102               l_sax_rec.ATTRIBUTE1,
103               l_sax_rec.ATTRIBUTE2,
104               l_sax_rec.ATTRIBUTE3,
105               l_sax_rec.ATTRIBUTE4,
106               l_sax_rec.ATTRIBUTE5,
107               l_sax_rec.ATTRIBUTE6,
108               l_sax_rec.ATTRIBUTE7,
109               l_sax_rec.ATTRIBUTE8,
110               l_sax_rec.ATTRIBUTE9,
111               l_sax_rec.ATTRIBUTE10,
112               l_sax_rec.ATTRIBUTE11,
113               l_sax_rec.ATTRIBUTE12,
114               l_sax_rec.ATTRIBUTE13,
115               l_sax_rec.ATTRIBUTE14,
116               l_sax_rec.ATTRIBUTE15;
117     x_no_data_found := sax_pk_csr%NOTFOUND;
118     CLOSE sax_pk_csr;
119     RETURN(l_sax_rec);
120   END get_rec;
121 
122   FUNCTION get_rec (
123     p_sax_rec                      IN sax_rec_type
124   ) RETURN sax_rec_type IS
125     l_row_notfound                 BOOLEAN := TRUE;
126   BEGIN
127     RETURN(get_rec(p_sax_rec, l_row_notfound));
128   END get_rec;
129   ---------------------------------------------------------------------------
130   -- FUNCTION get_rec for: OKS_SERV_AVAIL_EXCEPTS_V
131   ---------------------------------------------------------------------------
132   FUNCTION get_rec (
133     p_saxv_rec                     IN saxv_rec_type,
134     x_no_data_found                OUT NOCOPY BOOLEAN
135   ) RETURN saxv_rec_type IS
136     CURSOR oks_saxv_pk_csr (p_id                 IN NUMBER) IS
137     SELECT
138             ID,
139             SAV_ID,
140             OBJECT1_ID1,
141             OBJECT1_ID2,
142             JTOT_OBJECT1_CODE,
143             OBJECT_VERSION_NUMBER,
144             MANUFACTURING_ORG_ID,
145             REVISION_LOW,
146             REVISION_HIGH,
147             START_DATE_ACTIVE,
148             END_DATE_ACTIVE,
149             ATTRIBUTE_CATEGORY,
150             ATTRIBUTE1,
151             ATTRIBUTE2,
152             ATTRIBUTE3,
153             ATTRIBUTE4,
154             ATTRIBUTE5,
155             ATTRIBUTE6,
156             ATTRIBUTE7,
157             ATTRIBUTE8,
158             ATTRIBUTE9,
159             ATTRIBUTE10,
160             ATTRIBUTE11,
161             ATTRIBUTE12,
162             ATTRIBUTE13,
163             ATTRIBUTE14,
164             ATTRIBUTE15,
165             CREATED_BY,
166             CREATION_DATE,
167             LAST_UPDATED_BY,
168             LAST_UPDATE_DATE,
169             LAST_UPDATE_LOGIN
170       FROM Oks_Serv_Avail_Excepts_V
171      WHERE oks_serv_avail_excepts_v.id = p_id;
172     l_oks_saxv_pk                  oks_saxv_pk_csr%ROWTYPE;
173     l_saxv_rec                     saxv_rec_type;
174   BEGIN
175     x_no_data_found := TRUE;
176     -- Get current database values
177     OPEN oks_saxv_pk_csr (p_saxv_rec.id);
178     FETCH oks_saxv_pk_csr INTO
179               l_saxv_rec.ID,
180               l_saxv_rec.SAV_ID,
181               l_saxv_rec.OBJECT1_ID1,
182               l_saxv_rec.OBJECT1_ID2,
183               l_saxv_rec.JTOT_OBJECT1_CODE,
184               l_saxv_rec.OBJECT_VERSION_NUMBER,
185               l_saxv_rec.MANUFACTURING_ORG_ID,
186               l_saxv_rec.REVISION_LOW,
187               l_saxv_rec.REVISION_HIGH,
188               l_saxv_rec.START_DATE_ACTIVE,
189               l_saxv_rec.END_DATE_ACTIVE,
190               l_saxv_rec.ATTRIBUTE_CATEGORY,
191               l_saxv_rec.ATTRIBUTE1,
192               l_saxv_rec.ATTRIBUTE2,
193               l_saxv_rec.ATTRIBUTE3,
194               l_saxv_rec.ATTRIBUTE4,
195               l_saxv_rec.ATTRIBUTE5,
196               l_saxv_rec.ATTRIBUTE6,
197               l_saxv_rec.ATTRIBUTE7,
198               l_saxv_rec.ATTRIBUTE8,
199               l_saxv_rec.ATTRIBUTE9,
200               l_saxv_rec.ATTRIBUTE10,
201               l_saxv_rec.ATTRIBUTE11,
202               l_saxv_rec.ATTRIBUTE12,
203               l_saxv_rec.ATTRIBUTE13,
204               l_saxv_rec.ATTRIBUTE14,
205               l_saxv_rec.ATTRIBUTE15,
206               l_saxv_rec.CREATED_BY,
207               l_saxv_rec.CREATION_DATE,
208               l_saxv_rec.LAST_UPDATED_BY,
209               l_saxv_rec.LAST_UPDATE_DATE,
210               l_saxv_rec.LAST_UPDATE_LOGIN;
211     x_no_data_found := oks_saxv_pk_csr%NOTFOUND;
212     CLOSE oks_saxv_pk_csr;
213     RETURN(l_saxv_rec);
214   END get_rec;
215 
216   FUNCTION get_rec (
217     p_saxv_rec                     IN saxv_rec_type
218   ) RETURN saxv_rec_type IS
219     l_row_notfound                 BOOLEAN := TRUE;
220   BEGIN
221     RETURN(get_rec(p_saxv_rec, l_row_notfound));
222   END get_rec;
223 
224   --------------------------------------------------------------
225   -- FUNCTION null_out_defaults for: OKS_SERV_AVAIL_EXCEPTS_V --
226   --------------------------------------------------------------
227   FUNCTION null_out_defaults (
228     p_saxv_rec	IN saxv_rec_type
229   ) RETURN saxv_rec_type IS
230     l_saxv_rec	saxv_rec_type := p_saxv_rec;
231   BEGIN
232     IF (l_saxv_rec.sav_id = OKC_API.G_MISS_NUM) THEN
233       l_saxv_rec.sav_id := NULL;
234     END IF;
235     IF (l_saxv_rec.object1_id1 = OKC_API.G_MISS_CHAR) THEN
236       l_saxv_rec.object1_id1 := NULL;
237     END IF;
238     IF (l_saxv_rec.object1_id2 = OKC_API.G_MISS_CHAR) THEN
239       l_saxv_rec.object1_id2 := NULL;
240     END IF;
241     IF (l_saxv_rec.JTOT_OBJECT1_CODE = OKC_API.G_MISS_CHAR) THEN
242       l_saxv_rec.JTOT_OBJECT1_CODE := NULL;
243     END IF;
244     IF (l_saxv_rec.object_version_number = OKC_API.G_MISS_NUM) THEN
245       l_saxv_rec.object_version_number := NULL;
246     END IF;
247     IF (l_saxv_rec.manufacturing_org_id = OKC_API.G_MISS_NUM) THEN
248       l_saxv_rec.manufacturing_org_id := NULL;
249     END IF;
250     IF (l_saxv_rec.revision_low = OKC_API.G_MISS_CHAR) THEN
251       l_saxv_rec.revision_low := NULL;
252     END IF;
253     IF (l_saxv_rec.revision_high = OKC_API.G_MISS_CHAR) THEN
254       l_saxv_rec.revision_high := NULL;
255     END IF;
256     IF (l_saxv_rec.start_date_active = OKC_API.G_MISS_DATE) THEN
257       l_saxv_rec.start_date_active := NULL;
258     END IF;
259     IF (l_saxv_rec.end_date_active = OKC_API.G_MISS_DATE) THEN
260       l_saxv_rec.end_date_active := NULL;
261     END IF;
262     IF (l_saxv_rec.attribute_category = OKC_API.G_MISS_CHAR) THEN
263       l_saxv_rec.attribute_category := NULL;
264     END IF;
265     IF (l_saxv_rec.attribute1 = OKC_API.G_MISS_CHAR) THEN
266       l_saxv_rec.attribute1 := NULL;
267     END IF;
268     IF (l_saxv_rec.attribute2 = OKC_API.G_MISS_CHAR) THEN
269       l_saxv_rec.attribute2 := NULL;
270     END IF;
271     IF (l_saxv_rec.attribute3 = OKC_API.G_MISS_CHAR) THEN
272       l_saxv_rec.attribute3 := NULL;
273     END IF;
274     IF (l_saxv_rec.attribute4 = OKC_API.G_MISS_CHAR) THEN
275       l_saxv_rec.attribute4 := NULL;
276     END IF;
277     IF (l_saxv_rec.attribute5 = OKC_API.G_MISS_CHAR) THEN
278       l_saxv_rec.attribute5 := NULL;
279     END IF;
280     IF (l_saxv_rec.attribute6 = OKC_API.G_MISS_CHAR) THEN
281       l_saxv_rec.attribute6 := NULL;
282     END IF;
283     IF (l_saxv_rec.attribute7 = OKC_API.G_MISS_CHAR) THEN
284       l_saxv_rec.attribute7 := NULL;
285     END IF;
286     IF (l_saxv_rec.attribute8 = OKC_API.G_MISS_CHAR) THEN
287       l_saxv_rec.attribute8 := NULL;
288     END IF;
289     IF (l_saxv_rec.attribute9 = OKC_API.G_MISS_CHAR) THEN
290       l_saxv_rec.attribute9 := NULL;
291     END IF;
292     IF (l_saxv_rec.attribute10 = OKC_API.G_MISS_CHAR) THEN
293       l_saxv_rec.attribute10 := NULL;
294     END IF;
295     IF (l_saxv_rec.attribute11 = OKC_API.G_MISS_CHAR) THEN
296       l_saxv_rec.attribute11 := NULL;
297     END IF;
298     IF (l_saxv_rec.attribute12 = OKC_API.G_MISS_CHAR) THEN
299       l_saxv_rec.attribute12 := NULL;
300     END IF;
301     IF (l_saxv_rec.attribute13 = OKC_API.G_MISS_CHAR) THEN
302       l_saxv_rec.attribute13 := NULL;
303     END IF;
304     IF (l_saxv_rec.attribute14 = OKC_API.G_MISS_CHAR) THEN
305       l_saxv_rec.attribute14 := NULL;
306     END IF;
307     IF (l_saxv_rec.attribute15 = OKC_API.G_MISS_CHAR) THEN
308       l_saxv_rec.attribute15 := NULL;
309     END IF;
310     IF (l_saxv_rec.created_by = OKC_API.G_MISS_NUM) THEN
311       l_saxv_rec.created_by := NULL;
312     END IF;
313     IF (l_saxv_rec.creation_date = OKC_API.G_MISS_DATE) THEN
314       l_saxv_rec.creation_date := NULL;
315     END IF;
316     IF (l_saxv_rec.last_updated_by = OKC_API.G_MISS_NUM) THEN
317       l_saxv_rec.last_updated_by := NULL;
318     END IF;
319     IF (l_saxv_rec.last_update_date = OKC_API.G_MISS_DATE) THEN
320       l_saxv_rec.last_update_date := NULL;
321     END IF;
322     IF (l_saxv_rec.last_update_login = OKC_API.G_MISS_NUM) THEN
323       l_saxv_rec.last_update_login := NULL;
324     END IF;
325     RETURN(l_saxv_rec);
326   END null_out_defaults;
327   ---------------------------------------------------------------------------
328   -- PROCEDURE Validate_Attributes
329   ---------------------------------------------------------------------------
330 PROCEDURE validate_id(x_return_status OUT NOCOPY varchar2,
331                       p_service_availability_id  IN  Number)
332  Is
333   l_return_status    VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
334   Begin
335 
336   If p_service_availability_id   = OKC_API.G_MISS_NUM OR
337      p_service_availability_id   IS NULL
338   Then
339      OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'service_availability_id ');
340      l_return_status := OKC_API.G_RET_STS_ERROR;
341   End If;
342 
343   Exception
344   When  G_EXCEPTION_HALT_VALIDATION THEN
345         NULL;
346   When OTHERS THEN
347   -- store SQL error message on message stack for caller
348       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
349                           p_msg_name     => g_unexpected_error,
350                           p_token1       => g_sqlcode_token,
351                           p_token1_value => sqlcode,
352                           p_token2       => g_sqlerrm_token,
353                           p_token2_value => sqlerrm);
354 
355     -- notify caller of an UNEXPECTED error
356       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
357   End validate_id;
358 
359 PROCEDURE validate_sav_id(x_return_status OUT NOCOPY varchar2,
360                           P_sav_id IN  Number)
361 Is
362 l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
363 l_dummy_var   VARCHAR2(1) := '?';
364 Cursor l_Srv_Csr Is
365   	  select 'x'
366 	  from OKS_SERV_AVAILS_V
367   	  where id = P_sav_id;
368 
369 Begin
370 If p_sav_id  = OKC_API.G_MISS_NUM OR
371       p_sav_id  IS NULL
372 Then
373      OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'sav_id');
374 
375      l_return_status := OKC_API.G_RET_STS_ERROR;
376      RAISE G_EXCEPTION_HALT_VALIDATION;
377 End If;
378 
379 If (not p_sav_id = OKC_API.G_MISS_NUM and
380   	   p_sav_id IS NOT NULL)
381     Then
382        Open l_srv_csr;
383        Fetch l_srv_csr Into l_dummy_var;
384        Close l_srv_csr;
385        -- if l_dummy_var still set to default, data was not found
386        If (l_dummy_var = '?') Then
387   	          OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
388                           p_msg_name     => g_unexpected_error,
389                           p_token1       => g_sqlcode_token,
390                           p_token1_value => sqlcode,
391                           p_token2       => g_sqlerrm_token,
392                           p_token2_value => 'Sav_id ');
393 
394 	     -- notify caller of an error
395           x_return_status := OKC_API.G_RET_STS_ERROR;
396       End If;
397     End If;
398   -- call column length utility
399 
400 /* OKC_UTIL.CHECK_LENGTH
401  (
402              p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
403             ,p_col_name      => 'sav_id'
404             ,p_col_value     => p_sav_id
405             ,x_return_status => l_return_status
406   );
407 
408 
409   -- verify that length is within allowed limits
410   If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
411       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
412                           p_msg_name     => g_unexpected_error,
413                           p_token1       => g_sqlcode_token,
414                           p_token1_value => sqlcode,
415                           p_token2       => g_sqlerrm_token,
416                           p_token2_value => 'Sav_id Length');
417 
418 
419 -- notify caller of an error
420        x_return_status := OKC_API.G_RET_STS_ERROR;
421  -- halt further validation of this column
422       RAISE G_EXCEPTION_HALT_VALIDATION;
423  End If;
424 */
425  Exception
426   When  G_EXCEPTION_HALT_VALIDATION Then
427         NULL;
428  When OTHERS Then
429  -- store SQL error message on message stack for caller
430        OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
431                            p_msg_name     => g_unexpected_error,
432                            p_token1       => g_sqlcode_token,
433                            p_token1_value => sqlcode,
434                            p_token2       => g_sqlerrm_token,
435                            p_token2_value => sqlerrm);
436 
437 -- notify caller of an UNEXPECTED error
438       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
439  END validate_sav_id;
440 
441 
442 PROCEDURE validate_JTOT_OBJECT1_CODE(x_return_status OUT NOCOPY varchar2,
443                                     P_JTOT_OBJECT1_CODE  Varchar2)
444   Is
445   l_return_status   VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
446   Begin
447 
448        x_return_status := OKC_API.G_RET_STS_SUCCESS;
449 
450 
451        If P_JTOT_OBJECT1_CODE = OKC_API.G_MISS_CHAR OR
452           P_JTOT_OBJECT1_CODE IS NULL
453        Then
454            OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'JTOT_OBJECT1_CODE' );
455            x_return_status := OKC_API.G_RET_STS_ERROR;
456            RAISE G_EXCEPTION_HALT_VALIDATION;
457        End If;
458   -- call column length utility
459     /*   OKC_UTIL.CHECK_LENGTH
460        (
461          p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
462         ,p_col_name      => 'JTOT_OBJECT1_CODE'
463         ,p_col_value     => P_JTOT_OBJECT1_CODE
464         ,x_return_status => l_return_status
465        );
466   -- verify that length is within allowed limits
467        If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
468            OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
469                                p_msg_name     => g_unexpected_error,
470                                p_token1       => g_sqlcode_token,
471                                p_token1_value => sqlcode,
472                                p_token2       => g_sqlerrm_token,
473                                p_token2_value => 'except_JTOT_OBJECT1_CODE length');
474   -- notify caller of an error
475            x_return_status := OKC_API.G_RET_STS_ERROR;
476   -- halt further validation of this column
477            RAISE G_EXCEPTION_HALT_VALIDATION;
478        End If;
479 */
480   Exception
481   When  G_EXCEPTION_HALT_VALIDATION Then
482        NULL;
483   When OTHERS Then
484    -- store SQL error message on message stack for caller
485       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
486                           p_msg_name     => g_unexpected_error,
487                           p_token1       => g_sqlcode_token,
488                           p_token1_value => sqlcode,
489                           p_token2       => g_sqlerrm_token,
490                           p_token2_value => sqlerrm);
491 
492    -- notify caller of an UNEXPECTED error
493       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
494   END validate_JTOT_OBJECT1_CODE;
495 
496 
497 
498 
499 
500 PROCEDURE validate_objvernum(x_return_status OUT NOCOPY varchar2,
501 					 P_object_version_number IN  Number)
502   Is
503   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
504   Begin
505 
506   If p_object_version_number = OKC_API.G_MISS_NUM OR
507        p_object_version_number IS NULL
508   Then
509       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object_version_number');
510       l_return_status := OKC_API.G_RET_STS_ERROR;
511 
512 	RAISE G_EXCEPTION_HALT_VALIDATION;
513   End If;
514 
515     -- call column length utility
516   OKC_UTIL.CHECK_LENGTH
517   (
518 		 p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
519             ,p_col_name      => 'object_version_number'
520             ,p_col_value     => p_object_version_number
521             ,x_return_status => l_return_status
522    );
523 
524    -- verify that length is within allowed limits
525    If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
526 	OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
527                           p_msg_name     => g_unexpected_error,
528                           p_token1       => g_sqlcode_token,
529                           p_token1_value => sqlcode,
530                           p_token2       => g_sqlerrm_token,
531                           p_token2_value => 'object version Length');
532 
533 
534 	-- notify caller of an error
535 	x_return_status := OKC_API.G_RET_STS_ERROR;
536 	-- halt further validation of this column
537 	RAISE G_EXCEPTION_HALT_VALIDATION;
538   End If;
539 
540   Exception
541   When  G_EXCEPTION_HALT_VALIDATION Then
542 		NULL;
543   When OTHERS Then
544 	-- store SQL error message on message stack for caller
545 	OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
546                           p_msg_name     => g_unexpected_error,
547                           p_token1       => g_sqlcode_token,
548                           p_token1_value => sqlcode,
549                           p_token2       => g_sqlerrm_token,
550                           p_token2_value => sqlerrm);
551 
552       -- notify caller of an UNEXPECTED error
553       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
554   END validate_objvernum;
555 
556 PROCEDURE validate_manufacturing_org_id(	x_return_status OUT NOCOPY varchar2,
557 							 P_manufacturing_org_id IN  NUMBER)
558   Is
559   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
560   Begin
561 
562   If P_manufacturing_org_id = OKC_API.G_MISS_NUM OR
563        P_manufacturing_org_id IS NULL
564   Then
565       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'manufacturing_org_id' );
566       l_return_status := OKC_API.G_RET_STS_ERROR;
567 
568 	RAISE G_EXCEPTION_HALT_VALIDATION;
569   End If;
570 
571     -- call column length utility
572   OKC_UTIL.CHECK_LENGTH
573   (
574 		 p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
575             ,p_col_name      => 'manufacturing_org_id'
576             ,p_col_value     => P_manufacturing_org_id
577             ,x_return_status => l_return_status
578    );
579 
580    -- verify that length is within allowed limits
581    If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
582 	OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
583                           p_msg_name     => g_unexpected_error,
584                           p_token1       => g_sqlcode_token,
585                           p_token1_value => sqlcode,
586                           p_token2       => g_sqlerrm_token,
587                           p_token2_value => 'manufacturing org_id Length');
588 
589 
590 	-- notify caller of an error
591 	x_return_status := OKC_API.G_RET_STS_ERROR;
592 	-- halt further validation of this column
593 	RAISE G_EXCEPTION_HALT_VALIDATION;
594   End If;
595 
596   Exception
597   When  G_EXCEPTION_HALT_VALIDATION Then
598 		NULL;
599   When OTHERS Then
600 	-- store SQL error message on message stack for caller
601 	OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
602                           p_msg_name     => g_unexpected_error,
603                           p_token1       => g_sqlcode_token,
604                           p_token1_value => sqlcode,
605                           p_token2       => g_sqlerrm_token,
606                           p_token2_value => sqlerrm);
607 
608       -- notify caller of an UNEXPECTED error
609       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
610   END validate_manufacturing_org_id;
611 
612 
613  PROCEDURE validate_revision_high(	x_return_status OUT NOCOPY varchar2,
614 							 P_revision_high IN  varchar2)
615   Is
616   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
617   Begin
618 
619   /*If P_revision_high = OKC_API.G_MISS_CHAR OR
620        P_revision_high IS NULL
621   Then
622       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'revision_high');
623       l_return_status := OKC_API.G_RET_STS_ERROR;
624 
625 	RAISE G_EXCEPTION_HALT_VALIDATION;
626   End If;*/
627 
628     -- call column length utility
629   OKC_UTIL.CHECK_LENGTH
630   (
631 		 p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
632             ,p_col_name      => 'revision_high'
633             ,p_col_value     => P_revision_high
634             ,x_return_status => l_return_status
635    );
636 
637    -- verify that length is within allowed limits
638    If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
639 	OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
640                           p_msg_name     => g_unexpected_error,
641                           p_token1       => g_sqlcode_token,
642                           p_token1_value => sqlcode,
643                           p_token2       => g_sqlerrm_token,
644                           p_token2_value => 'Revision High Length');
645 
646 
647 	-- notify caller of an error
648 	x_return_status := OKC_API.G_RET_STS_ERROR;
649 	-- halt further validation of this column
650 	RAISE G_EXCEPTION_HALT_VALIDATION;
651   End If;
652 
653   Exception
654   When  G_EXCEPTION_HALT_VALIDATION Then
655 		NULL;
656   When OTHERS Then
657 	-- store SQL error message on message stack for caller
658 	OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
659                           p_msg_name     => g_unexpected_error,
660                           p_token1       => g_sqlcode_token,
661                           p_token1_value => sqlcode,
662                           p_token2       => g_sqlerrm_token,
663                           p_token2_value => sqlerrm);
664 
665       -- notify caller of an UNEXPECTED error
666       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
667   END validate_revision_high;
668 
669 
670 PROCEDURE validate_revision_low(	x_return_status OUT NOCOPY varchar2,
671 							 P_revision_low IN  varchar2)
672   Is
673   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
674   Begin
675 
676    /* If P_revision_low = OKC_API.G_MISS_CHAR OR
677        P_revision_low IS NULL
678     Then
679        OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'revision_low' );
680        l_return_status := OKC_API.G_RET_STS_ERROR;
681 
682        RAISE G_EXCEPTION_HALT_VALIDATION;
683     End If;
684 
685      -- call column length utility
686   OKC_UTIL.CHECK_LENGTH
687   (
688 		 p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
689             ,p_col_name      => 'revision_low'
690             ,p_col_value     => P_revision_low
691             ,x_return_status => l_return_status
692    );
693 
694    -- verify that length is within allowed limits
695    If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
696 	OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
697                           p_msg_name     => g_unexpected_error,
698                           p_token1       => g_sqlcode_token,
699                           p_token1_value => sqlcode,
700                           p_token2       => g_sqlerrm_token,
701                           p_token2_value => 'Revision Low Length');
702 
703 
704 	-- notify caller of an error
705 	x_return_status := OKC_API.G_RET_STS_ERROR;
706 	-- halt further validation of this column
707 	RAISE G_EXCEPTION_HALT_VALIDATION;
708   End If;
709 */
710 null;
711   Exception
712   When  G_EXCEPTION_HALT_VALIDATION Then
713 		NULL;
714   When OTHERS Then
715 	-- store SQL error message on message stack for caller
716 	OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
717                           p_msg_name     => g_unexpected_error,
718                           p_token1       => g_sqlcode_token,
719                           p_token1_value => sqlcode,
720                           p_token2       => g_sqlerrm_token,
721                           p_token2_value => sqlerrm);
722 
723       -- notify caller of an UNEXPECTED error
724       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
725   END validate_revision_low;
726 
727 
728 
729 PROCEDURE validate_object1_id1(	x_return_status OUT NOCOPY varchar2,
730 							 P_object1_id1 IN  varchar2)
731   Is
732   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
733   Begin
734 
735   If P_object1_id1 = OKC_API.G_MISS_CHAR OR
736        P_object1_id1 IS NULL
737   Then
738       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object1_id1' );
739       l_return_status := OKC_API.G_RET_STS_ERROR;
740 
741 	RAISE G_EXCEPTION_HALT_VALIDATION;
742   End If;
743 
744     -- call column length utility
745   OKC_UTIL.CHECK_LENGTH
746   (
747 		 p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
748             ,p_col_name      => 'object1_id1'
749             ,p_col_value     => P_object1_id1
750             ,x_return_status => l_return_status
751    );
752 
753    -- verify that length is within allowed limits
754    If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
755 	OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
756                           p_msg_name     => g_unexpected_error,
757                           p_token1       => g_sqlcode_token,
758                           p_token1_value => sqlcode,
759                           p_token2       => g_sqlerrm_token,
760                           p_token2_value => 'object1_id1 Length');
761 
762 
763 	-- notify caller of an error
764 	x_return_status := OKC_API.G_RET_STS_ERROR;
765 	-- halt further validation of this column
766 	RAISE G_EXCEPTION_HALT_VALIDATION;
767   End If;
768 
769   Exception
770   When  G_EXCEPTION_HALT_VALIDATION Then
771 		NULL;
772   When OTHERS Then
773 	-- store SQL error message on message stack for caller
774 	OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
775                           p_msg_name     => g_unexpected_error,
776                           p_token1       => g_sqlcode_token,
777                           p_token1_value => sqlcode,
778                           p_token2       => g_sqlerrm_token,
779                           p_token2_value => sqlerrm);
780 
781       -- notify caller of an UNEXPECTED error
782       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
783   END validate_object1_id1;
784 
785 
786 
787 
788 PROCEDURE validate_object1_id2(x_return_status OUT NOCOPY varchar2,
789 							 P_object1_id2 IN  varchar2)
790   Is
791   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
792   Begin
793 
794   If P_object1_id2 = OKC_API.G_MISS_CHAR OR
795        P_object1_id2 IS NULL
796   Then
797       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object1_id2' );
798       l_return_status := OKC_API.G_RET_STS_ERROR;
799 
800 	RAISE G_EXCEPTION_HALT_VALIDATION;
801   End If;
802 
803     -- call column length utility
804   OKC_UTIL.CHECK_LENGTH
805   (
806 		 p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
807             ,p_col_name      => 'object1_id2'
808             ,p_col_value     => P_object1_id2
809             ,x_return_status => l_return_status
810    );
811 
812    -- verify that length is within allowed limits
813    If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
814 	OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
815                           p_msg_name     => g_unexpected_error,
816                           p_token1       => g_sqlcode_token,
817                           p_token1_value => sqlcode,
818                           p_token2       => g_sqlerrm_token,
819                           p_token2_value => 'object1_id2 Length');
820 
821 
822 	-- notify caller of an error
823 	x_return_status := OKC_API.G_RET_STS_ERROR;
824 	-- halt further validation of this column
825 	RAISE G_EXCEPTION_HALT_VALIDATION;
826   End If;
827 
828   Exception
829   When  G_EXCEPTION_HALT_VALIDATION Then
830 		NULL;
831   When OTHERS Then
832 	-- store SQL error message on message stack for caller
833 	OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
834                           p_msg_name     => g_unexpected_error,
835                           p_token1       => g_sqlcode_token,
836                           p_token1_value => sqlcode,
837                           p_token2       => g_sqlerrm_token,
838                           p_token2_value => sqlerrm);
839 
840       -- notify caller of an UNEXPECTED error
841       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
842   END validate_object1_id2;
843 
844 
845 PROCEDURE validate_attribute_category(x_return_status OUT NOCOPY varchar2,
846                                       P_attribute_category IN  varchar)
847   Is
848   l_return_status    VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
849   Begin
850 
851   x_return_status := OKC_API.G_RET_STS_SUCCESS;
852 
853 
854  -- call column length utility
855   OKC_UTIL.CHECK_LENGTH
856   (
857 		 p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
858             ,p_col_name      => 'attribute_category'
859             ,p_col_value     => p_attribute_category
860             ,x_return_status => l_return_status
861    );
862 
863    -- verify that length is within allowed limits
864    If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
865 	OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
866                           p_msg_name     => g_unexpected_error,
867                           p_token1       => g_sqlcode_token,
868                           p_token1_value => sqlcode,
869                           p_token2       => g_sqlerrm_token,
870                           p_token2_value => 'attribute category Length');
871 
872 
873 	-- notify caller of an error
874 	x_return_status := OKC_API.G_RET_STS_ERROR;
875 	-- halt further validation of this column
876 	RAISE G_EXCEPTION_HALT_VALIDATION;
877   End If;
878 
879 
880   Exception
881   When  G_EXCEPTION_HALT_VALIDATION Then
882 		NULL;
883   When OTHERS Then
884 	-- store SQL error message on message stack for caller
885 	OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
886                           p_msg_name     => g_unexpected_error,
887                           p_token1       => g_sqlcode_token,
888                           p_token1_value => sqlcode,
889                           p_token2       => g_sqlerrm_token,
890                           p_token2_value => sqlerrm);
891 
892       -- notify caller of an UNEXPECTED error
893       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
894   END validate_attribute_category;
895 
896 
897 PROCEDURE validate_attribute1(x_return_status OUT NOCOPY varchar2,
898                               P_attribute1 IN  varchar2)
899  Is
900  l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
901  Begin
902       x_return_status := OKC_API.G_RET_STS_SUCCESS;
903      -- call column length utility
904      OKC_UTIL.CHECK_LENGTH
905      (
906        p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
907       ,p_col_name      => 'attribute1'
908       ,p_col_value     => p_attribute1
909       ,x_return_status => l_return_status
910       );
911   -- verify that length is within allowed limits
912   If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
913      OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
914                          p_msg_name     => g_unexpected_error,
915                          p_token1       => g_sqlcode_token,
916                          p_token1_value => sqlcode,
917                          p_token2       => g_sqlerrm_token,
918                          p_token2_value => 'attribute 1 Length');
919   -- notify caller of an error
920      x_return_status := OKC_API.G_RET_STS_ERROR;
921     -- halt further validation of this column
922      RAISE G_EXCEPTION_HALT_VALIDATION;
923   End If;
924 
925   Exception
926   When  G_EXCEPTION_HALT_VALIDATION Then
927        NULL;
928   When OTHERS Then
929  -- store SQL error message on message stack for caller
930       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
931                           p_msg_name     => g_unexpected_error,
932                           p_token1       => g_sqlcode_token,
933                           p_token1_value => sqlcode,
934                           p_token2       => g_sqlerrm_token,
935                           p_token2_value => sqlerrm);
936 
937   -- notify caller of an UNEXPECTED error
938       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
939  END validate_attribute1;
940 
941 PROCEDURE validate_attribute2(x_return_status OUT NOCOPY varchar2,
942                                P_attribute2 IN  varchar2)
943   Is
944   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
945   Begin
946 
947   x_return_status := OKC_API.G_RET_STS_SUCCESS;
948 
949   -- call column length utility
950   OKC_UTIL.CHECK_LENGTH
951   (
952              p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
953             ,p_col_name      => 'attribute2'
954             ,p_col_value     => p_attribute2
955             ,x_return_status => l_return_status
956    );
957 
958    -- verify that length is within allowed limits
959    If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
960       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
961                           p_msg_name     => g_unexpected_error,
962                           p_token1       => g_sqlcode_token,
963                           p_token1_value => sqlcode,
964                           p_token2       => g_sqlerrm_token,
965                           p_token2_value => 'attribute 2 Length');
966 
967  -- notify caller of an error
968      x_return_status := OKC_API.G_RET_STS_ERROR;
969  -- halt further validation of this column
970      RAISE G_EXCEPTION_HALT_VALIDATION;
971   End If;
972 
973   Exception
974   When  G_EXCEPTION_HALT_VALIDATION Then
975         NULL;
976   When OTHERS Then
977    -- store SQL error message on message stack for caller
978        OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
979                            p_msg_name     => g_unexpected_error,
980                            p_token1       => g_sqlcode_token,
981                            p_token1_value => sqlcode,
982                            p_token2       => g_sqlerrm_token,
983                            p_token2_value => sqlerrm);
984 
985     -- notify caller of an UNEXPECTED error
986       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
987   END validate_attribute2;
988 
989 
990 PROCEDURE validate_attribute3(x_return_status OUT NOCOPY varchar2,
991                               P_attribute3 IN  varchar2)
992 Is
993 l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
994 Begin
995   x_return_status := OKC_API.G_RET_STS_SUCCESS;
996   -- call column length utility
997   OKC_UTIL.CHECK_LENGTH
998   (
999     p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
1000    ,p_col_name      => 'attribute3'
1001    ,p_col_value     => p_attribute3
1002    ,x_return_status => l_return_status
1003   );
1004 
1005   -- verify that length is within allowed limits
1006  If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
1007     OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1008                         p_msg_name     => g_unexpected_error,
1009                         p_token1       => g_sqlcode_token,
1010                         p_token1_value => sqlcode,
1011                         p_token2       => g_sqlerrm_token,
1012                         p_token2_value => 'attribute 3 Length');
1013   -- notify caller of an error
1014     x_return_status := OKC_API.G_RET_STS_ERROR;
1015   -- halt further validation of this column
1016     RAISE G_EXCEPTION_HALT_VALIDATION;
1017  End If;
1018 
1019  Exception
1020  When  G_EXCEPTION_HALT_VALIDATION Then
1021       NULL;
1022  When OTHERS Then
1023    -- store SQL error message on message stack for caller
1024       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1025                           p_msg_name     => g_unexpected_error,
1026                           p_token1       => g_sqlcode_token,
1027                           p_token1_value => sqlcode,
1028                           p_token2       => g_sqlerrm_token,
1029                           p_token2_value => sqlerrm);
1030    -- notify caller of an UNEXPECTED error
1031      x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1032  END validate_attribute3;
1033 
1034 PROCEDURE validate_attribute4 (x_return_status OUT NOCOPY varchar2,
1035                                P_attribute4 IN  varchar2)
1036   Is
1037   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1038   Begin
1039 
1040   x_return_status := OKC_API.G_RET_STS_SUCCESS;
1041 
1042  -- call column length utility
1043 OKC_UTIL.CHECK_LENGTH
1044 (
1045  p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
1046  ,p_col_name      => 'attribute4'
1047  ,p_col_value     => p_attribute4
1048  ,x_return_status => l_return_status
1049 );
1050 
1051 -- verify that length is within allowed limits
1052 If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
1053     OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1054                         p_msg_name     => g_unexpected_error,
1055                         p_token1       => g_sqlcode_token,
1056                         p_token1_value => sqlcode,
1057                         p_token2       => g_sqlerrm_token,
1058                         p_token2_value => 'attribute 4 Length');
1059 -- notify caller of an error
1060     x_return_status := OKC_API.G_RET_STS_ERROR;
1061  -- halt further validation of this column
1062     RAISE G_EXCEPTION_HALT_VALIDATION;
1063  End If;
1064 
1065 Exception
1066 When  G_EXCEPTION_HALT_VALIDATION Then
1067       NULL;
1068 When OTHERS Then
1069 -- store SQL error message on message stack for caller
1070     OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1071                         p_msg_name     => g_unexpected_error,
1072                         p_token1       => g_sqlcode_token,
1073                         p_token1_value => sqlcode,
1074                         p_token2       => g_sqlerrm_token,
1075                         p_token2_value => sqlerrm);
1076 
1077 -- notify caller of an UNEXPECTED error
1078     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1079 END validate_attribute4;
1080 
1081 
1082 PROCEDURE validate_attribute5(x_return_status OUT NOCOPY varchar2,
1083                               P_attribute5 IN  varchar2)
1084   Is
1085   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1086   Begin
1087 
1088  x_return_status := OKC_API.G_RET_STS_SUCCESS;
1089  -- call column length utility
1090  OKC_UTIL.CHECK_LENGTH
1091   (
1092    p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
1093   ,p_col_name      => 'attribute5'
1094   ,p_col_value     => p_attribute5
1095   ,x_return_status => l_return_status
1096   );
1097 
1098   -- verify that length is within allowed limits
1099   If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
1100       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1101                           p_msg_name     => g_unexpected_error,
1102                           p_token1       => g_sqlcode_token,
1103                           p_token1_value => sqlcode,
1104                           p_token2       => g_sqlerrm_token,
1105                           p_token2_value => 'attribute 5 Length');
1106 
1107  -- notify caller of an error
1108     x_return_status := OKC_API.G_RET_STS_ERROR;
1109 -- halt further validation of this column
1110     RAISE G_EXCEPTION_HALT_VALIDATION;
1111 End If;
1112 
1113 Exception
1114 When  G_EXCEPTION_HALT_VALIDATION Then
1115       NULL;
1116 When OTHERS Then
1117 -- store SQL error message on message stack for caller
1118    OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1119                        p_msg_name     => g_unexpected_error,
1120                        p_token1       => g_sqlcode_token,
1121                        p_token1_value => sqlcode,
1122                        p_token2       => g_sqlerrm_token,
1123                        p_token2_value => sqlerrm);
1124 
1125  -- notify caller of an UNEXPECTED error
1126     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1127 END validate_attribute5;
1128 
1129 PROCEDURE validate_attribute6(x_return_status OUT NOCOPY varchar2,
1130                               P_attribute6 IN  varchar2)
1131  Is
1132  l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1133  Begin
1134       x_return_status := OKC_API.G_RET_STS_SUCCESS;
1135      -- call column length utility
1136      OKC_UTIL.CHECK_LENGTH
1137      (
1138        p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
1139       ,p_col_name      => 'attribute6'
1140       ,p_col_value     => p_attribute6
1141       ,x_return_status => l_return_status
1142       );
1143   -- verify that length is within allowed limits
1144   If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
1145      OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1146                          p_msg_name     => g_unexpected_error,
1147                          p_token1       => g_sqlcode_token,
1148                          p_token1_value => sqlcode,
1149                          p_token2       => g_sqlerrm_token,
1150                          p_token2_value => 'attribute 6 Length');
1151   -- notify caller of an error
1152      x_return_status := OKC_API.G_RET_STS_ERROR;
1153     -- halt further validation of this column
1154      RAISE G_EXCEPTION_HALT_VALIDATION;
1155   End If;
1156 
1157   Exception
1158   When  G_EXCEPTION_HALT_VALIDATION Then
1159        NULL;
1160   When OTHERS Then
1161  -- store SQL error message on message stack for caller
1162       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1163                           p_msg_name     => g_unexpected_error,
1164                           p_token1       => g_sqlcode_token,
1165                           p_token1_value => sqlcode,
1166                           p_token2       => g_sqlerrm_token,
1167                           p_token2_value => sqlerrm);
1168 
1169   -- notify caller of an UNEXPECTED error
1170       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1171  END validate_attribute6;
1172 
1173 PROCEDURE validate_attribute7(x_return_status OUT NOCOPY varchar2,
1174                               P_attribute7 IN  varchar2)
1175   Is
1176   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1177   Begin
1178 
1179   x_return_status := OKC_API.G_RET_STS_SUCCESS;
1180 
1181   -- call column length utility
1182   OKC_UTIL.CHECK_LENGTH
1183   (
1184              p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
1185             ,p_col_name      => 'attribute7'
1186             ,p_col_value     => p_attribute7
1187             ,x_return_status => l_return_status
1188    );
1189 
1190   -- verify that length is within allowed limits
1191    If (not l_return_status = OKC_API.G_RET_STS_SUCCESS) then
1192       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1193                           p_msg_name     => g_unexpected_error,
1194                           p_token1       => g_sqlcode_token,
1195                           p_token1_value => sqlcode,
1196                           p_token2       => g_sqlerrm_token,
1197                           p_token2_value => 'attribute 7 Length');
1198 
1199 -- notify caller of an error
1200      x_return_status := OKC_API.G_RET_STS_ERROR;
1201  -- halt further validation of this column
1202      RAISE G_EXCEPTION_HALT_VALIDATION;
1203 End If;
1204 
1205 Exception
1206 When  G_EXCEPTION_HALT_VALIDATION Then
1207       NULL;
1208 When OTHERS Then
1209 -- store SQL error message on message stack for caller
1210      OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1211                           p_msg_name     => g_unexpected_error,
1212                           p_token1       => g_sqlcode_token,
1213                           p_token1_value => sqlcode,
1214                           p_token2       => g_sqlerrm_token,
1215                           p_token2_value => sqlerrm);
1216 
1217 -- notify caller of an UNEXPECTED error
1218     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1219 END validate_attribute7;
1220 
1221 
1222 PROCEDURE validate_attribute8(x_return_status OUT NOCOPY varchar2,
1223                               P_attribute8 IN  varchar2)
1224 Is
1225 l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1226 Begin
1227   x_return_status := OKC_API.G_RET_STS_SUCCESS;
1228   -- call column length utility
1229   OKC_UTIL.CHECK_LENGTH
1230   (
1231     p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
1232    ,p_col_name      => 'attribute8'
1233    ,p_col_value     => p_attribute8
1234    ,x_return_status => l_return_status
1235   );
1236 
1237   -- verify that length is within allowed limits
1238  If (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1239     OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1240                         p_msg_name     => g_unexpected_error,
1241                         p_token1       => g_sqlcode_token,
1242                         p_token1_value => sqlcode,
1243                         p_token2       => g_sqlerrm_token,
1244                         p_token2_value => 'attribute 8 Length');
1245   -- notify caller of an error
1246     x_return_status := OKC_API.G_RET_STS_ERROR;
1247   -- halt further validation of this column
1248     RAISE G_EXCEPTION_HALT_VALIDATION;
1249  End If;
1250 
1251  Exception
1252  When  G_EXCEPTION_HALT_VALIDATION Then
1253       NULL;
1254  When OTHERS Then
1255    -- store SQL error message on message stack for caller
1256       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1257                           p_msg_name     => g_unexpected_error,
1258                           p_token1       => g_sqlcode_token,
1259                           p_token1_value => sqlcode,
1260                           p_token2       => g_sqlerrm_token,
1261                           p_token2_value => sqlerrm);
1262    -- notify caller of an UNEXPECTED error
1263      x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1264  END validate_attribute8;
1265 
1266 PROCEDURE validate_attribute9 (x_return_status OUT NOCOPY varchar2,
1267                                P_attribute9 IN  varchar2)
1268   Is
1269   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1270   Begin
1271 
1272   x_return_status := OKC_API.G_RET_STS_SUCCESS;
1273 
1274  -- call column length utility
1275 OKC_UTIL.CHECK_LENGTH
1276 (
1277  p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
1278  ,p_col_name      => 'attribute9'
1279  ,p_col_value     => p_attribute9
1280  ,x_return_status => l_return_status
1281 );
1282 
1283 -- verify that length is within allowed limits
1284 If (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1285     OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1286                         p_msg_name     => g_unexpected_error,
1287                         p_token1       => g_sqlcode_token,
1288                         p_token1_value => sqlcode,
1289                         p_token2       => g_sqlerrm_token,
1290                         p_token2_value => 'attribute 9 Length');
1291 -- notify caller of an error
1292     x_return_status := OKC_API.G_RET_STS_ERROR;
1293  -- halt further validation of this column
1294     RAISE G_EXCEPTION_HALT_VALIDATION;
1295  End If;
1296 
1297 Exception
1298 When  G_EXCEPTION_HALT_VALIDATION Then
1299       NULL;
1300 When OTHERS Then
1301 -- store SQL error message on message stack for caller
1302     OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1303                         p_msg_name     => g_unexpected_error,
1304                         p_token1       => g_sqlcode_token,
1305                         p_token1_value => sqlcode,
1306                         p_token2       => g_sqlerrm_token,
1307                         p_token2_value => sqlerrm);
1308 
1309 -- notify caller of an UNEXPECTED error
1310     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1311 END validate_attribute9;
1312 
1313 
1314 PROCEDURE validate_attribute10(x_return_status OUT NOCOPY varchar2,
1315                               P_attribute10 IN  varchar2)
1316   Is
1317   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1318   Begin
1319 
1320  x_return_status := OKC_API.G_RET_STS_SUCCESS;
1321  -- call column length utility
1322  OKC_UTIL.CHECK_LENGTH
1323   (
1324    p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
1325   ,p_col_name      => 'attribute10'
1326   ,p_col_value     => p_attribute10
1327   ,x_return_status => l_return_status
1328   );
1329 
1330   -- verify that length is within allowed limits
1331   If (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1332       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1333                           p_msg_name     => g_unexpected_error,
1334                           p_token1       => g_sqlcode_token,
1335                           p_token1_value => sqlcode,
1336                           p_token2       => g_sqlerrm_token,
1337                           p_token2_value => 'attribute 10 Length');
1338 
1339  -- notify caller of an error
1340     x_return_status := OKC_API.G_RET_STS_ERROR;
1341 -- halt further validation of this column
1342     RAISE G_EXCEPTION_HALT_VALIDATION;
1343 End If;
1344 
1345 Exception
1346 When  G_EXCEPTION_HALT_VALIDATION Then
1347       NULL;
1348 When OTHERS Then
1349 -- store SQL error message on message stack for caller
1350    OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1351                        p_msg_name     => g_unexpected_error,
1352                        p_token1       => g_sqlcode_token,
1353                        p_token1_value => sqlcode,
1354                        p_token2       => g_sqlerrm_token,
1355                        p_token2_value => sqlerrm);
1356 
1357  -- notify caller of an UNEXPECTED error
1358     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1359 END validate_attribute10;
1360 
1361   PROCEDURE validate_attribute11(x_return_status OUT NOCOPY varchar2,
1362                                  P_attribute11 IN  varchar2)
1363  Is
1364  l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1365  Begin
1366       x_return_status := OKC_API.G_RET_STS_SUCCESS;
1367      -- call column length utility
1368      OKC_UTIL.CHECK_LENGTH
1369      (
1370        p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
1371       ,p_col_name      => 'attribute11'
1372       ,p_col_value     => p_attribute11
1373       ,x_return_status => l_return_status
1374       );
1375   -- verify that length is within allowed limits
1376   If (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1377      OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1378                          p_msg_name     => g_unexpected_error,
1379                          p_token1       => g_sqlcode_token,
1380                          p_token1_value => sqlcode,
1381                          p_token2       => g_sqlerrm_token,
1382                          p_token2_value => 'attribute 11 Length');
1383   -- notify caller of an error
1384      x_return_status := OKC_API.G_RET_STS_ERROR;
1385     -- halt further validation of this column
1386      RAISE G_EXCEPTION_HALT_VALIDATION;
1387   End If;
1388 
1389   Exception
1390   When  G_EXCEPTION_HALT_VALIDATION Then
1391        NULL;
1392   When OTHERS Then
1393  -- store SQL error message on message stack for caller
1394       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1395                           p_msg_name     => g_unexpected_error,
1396                           p_token1       => g_sqlcode_token,
1397                           p_token1_value => sqlcode,
1398                           p_token2       => g_sqlerrm_token,
1399                           p_token2_value => sqlerrm);
1400 
1401   -- notify caller of an UNEXPECTED error
1402       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1403  END validate_attribute11;
1404 
1405 PROCEDURE validate_attribute12(x_return_status OUT NOCOPY varchar2,
1406                               P_attribute12 IN  varchar2)
1407 Is
1408 l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1409 Begin
1410   x_return_status := OKC_API.G_RET_STS_SUCCESS;
1411   -- call column length utility
1412   OKC_UTIL.CHECK_LENGTH
1413   (
1414     p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
1415    ,p_col_name      => 'attribute12'
1416    ,p_col_value     => p_attribute12
1417    ,x_return_status => l_return_status
1418   );
1419 
1420   -- verify that length is within allowed limits
1421  If (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1422     OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1423                         p_msg_name     => g_unexpected_error,
1424                         p_token1       => g_sqlcode_token,
1425                         p_token1_value => sqlcode,
1426                         p_token2       => g_sqlerrm_token,
1427                         p_token2_value => 'attribute 12 Length');
1428   -- notify caller of an error
1429     x_return_status := OKC_API.G_RET_STS_ERROR;
1430   -- halt further validation of this column
1431     RAISE G_EXCEPTION_HALT_VALIDATION;
1432  End If;
1433 
1434  Exception
1435  When  G_EXCEPTION_HALT_VALIDATION Then
1436       NULL;
1437  When OTHERS Then
1438    -- store SQL error message on message stack for caller
1439       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1440                           p_msg_name     => g_unexpected_error,
1441                           p_token1       => g_sqlcode_token,
1442                           p_token1_value => sqlcode,
1443                           p_token2       => g_sqlerrm_token,
1444                           p_token2_value => sqlerrm);
1445    -- notify caller of an UNEXPECTED error
1446      x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1447  END validate_attribute12;
1448 
1449 
1450 
1451 PROCEDURE validate_attribute13(x_return_status OUT NOCOPY varchar2,
1452                               P_attribute13 IN  varchar2)
1453 Is
1454 l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1455 Begin
1456   x_return_status := OKC_API.G_RET_STS_SUCCESS;
1457   -- call column length utility
1458   OKC_UTIL.CHECK_LENGTH
1459   (
1460     p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
1461    ,p_col_name      => 'attribute13'
1462    ,p_col_value     => p_attribute13
1463    ,x_return_status => l_return_status
1464   );
1465 
1466   -- verify that length is within allowed limits
1467  If (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1468     OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1469                         p_msg_name     => g_unexpected_error,
1470                         p_token1       => g_sqlcode_token,
1471                         p_token1_value => sqlcode,
1472                         p_token2       => g_sqlerrm_token,
1473                         p_token2_value => 'attribute 3 Length');
1474   -- notify caller of an error
1475     x_return_status := OKC_API.G_RET_STS_ERROR;
1476   -- halt further validation of this column
1477     RAISE G_EXCEPTION_HALT_VALIDATION;
1478  End If;
1479 
1480  Exception
1481  When  G_EXCEPTION_HALT_VALIDATION Then
1482       NULL;
1483  When OTHERS Then
1484    -- store SQL error message on message stack for caller
1485       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1486                           p_msg_name     => g_unexpected_error,
1487                           p_token1       => g_sqlcode_token,
1488                           p_token1_value => sqlcode,
1489                           p_token2       => g_sqlerrm_token,
1490                           p_token2_value => sqlerrm);
1491    -- notify caller of an UNEXPECTED error
1492      x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1493  END validate_attribute13;
1494 
1495 PROCEDURE validate_attribute14 (x_return_status OUT NOCOPY varchar2,
1496                                P_attribute14 IN  varchar2)
1497   Is
1498   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1499   Begin
1500 
1501   x_return_status := OKC_API.G_RET_STS_SUCCESS;
1502 
1503  -- call column length utility
1504 OKC_UTIL.CHECK_LENGTH
1505 (
1506  p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
1507  ,p_col_name      => 'attribute14'
1508  ,p_col_value     => p_attribute14
1509  ,x_return_status => l_return_status
1510 );
1511 
1512 -- verify that length is within allowed limits
1513 If (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1514     OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1515                         p_msg_name     => g_unexpected_error,
1516                         p_token1       => g_sqlcode_token,
1517                         p_token1_value => sqlcode,
1518                         p_token2       => g_sqlerrm_token,
1519                         p_token2_value => 'attribute 14 Length');
1520 -- notify caller of an error
1521     x_return_status := OKC_API.G_RET_STS_ERROR;
1522  -- halt further validation of this column
1523     RAISE G_EXCEPTION_HALT_VALIDATION;
1524  End If;
1525 
1526 Exception
1527 When  G_EXCEPTION_HALT_VALIDATION Then
1528       NULL;
1529 When OTHERS Then
1530 -- store SQL error message on message stack for caller
1531     OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1532                         p_msg_name     => g_unexpected_error,
1533                         p_token1       => g_sqlcode_token,
1534                         p_token1_value => sqlcode,
1535                         p_token2       => g_sqlerrm_token,
1536                         p_token2_value => sqlerrm);
1537 
1538 -- notify caller of an UNEXPECTED error
1539     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1540 END validate_attribute14;
1541 
1542 
1543 PROCEDURE validate_attribute15(x_return_status OUT NOCOPY varchar2,
1544                               P_attribute15 IN  varchar2)
1545   Is
1546   l_return_status         VARCHAR2(1)  := OKC_API.G_RET_STS_SUCCESS;
1547   Begin
1548 
1549  x_return_status := OKC_API.G_RET_STS_SUCCESS;
1550  -- call column length utility
1551  OKC_UTIL.CHECK_LENGTH
1552   (
1553    p_view_name     => 'OKS_SERV_AVAIL_EXCEPTS_V'
1554   ,p_col_name      => 'attribute15'
1555   ,p_col_value     => p_attribute15
1556   ,x_return_status => l_return_status
1557   );
1558 
1559   -- verify that length is within allowed limits
1560   If (l_return_status <> OKC_API.G_RET_STS_SUCCESS) then
1561       OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1562                           p_msg_name     => g_unexpected_error,
1563                           p_token1       => g_sqlcode_token,
1564                           p_token1_value => sqlcode,
1565                           p_token2       => g_sqlerrm_token,
1566                           p_token2_value => 'attribute 15 Length');
1567 
1568  -- notify caller of an error
1569     x_return_status := OKC_API.G_RET_STS_ERROR;
1570 -- halt further validation of this column
1571     RAISE G_EXCEPTION_HALT_VALIDATION;
1572 End If;
1573 
1574 Exception
1575 When  G_EXCEPTION_HALT_VALIDATION Then
1576       NULL;
1577 When OTHERS Then
1578 -- store SQL error message on message stack for caller
1579    OKC_API.SET_MESSAGE(p_app_name     => g_app_name,
1580                        p_msg_name     => g_unexpected_error,
1581                        p_token1       => g_sqlcode_token,
1582                        p_token1_value => sqlcode,
1583                        p_token2       => g_sqlerrm_token,
1584                        p_token2_value => sqlerrm);
1585 
1586  -- notify caller of an UNEXPECTED error
1587     x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1588 END validate_attribute15;
1589   -------------------------------------------------------
1590   -- Validate_Attributes for:OKS_SERV_AVAIL_EXCEPTS_V --
1591   -------------------------------------------------------
1592 
1593 
1594 FUNCTION Validate_Attributes (
1595     p_saxv_rec IN  saxv_rec_type
1596   )
1597   Return VARCHAR2 Is
1598     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1599     x_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1600 
1601   Begin
1602 
1603   -- call OKC_UTIL.ADD_VIEW to prepare the PL/SQL table to hold columns of view
1604     OKC_UTIL.ADD_VIEW('OKS_SERV_AVAIL_EXCEPTS_V',x_return_status);
1605 
1606     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1607        IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1608           -- need to leave
1609           l_return_status := x_return_status;
1610           RAISE G_EXCEPTION_HALT_VALIDATION;
1611        ELSE
1612           -- record that there is a error
1613           l_return_status := x_return_status;
1614        END IF;
1615     END IF;
1616     --Column Level Validation
1617 
1618     --ID
1619     validate_id(x_return_status, p_saxv_rec.id);
1620 
1621 
1622     -- store the highest degree of error
1623     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1624         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1625         -- need to leave
1626         l_return_status := x_return_status;
1627         RAISE G_EXCEPTION_HALT_VALIDATION;
1628         ELSE
1629         -- record that there was an error
1630         l_return_status := x_return_status;
1631         END IF;
1632     END IF;
1633 -- JTOT_OBJECT1_CODE
1634       validate_JTOT_OBJECT1_CODE(x_return_status, p_saxv_rec.JTOT_OBJECT1_CODE);
1635 
1636 
1637     -- store the highest degree of error
1638     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1639         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1640         -- need to leave
1641         l_return_status := x_return_status;
1642         RAISE G_EXCEPTION_HALT_VALIDATION;
1643         ELSE
1644         -- record that there was an error
1645         l_return_status := x_return_status;
1646         END IF;
1647     END IF;
1648 
1649     --OBJECT_VERSION_NUMBER
1650     validate_objvernum(x_return_status, p_saxv_rec.object_version_number);
1651 
1652     -- store the highest degree of error
1653     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1654         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1655         -- need to leave
1656         l_return_status := x_return_status;
1657         RAISE G_EXCEPTION_HALT_VALIDATION;
1658         ELSE
1659         -- record that there was an error
1660         l_return_status := x_return_status;
1661         END IF;
1662     END IF;
1663 
1664     --SAV_ID
1665 	 validate_sav_id(x_return_status, p_saxv_rec.sav_id);
1666 
1667     -- store the highest degree of error
1668     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1669         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1670         -- need to leave
1671         l_return_status := x_return_status;
1672         RAISE G_EXCEPTION_HALT_VALIDATION;
1673         ELSE
1674         -- record that there was an error
1675         l_return_status := x_return_status;
1676         END IF;
1677     END IF;
1678 
1679 
1680 	--REVISION_HIGH
1681 	 validate_revision_high(x_return_status, p_saxv_rec.revision_high);
1682 
1683     -- store the highest degree of error
1684     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1685         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1686         -- need to leave
1687         l_return_status := x_return_status;
1688         RAISE G_EXCEPTION_HALT_VALIDATION;
1689         ELSE
1690         -- record that there was an error
1691         l_return_status := x_return_status;
1692         END IF;
1693     END IF;
1694 
1695 	--REVISION_LOW
1696 	 validate_revision_low(x_return_status, p_saxv_rec.revision_low);
1697 
1698     -- store the highest degree of error
1699     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1700         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1701         -- need to leave
1702         l_return_status := x_return_status;
1703         RAISE G_EXCEPTION_HALT_VALIDATION;
1704         ELSE
1705         -- record that there was an error
1706         l_return_status := x_return_status;
1707         END IF;
1708     END IF;
1709 
1710 
1711 
1712 	--MANUFACTURING_ORG_ID
1713 
1714  	validate_manufacturing_org_id(x_return_status, p_saxv_rec.manufacturing_org_id);
1715 
1716     -- store the highest degree of error
1717     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1718         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1719         -- need to leave
1720         l_return_status := x_return_status;
1721         RAISE G_EXCEPTION_HALT_VALIDATION;
1722         ELSE
1723         -- record that there was an error
1724         l_return_status := x_return_status;
1725         END IF;
1726     END IF;
1727 
1728 
1729 	--OBJECT1_ID1
1730 		validate_object1_id1(x_return_status, p_saxv_rec.object1_id1);
1731 
1732     -- store the highest degree of error
1733     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1734         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1735         -- need to leave
1736         l_return_status := x_return_status;
1737         RAISE G_EXCEPTION_HALT_VALIDATION;
1738         ELSE
1739         -- record that there was an error
1740         l_return_status := x_return_status;
1741         END IF;
1742     END IF;
1743 
1744 	--OBJECT1_ID2
1745 		validate_object1_id2(x_return_status, p_saxv_rec.object1_id2);
1746 
1747     -- store the highest degree of error
1748     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1749         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1750         -- need to leave
1751         l_return_status := x_return_status;
1752         RAISE G_EXCEPTION_HALT_VALIDATION;
1753         ELSE
1754         -- record that there was an error
1755         l_return_status := x_return_status;
1756         END IF;
1757     END IF;
1758 
1759 
1760 
1761 	--ATTRIBUTE_CATEGORY
1762 
1763 		validate_attribute_category(x_return_status, p_saxv_rec.attribute_category);
1764 
1765     -- store the highest degree of error
1766     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1767         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1768         -- need to leave
1769         l_return_status := x_return_status;
1770         RAISE G_EXCEPTION_HALT_VALIDATION;
1771         ELSE
1772         -- record that there was an error
1773         l_return_status := x_return_status;
1774         END IF;
1775     END IF;
1776 
1777 
1778 
1779 	--ATTRIBUTE1
1780 
1781 		validate_attribute1(x_return_status, p_saxv_rec.attribute1);
1782 
1783     -- store the highest degree of error
1784     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1785         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1786         -- need to leave
1787         l_return_status := x_return_status;
1788         RAISE G_EXCEPTION_HALT_VALIDATION;
1789         ELSE
1790         -- record that there was an error
1791         l_return_status := x_return_status;
1792         END IF;
1793     END IF;
1794 
1795 	--ATTRIBUTE2
1796 
1797 		validate_attribute2(x_return_status, p_saxv_rec.attribute2);
1798 
1799     -- store the highest degree of error
1800     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1801         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1802         -- need to leave
1803         l_return_status := x_return_status;
1804         RAISE G_EXCEPTION_HALT_VALIDATION;
1805         ELSE
1806         -- record that there was an error
1807         l_return_status := x_return_status;
1808         END IF;
1809     END IF;
1810 
1811 
1812 
1813 --ATTRIBUTE3
1814 
1815 		validate_attribute3(x_return_status, p_saxv_rec.attribute3);
1816 
1817     -- store the highest degree of error
1818     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1819         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1820         -- need to leave
1821         l_return_status := x_return_status;
1822         RAISE G_EXCEPTION_HALT_VALIDATION;
1823         ELSE
1824         -- record that there was an error
1825         l_return_status := x_return_status;
1826         END IF;
1827     END IF;
1828 
1829 
1830 --ATTRIBUTE4
1831 		validate_attribute4(x_return_status, p_saxv_rec.attribute4);
1832 
1833     -- store the highest degree of error
1834     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1835         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1836         -- need to leave
1837         l_return_status := x_return_status;
1838         RAISE G_EXCEPTION_HALT_VALIDATION;
1839         ELSE
1840         -- record that there was an error
1841         l_return_status := x_return_status;
1842         END IF;
1843     END IF;
1844 
1845 
1846 	--ATTRIBUTE5
1847 		validate_attribute5(x_return_status, p_saxv_rec.attribute5);
1848 
1849     -- store the highest degree of error
1850     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1851         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1852         -- need to leave
1853         l_return_status := x_return_status;
1854         RAISE G_EXCEPTION_HALT_VALIDATION;
1855         ELSE
1856         -- record that there was an error
1857         l_return_status := x_return_status;
1858         END IF;
1859     END IF;
1860 
1861 
1862 	--ATTRIBUTE6
1863 
1864 		validate_attribute6(x_return_status, p_saxv_rec.attribute6);
1865 
1866     -- store the highest degree of error
1867     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1868         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1869         -- need to leave
1870         l_return_status := x_return_status;
1871         RAISE G_EXCEPTION_HALT_VALIDATION;
1872         ELSE
1873         -- record that there was an error
1874         l_return_status := x_return_status;
1875         END IF;
1876     END IF;
1877 
1878 
1879 
1880 	--ATTRIBUTE7
1881 
1882 		validate_attribute7(x_return_status, p_saxv_rec.attribute7);
1883 
1884     -- store the highest degree of error
1885     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1886         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1887         -- need to leave
1888         l_return_status := x_return_status;
1889         RAISE G_EXCEPTION_HALT_VALIDATION;
1890         ELSE
1891         -- record that there was an error
1892         l_return_status := x_return_status;
1893         END IF;
1894     END IF;
1895 
1896 
1897 	--ATTRIBUTE8
1898 		validate_attribute8(x_return_status, p_saxv_rec.attribute8);
1899 
1900     -- store the highest degree of error
1901     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1902         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1903         -- need to leave
1904         l_return_status := x_return_status;
1905         RAISE G_EXCEPTION_HALT_VALIDATION;
1906         ELSE
1907         -- record that there was an error
1908         l_return_status := x_return_status;
1909         END IF;
1910     END IF;
1911 
1912 
1913 	--ATTRIBUTE9
1914 		validate_attribute9(x_return_status, p_saxv_rec.attribute9);
1915 
1916     -- store the highest degree of error
1917     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1918         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1919         -- need to leave
1920         l_return_status := x_return_status;
1921         RAISE G_EXCEPTION_HALT_VALIDATION;
1922         ELSE
1923         -- record that there was an error
1924         l_return_status := x_return_status;
1925         END IF;
1926     END IF;
1927 
1928 
1929 
1930 	--ATTRIBUTE10
1931 
1932 		validate_attribute10(x_return_status, p_saxv_rec.attribute10);
1933 
1934     -- store the highest degree of error
1935     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1936         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1937         -- need to leave
1938         l_return_status := x_return_status;
1939         RAISE G_EXCEPTION_HALT_VALIDATION;
1940         ELSE
1941         -- record that there was an error
1942         l_return_status := x_return_status;
1943         END IF;
1944     END IF;
1945 
1946 
1947 	--ATTRIBUTE11
1948 
1949 		validate_attribute11(x_return_status, p_saxv_rec.attribute11);
1950 
1951     -- store the highest degree of error
1952     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1953         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1954         -- need to leave
1955         l_return_status := x_return_status;
1956         RAISE G_EXCEPTION_HALT_VALIDATION;
1957         ELSE
1958         -- record that there was an error
1959         l_return_status := x_return_status;
1960         END IF;
1961     END IF;
1962 
1963 
1964 
1965 	--ATTRIBUTE12
1966 
1967 		validate_attribute12(x_return_status, p_saxv_rec.attribute12);
1968 
1969     -- store the highest degree of error
1970     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1971         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1972         -- need to leave
1973         l_return_status := x_return_status;
1974         RAISE G_EXCEPTION_HALT_VALIDATION;
1975         ELSE
1976         -- record that there was an error
1977         l_return_status := x_return_status;
1978         END IF;
1979     END IF;
1980 
1981 
1982 	--ATTRIBUTE13
1983 		validate_attribute13(x_return_status, p_saxv_rec.attribute13);
1984 
1985     -- store the highest degree of error
1986     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1987         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1988         -- need to leave
1989         l_return_status := x_return_status;
1990         RAISE G_EXCEPTION_HALT_VALIDATION;
1991         ELSE
1992         -- record that there was an error
1993         l_return_status := x_return_status;
1994         END IF;
1995     END IF;
1996 
1997 
1998 	--ATTRIBUTE14
1999 
2000 		validate_attribute14(x_return_status, p_saxv_rec.attribute14);
2001 
2002     -- store the highest degree of error
2003     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2004         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2005         -- need to leave
2006         l_return_status := x_return_status;
2007         RAISE G_EXCEPTION_HALT_VALIDATION;
2008         ELSE
2009         -- record that there was an error
2010         l_return_status := x_return_status;
2011         END IF;
2012     END IF;
2013 
2014 
2015 	--ATTRIBUTE15
2016 
2017 		validate_attribute15(x_return_status, p_saxv_rec.attribute15);
2018 
2019     -- store the highest degree of error
2020     IF (x_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
2021 
2022         IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2023         -- need to leave
2024         l_return_status := x_return_status;
2025         RAISE G_EXCEPTION_HALT_VALIDATION;
2026         ELSE
2027         -- record that there was an error
2028         l_return_status := x_return_status;
2029         END IF;
2030     END IF;
2031  Raise G_EXCEPTION_HALT_VALIDATION;
2032 
2033 
2034 
2035   Exception
2036 
2037   When G_EXCEPTION_HALT_VALIDATION Then
2038 
2039 
2040        Return (l_return_status);
2041 
2042   When OTHERS Then
2043        -- store SQL error message on message stack for caller
2044        OKC_API.SET_MESSAGE(p_app_name         => g_app_name,
2045                            p_msg_name         => g_unexpected_error,
2046                            p_token1           => g_sqlcode_token,
2047                            p_token1_value     => sqlcode,
2048                            p_token2           => g_sqlerrm_token,
2049                            p_token2_value     => sqlerrm);
2050 
2051        -- notify caller of an UNEXPECTED error
2052        l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
2053        Return(l_return_status);
2054 
2055   END validate_attributes;
2056 
2057 /*  ------------------------------------------------------
2058   -- Validate_Attributes for:OKS_SERV_AVAIL_EXCEPTS_V --
2059   ------------------------------------------------------
2060   FUNCTION Validate_Attributes (
2061     p_saxv_rec IN  saxv_rec_type
2062   ) RETURN VARCHAR2 IS
2063     l_return_status	VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2064   BEGIN
2065     IF p_saxv_rec.id = OKC_API.G_MISS_NUM OR
2066        p_saxv_rec.id IS NULL
2067     THEN
2068       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'id');
2069       l_return_status := OKC_API.G_RET_STS_ERROR;
2070     ELSIF p_saxv_rec.sav_id = OKC_API.G_MISS_NUM OR
2071           p_saxv_rec.sav_id IS NULL
2072     THEN
2073       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'sav_id');
2074       l_return_status := OKC_API.G_RET_STS_ERROR;
2075     ELSIF p_saxv_rec.object_version_number = OKC_API.G_MISS_NUM OR
2076           p_saxv_rec.object_version_number IS NULL
2077     THEN
2078       OKC_API.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'object_version_number');
2079       l_return_status := OKC_API.G_RET_STS_ERROR;
2080     END IF;
2081     RETURN(l_return_status);
2082   END Validate_Attributes;
2083   */
2084 
2085   ---------------------------------------------------------------------------
2086   -- PROCEDURE Validate_Record
2087   ---------------------------------------------------------------------------
2088   --------------------------------------------------
2089   -- Validate_Record for:OKS_SERV_AVAIL_EXCEPTS_V --
2090   --------------------------------------------------
2091   FUNCTION Validate_Record (
2092     p_saxv_rec IN saxv_rec_type
2093   ) RETURN VARCHAR2 IS
2094     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2095     ------------------------------------
2096     -- FUNCTION validate_foreign_keys --
2097     ------------------------------------
2098     FUNCTION validate_foreign_keys (
2099       p_saxv_rec IN saxv_rec_type
2100     ) RETURN VARCHAR2 IS
2101       item_not_found_error          EXCEPTION;
2102       CURSOR oks_savv_pk_csr (p_id                 IN NUMBER) IS
2103       SELECT
2104               ID,
2105               OBJECT1_ID1,
2106               OBJECT1_ID2,
2107               JTOT_OBJECT1_CODE,
2108               OBJECT_VERSION_NUMBER,
2109               CREATED_BY,
2110               CREATION_DATE,
2111               LAST_UPDATED_BY,
2112               LAST_UPDATE_DATE,
2113               GENERAL_YN,
2114               EXCEPT_OBJECT_TYPE,
2115               START_DATE_ACTIVE,
2116               END_DATE_ACTIVE,
2117               LAST_UPDATE_LOGIN,
2118               ATTRIBUTE_CATEGORY,
2119               ATTRIBUTE1,
2120               ATTRIBUTE2,
2121               ATTRIBUTE3,
2122               ATTRIBUTE4,
2123               ATTRIBUTE5,
2124               ATTRIBUTE6,
2125               ATTRIBUTE7,
2126               ATTRIBUTE8,
2127               ATTRIBUTE9,
2128               ATTRIBUTE10,
2129               ATTRIBUTE11,
2130               ATTRIBUTE12,
2131               ATTRIBUTE13,
2132               ATTRIBUTE14,
2133               ATTRIBUTE15
2134         FROM Oks_Serv_Avails_V
2135        WHERE oks_serv_avails_v.id = p_id;
2136       l_oks_savv_pk                  oks_savv_pk_csr%ROWTYPE;
2137       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2138       l_row_notfound                 BOOLEAN := TRUE;
2139     BEGIN
2140       IF (p_saxv_rec.SAV_ID IS NOT NULL)
2141       THEN
2142         OPEN oks_savv_pk_csr(p_saxv_rec.SAV_ID);
2143         FETCH oks_savv_pk_csr INTO l_oks_savv_pk;
2144         l_row_notfound := oks_savv_pk_csr%NOTFOUND;
2145         CLOSE oks_savv_pk_csr;
2146         IF (l_row_notfound) THEN
2147           OKC_API.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'SAV_ID');
2148           RAISE item_not_found_error;
2149         END IF;
2150       END IF;
2151       RETURN (l_return_status);
2152     EXCEPTION
2153       WHEN item_not_found_error THEN
2154         l_return_status := OKC_API.G_RET_STS_ERROR;
2155         RETURN (l_return_status);
2156     END validate_foreign_keys;
2157   BEGIN
2158     l_return_status := validate_foreign_keys (p_saxv_rec);
2159     RETURN (l_return_status);
2160   END Validate_Record;
2161 
2162   ---------------------------------------------------------------------------
2163   -- PROCEDURE Migrate
2164   ---------------------------------------------------------------------------
2165   PROCEDURE migrate (
2166     p_from	IN saxv_rec_type,
2167     p_to	OUT NOCOPY sax_rec_type
2168   ) IS
2169   BEGIN
2170     p_to.id := p_from.id;
2171     p_to.sav_id := p_from.sav_id;
2172     p_to.object1_id1 := p_from.object1_id1;
2173     p_to.object1_id2 := p_from.object1_id2;
2174     p_to.JTOT_OBJECT1_CODE := p_from.JTOT_OBJECT1_CODE;
2175     p_to.object_version_number := p_from.object_version_number;
2176     p_to.created_by := p_from.created_by;
2177     p_to.creation_date := p_from.creation_date;
2178     p_to.last_updated_by := p_from.last_updated_by;
2179     p_to.last_update_date := p_from.last_update_date;
2180     p_to.manufacturing_org_id := p_from.manufacturing_org_id;
2181     p_to.revision_low := p_from.revision_low;
2182     p_to.revision_high := p_from.revision_high;
2183     p_to.start_date_active := p_from.start_date_active;
2184     p_to.end_date_active := p_from.end_date_active;
2185     p_to.last_update_login := p_from.last_update_login;
2186     p_to.attribute_category := p_from.attribute_category;
2187     p_to.attribute1 := p_from.attribute1;
2188     p_to.attribute2 := p_from.attribute2;
2189     p_to.attribute3 := p_from.attribute3;
2190     p_to.attribute4 := p_from.attribute4;
2191     p_to.attribute5 := p_from.attribute5;
2192     p_to.attribute6 := p_from.attribute6;
2193     p_to.attribute7 := p_from.attribute7;
2194     p_to.attribute8 := p_from.attribute8;
2195     p_to.attribute9 := p_from.attribute9;
2196     p_to.attribute10 := p_from.attribute10;
2197     p_to.attribute11 := p_from.attribute11;
2198     p_to.attribute12 := p_from.attribute12;
2199     p_to.attribute13 := p_from.attribute13;
2200     p_to.attribute14 := p_from.attribute14;
2201     p_to.attribute15 := p_from.attribute15;
2202   END migrate;
2203   PROCEDURE migrate (
2204     p_from	IN sax_rec_type,
2205     p_to	OUT NOCOPY saxv_rec_type
2206   ) IS
2207   BEGIN
2208     p_to.id := p_from.id;
2209     p_to.sav_id := p_from.sav_id;
2210     p_to.object1_id1 := p_from.object1_id1;
2211     p_to.object1_id2 := p_from.object1_id2;
2212     p_to.JTOT_OBJECT1_CODE := p_from.JTOT_OBJECT1_CODE;
2213     p_to.object_version_number := p_from.object_version_number;
2214     p_to.created_by := p_from.created_by;
2215     p_to.creation_date := p_from.creation_date;
2216     p_to.last_updated_by := p_from.last_updated_by;
2217     p_to.last_update_date := p_from.last_update_date;
2218     p_to.manufacturing_org_id := p_from.manufacturing_org_id;
2219     p_to.revision_low := p_from.revision_low;
2220     p_to.revision_high := p_from.revision_high;
2221     p_to.start_date_active := p_from.start_date_active;
2222     p_to.end_date_active := p_from.end_date_active;
2223     p_to.last_update_login := p_from.last_update_login;
2224     p_to.attribute_category := p_from.attribute_category;
2225     p_to.attribute1 := p_from.attribute1;
2226     p_to.attribute2 := p_from.attribute2;
2227     p_to.attribute3 := p_from.attribute3;
2228     p_to.attribute4 := p_from.attribute4;
2229     p_to.attribute5 := p_from.attribute5;
2230     p_to.attribute6 := p_from.attribute6;
2231     p_to.attribute7 := p_from.attribute7;
2232     p_to.attribute8 := p_from.attribute8;
2233     p_to.attribute9 := p_from.attribute9;
2234     p_to.attribute10 := p_from.attribute10;
2235     p_to.attribute11 := p_from.attribute11;
2236     p_to.attribute12 := p_from.attribute12;
2237     p_to.attribute13 := p_from.attribute13;
2238     p_to.attribute14 := p_from.attribute14;
2239     p_to.attribute15 := p_from.attribute15;
2240   END migrate;
2241 
2242   ---------------------------------------------------------------------------
2243   -- PROCEDURE validate_row
2244   ---------------------------------------------------------------------------
2245   -----------------------------------------------
2246   -- validate_row for:OKS_SERV_AVAIL_EXCEPTS_V --
2247   -----------------------------------------------
2248   PROCEDURE validate_row(
2249     p_api_version                  IN NUMBER,
2250     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2251     x_return_status                OUT NOCOPY VARCHAR2,
2252     x_msg_count                    OUT NOCOPY NUMBER,
2253     x_msg_data                     OUT NOCOPY VARCHAR2,
2254     p_saxv_rec                     IN saxv_rec_type) IS
2255 
2256     l_api_version                 CONSTANT NUMBER := 1;
2257     l_api_name                     CONSTANT VARCHAR2(30) := 'V_validate_row';
2258     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2259     l_saxv_rec                     saxv_rec_type := p_saxv_rec;
2260     l_sax_rec                      sax_rec_type;
2261   BEGIN
2262     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2263                                               G_PKG_NAME,
2264                                               p_init_msg_list,
2265                                               l_api_version,
2266                                               p_api_version,
2267                                               '_PVT',
2268                                               x_return_status);
2269     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2270       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2271     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2272       RAISE OKC_API.G_EXCEPTION_ERROR;
2273     END IF;
2274     --- Validate all non-missing attributes (Item Level Validation)
2275     l_return_status := Validate_Attributes(l_saxv_rec);
2276     --- If any errors happen abort API
2277     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2278       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2279     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2280       RAISE OKC_API.G_EXCEPTION_ERROR;
2281     END IF;
2282     l_return_status := Validate_Record(l_saxv_rec);
2283     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2284       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2285     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2286       RAISE OKC_API.G_EXCEPTION_ERROR;
2287     END IF;
2288     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2289   EXCEPTION
2290     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2291       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2292       (
2293         l_api_name,
2294         G_PKG_NAME,
2295         'OKC_API.G_RET_STS_ERROR',
2296         x_msg_count,
2297         x_msg_data,
2298         '_PVT'
2299       );
2300     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2301       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2302       (
2303         l_api_name,
2304         G_PKG_NAME,
2305         'OKC_API.G_RET_STS_UNEXP_ERROR',
2306         x_msg_count,
2307         x_msg_data,
2308         '_PVT'
2309       );
2310     WHEN OTHERS THEN
2311       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2312       (
2313         l_api_name,
2314         G_PKG_NAME,
2315         'OTHERS',
2316         x_msg_count,
2317         x_msg_data,
2318         '_PVT'
2319       );
2320   END validate_row;
2321   ------------------------------------------
2322   -- PL/SQL TBL validate_row for:SAXV_TBL --
2323   ------------------------------------------
2324   PROCEDURE validate_row(
2325     p_api_version                  IN NUMBER,
2326     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2327     x_return_status                OUT NOCOPY VARCHAR2,
2328     x_msg_count                    OUT NOCOPY NUMBER,
2329     x_msg_data                     OUT NOCOPY VARCHAR2,
2330     p_saxv_tbl                     IN saxv_tbl_type) IS
2331 
2332     l_api_version                 CONSTANT NUMBER := 1;
2333     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
2334     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2335     i                              NUMBER := 0;
2336   BEGIN
2337     OKC_API.init_msg_list(p_init_msg_list);
2338     -- Make sure PL/SQL table has records in it before passing
2339     IF (p_saxv_tbl.COUNT > 0) THEN
2340       i := p_saxv_tbl.FIRST;
2341       LOOP
2342         validate_row (
2343           p_api_version                  => p_api_version,
2344           p_init_msg_list                => OKC_API.G_FALSE,
2345           x_return_status                => x_return_status,
2346           x_msg_count                    => x_msg_count,
2347           x_msg_data                     => x_msg_data,
2348           p_saxv_rec                     => p_saxv_tbl(i));
2349         EXIT WHEN (i = p_saxv_tbl.LAST);
2350         i := p_saxv_tbl.NEXT(i);
2351       END LOOP;
2352     END IF;
2353   EXCEPTION
2354     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2355       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2356       (
2357         l_api_name,
2358         G_PKG_NAME,
2359         'OKC_API.G_RET_STS_ERROR',
2360         x_msg_count,
2361         x_msg_data,
2362         '_PVT'
2363       );
2364     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2365       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2366       (
2367         l_api_name,
2368         G_PKG_NAME,
2369         'OKC_API.G_RET_STS_UNEXP_ERROR',
2370         x_msg_count,
2371         x_msg_data,
2372         '_PVT'
2373       );
2374     WHEN OTHERS THEN
2375       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2376       (
2377         l_api_name,
2378         G_PKG_NAME,
2379         'OTHERS',
2380         x_msg_count,
2381         x_msg_data,
2382         '_PVT'
2383       );
2384   END validate_row;
2385 
2386   ---------------------------------------------------------------------------
2387   -- PROCEDURE insert_row
2388   ---------------------------------------------------------------------------
2389   -------------------------------------------
2390   -- insert_row for:OKS_SERV_AVAIL_EXCEPTS --
2391   -------------------------------------------
2392   PROCEDURE insert_row(
2393     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2394     x_return_status                OUT NOCOPY VARCHAR2,
2395     x_msg_count                    OUT NOCOPY NUMBER,
2396     x_msg_data                     OUT NOCOPY VARCHAR2,
2397     p_sax_rec                      IN sax_rec_type,
2398     x_sax_rec                      OUT NOCOPY sax_rec_type) IS
2399 
2400     l_api_version                 CONSTANT NUMBER := 1;
2401     l_api_name                     CONSTANT VARCHAR2(30) := 'EXCEPTS_insert_row';
2402     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2403     l_sax_rec                      sax_rec_type := p_sax_rec;
2404     l_def_sax_rec                  sax_rec_type;
2405     -----------------------------------------------
2406     -- Set_Attributes for:OKS_SERV_AVAIL_EXCEPTS --
2407     -----------------------------------------------
2408     FUNCTION Set_Attributes (
2409       p_sax_rec IN  sax_rec_type,
2410       x_sax_rec OUT NOCOPY sax_rec_type
2411     ) RETURN VARCHAR2 IS
2412       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2413     BEGIN
2414       x_sax_rec := p_sax_rec;
2415       RETURN(l_return_status);
2416     END Set_Attributes;
2417   BEGIN
2418     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2419                                               p_init_msg_list,
2420                                               '_PVT',
2421                                               x_return_status);
2422     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2423       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2424     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2425       RAISE OKC_API.G_EXCEPTION_ERROR;
2426     END IF;
2427     --- Setting item attributes
2428     l_return_status := Set_Attributes(
2429       p_sax_rec,                         -- IN
2430       l_sax_rec);                        -- OUT
2431     --- If any errors happen abort API
2432     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2433       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2434     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2435       RAISE OKC_API.G_EXCEPTION_ERROR;
2436     END IF;
2437     INSERT INTO OKS_SERV_AVAIL_EXCEPTS(
2438         id,
2439         sav_id,
2440         object1_id1,
2441         object1_id2,
2442         JTOT_OBJECT1_CODE,
2443         object_version_number,
2444         created_by,
2445         creation_date,
2446         last_updated_by,
2447         last_update_date,
2448         manufacturing_org_id,
2449         revision_low,
2450         revision_high,
2451         start_date_active,
2452         end_date_active,
2453         last_update_login,
2454         attribute_category,
2455         attribute1,
2456         attribute2,
2457         attribute3,
2458         attribute4,
2459         attribute5,
2460         attribute6,
2461         attribute7,
2462         attribute8,
2463         attribute9,
2464         attribute10,
2465         attribute11,
2466         attribute12,
2467         attribute13,
2468         attribute14,
2469         attribute15)
2470       VALUES (
2471         l_sax_rec.id,
2472         l_sax_rec.sav_id,
2473         l_sax_rec.object1_id1,
2474         l_sax_rec.object1_id2,
2475         l_sax_rec.JTOT_OBJECT1_CODE,
2476         l_sax_rec.object_version_number,
2477         l_sax_rec.created_by,
2478         l_sax_rec.creation_date,
2479         l_sax_rec.last_updated_by,
2480         l_sax_rec.last_update_date,
2481         l_sax_rec.manufacturing_org_id,
2482         l_sax_rec.revision_low,
2483         l_sax_rec.revision_high,
2484         l_sax_rec.start_date_active,
2485         l_sax_rec.end_date_active,
2486         l_sax_rec.last_update_login,
2487         l_sax_rec.attribute_category,
2488         l_sax_rec.attribute1,
2489         l_sax_rec.attribute2,
2490         l_sax_rec.attribute3,
2491         l_sax_rec.attribute4,
2492         l_sax_rec.attribute5,
2493         l_sax_rec.attribute6,
2494         l_sax_rec.attribute7,
2495         l_sax_rec.attribute8,
2496         l_sax_rec.attribute9,
2497         l_sax_rec.attribute10,
2498         l_sax_rec.attribute11,
2499         l_sax_rec.attribute12,
2500         l_sax_rec.attribute13,
2501         l_sax_rec.attribute14,
2502         l_sax_rec.attribute15);
2503     -- Set OUT values
2504     x_sax_rec := l_sax_rec;
2505     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2506   EXCEPTION
2507     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2508       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2509       (
2510         l_api_name,
2511         G_PKG_NAME,
2512         'OKC_API.G_RET_STS_ERROR',
2513         x_msg_count,
2514         x_msg_data,
2515         '_PVT'
2516       );
2517     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2518       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2519       (
2520         l_api_name,
2521         G_PKG_NAME,
2522         'OKC_API.G_RET_STS_UNEXP_ERROR',
2523         x_msg_count,
2524         x_msg_data,
2525         '_PVT'
2526       );
2527     WHEN OTHERS THEN
2528       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2529       (
2530         l_api_name,
2531         G_PKG_NAME,
2532         'OTHERS',
2533         x_msg_count,
2534         x_msg_data,
2535         '_PVT'
2536       );
2537   END insert_row;
2538   ---------------------------------------------
2539   -- insert_row for:OKS_SERV_AVAIL_EXCEPTS_V --
2540   ---------------------------------------------
2541   PROCEDURE insert_row(
2542     p_api_version                  IN NUMBER,
2543     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2544     x_return_status                OUT NOCOPY VARCHAR2,
2545     x_msg_count                    OUT NOCOPY NUMBER,
2546     x_msg_data                     OUT NOCOPY VARCHAR2,
2547     p_saxv_rec                     IN saxv_rec_type,
2548     x_saxv_rec                     OUT NOCOPY saxv_rec_type) IS
2549 
2550     l_api_version                 CONSTANT NUMBER := 1;
2551     l_api_name                     CONSTANT VARCHAR2(30) := 'V_insert_row';
2552     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2553     l_saxv_rec                     saxv_rec_type;
2554     l_def_saxv_rec                 saxv_rec_type;
2555     l_sax_rec                      sax_rec_type;
2556     lx_sax_rec                     sax_rec_type;
2557     -------------------------------
2558     -- FUNCTION fill_who_columns --
2559     -------------------------------
2560     FUNCTION fill_who_columns (
2561       p_saxv_rec	IN saxv_rec_type
2562     ) RETURN saxv_rec_type IS
2563       l_saxv_rec	saxv_rec_type := p_saxv_rec;
2564     BEGIN
2565       l_saxv_rec.CREATION_DATE := SYSDATE;
2566       l_saxv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
2567       l_saxv_rec.LAST_UPDATE_DATE := SYSDATE;
2568       l_saxv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2569       l_saxv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2570       RETURN(l_saxv_rec);
2571     END fill_who_columns;
2572     -------------------------------------------------
2573     -- Set_Attributes for:OKS_SERV_AVAIL_EXCEPTS_V --
2574     -------------------------------------------------
2575     FUNCTION Set_Attributes (
2576       p_saxv_rec IN  saxv_rec_type,
2577       x_saxv_rec OUT NOCOPY saxv_rec_type
2578     ) RETURN VARCHAR2 IS
2579       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2580     BEGIN
2581       x_saxv_rec := p_saxv_rec;
2582       x_saxv_rec.OBJECT_VERSION_NUMBER := 1;
2583       RETURN(l_return_status);
2584     END Set_Attributes;
2585   BEGIN
2586     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2587                                               G_PKG_NAME,
2588                                               p_init_msg_list,
2589                                               l_api_version,
2590                                               p_api_version,
2591                                               '_PVT',
2592                                               x_return_status);
2593     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2594       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2595     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2596       RAISE OKC_API.G_EXCEPTION_ERROR;
2597     END IF;
2598     l_saxv_rec := null_out_defaults(p_saxv_rec);
2599     -- Set primary key value
2600     l_saxv_rec.ID := get_seq_id;
2601     --- Setting item attributes
2602     l_return_status := Set_Attributes(
2603       l_saxv_rec,                        -- IN
2604       l_def_saxv_rec);                   -- OUT
2605     --- If any errors happen abort API
2606     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2607       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2608     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2609       RAISE OKC_API.G_EXCEPTION_ERROR;
2610     END IF;
2611     l_def_saxv_rec := fill_who_columns(l_def_saxv_rec);
2612     --- Validate all non-missing attributes (Item Level Validation)
2613     l_return_status := Validate_Attributes(l_def_saxv_rec);
2614     --- If any errors happen abort API
2615     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2616       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2617     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2618       RAISE OKC_API.G_EXCEPTION_ERROR;
2619     END IF;
2620     l_return_status := Validate_Record(l_def_saxv_rec);
2621     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2622       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2623     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2624       RAISE OKC_API.G_EXCEPTION_ERROR;
2625     END IF;
2626     --------------------------------------
2627     -- Move VIEW record to "Child" records
2628     --------------------------------------
2629     migrate(l_def_saxv_rec, l_sax_rec);
2630     --------------------------------------------
2631     -- Call the INSERT_ROW for each child record
2632     --------------------------------------------
2633     insert_row(
2634       p_init_msg_list,
2635       x_return_status,
2636       x_msg_count,
2637       x_msg_data,
2638       l_sax_rec,
2639       lx_sax_rec
2640     );
2641     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2642       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2643     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2644       RAISE OKC_API.G_EXCEPTION_ERROR;
2645     END IF;
2646     migrate(lx_sax_rec, l_def_saxv_rec);
2647     -- Set OUT values
2648     x_saxv_rec := l_def_saxv_rec;
2649     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2650   EXCEPTION
2651     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2652       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2653       (
2654         l_api_name,
2655         G_PKG_NAME,
2656         'OKC_API.G_RET_STS_ERROR',
2657         x_msg_count,
2658         x_msg_data,
2659         '_PVT'
2660       );
2661     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2662       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2663       (
2664         l_api_name,
2665         G_PKG_NAME,
2666         'OKC_API.G_RET_STS_UNEXP_ERROR',
2667         x_msg_count,
2668         x_msg_data,
2669         '_PVT'
2670       );
2671     WHEN OTHERS THEN
2672       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2673       (
2674         l_api_name,
2675         G_PKG_NAME,
2676         'OTHERS',
2677         x_msg_count,
2678         x_msg_data,
2679         '_PVT'
2680       );
2681   END insert_row;
2682   ----------------------------------------
2683   -- PL/SQL TBL insert_row for:SAXV_TBL --
2684   ----------------------------------------
2685   PROCEDURE insert_row(
2686     p_api_version                  IN NUMBER,
2687     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2688     x_return_status                OUT NOCOPY VARCHAR2,
2689     x_msg_count                    OUT NOCOPY NUMBER,
2690     x_msg_data                     OUT NOCOPY VARCHAR2,
2691     p_saxv_tbl                     IN saxv_tbl_type,
2692     x_saxv_tbl                     OUT NOCOPY saxv_tbl_type) IS
2693 
2694     l_api_version                 CONSTANT NUMBER := 1;
2695     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
2696     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2697     i                              NUMBER := 0;
2698   BEGIN
2699     OKC_API.init_msg_list(p_init_msg_list);
2700     -- Make sure PL/SQL table has records in it before passing
2701     IF (p_saxv_tbl.COUNT > 0) THEN
2702       i := p_saxv_tbl.FIRST;
2703       LOOP
2704         insert_row (
2705           p_api_version                  => p_api_version,
2706           p_init_msg_list                => OKC_API.G_FALSE,
2707           x_return_status                => x_return_status,
2708           x_msg_count                    => x_msg_count,
2709           x_msg_data                     => x_msg_data,
2710           p_saxv_rec                     => p_saxv_tbl(i),
2711           x_saxv_rec                     => x_saxv_tbl(i));
2712         EXIT WHEN (i = p_saxv_tbl.LAST);
2713         i := p_saxv_tbl.NEXT(i);
2714       END LOOP;
2715     END IF;
2716   EXCEPTION
2717     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2718       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2719       (
2720         l_api_name,
2721         G_PKG_NAME,
2722         'OKC_API.G_RET_STS_ERROR',
2723         x_msg_count,
2724         x_msg_data,
2725         '_PVT'
2726       );
2727     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2728       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2729       (
2730         l_api_name,
2731         G_PKG_NAME,
2732         'OKC_API.G_RET_STS_UNEXP_ERROR',
2733         x_msg_count,
2734         x_msg_data,
2735         '_PVT'
2736       );
2737     WHEN OTHERS THEN
2738       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2739       (
2740         l_api_name,
2741         G_PKG_NAME,
2742         'OTHERS',
2743         x_msg_count,
2744         x_msg_data,
2745         '_PVT'
2746       );
2747   END insert_row;
2748 
2749   ---------------------------------------------------------------------------
2750   -- PROCEDURE lock_row
2751   ---------------------------------------------------------------------------
2752   -----------------------------------------
2753   -- lock_row for:OKS_SERV_AVAIL_EXCEPTS --
2754   -----------------------------------------
2755   PROCEDURE lock_row(
2756     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2757     x_return_status                OUT NOCOPY VARCHAR2,
2758     x_msg_count                    OUT NOCOPY NUMBER,
2759     x_msg_data                     OUT NOCOPY VARCHAR2,
2760     p_sax_rec                      IN sax_rec_type) IS
2761 
2762     E_Resource_Busy               EXCEPTION;
2763     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2764     CURSOR lock_csr (p_sax_rec IN sax_rec_type) IS
2765     SELECT OBJECT_VERSION_NUMBER
2766       FROM OKS_SERV_AVAIL_EXCEPTS
2767      WHERE ID = p_sax_rec.id
2768        AND OBJECT_VERSION_NUMBER = p_sax_rec.object_version_number
2769     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
2770 
2771     CURSOR  lchk_csr (p_sax_rec IN sax_rec_type) IS
2772     SELECT OBJECT_VERSION_NUMBER
2773       FROM OKS_SERV_AVAIL_EXCEPTS
2774     WHERE ID = p_sax_rec.id;
2775     l_api_version                 CONSTANT NUMBER := 1;
2776     l_api_name                     CONSTANT VARCHAR2(30) := 'EXCEPTS_lock_row';
2777     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2778     l_object_version_number       OKS_SERV_AVAIL_EXCEPTS.OBJECT_VERSION_NUMBER%TYPE;
2779     lc_object_version_number      OKS_SERV_AVAIL_EXCEPTS.OBJECT_VERSION_NUMBER%TYPE;
2780     l_row_notfound                BOOLEAN := FALSE;
2781     lc_row_notfound               BOOLEAN := FALSE;
2782   BEGIN
2783     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2784                                               p_init_msg_list,
2785                                               '_PVT',
2786                                               x_return_status);
2787     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2788       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2789     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2790       RAISE OKC_API.G_EXCEPTION_ERROR;
2791     END IF;
2792     BEGIN
2793       OPEN lock_csr(p_sax_rec);
2794       FETCH lock_csr INTO l_object_version_number;
2795       l_row_notfound := lock_csr%NOTFOUND;
2796       CLOSE lock_csr;
2797     EXCEPTION
2798       WHEN E_Resource_Busy THEN
2799         IF (lock_csr%ISOPEN) THEN
2800           CLOSE lock_csr;
2801         END IF;
2802         OKC_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2803         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2804     END;
2805 
2806     IF ( l_row_notfound ) THEN
2807       OPEN lchk_csr(p_sax_rec);
2808       FETCH lchk_csr INTO lc_object_version_number;
2809       lc_row_notfound := lchk_csr%NOTFOUND;
2810       CLOSE lchk_csr;
2811     END IF;
2812     IF (lc_row_notfound) THEN
2813       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2814       RAISE OKC_API.G_EXCEPTION_ERROR;
2815     ELSIF lc_object_version_number > p_sax_rec.object_version_number THEN
2816       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2817       RAISE OKC_API.G_EXCEPTION_ERROR;
2818     ELSIF lc_object_version_number <> p_sax_rec.object_version_number THEN
2819       OKC_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2820       RAISE OKC_API.G_EXCEPTION_ERROR;
2821     ELSIF lc_object_version_number = -1 THEN
2822       OKC_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
2823       RAISE OKC_API.G_EXCEPTION_ERROR;
2824     END IF;
2825     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2826   EXCEPTION
2827     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2828       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2829       (
2830         l_api_name,
2831         G_PKG_NAME,
2832         'OKC_API.G_RET_STS_ERROR',
2833         x_msg_count,
2834         x_msg_data,
2835         '_PVT'
2836       );
2837     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2838       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2839       (
2840         l_api_name,
2841         G_PKG_NAME,
2842         'OKC_API.G_RET_STS_UNEXP_ERROR',
2843         x_msg_count,
2844         x_msg_data,
2845         '_PVT'
2846       );
2847     WHEN OTHERS THEN
2848       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2849       (
2850         l_api_name,
2851         G_PKG_NAME,
2852         'OTHERS',
2853         x_msg_count,
2854         x_msg_data,
2855         '_PVT'
2856       );
2857   END lock_row;
2858   -------------------------------------------
2859   -- lock_row for:OKS_SERV_AVAIL_EXCEPTS_V --
2860   -------------------------------------------
2861   PROCEDURE lock_row(
2862     p_api_version                  IN NUMBER,
2863     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2864     x_return_status                OUT NOCOPY VARCHAR2,
2865     x_msg_count                    OUT NOCOPY NUMBER,
2866     x_msg_data                     OUT NOCOPY VARCHAR2,
2867     p_saxv_rec                     IN saxv_rec_type) IS
2868 
2869     l_api_version                 CONSTANT NUMBER := 1;
2870     l_api_name                     CONSTANT VARCHAR2(30) := 'V_lock_row';
2871     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2872     l_sax_rec                      sax_rec_type;
2873   BEGIN
2874     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
2875                                               G_PKG_NAME,
2876                                               p_init_msg_list,
2877                                               l_api_version,
2878                                               p_api_version,
2879                                               '_PVT',
2880                                               x_return_status);
2881     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2882       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2883     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
2884       RAISE OKC_API.G_EXCEPTION_ERROR;
2885     END IF;
2886     --------------------------------------
2887     -- Move VIEW record to "Child" records
2888     --------------------------------------
2889     migrate(p_saxv_rec, l_sax_rec);
2890     --------------------------------------------
2891     -- Call the LOCK_ROW for each child record
2892     --------------------------------------------
2893     lock_row(
2894       p_init_msg_list,
2895       x_return_status,
2896       x_msg_count,
2897       x_msg_data,
2898       l_sax_rec
2899     );
2900     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
2901       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
2902     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
2903       RAISE OKC_API.G_EXCEPTION_ERROR;
2904     END IF;
2905     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
2906   EXCEPTION
2907     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2908       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2909       (
2910         l_api_name,
2911         G_PKG_NAME,
2912         'OKC_API.G_RET_STS_ERROR',
2913         x_msg_count,
2914         x_msg_data,
2915         '_PVT'
2916       );
2917     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2918       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2919       (
2920         l_api_name,
2921         G_PKG_NAME,
2922         'OKC_API.G_RET_STS_UNEXP_ERROR',
2923         x_msg_count,
2924         x_msg_data,
2925         '_PVT'
2926       );
2927     WHEN OTHERS THEN
2928       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2929       (
2930         l_api_name,
2931         G_PKG_NAME,
2932         'OTHERS',
2933         x_msg_count,
2934         x_msg_data,
2935         '_PVT'
2936       );
2937   END lock_row;
2938   --------------------------------------
2939   -- PL/SQL TBL lock_row for:SAXV_TBL --
2940   --------------------------------------
2941   PROCEDURE lock_row(
2942     p_api_version                  IN NUMBER,
2943     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
2944     x_return_status                OUT NOCOPY VARCHAR2,
2945     x_msg_count                    OUT NOCOPY NUMBER,
2946     x_msg_data                     OUT NOCOPY VARCHAR2,
2947     p_saxv_tbl                     IN saxv_tbl_type) IS
2948 
2949     l_api_version                 CONSTANT NUMBER := 1;
2950     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
2951     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
2952     i                              NUMBER := 0;
2953   BEGIN
2954     OKC_API.init_msg_list(p_init_msg_list);
2955     -- Make sure PL/SQL table has records in it before passing
2956     IF (p_saxv_tbl.COUNT > 0) THEN
2957       i := p_saxv_tbl.FIRST;
2958       LOOP
2959         lock_row (
2960           p_api_version                  => p_api_version,
2961           p_init_msg_list                => OKC_API.G_FALSE,
2962           x_return_status                => x_return_status,
2963           x_msg_count                    => x_msg_count,
2964           x_msg_data                     => x_msg_data,
2965           p_saxv_rec                     => p_saxv_tbl(i));
2966         EXIT WHEN (i = p_saxv_tbl.LAST);
2967         i := p_saxv_tbl.NEXT(i);
2968       END LOOP;
2969     END IF;
2970   EXCEPTION
2971     WHEN OKC_API.G_EXCEPTION_ERROR THEN
2972       x_return_status := OKC_API.HANDLE_EXCEPTIONS
2973       (
2974         l_api_name,
2975         G_PKG_NAME,
2976         'OKC_API.G_RET_STS_ERROR',
2977         x_msg_count,
2978         x_msg_data,
2979         '_PVT'
2980       );
2981     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2982       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2983       (
2984         l_api_name,
2985         G_PKG_NAME,
2986         'OKC_API.G_RET_STS_UNEXP_ERROR',
2987         x_msg_count,
2988         x_msg_data,
2989         '_PVT'
2990       );
2991     WHEN OTHERS THEN
2992       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
2993       (
2994         l_api_name,
2995         G_PKG_NAME,
2996         'OTHERS',
2997         x_msg_count,
2998         x_msg_data,
2999         '_PVT'
3000       );
3001   END lock_row;
3002 
3003   ---------------------------------------------------------------------------
3004   -- PROCEDURE update_row
3005   ---------------------------------------------------------------------------
3006   -------------------------------------------
3007   -- update_row for:OKS_SERV_AVAIL_EXCEPTS --
3008   -------------------------------------------
3009   PROCEDURE update_row(
3010     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3011     x_return_status                OUT NOCOPY VARCHAR2,
3012     x_msg_count                    OUT NOCOPY NUMBER,
3013     x_msg_data                     OUT NOCOPY VARCHAR2,
3014     p_sax_rec                      IN sax_rec_type,
3015     x_sax_rec                      OUT NOCOPY sax_rec_type) IS
3016 
3017     l_api_version                 CONSTANT NUMBER := 1;
3018     l_api_name                     CONSTANT VARCHAR2(30) := 'EXCEPTS_update_row';
3019     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3020     l_sax_rec                      sax_rec_type := p_sax_rec;
3021     l_def_sax_rec                  sax_rec_type;
3022     l_row_notfound                 BOOLEAN := TRUE;
3023     ----------------------------------
3024     -- FUNCTION populate_new_record --
3025     ----------------------------------
3026     FUNCTION populate_new_record (
3027       p_sax_rec	IN sax_rec_type,
3028       x_sax_rec	OUT NOCOPY sax_rec_type
3029     ) RETURN VARCHAR2 IS
3030       l_sax_rec                      sax_rec_type;
3031       l_row_notfound                 BOOLEAN := TRUE;
3032       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3033     BEGIN
3034       x_sax_rec := p_sax_rec;
3035       -- Get current database values
3036       l_sax_rec := get_rec(p_sax_rec, l_row_notfound);
3037       IF (l_row_notfound) THEN
3038         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
3039       END IF;
3040       IF (x_sax_rec.id = OKC_API.G_MISS_NUM)
3041       THEN
3042         x_sax_rec.id := l_sax_rec.id;
3043       END IF;
3044       IF (x_sax_rec.sav_id = OKC_API.G_MISS_NUM)
3045       THEN
3046         x_sax_rec.sav_id := l_sax_rec.sav_id;
3047       END IF;
3048       IF (x_sax_rec.object1_id1 = OKC_API.G_MISS_CHAR)
3049       THEN
3050         x_sax_rec.object1_id1 := l_sax_rec.object1_id1;
3051       END IF;
3052       IF (x_sax_rec.object1_id2 = OKC_API.G_MISS_CHAR)
3053       THEN
3054         x_sax_rec.object1_id2 := l_sax_rec.object1_id2;
3055       END IF;
3056       IF (x_sax_rec.JTOT_OBJECT1_CODE = OKC_API.G_MISS_CHAR)
3057       THEN
3058         x_sax_rec.JTOT_OBJECT1_CODE := l_sax_rec.JTOT_OBJECT1_CODE;
3059       END IF;
3060       IF (x_sax_rec.object_version_number = OKC_API.G_MISS_NUM)
3061       THEN
3062         x_sax_rec.object_version_number := l_sax_rec.object_version_number;
3063       END IF;
3064       IF (x_sax_rec.created_by = OKC_API.G_MISS_NUM)
3065       THEN
3066         x_sax_rec.created_by := l_sax_rec.created_by;
3067       END IF;
3068       IF (x_sax_rec.creation_date = OKC_API.G_MISS_DATE)
3069       THEN
3070         x_sax_rec.creation_date := l_sax_rec.creation_date;
3071       END IF;
3072       IF (x_sax_rec.last_updated_by = OKC_API.G_MISS_NUM)
3073       THEN
3074         x_sax_rec.last_updated_by := l_sax_rec.last_updated_by;
3075       END IF;
3076       IF (x_sax_rec.last_update_date = OKC_API.G_MISS_DATE)
3077       THEN
3078         x_sax_rec.last_update_date := l_sax_rec.last_update_date;
3079       END IF;
3080       IF (x_sax_rec.manufacturing_org_id = OKC_API.G_MISS_NUM)
3081       THEN
3082         x_sax_rec.manufacturing_org_id := l_sax_rec.manufacturing_org_id;
3083       END IF;
3084       IF (x_sax_rec.revision_low = OKC_API.G_MISS_CHAR)
3085       THEN
3086         x_sax_rec.revision_low := l_sax_rec.revision_low;
3087       END IF;
3088       IF (x_sax_rec.revision_high = OKC_API.G_MISS_CHAR)
3089       THEN
3090         x_sax_rec.revision_high := l_sax_rec.revision_high;
3091       END IF;
3092       IF (x_sax_rec.start_date_active = OKC_API.G_MISS_DATE)
3093       THEN
3094         x_sax_rec.start_date_active := l_sax_rec.start_date_active;
3095       END IF;
3096       IF (x_sax_rec.end_date_active = OKC_API.G_MISS_DATE)
3097       THEN
3098         x_sax_rec.end_date_active := l_sax_rec.end_date_active;
3099       END IF;
3100       IF (x_sax_rec.last_update_login = OKC_API.G_MISS_NUM)
3101       THEN
3102         x_sax_rec.last_update_login := l_sax_rec.last_update_login;
3103       END IF;
3104       IF (x_sax_rec.attribute_category = OKC_API.G_MISS_CHAR)
3105       THEN
3106         x_sax_rec.attribute_category := l_sax_rec.attribute_category;
3107       END IF;
3108       IF (x_sax_rec.attribute1 = OKC_API.G_MISS_CHAR)
3109       THEN
3110         x_sax_rec.attribute1 := l_sax_rec.attribute1;
3111       END IF;
3112       IF (x_sax_rec.attribute2 = OKC_API.G_MISS_CHAR)
3113       THEN
3114         x_sax_rec.attribute2 := l_sax_rec.attribute2;
3115       END IF;
3116       IF (x_sax_rec.attribute3 = OKC_API.G_MISS_CHAR)
3117       THEN
3118         x_sax_rec.attribute3 := l_sax_rec.attribute3;
3119       END IF;
3120       IF (x_sax_rec.attribute4 = OKC_API.G_MISS_CHAR)
3121       THEN
3122         x_sax_rec.attribute4 := l_sax_rec.attribute4;
3123       END IF;
3124       IF (x_sax_rec.attribute5 = OKC_API.G_MISS_CHAR)
3125       THEN
3126         x_sax_rec.attribute5 := l_sax_rec.attribute5;
3127       END IF;
3128       IF (x_sax_rec.attribute6 = OKC_API.G_MISS_CHAR)
3129       THEN
3130         x_sax_rec.attribute6 := l_sax_rec.attribute6;
3131       END IF;
3132       IF (x_sax_rec.attribute7 = OKC_API.G_MISS_CHAR)
3133       THEN
3134         x_sax_rec.attribute7 := l_sax_rec.attribute7;
3135       END IF;
3136       IF (x_sax_rec.attribute8 = OKC_API.G_MISS_CHAR)
3137       THEN
3138         x_sax_rec.attribute8 := l_sax_rec.attribute8;
3139       END IF;
3140       IF (x_sax_rec.attribute9 = OKC_API.G_MISS_CHAR)
3141       THEN
3142         x_sax_rec.attribute9 := l_sax_rec.attribute9;
3143       END IF;
3144       IF (x_sax_rec.attribute10 = OKC_API.G_MISS_CHAR)
3145       THEN
3146         x_sax_rec.attribute10 := l_sax_rec.attribute10;
3147       END IF;
3148       IF (x_sax_rec.attribute11 = OKC_API.G_MISS_CHAR)
3149       THEN
3150         x_sax_rec.attribute11 := l_sax_rec.attribute11;
3151       END IF;
3152       IF (x_sax_rec.attribute12 = OKC_API.G_MISS_CHAR)
3153       THEN
3154         x_sax_rec.attribute12 := l_sax_rec.attribute12;
3155       END IF;
3156       IF (x_sax_rec.attribute13 = OKC_API.G_MISS_CHAR)
3157       THEN
3158         x_sax_rec.attribute13 := l_sax_rec.attribute13;
3159       END IF;
3160       IF (x_sax_rec.attribute14 = OKC_API.G_MISS_CHAR)
3161       THEN
3162         x_sax_rec.attribute14 := l_sax_rec.attribute14;
3163       END IF;
3164       IF (x_sax_rec.attribute15 = OKC_API.G_MISS_CHAR)
3165       THEN
3166         x_sax_rec.attribute15 := l_sax_rec.attribute15;
3167       END IF;
3168       RETURN(l_return_status);
3169     END populate_new_record;
3170     -----------------------------------------------
3171     -- Set_Attributes for:OKS_SERV_AVAIL_EXCEPTS --
3172     -----------------------------------------------
3173     FUNCTION Set_Attributes (
3174       p_sax_rec IN  sax_rec_type,
3175       x_sax_rec OUT NOCOPY sax_rec_type
3176     ) RETURN VARCHAR2 IS
3177       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3178     BEGIN
3179       x_sax_rec := p_sax_rec;
3180       RETURN(l_return_status);
3181     END Set_Attributes;
3182   BEGIN
3183     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3184                                               p_init_msg_list,
3185                                               '_PVT',
3186                                               x_return_status);
3187     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3188       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3189     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3190       RAISE OKC_API.G_EXCEPTION_ERROR;
3191     END IF;
3192     --- Setting item attributes
3193     l_return_status := Set_Attributes(
3194       p_sax_rec,                         -- IN
3195       l_sax_rec);                        -- OUT
3196     --- If any errors happen abort API
3197     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3198       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3199     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3200       RAISE OKC_API.G_EXCEPTION_ERROR;
3201     END IF;
3202     l_return_status := populate_new_record(l_sax_rec, l_def_sax_rec);
3203     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3204       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3205     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3206       RAISE OKC_API.G_EXCEPTION_ERROR;
3207     END IF;
3208     UPDATE  OKS_SERV_AVAIL_EXCEPTS
3209     SET SAV_ID = l_def_sax_rec.sav_id,
3210         OBJECT1_ID1 = l_def_sax_rec.object1_id1,
3211         OBJECT1_ID2 = l_def_sax_rec.object1_id2,
3212         JTOT_OBJECT1_CODE = l_def_sax_rec.JTOT_OBJECT1_CODE,
3213         OBJECT_VERSION_NUMBER = l_def_sax_rec.object_version_number,
3214         CREATED_BY = l_def_sax_rec.created_by,
3215         CREATION_DATE = l_def_sax_rec.creation_date,
3216         LAST_UPDATED_BY = l_def_sax_rec.last_updated_by,
3217         LAST_UPDATE_DATE = l_def_sax_rec.last_update_date,
3218         MANUFACTURING_ORG_ID = l_def_sax_rec.manufacturing_org_id,
3219         REVISION_LOW = l_def_sax_rec.revision_low,
3220         REVISION_HIGH = l_def_sax_rec.revision_high,
3221         START_DATE_ACTIVE = l_def_sax_rec.start_date_active,
3222         END_DATE_ACTIVE = l_def_sax_rec.end_date_active,
3223         LAST_UPDATE_LOGIN = l_def_sax_rec.last_update_login,
3224         ATTRIBUTE_CATEGORY = l_def_sax_rec.attribute_category,
3225         ATTRIBUTE1 = l_def_sax_rec.attribute1,
3226         ATTRIBUTE2 = l_def_sax_rec.attribute2,
3227         ATTRIBUTE3 = l_def_sax_rec.attribute3,
3228         ATTRIBUTE4 = l_def_sax_rec.attribute4,
3229         ATTRIBUTE5 = l_def_sax_rec.attribute5,
3230         ATTRIBUTE6 = l_def_sax_rec.attribute6,
3231         ATTRIBUTE7 = l_def_sax_rec.attribute7,
3232         ATTRIBUTE8 = l_def_sax_rec.attribute8,
3233         ATTRIBUTE9 = l_def_sax_rec.attribute9,
3234         ATTRIBUTE10 = l_def_sax_rec.attribute10,
3235         ATTRIBUTE11 = l_def_sax_rec.attribute11,
3236         ATTRIBUTE12 = l_def_sax_rec.attribute12,
3237         ATTRIBUTE13 = l_def_sax_rec.attribute13,
3238         ATTRIBUTE14 = l_def_sax_rec.attribute14,
3239         ATTRIBUTE15 = l_def_sax_rec.attribute15
3240     WHERE ID = l_def_sax_rec.id;
3241 
3242     x_sax_rec := l_def_sax_rec;
3243     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3244   EXCEPTION
3245     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3246       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3247       (
3248         l_api_name,
3249         G_PKG_NAME,
3250         'OKC_API.G_RET_STS_ERROR',
3251         x_msg_count,
3252         x_msg_data,
3253         '_PVT'
3254       );
3255     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3256       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3257       (
3258         l_api_name,
3259         G_PKG_NAME,
3260         'OKC_API.G_RET_STS_UNEXP_ERROR',
3261         x_msg_count,
3262         x_msg_data,
3263         '_PVT'
3264       );
3265     WHEN OTHERS THEN
3266       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3267       (
3268         l_api_name,
3269         G_PKG_NAME,
3270         'OTHERS',
3271         x_msg_count,
3272         x_msg_data,
3273         '_PVT'
3274       );
3275   END update_row;
3276   ---------------------------------------------
3277   -- update_row for:OKS_SERV_AVAIL_EXCEPTS_V --
3278   ---------------------------------------------
3279   PROCEDURE update_row(
3280     p_api_version                  IN NUMBER,
3281     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3282     x_return_status                OUT NOCOPY VARCHAR2,
3283     x_msg_count                    OUT NOCOPY NUMBER,
3284     x_msg_data                     OUT NOCOPY VARCHAR2,
3285     p_saxv_rec                     IN saxv_rec_type,
3286     x_saxv_rec                     OUT NOCOPY saxv_rec_type) IS
3287 
3288     l_api_version                 CONSTANT NUMBER := 1;
3289     l_api_name                     CONSTANT VARCHAR2(30) := 'V_update_row';
3290     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3291     l_saxv_rec                     saxv_rec_type := p_saxv_rec;
3292     l_def_saxv_rec                 saxv_rec_type;
3293     l_sax_rec                      sax_rec_type;
3294     lx_sax_rec                     sax_rec_type;
3295     -------------------------------
3296     -- FUNCTION fill_who_columns --
3297     -------------------------------
3298     FUNCTION fill_who_columns (
3299       p_saxv_rec	IN saxv_rec_type
3300     ) RETURN saxv_rec_type IS
3301       l_saxv_rec	saxv_rec_type := p_saxv_rec;
3302     BEGIN
3303       l_saxv_rec.LAST_UPDATE_DATE := SYSDATE;
3304       l_saxv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
3305       l_saxv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
3306       RETURN(l_saxv_rec);
3307     END fill_who_columns;
3308     ----------------------------------
3309     -- FUNCTION populate_new_record --
3310     ----------------------------------
3311     FUNCTION populate_new_record (
3312       p_saxv_rec	IN saxv_rec_type,
3313       x_saxv_rec	OUT NOCOPY saxv_rec_type
3314     ) RETURN VARCHAR2 IS
3315       l_saxv_rec                     saxv_rec_type;
3316       l_row_notfound                 BOOLEAN := TRUE;
3317       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3318     BEGIN
3319       x_saxv_rec := p_saxv_rec;
3320       -- Get current database values
3321       l_saxv_rec := get_rec(p_saxv_rec, l_row_notfound);
3322       IF (l_row_notfound) THEN
3323         l_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
3324       END IF;
3325       IF (x_saxv_rec.id = OKC_API.G_MISS_NUM)
3326       THEN
3327         x_saxv_rec.id := l_saxv_rec.id;
3328       END IF;
3329       IF (x_saxv_rec.sav_id = OKC_API.G_MISS_NUM)
3330       THEN
3331         x_saxv_rec.sav_id := l_saxv_rec.sav_id;
3332       END IF;
3333       IF (x_saxv_rec.object1_id1 = OKC_API.G_MISS_CHAR)
3334       THEN
3335         x_saxv_rec.object1_id1 := l_saxv_rec.object1_id1;
3336       END IF;
3337       IF (x_saxv_rec.object1_id2 = OKC_API.G_MISS_CHAR)
3338       THEN
3339         x_saxv_rec.object1_id2 := l_saxv_rec.object1_id2;
3340       END IF;
3341       IF (x_saxv_rec.JTOT_OBJECT1_CODE = OKC_API.G_MISS_CHAR)
3342       THEN
3343         x_saxv_rec.JTOT_OBJECT1_CODE := l_saxv_rec.JTOT_OBJECT1_CODE;
3344       END IF;
3345       IF (x_saxv_rec.object_version_number = OKC_API.G_MISS_NUM)
3346       THEN
3347         x_saxv_rec.object_version_number := l_saxv_rec.object_version_number;
3348       END IF;
3349       IF (x_saxv_rec.manufacturing_org_id = OKC_API.G_MISS_NUM)
3350       THEN
3351         x_saxv_rec.manufacturing_org_id := l_saxv_rec.manufacturing_org_id;
3352       END IF;
3353       IF (x_saxv_rec.revision_low = OKC_API.G_MISS_CHAR)
3354       THEN
3355         x_saxv_rec.revision_low := l_saxv_rec.revision_low;
3356       END IF;
3357       IF (x_saxv_rec.revision_high = OKC_API.G_MISS_CHAR)
3358       THEN
3359         x_saxv_rec.revision_high := l_saxv_rec.revision_high;
3360       END IF;
3361       IF (x_saxv_rec.start_date_active = OKC_API.G_MISS_DATE)
3362       THEN
3363         x_saxv_rec.start_date_active := l_saxv_rec.start_date_active;
3364       END IF;
3365       IF (x_saxv_rec.end_date_active = OKC_API.G_MISS_DATE)
3366       THEN
3367         x_saxv_rec.end_date_active := l_saxv_rec.end_date_active;
3368       END IF;
3369       IF (x_saxv_rec.attribute_category = OKC_API.G_MISS_CHAR)
3370       THEN
3371         x_saxv_rec.attribute_category := l_saxv_rec.attribute_category;
3372       END IF;
3373       IF (x_saxv_rec.attribute1 = OKC_API.G_MISS_CHAR)
3374       THEN
3375         x_saxv_rec.attribute1 := l_saxv_rec.attribute1;
3376       END IF;
3377       IF (x_saxv_rec.attribute2 = OKC_API.G_MISS_CHAR)
3378       THEN
3379         x_saxv_rec.attribute2 := l_saxv_rec.attribute2;
3380       END IF;
3381       IF (x_saxv_rec.attribute3 = OKC_API.G_MISS_CHAR)
3382       THEN
3383         x_saxv_rec.attribute3 := l_saxv_rec.attribute3;
3384       END IF;
3385       IF (x_saxv_rec.attribute4 = OKC_API.G_MISS_CHAR)
3386       THEN
3387         x_saxv_rec.attribute4 := l_saxv_rec.attribute4;
3388       END IF;
3389       IF (x_saxv_rec.attribute5 = OKC_API.G_MISS_CHAR)
3390       THEN
3391         x_saxv_rec.attribute5 := l_saxv_rec.attribute5;
3392       END IF;
3393       IF (x_saxv_rec.attribute6 = OKC_API.G_MISS_CHAR)
3394       THEN
3395         x_saxv_rec.attribute6 := l_saxv_rec.attribute6;
3396       END IF;
3397       IF (x_saxv_rec.attribute7 = OKC_API.G_MISS_CHAR)
3398       THEN
3399         x_saxv_rec.attribute7 := l_saxv_rec.attribute7;
3400       END IF;
3401       IF (x_saxv_rec.attribute8 = OKC_API.G_MISS_CHAR)
3402       THEN
3403         x_saxv_rec.attribute8 := l_saxv_rec.attribute8;
3404       END IF;
3405       IF (x_saxv_rec.attribute9 = OKC_API.G_MISS_CHAR)
3406       THEN
3407         x_saxv_rec.attribute9 := l_saxv_rec.attribute9;
3408       END IF;
3409       IF (x_saxv_rec.attribute10 = OKC_API.G_MISS_CHAR)
3410       THEN
3411         x_saxv_rec.attribute10 := l_saxv_rec.attribute10;
3412       END IF;
3413       IF (x_saxv_rec.attribute11 = OKC_API.G_MISS_CHAR)
3414       THEN
3415         x_saxv_rec.attribute11 := l_saxv_rec.attribute11;
3416       END IF;
3417       IF (x_saxv_rec.attribute12 = OKC_API.G_MISS_CHAR)
3418       THEN
3419         x_saxv_rec.attribute12 := l_saxv_rec.attribute12;
3420       END IF;
3421       IF (x_saxv_rec.attribute13 = OKC_API.G_MISS_CHAR)
3422       THEN
3423         x_saxv_rec.attribute13 := l_saxv_rec.attribute13;
3424       END IF;
3425       IF (x_saxv_rec.attribute14 = OKC_API.G_MISS_CHAR)
3426       THEN
3427         x_saxv_rec.attribute14 := l_saxv_rec.attribute14;
3428       END IF;
3429       IF (x_saxv_rec.attribute15 = OKC_API.G_MISS_CHAR)
3430       THEN
3431         x_saxv_rec.attribute15 := l_saxv_rec.attribute15;
3432       END IF;
3433       IF (x_saxv_rec.created_by = OKC_API.G_MISS_NUM)
3434       THEN
3435         x_saxv_rec.created_by := l_saxv_rec.created_by;
3436       END IF;
3437       IF (x_saxv_rec.creation_date = OKC_API.G_MISS_DATE)
3438       THEN
3439         x_saxv_rec.creation_date := l_saxv_rec.creation_date;
3440       END IF;
3441       IF (x_saxv_rec.last_updated_by = OKC_API.G_MISS_NUM)
3442       THEN
3443         x_saxv_rec.last_updated_by := l_saxv_rec.last_updated_by;
3444       END IF;
3445       IF (x_saxv_rec.last_update_date = OKC_API.G_MISS_DATE)
3446       THEN
3447         x_saxv_rec.last_update_date := l_saxv_rec.last_update_date;
3448       END IF;
3449       IF (x_saxv_rec.last_update_login = OKC_API.G_MISS_NUM)
3450       THEN
3451         x_saxv_rec.last_update_login := l_saxv_rec.last_update_login;
3452       END IF;
3453       RETURN(l_return_status);
3454     END populate_new_record;
3455     -------------------------------------------------
3456     -- Set_Attributes for:OKS_SERV_AVAIL_EXCEPTS_V --
3457     -------------------------------------------------
3458     FUNCTION Set_Attributes (
3459       p_saxv_rec IN  saxv_rec_type,
3460       x_saxv_rec OUT NOCOPY saxv_rec_type
3461     ) RETURN VARCHAR2 IS
3462       l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3463     BEGIN
3464       x_saxv_rec := p_saxv_rec;
3465       x_saxv_rec.OBJECT_VERSION_NUMBER := NVL(x_saxv_rec.OBJECT_VERSION_NUMBER, 0) + 1;
3466       RETURN(l_return_status);
3467     END Set_Attributes;
3468   BEGIN
3469     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3470                                               G_PKG_NAME,
3471                                               p_init_msg_list,
3472                                               l_api_version,
3473                                               p_api_version,
3474                                               '_PVT',
3475                                               x_return_status);
3476     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3477       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3478     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3479       RAISE OKC_API.G_EXCEPTION_ERROR;
3480     END IF;
3481     --- Setting item attributes
3482     l_return_status := Set_Attributes(
3483       p_saxv_rec,                        -- IN
3484       l_saxv_rec);                       -- OUT
3485     --- If any errors happen abort API
3486     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3487       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3488     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3489       RAISE OKC_API.G_EXCEPTION_ERROR;
3490     END IF;
3491     l_return_status := populate_new_record(l_saxv_rec, l_def_saxv_rec);
3492     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3493       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3494     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3495       RAISE OKC_API.G_EXCEPTION_ERROR;
3496     END IF;
3497     l_def_saxv_rec := fill_who_columns(l_def_saxv_rec);
3498     --- Validate all non-missing attributes (Item Level Validation)
3499     l_return_status := Validate_Attributes(l_def_saxv_rec);
3500     --- If any errors happen abort API
3501     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3502       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3503     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3504       RAISE OKC_API.G_EXCEPTION_ERROR;
3505     END IF;
3506     l_return_status := Validate_Record(l_def_saxv_rec);
3507     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3508       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3509     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3510       RAISE OKC_API.G_EXCEPTION_ERROR;
3511     END IF;
3512 
3513     --------------------------------------
3514     -- Move VIEW record to "Child" records
3515     --------------------------------------
3516     migrate(l_def_saxv_rec, l_sax_rec);
3517     --------------------------------------------
3518     -- Call the UPDATE_ROW for each child record
3519     --------------------------------------------
3520     update_row(
3521       p_init_msg_list,
3522       x_return_status,
3523       x_msg_count,
3524       x_msg_data,
3525       l_sax_rec,
3526       lx_sax_rec
3527     );
3528     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3529       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3530     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3531       RAISE OKC_API.G_EXCEPTION_ERROR;
3532     END IF;
3533     migrate(lx_sax_rec, l_def_saxv_rec);
3534     x_saxv_rec := l_def_saxv_rec;
3535     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3536   EXCEPTION
3537     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3538       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3539       (
3540         l_api_name,
3541         G_PKG_NAME,
3542         'OKC_API.G_RET_STS_ERROR',
3543         x_msg_count,
3544         x_msg_data,
3545         '_PVT'
3546       );
3547     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3548       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3549       (
3550         l_api_name,
3551         G_PKG_NAME,
3552         'OKC_API.G_RET_STS_UNEXP_ERROR',
3553         x_msg_count,
3554         x_msg_data,
3555         '_PVT'
3556       );
3557     WHEN OTHERS THEN
3558       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3559       (
3560         l_api_name,
3561         G_PKG_NAME,
3562         'OTHERS',
3563         x_msg_count,
3564         x_msg_data,
3565         '_PVT'
3566       );
3567   END update_row;
3568   ----------------------------------------
3569   -- PL/SQL TBL update_row for:SAXV_TBL --
3570   ----------------------------------------
3571   PROCEDURE update_row(
3572     p_api_version                  IN NUMBER,
3573     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3574     x_return_status                OUT NOCOPY VARCHAR2,
3575     x_msg_count                    OUT NOCOPY NUMBER,
3576     x_msg_data                     OUT NOCOPY VARCHAR2,
3577     p_saxv_tbl                     IN saxv_tbl_type,
3578     x_saxv_tbl                     OUT NOCOPY saxv_tbl_type) IS
3579 
3580     l_api_version                 CONSTANT NUMBER := 1;
3581     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
3582     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3583     i                              NUMBER := 0;
3584   BEGIN
3585     OKC_API.init_msg_list(p_init_msg_list);
3586     -- Make sure PL/SQL table has records in it before passing
3587     IF (p_saxv_tbl.COUNT > 0) THEN
3588       i := p_saxv_tbl.FIRST;
3589       LOOP
3590         update_row (
3591           p_api_version                  => p_api_version,
3592           p_init_msg_list                => OKC_API.G_FALSE,
3593           x_return_status                => x_return_status,
3594           x_msg_count                    => x_msg_count,
3595           x_msg_data                     => x_msg_data,
3596           p_saxv_rec                     => p_saxv_tbl(i),
3597           x_saxv_rec                     => x_saxv_tbl(i));
3598         EXIT WHEN (i = p_saxv_tbl.LAST);
3599         i := p_saxv_tbl.NEXT(i);
3600       END LOOP;
3601     END IF;
3602   EXCEPTION
3603     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3604       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3605       (
3606         l_api_name,
3607         G_PKG_NAME,
3608         'OKC_API.G_RET_STS_ERROR',
3609         x_msg_count,
3610         x_msg_data,
3611         '_PVT'
3612       );
3613     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3614       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3615       (
3616         l_api_name,
3617         G_PKG_NAME,
3618         'OKC_API.G_RET_STS_UNEXP_ERROR',
3619         x_msg_count,
3620         x_msg_data,
3621         '_PVT'
3622       );
3623     WHEN OTHERS THEN
3624       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3625       (
3626         l_api_name,
3627         G_PKG_NAME,
3628         'OTHERS',
3629         x_msg_count,
3630         x_msg_data,
3631         '_PVT'
3632       );
3633   END update_row;
3634 
3635   ---------------------------------------------------------------------------
3636   -- PROCEDURE delete_row
3637   ---------------------------------------------------------------------------
3638   -------------------------------------------
3639   -- delete_row for:OKS_SERV_AVAIL_EXCEPTS --
3640   -------------------------------------------
3641   PROCEDURE delete_row(
3642     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3643     x_return_status                OUT NOCOPY VARCHAR2,
3644     x_msg_count                    OUT NOCOPY NUMBER,
3645     x_msg_data                     OUT NOCOPY VARCHAR2,
3646     p_sax_rec                      IN sax_rec_type) IS
3647 
3648     l_api_version                 CONSTANT NUMBER := 1;
3649     l_api_name                     CONSTANT VARCHAR2(30) := 'EXCEPTS_delete_row';
3650     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3651     l_sax_rec                      sax_rec_type:= p_sax_rec;
3652     l_row_notfound                 BOOLEAN := TRUE;
3653   BEGIN
3654     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3655                                               p_init_msg_list,
3656                                               '_PVT',
3657                                               x_return_status);
3658     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3659       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3660     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3661       RAISE OKC_API.G_EXCEPTION_ERROR;
3662     END IF;
3663     DELETE FROM OKS_SERV_AVAIL_EXCEPTS
3664      WHERE ID = l_sax_rec.id;
3665 
3666     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3667   EXCEPTION
3668     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3669       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3670       (
3671         l_api_name,
3672         G_PKG_NAME,
3673         'OKC_API.G_RET_STS_ERROR',
3674         x_msg_count,
3675         x_msg_data,
3676         '_PVT'
3677       );
3678     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3679       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3680       (
3681         l_api_name,
3682         G_PKG_NAME,
3683         'OKC_API.G_RET_STS_UNEXP_ERROR',
3684         x_msg_count,
3685         x_msg_data,
3686         '_PVT'
3687       );
3688     WHEN OTHERS THEN
3689       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3690       (
3691         l_api_name,
3692         G_PKG_NAME,
3693         'OTHERS',
3694         x_msg_count,
3695         x_msg_data,
3696         '_PVT'
3697       );
3698   END delete_row;
3699   ---------------------------------------------
3700   -- delete_row for:OKS_SERV_AVAIL_EXCEPTS_V --
3701   ---------------------------------------------
3702   PROCEDURE delete_row(
3703     p_api_version                  IN NUMBER,
3704     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3705     x_return_status                OUT NOCOPY VARCHAR2,
3706     x_msg_count                    OUT NOCOPY NUMBER,
3707     x_msg_data                     OUT NOCOPY VARCHAR2,
3708     p_saxv_rec                     IN saxv_rec_type) IS
3709 
3710     l_api_version                 CONSTANT NUMBER := 1;
3711     l_api_name                     CONSTANT VARCHAR2(30) := 'V_delete_row';
3712     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3713     l_saxv_rec                     saxv_rec_type := p_saxv_rec;
3714     l_sax_rec                      sax_rec_type;
3715   BEGIN
3716     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
3717                                               G_PKG_NAME,
3718                                               p_init_msg_list,
3719                                               l_api_version,
3720                                               p_api_version,
3721                                               '_PVT',
3722                                               x_return_status);
3723     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3724       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3725     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
3726       RAISE OKC_API.G_EXCEPTION_ERROR;
3727     END IF;
3728     --------------------------------------
3729     -- Move VIEW record to "Child" records
3730     --------------------------------------
3731     migrate(l_saxv_rec, l_sax_rec);
3732     --------------------------------------------
3733     -- Call the DELETE_ROW for each child record
3734     --------------------------------------------
3735     delete_row(
3736       p_init_msg_list,
3737       x_return_status,
3738       x_msg_count,
3739       x_msg_data,
3740       l_sax_rec
3741     );
3742     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
3743       RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
3744     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
3745       RAISE OKC_API.G_EXCEPTION_ERROR;
3746     END IF;
3747     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
3748   EXCEPTION
3749     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3750       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3751       (
3752         l_api_name,
3753         G_PKG_NAME,
3754         'OKC_API.G_RET_STS_ERROR',
3755         x_msg_count,
3756         x_msg_data,
3757         '_PVT'
3758       );
3759     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3760       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3761       (
3762         l_api_name,
3763         G_PKG_NAME,
3764         'OKC_API.G_RET_STS_UNEXP_ERROR',
3765         x_msg_count,
3766         x_msg_data,
3767         '_PVT'
3768       );
3769     WHEN OTHERS THEN
3770       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3771       (
3772         l_api_name,
3773         G_PKG_NAME,
3774         'OTHERS',
3775         x_msg_count,
3776         x_msg_data,
3777         '_PVT'
3778       );
3779   END delete_row;
3780   ----------------------------------------
3781   -- PL/SQL TBL delete_row for:SAXV_TBL --
3782   ----------------------------------------
3783   PROCEDURE delete_row(
3784     p_api_version                  IN NUMBER,
3785     p_init_msg_list                IN VARCHAR2 DEFAULT OKC_API.G_FALSE,
3786     x_return_status                OUT NOCOPY VARCHAR2,
3787     x_msg_count                    OUT NOCOPY NUMBER,
3788     x_msg_data                     OUT NOCOPY VARCHAR2,
3789     p_saxv_tbl                     IN saxv_tbl_type) IS
3790 
3791     l_api_version                 CONSTANT NUMBER := 1;
3792     l_api_name                     CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
3793     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
3794     i                              NUMBER := 0;
3795   BEGIN
3796     OKC_API.init_msg_list(p_init_msg_list);
3797     -- Make sure PL/SQL table has records in it before passing
3798     IF (p_saxv_tbl.COUNT > 0) THEN
3799       i := p_saxv_tbl.FIRST;
3800       LOOP
3801         delete_row (
3802           p_api_version                  => p_api_version,
3803           p_init_msg_list                => OKC_API.G_FALSE,
3804           x_return_status                => x_return_status,
3805           x_msg_count                    => x_msg_count,
3806           x_msg_data                     => x_msg_data,
3807           p_saxv_rec                     => p_saxv_tbl(i));
3808         EXIT WHEN (i = p_saxv_tbl.LAST);
3809         i := p_saxv_tbl.NEXT(i);
3810       END LOOP;
3811     END IF;
3812   EXCEPTION
3813     WHEN OKC_API.G_EXCEPTION_ERROR THEN
3814       x_return_status := OKC_API.HANDLE_EXCEPTIONS
3815       (
3816         l_api_name,
3817         G_PKG_NAME,
3818         'OKC_API.G_RET_STS_ERROR',
3819         x_msg_count,
3820         x_msg_data,
3821         '_PVT'
3822       );
3823     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3824       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3825       (
3826         l_api_name,
3827         G_PKG_NAME,
3828         'OKC_API.G_RET_STS_UNEXP_ERROR',
3829         x_msg_count,
3830         x_msg_data,
3831         '_PVT'
3832       );
3833     WHEN OTHERS THEN
3834       x_return_status :=OKC_API.HANDLE_EXCEPTIONS
3835       (
3836         l_api_name,
3837         G_PKG_NAME,
3838         'OTHERS',
3839         x_msg_count,
3840         x_msg_data,
3841         '_PVT'
3842       );
3843   END delete_row;
3844 PROCEDURE INSERT_ROW_UPG(p_saxv_tbl saxv_tbl_type ) IS
3845 
3846 TYPE Var45TabTyp IS TABLE OF Varchar2(45)
3847      INDEX BY BINARY_INTEGER;
3848   l_tabsize NUMBER := p_saxv_tbl.COUNT;
3849   l_source_lang VARCHAR2(12) := okc_util.get_userenv_lang;
3850 TYPE Var720TabTyp IS TABLE OF Varchar2(720)
3851      INDEX BY BINARY_INTEGER;
3852 
3853   in_id                            OKC_DATATYPES.NumberTabTyp;
3854   in_sav_id                        OKC_DATATYPES.NumberTabTyp;
3855   in_object1_id1                   OKC_DATATYPES.Var40TabTyp;
3856   in_object1_id2                   OKC_DATATYPES.Var200TabTyp;
3857   in_jtot_object1_code             OKC_DATATYPES.Var30TabTyp;
3858   in_manufacturing_org_id          OKC_DATATYPES.NumberTabTyp;
3859   in_revision_low                  Var45TabTyp;
3860   in_revision_high                 Var45TabTyp;
3861   in_start_date_active             OKC_DATATYPES.DateTabTyp;
3862   in_end_date_active               OKC_DATATYPES.DateTabTyp;
3863   in_object_version_number         OKC_DATATYPES.NumberTabTyp;
3864   in_attribute_category            OKC_DATATYPES.Var90TabTyp;
3865   in_attribute1                    OKC_DATATYPES.Var450TabTyp;
3866   in_attribute2                    OKC_DATATYPES.Var450TabTyp;
3867   in_attribute3                    OKC_DATATYPES.Var450TabTyp;
3868   in_attribute4                    OKC_DATATYPES.Var450TabTyp;
3869   in_attribute5                    OKC_DATATYPES.Var450TabTyp;
3870   in_attribute6                    OKC_DATATYPES.Var450TabTyp;
3871   in_attribute7                    OKC_DATATYPES.Var450TabTyp;
3872   in_attribute8                    OKC_DATATYPES.Var450TabTyp;
3873   in_attribute9                    OKC_DATATYPES.Var450TabTyp;
3874   in_attribute10                   OKC_DATATYPES.Var450TabTyp;
3875   in_attribute11                   OKC_DATATYPES.Var450TabTyp;
3876   in_attribute12                   OKC_DATATYPES.Var450TabTyp;
3877   in_attribute13                   OKC_DATATYPES.Var450TabTyp;
3878   in_attribute14                   OKC_DATATYPES.Var450TabTyp;
3879   in_attribute15                   OKC_DATATYPES.Var450TabTyp;
3880   in_created_by                    OKC_DATATYPES.NumberTabTyp;
3881   in_creation_date                 OKC_DATATYPES.DateTabTyp;
3882   in_last_updated_by               OKC_DATATYPES.NumberTabTyp;
3883   in_last_update_date              OKC_DATATYPES.DateTabTyp;
3884   in_last_update_login             OKC_DATATYPES.NumberTabTyp;
3885 
3886 
3887   i number;
3888   j number;
3889 BEGIN
3890   i := p_saxv_tbl.FIRST; j:=0;
3891   while i is not null
3892   LOOP
3893     j:=j+1;
3894     in_id                            (j) := p_saxv_tbl(i).id;
3895     in_sav_id                        (j) := p_saxv_tbl(i).sav_id;
3896     in_object1_id1                   (j) := p_saxv_tbl(i).object1_id1;
3897     in_object1_id2                   (j) := p_saxv_tbl(i).object1_id2;
3898     in_jtot_object1_code              (j) := p_saxv_tbl(i).jtot_object1_code;
3899     in_manufacturing_org_id          (j) := p_saxv_tbl(i).manufacturing_org_id;
3900     in_revision_low                  (j) := p_saxv_tbl(i).revision_low ;
3901     in_revision_high                 (j) := p_saxv_tbl(i).revision_high ;
3902     in_start_date_active             (j) := p_saxv_tbl(i).start_date_active;
3903     in_end_date_active               (j) := p_saxv_tbl(i).end_date_active;
3904     in_object_version_number         (j) := p_saxv_tbl(i).object_version_number;
3905     in_attribute_category            (j) := p_saxv_tbl(i).attribute_category;
3906     in_attribute1                    (j) := p_saxv_tbl(i).attribute1;
3907     in_attribute2                    (j) := p_saxv_tbl(i).attribute2;
3908     in_attribute3                    (j) := p_saxv_tbl(i).attribute3;
3909     in_attribute4                    (j) := p_saxv_tbl(i).attribute4;
3910     in_attribute5                    (j) := p_saxv_tbl(i).attribute5;
3911     in_attribute6                    (j) := p_saxv_tbl(i).attribute6;
3912     in_attribute7                    (j) := p_saxv_tbl(i).attribute7;
3913     in_attribute8                    (j) := p_saxv_tbl(i).attribute8;
3914     in_attribute9                    (j) := p_saxv_tbl(i).attribute9;
3915     in_attribute10                   (j) := p_saxv_tbl(i).attribute10;
3916     in_attribute11                   (j) := p_saxv_tbl(i).attribute11;
3917     in_attribute12                   (j) := p_saxv_tbl(i).attribute12;
3918     in_attribute13                   (j) := p_saxv_tbl(i).attribute13;
3919     in_attribute14                   (j) := p_saxv_tbl(i).attribute14;
3920     in_attribute15                   (j) := p_saxv_tbl(i).attribute15;
3921     in_created_by                    (j) := p_saxv_tbl(i).created_by;
3922     in_creation_date                 (j) := p_saxv_tbl(i).creation_date;
3923     in_last_updated_by               (j) := p_saxv_tbl(i).last_updated_by;
3924     in_last_update_date              (j) := p_saxv_tbl(i).last_update_date;
3925     in_last_update_login             (j) := p_saxv_tbl(i).last_update_login;
3926 
3927 
3928 
3929     i:=p_saxv_tbl.next(i);
3930   END LOOP;
3931                          FORALL i in 1..l_tabsize
3932               Insert into
3933               OKS_SERV_AVAIL_EXCEPTS
3934               (
3935                 id
3936                , sav_id
3937                , object1_id1
3938                , object1_id2
3939                , jtot_object1_code
3940                , manufacturing_org_id
3941                , revision_low
3942                , revision_high
3943                , start_date_active
3944                , end_date_active
3945                , object_version_number
3946                , attribute_category
3947                , attribute1
3948                , attribute2
3949                , attribute3
3950                , attribute4
3951                , attribute5
3952                , attribute6
3953                , attribute7
3954                , attribute8
3955                , attribute9
3956                , attribute10
3957                , attribute11
3958                , attribute12
3959                , attribute13
3960                , attribute14
3961                , attribute15
3962                , created_by
3963                , creation_date
3964                , last_updated_by
3965                , last_update_date
3966                , last_update_login
3967               )
3968               Values
3969               (
3970                  in_id(i),
3971                  in_sav_id(i),
3972                  in_object1_id1(i),
3973                  in_object1_id2(i),
3974                  in_jtot_object1_code(i),
3975                  in_manufacturing_org_id(i),
3976                  in_revision_low(i),
3977                  in_revision_high(i),
3978                  in_start_date_active(i),
3979                  in_end_date_active(i),
3980                  in_object_version_number(i),
3981                  in_attribute_category(i),
3982                  in_attribute1(i),
3983                  in_attribute2(i),
3984                  in_attribute3(i),
3985                  in_attribute4(i),
3986                  in_attribute5(i),
3987                  in_attribute6(i),
3988                  in_attribute7(i),
3989                  in_attribute8(i),
3990                  in_attribute9(i),
3991                  in_attribute10(i),
3992                  in_attribute11(i),
3993                  in_attribute12(i),
3994                  in_attribute13(i),
3995                  in_attribute14(i),
3996                  in_attribute15(i),
3997                  in_created_by(i),
3998                  in_creation_date(i),
3999                  in_last_updated_by(i),
4000                  in_last_update_date(i),
4001                  in_last_update_login(i)
4002               );
4003 EXCEPTION
4004   WHEN OTHERS THEN
4005     RAISE;
4006 END INSERT_ROW_UPG;
4007 END OKS_AVLEXC_PVT;