DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_QUA_PVT

Source


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