DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_CONTRACT_GROUP_PUB

Source


1 package body okc_contract_group_pub as
2 /* $Header: OKCPCGPB.pls 120.0 2005/05/25 18:57:50 appldev noship $ */
3 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
4 
5   FUNCTION migrate_cgpv(p_cgpv_rec1 IN cgpv_rec_type,
6                         p_cgpv_rec2 IN cgpv_rec_type)
7     RETURN cgpv_rec_type IS
8     l_cgpv_rec cgpv_rec_type;
9   BEGIN
10     l_cgpv_rec.id                    := p_cgpv_rec1.id;
11     l_cgpv_rec.object_version_number := p_cgpv_rec1.object_version_number;
12     l_cgpv_rec.created_by            := p_cgpv_rec1.created_by;
13     l_cgpv_rec.creation_date         := p_cgpv_rec1.creation_date;
14     l_cgpv_rec.last_updated_by       := p_cgpv_rec1.last_updated_by;
15     l_cgpv_rec.last_update_date      := p_cgpv_rec1.last_update_date;
16     l_cgpv_rec.user_id               := p_cgpv_rec1.user_id;
17     l_cgpv_rec.last_update_login     := p_cgpv_rec1.last_update_login;
18     l_cgpv_rec.sfwt_flag             := p_cgpv_rec2.sfwt_flag;
19     l_cgpv_rec.name                  := p_cgpv_rec2.name;
20     l_cgpv_rec.public_yn             := p_cgpv_rec2.public_yn;
21     l_cgpv_rec.short_description     := p_cgpv_rec2.short_description;
22     l_cgpv_rec.attribute_category    := p_cgpv_rec2.attribute_category;
23     l_cgpv_rec.attribute1            := p_cgpv_rec2.attribute1;
24     l_cgpv_rec.attribute2            := p_cgpv_rec2.attribute2;
25     l_cgpv_rec.attribute3            := p_cgpv_rec2.attribute3;
26     l_cgpv_rec.attribute4            := p_cgpv_rec2.attribute4;
27     l_cgpv_rec.attribute5            := p_cgpv_rec2.attribute5;
28     l_cgpv_rec.attribute6            := p_cgpv_rec2.attribute6;
29     l_cgpv_rec.attribute7            := p_cgpv_rec2.attribute7;
30     l_cgpv_rec.attribute8            := p_cgpv_rec2.attribute8;
31     l_cgpv_rec.attribute9            := p_cgpv_rec2.attribute9;
32     l_cgpv_rec.attribute10           := p_cgpv_rec2.attribute10;
33     l_cgpv_rec.attribute11           := p_cgpv_rec2.attribute11;
34     l_cgpv_rec.attribute12           := p_cgpv_rec2.attribute12;
35     l_cgpv_rec.attribute13           := p_cgpv_rec2.attribute13;
36     l_cgpv_rec.attribute14           := p_cgpv_rec2.attribute14;
37     l_cgpv_rec.attribute15           := p_cgpv_rec2.attribute15;
38     RETURN (l_cgpv_rec);
39   END migrate_cgpv;
40 
41   FUNCTION migrate_cgpv(p_cgpv_tbl1 IN cgpv_tbl_type,
42                         p_cgpv_tbl2 IN cgpv_tbl_type)
43     RETURN cgpv_tbl_type IS
44     l_cgpv_tbl cgpv_tbl_type;
45     i NUMBER := 0;
46     j NUMBER := 0;
47   BEGIN
48     -- If the user hook deleted some records or added some new records in the table,
49     -- discard the change and simply copy the original table.
50     IF p_cgpv_tbl1.COUNT <> p_cgpv_tbl2.COUNT THEN
51       l_cgpv_tbl := p_cgpv_tbl1;
52     ELSE
53       IF (p_cgpv_tbl1.COUNT > 0) THEN
54         i := p_cgpv_tbl1.FIRST;
55         j := p_cgpv_tbl2.FIRST;
56         LOOP
57           l_cgpv_tbl(i) := migrate_cgpv(p_cgpv_tbl1(i), p_cgpv_tbl2(j));
58           EXIT WHEN (i = p_cgpv_tbl1.LAST);
59           i := p_cgpv_tbl1.NEXT(i);
60           j := p_cgpv_tbl2.NEXT(j);
61         END LOOP;
62       END IF;
63     END IF;
64     RETURN (l_cgpv_tbl);
65   END migrate_cgpv;
66 
67   FUNCTION migrate_cgcv(p_cgcv_rec1 IN cgcv_rec_type,
68                         p_cgcv_rec2 IN cgcv_rec_type)
69     RETURN cgcv_rec_type IS
70     l_cgcv_rec cgcv_rec_type;
71   BEGIN
72     l_cgcv_rec.id                    := p_cgcv_rec1.id;
73     l_cgcv_rec.object_version_number := p_cgcv_rec1.object_version_number;
74     l_cgcv_rec.created_by            := p_cgcv_rec1.created_by;
75     l_cgcv_rec.creation_date         := p_cgcv_rec1.creation_date;
76     l_cgcv_rec.last_updated_by       := p_cgcv_rec1.last_updated_by;
77     l_cgcv_rec.last_update_date      := p_cgcv_rec1.last_update_date;
78     l_cgcv_rec.last_update_login     := p_cgcv_rec1.last_update_login;
79     l_cgcv_rec.cgp_parent_id         := p_cgcv_rec2.cgp_parent_id;
80     l_cgcv_rec.included_chr_id       := p_cgcv_rec2.included_chr_id;
81     l_cgcv_rec.included_cgp_id       := p_cgcv_rec2.included_cgp_id;
82     l_cgcv_rec.scs_code              := p_cgcv_rec2.scs_code;
83     RETURN (l_cgcv_rec);
84   END migrate_cgcv;
85 
86   FUNCTION migrate_cgcv(p_cgcv_tbl1 IN cgcv_tbl_type,
87                         p_cgcv_tbl2 IN cgcv_tbl_type)
88     RETURN cgcv_tbl_type IS
89     l_cgcv_tbl cgcv_tbl_type;
90     i NUMBER := 0;
91     j NUMBER := 0;
92   BEGIN
93     IF p_cgcv_tbl1.COUNT <> p_cgcv_tbl2.COUNT THEN
94       l_cgcv_tbl := p_cgcv_tbl1;
95     ELSE
96       IF (p_cgcv_tbl1.COUNT > 0) THEN
97         i := p_cgcv_tbl1.FIRST;
98         j := p_cgcv_tbl2.FIRST;
99         LOOP
100           l_cgcv_tbl(i) := migrate_cgcv(p_cgcv_tbl1(i), p_cgcv_tbl2(j));
101           EXIT WHEN (i = p_cgcv_tbl1.LAST);
102           i := p_cgcv_tbl1.NEXT(i);
103           j := p_cgcv_tbl2.NEXT(j);
104         END LOOP;
105       END IF;
106     END IF;
107     RETURN (l_cgcv_tbl);
108   END migrate_cgcv;
109 
110   PROCEDURE add_language IS
111   BEGIN
112     okc_contract_group_pvt.add_language;
113   END;
114 
115   PROCEDURE create_ctr_group(
116     p_api_version                  IN NUMBER,
117     p_init_msg_list                IN VARCHAR2 ,
118     x_return_status                OUT NOCOPY VARCHAR2,
119     x_msg_count                    OUT NOCOPY NUMBER,
120     x_msg_data                     OUT NOCOPY VARCHAR2,
121     p_cgpv_rec                     IN cgpv_rec_type,
122     x_cgpv_rec                     OUT NOCOPY cgpv_rec_type,
123     p_cgcv_tbl                     IN cgcv_tbl_type,
124     x_cgcv_tbl                     OUT NOCOPY cgcv_tbl_type) IS
125   BEGIN
126     okc_contract_group_pvt.create_ctr_group(
127 	    p_api_version,
128 	    p_init_msg_list,
129 	    x_return_status,
130 	    x_msg_count,
131 	    x_msg_data,
132 	    p_cgpv_rec,
133 	    x_cgpv_rec,
134 	    p_cgcv_tbl,
135 	    x_cgcv_tbl);
136   END create_ctr_group;
137 
138   PROCEDURE update_ctr_group(
139     p_api_version                  IN NUMBER,
140     p_init_msg_list                IN VARCHAR2 ,
141     x_return_status                OUT NOCOPY VARCHAR2,
142     x_msg_count                    OUT NOCOPY NUMBER,
143     x_msg_data                     OUT NOCOPY VARCHAR2,
144     p_cgpv_rec                     IN cgpv_rec_type,
145     x_cgpv_rec                     OUT NOCOPY cgpv_rec_type,
146     p_cgcv_tbl                     IN cgcv_tbl_type,
147     x_cgcv_tbl                     OUT NOCOPY cgcv_tbl_type) IS
148   BEGIN
149     okc_contract_group_pvt.update_ctr_group(
150 	    p_api_version,
151 	    p_init_msg_list,
152 	    x_return_status,
153 	    x_msg_count,
154 	    x_msg_data,
155 	    p_cgpv_rec,
156 	    x_cgpv_rec,
157 	    p_cgcv_tbl,
158 	    x_cgcv_tbl);
159   END update_ctr_group;
160 
161   PROCEDURE validate_ctr_group(
162     p_api_version                  IN NUMBER,
163     p_init_msg_list                IN VARCHAR2 ,
164     x_return_status                OUT NOCOPY VARCHAR2,
165     x_msg_count                    OUT NOCOPY NUMBER,
166     x_msg_data                     OUT NOCOPY VARCHAR2,
167     p_cgpv_rec                     IN cgpv_rec_type,
168     p_cgcv_tbl                     IN cgcv_tbl_type) IS
169   BEGIN
170     okc_contract_group_pvt.validate_ctr_group(
171 	    p_api_version,
172 	    p_init_msg_list,
173 	    x_return_status,
174 	    x_msg_count,
175 	    x_msg_data,
176 	    p_cgpv_rec,
177 	    p_cgcv_tbl);
178   END validate_ctr_group;
179 
180   PROCEDURE create_contract_group(
181     p_api_version                  IN NUMBER,
182     p_init_msg_list                IN VARCHAR2 ,
183     x_return_status                OUT NOCOPY VARCHAR2,
184     x_msg_count                    OUT NOCOPY NUMBER,
185     x_msg_data                     OUT NOCOPY VARCHAR2,
186     p_cgpv_rec                     IN cgpv_rec_type,
187     x_cgpv_rec                     OUT NOCOPY cgpv_rec_type) IS
188     l_api_name                     CONSTANT VARCHAR2(30) := 'create_contract_group';
189     l_return_status		   VARCHAR2(1);
190     l_cgpv_rec                     cgpv_rec_type := p_cgpv_rec;
191   BEGIN
192     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
193 					      p_init_msg_list,
194 					      '_PUB',
195                                               x_return_status);
196     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
197       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
198     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
199       raise OKC_API.G_EXCEPTION_ERROR;
200     END IF;
201     -- Call user hook for BEFORE
202     g_cgpv_rec := l_cgpv_rec;
203     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
204     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
205       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
206     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
207       raise OKC_API.G_EXCEPTION_ERROR;
208     END IF;
209     l_cgpv_rec := migrate_cgpv(l_cgpv_rec, g_cgpv_rec);
210 
211     okc_contract_group_pvt.create_contract_group(
212 	    p_api_version,
213 	    p_init_msg_list,
214 	    x_return_status,
215 	    x_msg_count,
216 	    x_msg_data,
217 	    l_cgpv_rec,
218 	    x_cgpv_rec);
219     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
220       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
221     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
222       raise OKC_API.G_EXCEPTION_ERROR;
223     END IF;
224 
225     -- Call user hook for AFTER
226     g_cgpv_rec := x_cgpv_rec;
227     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
228     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
229       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
230     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
231       raise OKC_API.G_EXCEPTION_ERROR;
232     END IF;
233     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
234   EXCEPTION
235     WHEN OKC_API.G_EXCEPTION_ERROR THEN
236       x_return_status := OKC_API.HANDLE_EXCEPTIONS
237       (l_api_name,
238        G_PKG_NAME,
239        'OKC_API.G_RET_STS_ERROR',
240        x_msg_count,
241        x_msg_data,
242        '_PUB');
243     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
244       x_return_status := OKC_API.HANDLE_EXCEPTIONS
245       (l_api_name,
246        G_PKG_NAME,
247        'OKC_API.G_RET_STS_UNEXP_ERROR',
248        x_msg_count,
249        x_msg_data,
250        '_PUB');
251     WHEN OTHERS THEN
252       x_return_status := OKC_API.HANDLE_EXCEPTIONS
253       (l_api_name,
254        G_PKG_NAME,
255        'OTHERS',
256        x_msg_count,
257        x_msg_data,
258        '_PUB');
259   END create_contract_group;
260 
261   PROCEDURE create_contract_group(
262     p_api_version                  IN NUMBER,
263     p_init_msg_list                IN VARCHAR2 ,
264     x_return_status                OUT NOCOPY VARCHAR2,
265     x_msg_count                    OUT NOCOPY NUMBER,
266     x_msg_data                     OUT NOCOPY VARCHAR2,
267     p_cgpv_tbl                     IN cgpv_tbl_type,
268     x_cgpv_tbl                     OUT NOCOPY cgpv_tbl_type) IS
269     i				   NUMBER := 0;
270     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
271   BEGIN
272     x_return_status := OKC_API.G_RET_STS_SUCCESS;
273     IF p_cgpv_tbl.COUNT > 0 THEN
274       i := p_cgpv_tbl.FIRST;
275       LOOP
276         create_contract_group(
277 	    p_api_version,
278 	    p_init_msg_list,
279 	    l_return_status,
280 	    x_msg_count,
281 	    x_msg_data,
282 	    p_cgpv_tbl(i),
283 	    x_cgpv_tbl(i));
284         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
285           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
286             x_return_status := l_return_status;
287             raise G_EXCEPTION_HALT_VALIDATION;
288           ELSE
289             x_return_status := l_return_status;
290           END IF;
291         END IF;
292         EXIT WHEN (i = p_cgpv_tbl.LAST);
293         i := p_cgpv_tbl.NEXT(i);
294       END LOOP;
295     END IF;
296   EXCEPTION
297     WHEN G_EXCEPTION_HALT_VALIDATION THEN
298       NULL;
299     WHEN OTHERS THEN
300       OKC_API.set_message(p_app_name      => g_app_name,
301                           p_msg_name      => g_unexpected_error,
302                           p_token1        => g_sqlcode_token,
303                           p_token1_value  => sqlcode,
304                           p_token2        => g_sqlerrm_token,
305                           p_token2_value  => sqlerrm);
306       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
307   END create_contract_group;
308 
309   PROCEDURE update_contract_group(
310     p_api_version                  IN NUMBER,
311     p_init_msg_list                IN VARCHAR2 ,
312     x_return_status                OUT NOCOPY VARCHAR2,
313     x_msg_count                    OUT NOCOPY NUMBER,
314     x_msg_data                     OUT NOCOPY VARCHAR2,
315     p_cgpv_rec                     IN cgpv_rec_type,
316     x_cgpv_rec                     OUT NOCOPY cgpv_rec_type) IS
317     l_api_name                     CONSTANT VARCHAR2(30) := 'update_contract_group';
318     l_return_status		   VARCHAR2(1);
319     l_cgpv_rec                     cgpv_rec_type := p_cgpv_rec;
320   BEGIN
321     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
322 					      p_init_msg_list,
323 					      '_PUB',
324                                               x_return_status);
325     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
326       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
327     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
328       raise OKC_API.G_EXCEPTION_ERROR;
329     END IF;
330     -- Call user hook for BEFORE
331     g_cgpv_rec := l_cgpv_rec;
332     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
333     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
334       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
335     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
336       raise OKC_API.G_EXCEPTION_ERROR;
337     END IF;
338     l_cgpv_rec := migrate_cgpv(l_cgpv_rec, g_cgpv_rec);
339 
340     okc_contract_group_pvt.update_contract_group(
341 	    p_api_version,
342 	    p_init_msg_list,
343 	    x_return_status,
344 	    x_msg_count,
345 	    x_msg_data,
346 	    l_cgpv_rec,
347 	    x_cgpv_rec);
348     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
349       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
350     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
351       raise OKC_API.G_EXCEPTION_ERROR;
352     END IF;
353 
354     -- Call user hook for AFTER
355     g_cgpv_rec := x_cgpv_rec;
356     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
357     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
358       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
359     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
360       raise OKC_API.G_EXCEPTION_ERROR;
361     END IF;
362     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
363   EXCEPTION
364     WHEN OKC_API.G_EXCEPTION_ERROR THEN
365       x_return_status := OKC_API.HANDLE_EXCEPTIONS
366       (l_api_name,
367        G_PKG_NAME,
368        'OKC_API.G_RET_STS_ERROR',
369        x_msg_count,
370        x_msg_data,
371        '_PUB');
372     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
373       x_return_status := OKC_API.HANDLE_EXCEPTIONS
374       (l_api_name,
375        G_PKG_NAME,
376        'OKC_API.G_RET_STS_UNEXP_ERROR',
377        x_msg_count,
378        x_msg_data,
379        '_PUB');
380     WHEN OTHERS THEN
381       x_return_status := OKC_API.HANDLE_EXCEPTIONS
382       (l_api_name,
383        G_PKG_NAME,
384        'OTHERS',
385        x_msg_count,
386        x_msg_data,
387        '_PUB');
388   END update_contract_group;
389 
390   PROCEDURE update_contract_group(
391     p_api_version                  IN NUMBER,
392     p_init_msg_list                IN VARCHAR2 ,
393     x_return_status                OUT NOCOPY VARCHAR2,
394     x_msg_count                    OUT NOCOPY NUMBER,
395     x_msg_data                     OUT NOCOPY VARCHAR2,
396     p_cgpv_tbl                     IN cgpv_tbl_type,
397     x_cgpv_tbl                     OUT NOCOPY cgpv_tbl_type) IS
398     i				   NUMBER := 0;
399     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
400   BEGIN
401     x_return_status := OKC_API.G_RET_STS_SUCCESS;
402     IF p_cgpv_tbl.COUNT > 0 THEN
403       i := p_cgpv_tbl.FIRST;
404       LOOP
405         update_contract_group(
406 	    p_api_version,
407 	    p_init_msg_list,
408 	    l_return_status,
409 	    x_msg_count,
410 	    x_msg_data,
411 	    p_cgpv_tbl(i),
412 	    x_cgpv_tbl(i));
413         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
414           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
415             x_return_status := l_return_status;
416             raise G_EXCEPTION_HALT_VALIDATION;
417           ELSE
418             x_return_status := l_return_status;
419           END IF;
420         END IF;
421         EXIT WHEN (i = p_cgpv_tbl.LAST);
422         i := p_cgpv_tbl.NEXT(i);
423       END LOOP;
424     END IF;
425   EXCEPTION
426     WHEN G_EXCEPTION_HALT_VALIDATION THEN
427       NULL;
428     WHEN OTHERS THEN
429       OKC_API.set_message(p_app_name      => g_app_name,
430                           p_msg_name      => g_unexpected_error,
431                           p_token1        => g_sqlcode_token,
432                           p_token1_value  => sqlcode,
433                           p_token2        => g_sqlerrm_token,
434                           p_token2_value  => sqlerrm);
435       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
436   END update_contract_group;
437 
438   PROCEDURE delete_contract_group(
439     p_api_version                  IN NUMBER,
440     p_init_msg_list                IN VARCHAR2 ,
441     x_return_status                OUT NOCOPY VARCHAR2,
442     x_msg_count                    OUT NOCOPY NUMBER,
443     x_msg_data                     OUT NOCOPY VARCHAR2,
444     p_cgpv_rec                     IN cgpv_rec_type) IS
445     l_api_name                     CONSTANT VARCHAR2(30) := 'delete_contract_group';
446     l_return_status		   VARCHAR2(1);
447     l_cgpv_rec                     cgpv_rec_type := p_cgpv_rec;
448   BEGIN
449     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
450 					      p_init_msg_list,
451 					      '_PUB',
452                                               x_return_status);
453     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
454       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
455     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
456       raise OKC_API.G_EXCEPTION_ERROR;
457     END IF;
458     -- Call user hook for BEFORE
459     g_cgpv_rec := l_cgpv_rec;
460     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
461     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
462       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
463     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
464       raise OKC_API.G_EXCEPTION_ERROR;
465     END IF;
466 
467     okc_contract_group_pvt.delete_contract_group(
468 	    p_api_version,
469 	    p_init_msg_list,
470 	    x_return_status,
471 	    x_msg_count,
472 	    x_msg_data,
473 	    p_cgpv_rec);
474     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
475       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
476     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
477       raise OKC_API.G_EXCEPTION_ERROR;
478     END IF;
479 
480     -- Call user hook for AFTER
481     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
482     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
483       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
484     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
485       raise OKC_API.G_EXCEPTION_ERROR;
486     END IF;
487     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
488   EXCEPTION
489     WHEN OKC_API.G_EXCEPTION_ERROR THEN
490       x_return_status := OKC_API.HANDLE_EXCEPTIONS
491       (l_api_name,
492        G_PKG_NAME,
493        'OKC_API.G_RET_STS_ERROR',
494        x_msg_count,
495        x_msg_data,
496        '_PUB');
497     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
498       x_return_status := OKC_API.HANDLE_EXCEPTIONS
499       (l_api_name,
500        G_PKG_NAME,
501        'OKC_API.G_RET_STS_UNEXP_ERROR',
502        x_msg_count,
503        x_msg_data,
504        '_PUB');
505     WHEN OTHERS THEN
506       x_return_status := OKC_API.HANDLE_EXCEPTIONS
507       (l_api_name,
508        G_PKG_NAME,
509        'OTHERS',
510        x_msg_count,
511        x_msg_data,
512        '_PUB');
513   END delete_contract_group;
514 
515   PROCEDURE delete_contract_group(
516     p_api_version                  IN NUMBER,
517     p_init_msg_list                IN VARCHAR2 ,
518     x_return_status                OUT NOCOPY VARCHAR2,
519     x_msg_count                    OUT NOCOPY NUMBER,
520     x_msg_data                     OUT NOCOPY VARCHAR2,
521     p_cgpv_tbl                     IN cgpv_tbl_type) IS
522     i				   NUMBER := 0;
523     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
524   BEGIN
525     x_return_status := OKC_API.G_RET_STS_SUCCESS;
526     IF p_cgpv_tbl.COUNT > 0 THEN
527       i := p_cgpv_tbl.FIRST;
528       LOOP
529         delete_contract_group(
530 	    p_api_version,
531 	    p_init_msg_list,
532 	    l_return_status,
533 	    x_msg_count,
534 	    x_msg_data,
535 	    p_cgpv_tbl(i));
536         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
537           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
538             x_return_status := l_return_status;
539             raise G_EXCEPTION_HALT_VALIDATION;
540           ELSE
541             x_return_status := l_return_status;
542           END IF;
543         END IF;
544         EXIT WHEN (i = p_cgpv_tbl.LAST);
545         i := p_cgpv_tbl.NEXT(i);
546       END LOOP;
547     END IF;
548   EXCEPTION
549     WHEN G_EXCEPTION_HALT_VALIDATION THEN
550       NULL;
551     WHEN OTHERS THEN
552       OKC_API.set_message(p_app_name      => g_app_name,
553                           p_msg_name      => g_unexpected_error,
554                           p_token1        => g_sqlcode_token,
555                           p_token1_value  => sqlcode,
556                           p_token2        => g_sqlerrm_token,
557                           p_token2_value  => sqlerrm);
558       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
559   END delete_contract_group;
560 
561   PROCEDURE lock_contract_group(
562     p_api_version                  IN NUMBER,
563     p_init_msg_list                IN VARCHAR2 ,
564     x_return_status                OUT NOCOPY VARCHAR2,
565     x_msg_count                    OUT NOCOPY NUMBER,
566     x_msg_data                     OUT NOCOPY VARCHAR2,
567     p_cgpv_rec                     IN cgpv_rec_type) IS
568   BEGIN
569     okc_contract_group_pvt.lock_contract_group(
570 	    p_api_version,
571 	    p_init_msg_list,
572 	    x_return_status,
573 	    x_msg_count,
574 	    x_msg_data,
575 	    p_cgpv_rec);
576   END lock_contract_group;
577 
578   PROCEDURE lock_contract_group(
579     p_api_version                  IN NUMBER,
580     p_init_msg_list                IN VARCHAR2 ,
581     x_return_status                OUT NOCOPY VARCHAR2,
582     x_msg_count                    OUT NOCOPY NUMBER,
583     x_msg_data                     OUT NOCOPY VARCHAR2,
584     p_cgpv_tbl                     IN cgpv_tbl_type) IS
585     i				   NUMBER := 0;
586     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
587   BEGIN
588     x_return_status := OKC_API.G_RET_STS_SUCCESS;
589     IF p_cgpv_tbl.COUNT > 0 THEN
590       i := p_cgpv_tbl.FIRST;
591       LOOP
592         lock_contract_group(
593 	    p_api_version,
594 	    p_init_msg_list,
595 	    l_return_status,
596 	    x_msg_count,
597 	    x_msg_data,
598 	    p_cgpv_tbl(i));
599         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
600           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
601             x_return_status := l_return_status;
602             raise G_EXCEPTION_HALT_VALIDATION;
603           ELSE
604             x_return_status := l_return_status;
605           END IF;
606         END IF;
607         EXIT WHEN (i = p_cgpv_tbl.LAST);
608         i := p_cgpv_tbl.NEXT(i);
609       END LOOP;
610     END IF;
611   EXCEPTION
612     WHEN G_EXCEPTION_HALT_VALIDATION THEN
613       NULL;
614     WHEN OTHERS THEN
615       OKC_API.set_message(p_app_name      => g_app_name,
616                           p_msg_name      => g_unexpected_error,
617                           p_token1        => g_sqlcode_token,
618                           p_token1_value  => sqlcode,
619                           p_token2        => g_sqlerrm_token,
620                           p_token2_value  => sqlerrm);
621       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
622   END lock_contract_group;
623 
624   PROCEDURE validate_contract_group(
625     p_api_version                  IN NUMBER,
626     p_init_msg_list                IN VARCHAR2 ,
627     x_return_status                OUT NOCOPY VARCHAR2,
628     x_msg_count                    OUT NOCOPY NUMBER,
629     x_msg_data                     OUT NOCOPY VARCHAR2,
630     p_cgpv_rec                     IN cgpv_rec_type) IS
631     l_api_name                     CONSTANT VARCHAR2(30) := 'validate_contract_group';
632     l_return_status		   VARCHAR2(1);
633     l_cgpv_rec                     cgpv_rec_type := p_cgpv_rec;
634   BEGIN
635     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
636 					      p_init_msg_list,
637 					      '_PUB',
638                                               x_return_status);
639     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
640       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
641     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
642       raise OKC_API.G_EXCEPTION_ERROR;
643     END IF;
644     -- Call user hook for BEFORE
645     g_cgpv_rec := l_cgpv_rec;
646     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
647     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
648       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
649     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
650       raise OKC_API.G_EXCEPTION_ERROR;
651     END IF;
652 
653     okc_contract_group_pvt.validate_contract_group(
654 	    p_api_version,
655 	    p_init_msg_list,
656 	    x_return_status,
657 	    x_msg_count,
658 	    x_msg_data,
659 	    p_cgpv_rec);
660     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
661       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
662     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
663       raise OKC_API.G_EXCEPTION_ERROR;
664     END IF;
665 
666     -- Call user hook for AFTER
667     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
668     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
669       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
670     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
671       raise OKC_API.G_EXCEPTION_ERROR;
672     END IF;
673     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
674   EXCEPTION
675     WHEN OKC_API.G_EXCEPTION_ERROR THEN
676       x_return_status := OKC_API.HANDLE_EXCEPTIONS
677       (l_api_name,
678        G_PKG_NAME,
679        'OKC_API.G_RET_STS_ERROR',
680        x_msg_count,
681        x_msg_data,
682        '_PUB');
683     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
684       x_return_status := OKC_API.HANDLE_EXCEPTIONS
685       (l_api_name,
686        G_PKG_NAME,
687        'OKC_API.G_RET_STS_UNEXP_ERROR',
688        x_msg_count,
689        x_msg_data,
690        '_PUB');
691     WHEN OTHERS THEN
692       x_return_status := OKC_API.HANDLE_EXCEPTIONS
693       (l_api_name,
694        G_PKG_NAME,
695        'OTHERS',
696        x_msg_count,
697        x_msg_data,
698        '_PUB');
699   END validate_contract_group;
700 
701   PROCEDURE validate_contract_group(
702     p_api_version                  IN NUMBER,
703     p_init_msg_list                IN VARCHAR2 ,
704     x_return_status                OUT NOCOPY VARCHAR2,
705     x_msg_count                    OUT NOCOPY NUMBER,
706     x_msg_data                     OUT NOCOPY VARCHAR2,
707     p_cgpv_tbl                     IN cgpv_tbl_type) IS
708     i				   NUMBER := 0;
709     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
710   BEGIN
711     x_return_status := OKC_API.G_RET_STS_SUCCESS;
712     IF p_cgpv_tbl.COUNT > 0 THEN
713       i := p_cgpv_tbl.FIRST;
714       LOOP
715         validate_contract_group(
716 	    p_api_version,
717 	    p_init_msg_list,
718 	    l_return_status,
719 	    x_msg_count,
720 	    x_msg_data,
721 	    p_cgpv_tbl(i));
722         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
723           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
724             x_return_status := l_return_status;
725             raise G_EXCEPTION_HALT_VALIDATION;
726           ELSE
727             x_return_status := l_return_status;
728           END IF;
729         END IF;
730         EXIT WHEN (i = p_cgpv_tbl.LAST);
731         i := p_cgpv_tbl.NEXT(i);
732       END LOOP;
733     END IF;
734   EXCEPTION
735     WHEN G_EXCEPTION_HALT_VALIDATION THEN
736       NULL;
737     WHEN OTHERS THEN
738       OKC_API.set_message(p_app_name      => g_app_name,
739                           p_msg_name      => g_unexpected_error,
740                           p_token1        => g_sqlcode_token,
741                           p_token1_value  => sqlcode,
742                           p_token2        => g_sqlerrm_token,
743                           p_token2_value  => sqlerrm);
744       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
745   END validate_contract_group;
746 
747   PROCEDURE create_contract_grpngs(
748     p_api_version                  IN NUMBER,
749     p_init_msg_list                IN VARCHAR2 ,
750     x_return_status                OUT NOCOPY VARCHAR2,
751     x_msg_count                    OUT NOCOPY NUMBER,
752     x_msg_data                     OUT NOCOPY VARCHAR2,
753     p_cgcv_rec                     IN cgcv_rec_type,
754     x_cgcv_rec                     OUT NOCOPY cgcv_rec_type) IS
755     l_api_name                     CONSTANT VARCHAR2(30) := 'create_contract_grpngs';
756     l_return_status		   VARCHAR2(1);
757     l_cgcv_rec                     cgcv_rec_type := p_cgcv_rec;
758   BEGIN
759     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
760 					      p_init_msg_list,
761 					      '_PUB',
762                                               x_return_status);
763     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
764       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
765     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
766       raise OKC_API.G_EXCEPTION_ERROR;
767     END IF;
768     -- Call user hook for BEFORE
769     g_cgcv_rec := l_cgcv_rec;
770     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
771     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
772       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
773     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
774       raise OKC_API.G_EXCEPTION_ERROR;
775     END IF;
776     l_cgcv_rec := migrate_cgcv(l_cgcv_rec, g_cgcv_rec);
777 
778     okc_contract_group_pvt.create_contract_grpngs(
779 	    p_api_version,
780 	    p_init_msg_list,
781 	    x_return_status,
782 	    x_msg_count,
783 	    x_msg_data,
784 	    l_cgcv_rec,
785 	    x_cgcv_rec);
786     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
787       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
788     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
789       raise OKC_API.G_EXCEPTION_ERROR;
790     END IF;
791 
792     -- Call user hook for AFTER
793     g_cgcv_rec := x_cgcv_rec;
794     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
795     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
796       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
797     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
798       raise OKC_API.G_EXCEPTION_ERROR;
799     END IF;
800     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
801   EXCEPTION
802     WHEN OKC_API.G_EXCEPTION_ERROR THEN
803       x_return_status := OKC_API.HANDLE_EXCEPTIONS
804       (l_api_name,
805        G_PKG_NAME,
806        'OKC_API.G_RET_STS_ERROR',
807        x_msg_count,
808        x_msg_data,
809        '_PUB');
810     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
811       x_return_status := OKC_API.HANDLE_EXCEPTIONS
812       (l_api_name,
813        G_PKG_NAME,
814        'OKC_API.G_RET_STS_UNEXP_ERROR',
815        x_msg_count,
816        x_msg_data,
817        '_PUB');
818     WHEN OTHERS THEN
819       x_return_status := OKC_API.HANDLE_EXCEPTIONS
820       (l_api_name,
821        G_PKG_NAME,
822        'OTHERS',
823        x_msg_count,
824        x_msg_data,
825        '_PUB');
826   END create_contract_grpngs;
827 
828   PROCEDURE create_contract_grpngs(
829     p_api_version                  IN NUMBER,
830     p_init_msg_list                IN VARCHAR2 ,
831     x_return_status                OUT NOCOPY VARCHAR2,
832     x_msg_count                    OUT NOCOPY NUMBER,
833     x_msg_data                     OUT NOCOPY VARCHAR2,
834     p_cgcv_tbl                     IN cgcv_tbl_type,
835     x_cgcv_tbl                     OUT NOCOPY cgcv_tbl_type) IS
836     i				   NUMBER := 0;
837     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
838   BEGIN
839     x_return_status := OKC_API.G_RET_STS_SUCCESS;
840     IF p_cgcv_tbl.COUNT > 0 THEN
841       i := p_cgcv_tbl.FIRST;
842       LOOP
843         create_contract_grpngs(
844 	    p_api_version,
845 	    p_init_msg_list,
846 	    l_return_status,
847 	    x_msg_count,
848 	    x_msg_data,
849 	    p_cgcv_tbl(i),
850 	    x_cgcv_tbl(i));
851         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
852           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
853             x_return_status := l_return_status;
854             raise G_EXCEPTION_HALT_VALIDATION;
855           ELSE
856             x_return_status := l_return_status;
857           END IF;
858         END IF;
859         EXIT WHEN (i = p_cgcv_tbl.LAST);
860         i := p_cgcv_tbl.NEXT(i);
861       END LOOP;
862     END IF;
863   EXCEPTION
864     WHEN G_EXCEPTION_HALT_VALIDATION THEN
865       NULL;
866     WHEN OTHERS THEN
867       OKC_API.set_message(p_app_name      => g_app_name,
868                           p_msg_name      => g_unexpected_error,
869                           p_token1        => g_sqlcode_token,
870                           p_token1_value  => sqlcode,
871                           p_token2        => g_sqlerrm_token,
872                           p_token2_value  => sqlerrm);
873       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
874   END create_contract_grpngs;
875 
876   PROCEDURE update_contract_grpngs(
877     p_api_version                  IN NUMBER,
878     p_init_msg_list                IN VARCHAR2 ,
879     x_return_status                OUT NOCOPY VARCHAR2,
880     x_msg_count                    OUT NOCOPY NUMBER,
881     x_msg_data                     OUT NOCOPY VARCHAR2,
882     p_cgcv_rec                     IN cgcv_rec_type,
883     x_cgcv_rec                     OUT NOCOPY cgcv_rec_type) IS
884     l_api_name                     CONSTANT VARCHAR2(30) := 'update_contract_grpngs';
885     l_return_status		   VARCHAR2(1);
886     l_cgcv_rec                     cgcv_rec_type := p_cgcv_rec;
887   BEGIN
888     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
889 					      p_init_msg_list,
890 					      '_PUB',
891                                               x_return_status);
892     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
893       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
894     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
895       raise OKC_API.G_EXCEPTION_ERROR;
896     END IF;
897     -- Call user hook for BEFORE
898     g_cgcv_rec := l_cgcv_rec;
899     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
900     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
901       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
902     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
903       raise OKC_API.G_EXCEPTION_ERROR;
904     END IF;
905     l_cgcv_rec := migrate_cgcv(l_cgcv_rec, g_cgcv_rec);
906 
907     okc_contract_group_pvt.update_contract_grpngs(
908 	    p_api_version,
909 	    p_init_msg_list,
910 	    x_return_status,
911 	    x_msg_count,
912 	    x_msg_data,
913 	    l_cgcv_rec,
914 	    x_cgcv_rec);
915     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
916       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
917     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
918       raise OKC_API.G_EXCEPTION_ERROR;
919     END IF;
920 
921     -- Call user hook for AFTER
922     g_cgcv_rec := x_cgcv_rec;
923     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
924     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
925       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
926     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
927       raise OKC_API.G_EXCEPTION_ERROR;
928     END IF;
929     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
930   EXCEPTION
931     WHEN OKC_API.G_EXCEPTION_ERROR THEN
932       x_return_status := OKC_API.HANDLE_EXCEPTIONS
933       (l_api_name,
934        G_PKG_NAME,
935        'OKC_API.G_RET_STS_ERROR',
936        x_msg_count,
937        x_msg_data,
938        '_PUB');
939     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
940       x_return_status := OKC_API.HANDLE_EXCEPTIONS
941       (l_api_name,
942        G_PKG_NAME,
943        'OKC_API.G_RET_STS_UNEXP_ERROR',
944        x_msg_count,
945        x_msg_data,
946        '_PUB');
947     WHEN OTHERS THEN
948       x_return_status := OKC_API.HANDLE_EXCEPTIONS
949       (l_api_name,
950        G_PKG_NAME,
951        'OTHERS',
952        x_msg_count,
953        x_msg_data,
954        '_PUB');
955   END update_contract_grpngs;
956 
957   PROCEDURE update_contract_grpngs(
958     p_api_version                  IN NUMBER,
959     p_init_msg_list                IN VARCHAR2 ,
960     x_return_status                OUT NOCOPY VARCHAR2,
961     x_msg_count                    OUT NOCOPY NUMBER,
962     x_msg_data                     OUT NOCOPY VARCHAR2,
963     p_cgcv_tbl                     IN cgcv_tbl_type,
964     x_cgcv_tbl                     OUT NOCOPY cgcv_tbl_type) IS
965     i				   NUMBER := 0;
966     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
967   BEGIN
968     x_return_status := OKC_API.G_RET_STS_SUCCESS;
969     IF p_cgcv_tbl.COUNT > 0 THEN
970       i := p_cgcv_tbl.FIRST;
971       LOOP
972         update_contract_grpngs(
973 	    p_api_version,
974 	    p_init_msg_list,
975 	    l_return_status,
976 	    x_msg_count,
977 	    x_msg_data,
978 	    p_cgcv_tbl(i),
979 	    x_cgcv_tbl(i));
980         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
981           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
982             x_return_status := l_return_status;
983             raise G_EXCEPTION_HALT_VALIDATION;
984           ELSE
985             x_return_status := l_return_status;
986           END IF;
987         END IF;
988         EXIT WHEN (i = p_cgcv_tbl.LAST);
989         i := p_cgcv_tbl.NEXT(i);
990       END LOOP;
991     END IF;
992   EXCEPTION
993     WHEN G_EXCEPTION_HALT_VALIDATION THEN
994       NULL;
995     WHEN OTHERS THEN
996       OKC_API.set_message(p_app_name      => g_app_name,
997                           p_msg_name      => g_unexpected_error,
998                           p_token1        => g_sqlcode_token,
999                           p_token1_value  => sqlcode,
1000                           p_token2        => g_sqlerrm_token,
1001                           p_token2_value  => sqlerrm);
1002       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1003   END update_contract_grpngs;
1004 
1005   PROCEDURE delete_contract_grpngs(
1006     p_api_version                  IN NUMBER,
1007     p_init_msg_list                IN VARCHAR2 ,
1008     x_return_status                OUT NOCOPY VARCHAR2,
1009     x_msg_count                    OUT NOCOPY NUMBER,
1010     x_msg_data                     OUT NOCOPY VARCHAR2,
1011     p_cgcv_rec                     IN cgcv_rec_type) IS
1012     l_api_name                     CONSTANT VARCHAR2(30) := 'delete_contract_grpngs';
1013     l_return_status		   VARCHAR2(1);
1014     l_cgcv_rec                     cgcv_rec_type := p_cgcv_rec;
1015   BEGIN
1016     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1017 					      p_init_msg_list,
1018 					      '_PUB',
1019                                               x_return_status);
1020     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1021       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1022     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1023       raise OKC_API.G_EXCEPTION_ERROR;
1024     END IF;
1025     -- Call user hook for BEFORE
1026     g_cgcv_rec := l_cgcv_rec;
1027     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
1028     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1029       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1030     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1031       raise OKC_API.G_EXCEPTION_ERROR;
1032     END IF;
1033 
1034     okc_contract_group_pvt.delete_contract_grpngs(
1035 	    p_api_version,
1036 	    p_init_msg_list,
1037 	    x_return_status,
1038 	    x_msg_count,
1039 	    x_msg_data,
1040 	    l_cgcv_rec);
1041     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1042       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1043     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1044       raise OKC_API.G_EXCEPTION_ERROR;
1045     END IF;
1046 
1047     -- Call user hook for AFTER
1048     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
1049     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1050       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1051     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1052       raise OKC_API.G_EXCEPTION_ERROR;
1053     END IF;
1054     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1055   EXCEPTION
1056     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1057       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1058       (l_api_name,
1059        G_PKG_NAME,
1060        'OKC_API.G_RET_STS_ERROR',
1061        x_msg_count,
1062        x_msg_data,
1063        '_PUB');
1064     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1065       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1066       (l_api_name,
1067        G_PKG_NAME,
1068        'OKC_API.G_RET_STS_UNEXP_ERROR',
1069        x_msg_count,
1070        x_msg_data,
1071        '_PUB');
1072     WHEN OTHERS THEN
1073       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1074       (l_api_name,
1075        G_PKG_NAME,
1076        'OTHERS',
1077        x_msg_count,
1078        x_msg_data,
1079        '_PUB');
1080   END delete_contract_grpngs;
1081 
1082   PROCEDURE delete_contract_grpngs(
1083     p_api_version                  IN NUMBER,
1084     p_init_msg_list                IN VARCHAR2 ,
1085     x_return_status                OUT NOCOPY VARCHAR2,
1086     x_msg_count                    OUT NOCOPY NUMBER,
1087     x_msg_data                     OUT NOCOPY VARCHAR2,
1088     p_cgcv_tbl                     IN cgcv_tbl_type) IS
1089     i				   NUMBER := 0;
1090     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1091   BEGIN
1092     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1093     IF p_cgcv_tbl.COUNT > 0 THEN
1094       i := p_cgcv_tbl.FIRST;
1095       LOOP
1096         delete_contract_grpngs(
1097 	    p_api_version,
1098 	    p_init_msg_list,
1099 	    l_return_status,
1100 	    x_msg_count,
1101 	    x_msg_data,
1102 	    p_cgcv_tbl(i));
1103         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1104           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1105             x_return_status := l_return_status;
1106             raise G_EXCEPTION_HALT_VALIDATION;
1107           ELSE
1108             x_return_status := l_return_status;
1109           END IF;
1110         END IF;
1111         EXIT WHEN (i = p_cgcv_tbl.LAST);
1112         i := p_cgcv_tbl.NEXT(i);
1113       END LOOP;
1114     END IF;
1115   EXCEPTION
1116     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1117       NULL;
1118     WHEN OTHERS THEN
1119       OKC_API.set_message(p_app_name      => g_app_name,
1120                           p_msg_name      => g_unexpected_error,
1121                           p_token1        => g_sqlcode_token,
1122                           p_token1_value  => sqlcode,
1123                           p_token2        => g_sqlerrm_token,
1124                           p_token2_value  => sqlerrm);
1125       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1126   END delete_contract_grpngs;
1127 
1128   PROCEDURE lock_contract_grpngs(
1129     p_api_version                  IN NUMBER,
1130     p_init_msg_list                IN VARCHAR2 ,
1131     x_return_status                OUT NOCOPY VARCHAR2,
1132     x_msg_count                    OUT NOCOPY NUMBER,
1133     x_msg_data                     OUT NOCOPY VARCHAR2,
1134     p_cgcv_rec                     IN cgcv_rec_type) IS
1135   BEGIN
1136     okc_contract_group_pvt.lock_contract_grpngs(
1137 	    p_api_version,
1138 	    p_init_msg_list,
1139 	    x_return_status,
1140 	    x_msg_count,
1141 	    x_msg_data,
1142 	    p_cgcv_rec);
1143   END lock_contract_grpngs;
1144 
1145   PROCEDURE lock_contract_grpngs(
1146     p_api_version                  IN NUMBER,
1147     p_init_msg_list                IN VARCHAR2 ,
1148     x_return_status                OUT NOCOPY VARCHAR2,
1149     x_msg_count                    OUT NOCOPY NUMBER,
1150     x_msg_data                     OUT NOCOPY VARCHAR2,
1151     p_cgcv_tbl                     IN cgcv_tbl_type) IS
1152     i				   NUMBER := 0;
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     IF p_cgcv_tbl.COUNT > 0 THEN
1157       i := p_cgcv_tbl.FIRST;
1158       LOOP
1159         lock_contract_grpngs(
1160 	    p_api_version,
1161 	    p_init_msg_list,
1162 	    l_return_status,
1163 	    x_msg_count,
1164 	    x_msg_data,
1165 	    p_cgcv_tbl(i));
1166         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1167           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1168             x_return_status := l_return_status;
1169             raise G_EXCEPTION_HALT_VALIDATION;
1170           ELSE
1171             x_return_status := l_return_status;
1172           END IF;
1173         END IF;
1174         EXIT WHEN (i = p_cgcv_tbl.LAST);
1175         i := p_cgcv_tbl.NEXT(i);
1176       END LOOP;
1177     END IF;
1178   EXCEPTION
1179     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1180       NULL;
1181     WHEN OTHERS THEN
1182       OKC_API.set_message(p_app_name      => g_app_name,
1183                           p_msg_name      => g_unexpected_error,
1184                           p_token1        => g_sqlcode_token,
1185                           p_token1_value  => sqlcode,
1186                           p_token2        => g_sqlerrm_token,
1187                           p_token2_value  => sqlerrm);
1188       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1189   END lock_contract_grpngs;
1190 
1191   PROCEDURE validate_contract_grpngs(
1192     p_api_version                  IN NUMBER,
1193     p_init_msg_list                IN VARCHAR2 ,
1194     x_return_status                OUT NOCOPY VARCHAR2,
1195     x_msg_count                    OUT NOCOPY NUMBER,
1196     x_msg_data                     OUT NOCOPY VARCHAR2,
1197     p_cgcv_rec                     IN cgcv_rec_type) IS
1198     l_api_name                     CONSTANT VARCHAR2(30) := 'validate_contract_grpngs';
1199     l_return_status		   VARCHAR2(1);
1200     l_cgcv_rec                     cgcv_rec_type := p_cgcv_rec;
1201   BEGIN
1202     l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1203 					      p_init_msg_list,
1204 					      '_PUB',
1205                                               x_return_status);
1206     IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1207       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1208     ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1209       raise OKC_API.G_EXCEPTION_ERROR;
1210     END IF;
1211     -- Call user hook for BEFORE
1212     g_cgcv_rec := l_cgcv_rec;
1213     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
1214     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1215       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1216     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1217       raise OKC_API.G_EXCEPTION_ERROR;
1218     END IF;
1219 
1220     okc_contract_group_pvt.validate_contract_grpngs(
1221 	    p_api_version,
1222 	    p_init_msg_list,
1223 	    x_return_status,
1224 	    x_msg_count,
1225 	    x_msg_data,
1226 	    l_cgcv_rec);
1227     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1228       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1229     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1230       raise OKC_API.G_EXCEPTION_ERROR;
1231     END IF;
1232 
1233     -- Call user hook for AFTER
1234     okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
1235     IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1236       raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1237     ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1238       raise OKC_API.G_EXCEPTION_ERROR;
1239     END IF;
1240     OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1241   EXCEPTION
1242     WHEN OKC_API.G_EXCEPTION_ERROR THEN
1243       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1244       (l_api_name,
1245        G_PKG_NAME,
1246        'OKC_API.G_RET_STS_ERROR',
1247        x_msg_count,
1248        x_msg_data,
1249        '_PUB');
1250     WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1251       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1252       (l_api_name,
1253        G_PKG_NAME,
1254        'OKC_API.G_RET_STS_UNEXP_ERROR',
1255        x_msg_count,
1256        x_msg_data,
1257        '_PUB');
1258     WHEN OTHERS THEN
1259       x_return_status := OKC_API.HANDLE_EXCEPTIONS
1260       (l_api_name,
1261        G_PKG_NAME,
1262        'OTHERS',
1263        x_msg_count,
1264        x_msg_data,
1265        '_PUB');
1266   END validate_contract_grpngs;
1267 
1268   PROCEDURE validate_contract_grpngs(
1269     p_api_version                  IN NUMBER,
1270     p_init_msg_list                IN VARCHAR2 ,
1271     x_return_status                OUT NOCOPY VARCHAR2,
1272     x_msg_count                    OUT NOCOPY NUMBER,
1273     x_msg_data                     OUT NOCOPY VARCHAR2,
1274     p_cgcv_tbl                     IN cgcv_tbl_type) IS
1275     i				   NUMBER := 0;
1276     l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1277   BEGIN
1278     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1279     IF p_cgcv_tbl.COUNT > 0 THEN
1280       i := p_cgcv_tbl.FIRST;
1281       LOOP
1282         validate_contract_grpngs(
1283 	    p_api_version,
1284 	    p_init_msg_list,
1285 	    l_return_status,
1286 	    x_msg_count,
1287 	    x_msg_data,
1288 	    p_cgcv_tbl(i));
1289         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1290           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1291             x_return_status := l_return_status;
1292             raise G_EXCEPTION_HALT_VALIDATION;
1293           ELSE
1294             x_return_status := l_return_status;
1295           END IF;
1296         END IF;
1297         EXIT WHEN (i = p_cgcv_tbl.LAST);
1298         i := p_cgcv_tbl.NEXT(i);
1299       END LOOP;
1300     END IF;
1301   EXCEPTION
1302     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1303       NULL;
1304     WHEN OTHERS THEN
1305       OKC_API.set_message(p_app_name      => g_app_name,
1306                           p_msg_name      => g_unexpected_error,
1307                           p_token1        => g_sqlcode_token,
1308                           p_token1_value  => sqlcode,
1309                           p_token2        => g_sqlerrm_token,
1310                           p_token2_value  => sqlerrm);
1311       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1312   END validate_contract_grpngs;
1313 
1314   PROCEDURE Validate_Name(x_return_status OUT NOCOPY VARCHAR2,
1315                           p_cgpv_rec IN cgpv_rec_type) IS
1316   BEGIN
1317     okc_contract_group_pvt.Validate_name(x_return_status, p_cgpv_rec);
1318   END Validate_Name;
1319 
1320   PROCEDURE Validate_Name(x_return_status OUT NOCOPY VARCHAR2,
1321                           p_cgpv_tbl IN cgpv_tbl_type) IS
1322     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1323     i NUMBER := 0;
1324   BEGIN
1325     OKC_API.init_msg_list(OKC_API.G_TRUE);
1326     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1327     IF p_cgpv_tbl.COUNT > 0 THEN
1328       i := p_cgpv_tbl.FIRST;
1329       LOOP
1330         Validate_name(l_return_status, p_cgpv_tbl(i));
1331         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1332           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1333             x_return_status := l_return_status;
1334             raise G_EXCEPTION_HALT_VALIDATION;
1335           ELSE
1336             x_return_status := l_return_status;
1337           END IF;
1338         END IF;
1339         EXIT WHEN (i = p_cgpv_tbl.LAST);
1340         i := p_cgpv_tbl.NEXT(i);
1341       END LOOP;
1342     END IF;
1343   EXCEPTION
1344     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1345       NULL;
1346     WHEN OTHERS THEN
1347       OKC_API.set_message(p_app_name      => g_app_name,
1348                           p_msg_name      => g_unexpected_error,
1349                           p_token1        => g_sqlcode_token,
1350                           p_token1_value  => sqlcode,
1351                           p_token2        => g_sqlerrm_token,
1352                           p_token2_value  => sqlerrm);
1353       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1354   END Validate_Name;
1355 
1356   PROCEDURE Validate_Public_YN(x_return_status OUT NOCOPY VARCHAR2,
1357                                p_cgpv_rec IN cgpv_rec_type) IS
1358   BEGIN
1359     okc_contract_group_pvt.Validate_Public_YN(x_return_status, p_cgpv_rec);
1360   END Validate_Public_YN;
1361 
1362   PROCEDURE Validate_Public_YN(x_return_status OUT NOCOPY VARCHAR2,
1363                                p_cgpv_tbl IN cgpv_tbl_type) IS
1364     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1365     i NUMBER := 0;
1366   BEGIN
1367     OKC_API.init_msg_list(OKC_API.G_TRUE);
1368     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1369     IF p_cgpv_tbl.COUNT > 0 THEN
1370       i := p_cgpv_tbl.FIRST;
1371       LOOP
1372         Validate_Public_YN(l_return_status, p_cgpv_tbl(i));
1373         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1374           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1375             x_return_status := l_return_status;
1376             raise G_EXCEPTION_HALT_VALIDATION;
1377           ELSE
1378             x_return_status := l_return_status;
1379           END IF;
1380         END IF;
1381         EXIT WHEN (i = p_cgpv_tbl.LAST);
1382         i := p_cgpv_tbl.NEXT(i);
1383       END LOOP;
1384     END IF;
1385   EXCEPTION
1386     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1387       NULL;
1388     WHEN OTHERS THEN
1389       OKC_API.set_message(p_app_name      => g_app_name,
1390                           p_msg_name      => g_unexpected_error,
1391                           p_token1        => g_sqlcode_token,
1392                           p_token1_value  => sqlcode,
1393                           p_token2        => g_sqlerrm_token,
1394                           p_token2_value  => sqlerrm);
1395       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1396   END Validate_Public_YN;
1397 
1398   PROCEDURE Validate_Short_Description(x_return_status OUT NOCOPY VARCHAR2,
1399                                        p_cgpv_rec IN cgpv_rec_type) IS
1400   BEGIN
1401     okc_contract_group_pvt.Validate_Short_Description(x_return_status, p_cgpv_rec);
1402   END Validate_Short_Description;
1403 
1404   PROCEDURE Validate_Short_Description(x_return_status OUT NOCOPY VARCHAR2,
1405                                        p_cgpv_tbl IN cgpv_tbl_type) IS
1406     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1407     i NUMBER := 0;
1408   BEGIN
1409     OKC_API.init_msg_list(OKC_API.G_FALSE);
1410     x_return_status := OKC_API.G_RET_STS_SUCCESS;
1411     IF p_cgpv_tbl.COUNT > 0 THEN
1412       i := p_cgpv_tbl.FIRST;
1413       LOOP
1414         Validate_Short_Description(l_return_status, p_cgpv_tbl(i));
1415         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1416           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1417             x_return_status := l_return_status;
1418             raise G_EXCEPTION_HALT_VALIDATION;
1419           ELSE
1420             x_return_status := l_return_status;
1421           END IF;
1422         END IF;
1423         EXIT WHEN (i = p_cgpv_tbl.LAST);
1424         i := p_cgpv_tbl.NEXT(i);
1425       END LOOP;
1426     END IF;
1427   EXCEPTION
1428     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1429       NULL;
1430     WHEN OTHERS THEN
1431       OKC_API.set_message(p_app_name      => g_app_name,
1432                           p_msg_name      => g_unexpected_error,
1433                           p_token1        => g_sqlcode_token,
1434                           p_token1_value  => sqlcode,
1435                           p_token2        => g_sqlerrm_token,
1436                           p_token2_value  => sqlerrm);
1437       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1438   END Validate_Short_Description;
1439 
1440   FUNCTION Validate_Record(p_cgpv_rec IN cgpv_rec_type)
1441     RETURN VARCHAR2 IS
1442   BEGIN
1443     Return(okc_contract_group_pvt.Validate_Record(p_cgpv_rec));
1444   END;
1445 
1446   FUNCTION Validate_Record(p_cgpv_tbl IN cgpv_tbl_type)
1447     RETURN VARCHAR2 IS
1448     x_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1449     l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1450     i NUMBER := 0;
1451   BEGIN
1452     OKC_API.init_msg_list(OKC_API.G_TRUE);
1453     IF p_cgpv_tbl.COUNT > 0 THEN
1454       i := p_cgpv_tbl.FIRST;
1455       LOOP
1456         l_return_status := Validate_Record(p_cgpv_tbl(i));
1457         IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1458           IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1459             x_return_status := l_return_status;
1460             raise G_EXCEPTION_HALT_VALIDATION;
1461           ELSE
1462             x_return_status := l_return_status;
1463           END IF;
1464         END IF;
1465         EXIT WHEN (i = p_cgpv_tbl.LAST);
1466         i := p_cgpv_tbl.NEXT(i);
1467       END LOOP;
1468     END IF;
1469     Return(x_return_status);
1470   EXCEPTION
1471     WHEN G_EXCEPTION_HALT_VALIDATION THEN
1472       Return(x_return_status);
1473     WHEN OTHERS THEN
1474       OKC_API.set_message(p_app_name      => g_app_name,
1475                           p_msg_name      => g_unexpected_error,
1476                           p_token1        => g_sqlcode_token,
1477                           p_token1_value  => sqlcode,
1478                           p_token2        => g_sqlerrm_token,
1479                           p_token2_value  => sqlerrm);
1480       x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1481       Return(x_return_status);
1482   END Validate_Record;
1483 
1484   PROCEDURE Set_Search_String(
1485 	 p_srch_str      IN         VARCHAR2,
1486       x_return_status OUT NOCOPY VARCHAR2) IS
1487   BEGIN
1488     okc_cgc_pvt.Set_Search_String(p_srch_str, x_return_status);
1489   END;
1490 
1491   PROCEDURE Get_Queried_Contracts(
1492 	 p_cgp_parent_id IN  NUMBER,
1493 	 x_qry_k_tbl     OUT NOCOPY qry_k_tbl,
1494       x_return_status OUT NOCOPY VARCHAR2) IS
1495   BEGIN
1496     okc_cgc_pvt.Get_Queried_Contracts(p_cgp_parent_id, x_qry_k_tbl, x_return_status);
1497   END;
1498 
1499 END OKC_CONTRACT_GROUP_PUB;