DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKC_RULE_DEF_PUB

Source


1 Package Body OKC_RULE_DEF_PUB AS
2 /* $Header: OKCPRGDB.pls 120.0 2005/05/25 19:14:08 appldev noship $ */
3 	l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
4 
5   l_init_msg_list                VARCHAR2(1) := OKC_API.G_FALSE;
6 
7   FUNCTION migrate_rdsv(p_rdsv_rec1 IN rdsv_rec_type,
8                         p_rdsv_rec2 IN rdsv_rec_type)
9     RETURN rdsv_rec_type IS
10     l_rdsv_rec rdsv_rec_type;
11   BEGIN
12     l_rdsv_rec.row_id                := p_rdsv_rec1.row_id;
13     l_rdsv_rec.object_version_number := p_rdsv_rec1.object_version_number;
14     l_rdsv_rec.created_by            := p_rdsv_rec1.created_by;
15     l_rdsv_rec.creation_date         := p_rdsv_rec1.creation_date;
16     l_rdsv_rec.last_updated_by       := p_rdsv_rec1.last_updated_by;
17     l_rdsv_rec.last_update_date      := p_rdsv_rec1.last_update_date;
18     l_rdsv_rec.last_update_login     := p_rdsv_rec1.last_update_login;
19     l_rdsv_rec.rgr_rgd_code          := p_rdsv_rec2.rgr_rgd_code;
20     l_rdsv_rec.rgr_rdf_code          := p_rdsv_rec2.rgr_rdf_code;
21     l_rdsv_rec.buy_or_sell           := p_rdsv_rec2.buy_or_sell;
22     l_rdsv_rec.access_level          := p_rdsv_rec2.access_level;
23     l_rdsv_rec.start_date            := p_rdsv_rec2.start_date;
24     l_rdsv_rec.end_date              := p_rdsv_rec2.end_date;
25     l_rdsv_rec.jtot_object_code      := p_rdsv_rec2.jtot_object_code;
26     l_rdsv_rec.object_id_number      := p_rdsv_rec2.object_id_number;
27     RETURN (l_rdsv_rec);
28   END migrate_rdsv;
29 
30   FUNCTION migrate_rgrv(p_rgrv_rec1 IN rgrv_rec_type,
31                         p_rgrv_rec2 IN rgrv_rec_type)
32     RETURN rgrv_rec_type IS
33     l_rgrv_rec rgrv_rec_type;
34   BEGIN
35     l_rgrv_rec.object_version_number := p_rgrv_rec1.object_version_number;
36     l_rgrv_rec.created_by            := p_rgrv_rec1.created_by;
37     l_rgrv_rec.creation_date         := p_rgrv_rec1.creation_date;
38     l_rgrv_rec.last_updated_by       := p_rgrv_rec1.last_updated_by;
39     l_rgrv_rec.last_update_date      := p_rgrv_rec1.last_update_date;
40     l_rgrv_rec.last_update_login     := p_rgrv_rec1.last_update_login;
41     l_rgrv_rec.min_cardinality       := p_rgrv_rec1.min_cardinality;
42     l_rgrv_rec.max_cardinality       := p_rgrv_rec1.max_cardinality;
43     l_rgrv_rec.pricing_related_yn    := p_rgrv_rec1.pricing_related_yn;
44     l_rgrv_rec.access_level          := p_rgrv_rec1.access_level;
45     l_rgrv_rec.rgd_code              := p_rgrv_rec2.rgd_code;
46     l_rgrv_rec.rdf_code              := p_rgrv_rec2.rdf_code;
47     l_rgrv_rec.optional_yn           := p_rgrv_rec2.optional_yn;
48     RETURN (l_rgrv_rec);
49   END migrate_rgrv;
50 
51   --------------------------------------
52   --PROCEDURE create_rg_def_rule
53   --------------------------------------
54   PROCEDURE create_rg_def_rule(
55      p_api_version                  IN NUMBER,
56      p_init_msg_list                IN VARCHAR2 ,
57      x_return_status                OUT NOCOPY VARCHAR2,
58      x_msg_count                    OUT NOCOPY NUMBER,
59      x_msg_data                     OUT NOCOPY VARCHAR2,
60      p_rgrv_rec                     IN rgrv_rec_type,
61      x_rgrv_rec                     OUT NOCOPY rgrv_rec_type) IS
62      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
63      l_api_name                     CONSTANT VARCHAR2(30) := 'create_rg_def_rule';
64      l_rgrv_rec                     rgrv_rec_type := p_rgrv_rec;
65    BEGIN
66      l_return_status := OKC_API.START_ACTIVITY(l_api_name,
67 	 				      p_init_msg_list,
68 		 			      '_PUB',
69                                               x_return_status);
70      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
71        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
72      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
73        raise OKC_API.G_EXCEPTION_ERROR;
74      END IF;
75     -- Call user hook for BEFORE
76      g_rgrv_rec := l_rgrv_rec;
77      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
78      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
79        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
80      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
81        raise OKC_API.G_EXCEPTION_ERROR;
82      END IF;
83      l_rgrv_rec := migrate_rgrv(l_rgrv_rec, g_rgrv_rec);
84 
85      OKC_RULE_DEF_PVT.create_rg_def_rule(
86                          p_api_version         => p_api_version,
87                          p_init_msg_list       => p_init_msg_list,
88                          x_return_status       => x_return_status,
89                          x_msg_count           => x_msg_count,
90                          x_msg_data            => x_msg_data,
91                          p_rgrv_rec            => l_rgrv_rec,
92                          x_rgrv_rec            => x_rgrv_rec);
93 
94      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
95        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
96      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
97        raise OKC_API.G_EXCEPTION_ERROR;
98      END IF;
99 
100      -- Call user hook for AFTER
101      g_rgrv_rec := x_rgrv_rec;
102      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
103      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
104        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
105      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
106        raise OKC_API.G_EXCEPTION_ERROR;
107      END IF;
108      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
109    EXCEPTION
110      WHEN OKC_API.G_EXCEPTION_ERROR THEN
111        x_return_status := OKC_API.HANDLE_EXCEPTIONS
112        (l_api_name,
113         G_PKG_NAME,
114         'OKC_API.G_RET_STS_ERROR',
115         x_msg_count,
116         x_msg_data,
117         '_PUB');
118      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
119        x_return_status := OKC_API.HANDLE_EXCEPTIONS
120        (l_api_name,
121         G_PKG_NAME,
122         'OKC_API.G_RET_STS_UNEXP_ERROR',
123         x_msg_count,
124         x_msg_data,
125         '_PUB');
126      WHEN OTHERS THEN
127        x_return_status := OKC_API.HANDLE_EXCEPTIONS
128        (l_api_name,
129         G_PKG_NAME,
130         'OTHERS',
131         x_msg_count,
132         x_msg_data,
133         '_PUB');
134 
135   END create_rg_def_rule;
136 
137   --------------------------------------
138   --PROCEDURE create_rg_def_rule
139   --------------------------------------
140   PROCEDURE create_rg_def_rule(
141      p_api_version                  IN NUMBER,
142      p_init_msg_list                IN VARCHAR2 ,
143      x_return_status                OUT NOCOPY VARCHAR2,
144      x_msg_count                    OUT NOCOPY NUMBER,
145      x_msg_data                     OUT NOCOPY VARCHAR2,
146      p_rgrv_tbl                     IN rgrv_tbl_type,
147      x_rgrv_tbl                     OUT NOCOPY rgrv_tbl_type) IS
148 
149      i				    NUMBER := 0;
150      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
151    BEGIN
152      x_return_status := OKC_API.G_RET_STS_SUCCESS;
153      IF p_rgrv_tbl.COUNT > 0 THEN
154        i := p_rgrv_tbl.FIRST;
155        LOOP
156        create_rg_def_rule(
157                          p_api_version         => p_api_version,
158                          p_init_msg_list       => p_init_msg_list,
159                          x_return_status       => l_return_status,
160                          x_msg_count           => x_msg_count,
161                          x_msg_data            => x_msg_data,
162                          p_rgrv_rec            => p_rgrv_tbl(i),
163                          x_rgrv_rec            => x_rgrv_tbl(i));
164        IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
165          IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
166            x_return_status := l_return_status;
167            raise G_EXCEPTION_HALT_VALIDATION;
168          ELSE
169            x_return_status := l_return_status;
170          END IF;
171        END IF;
172        EXIT WHEN (i = p_rgrv_tbl.LAST);
173        i := p_rgrv_tbl.NEXT(i);
174        END LOOP;
175      END IF;
176    EXCEPTION
177      WHEN G_EXCEPTION_HALT_VALIDATION THEN
178        NULL;
179      WHEN OTHERS THEN
180        OKC_API.set_message(p_app_name      => g_app_name,
181                            p_msg_name      => g_unexpected_error,
182                            p_token1        => g_sqlcode_token,
183                            p_token1_value  => sqlcode,
184                            p_token2        => g_sqlerrm_token,
185                            p_token2_value  => sqlerrm);
186        x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
187   END create_rg_def_rule;
188 
189 
190   --------------------------------------
191   --PROCEDURE update_rg_def_rule
192   --------------------------------------
193   PROCEDURE update_rg_def_rule(
194      p_api_version                  IN NUMBER,
195      p_init_msg_list                IN VARCHAR2 ,
196      x_return_status                OUT NOCOPY VARCHAR2,
197      x_msg_count                    OUT NOCOPY NUMBER,
198      x_msg_data                     OUT NOCOPY VARCHAR2,
199      p_rgrv_rec                     IN rgrv_rec_type,
200      x_rgrv_rec                     OUT NOCOPY rgrv_rec_type) IS
201      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
202      l_api_name                     CONSTANT VARCHAR2(30) := 'update_rg_def_rule';
203      l_rgrv_rec                     rgrv_rec_type := p_rgrv_rec;
204    BEGIN
205      l_return_status := OKC_API.START_ACTIVITY(l_api_name,
206 	 				      p_init_msg_list,
207 		 			      '_PUB',
208                                               x_return_status);
209      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
210        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
211      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
212        raise OKC_API.G_EXCEPTION_ERROR;
213      END IF;
214     -- Call user hook for BEFORE
215      g_rgrv_rec := l_rgrv_rec;
216      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
217      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
218        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
219      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
220        raise OKC_API.G_EXCEPTION_ERROR;
221      END IF;
222      l_rgrv_rec := migrate_rgrv(l_rgrv_rec, g_rgrv_rec);
223 
224      OKC_RULE_DEF_PVT.update_rg_def_rule(
225                          p_api_version         => p_api_version,
226                          p_init_msg_list       => p_init_msg_list,
227                          x_return_status       => x_return_status,
228                          x_msg_count           => x_msg_count,
229                          x_msg_data            => x_msg_data,
230                          p_rgrv_rec            => l_rgrv_rec,
231                          x_rgrv_rec            => x_rgrv_rec);
232 
233      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
234        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
235      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
236        raise OKC_API.G_EXCEPTION_ERROR;
237      END IF;
238 
239      -- Call user hook for AFTER
240      g_rgrv_rec := x_rgrv_rec;
241      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
242      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
243        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
244      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
245        raise OKC_API.G_EXCEPTION_ERROR;
246      END IF;
247      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
248    EXCEPTION
249      WHEN OKC_API.G_EXCEPTION_ERROR THEN
250        x_return_status := OKC_API.HANDLE_EXCEPTIONS
251        (l_api_name,
252         G_PKG_NAME,
253         'OKC_API.G_RET_STS_ERROR',
254         x_msg_count,
255         x_msg_data,
256         '_PUB');
257      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
258        x_return_status := OKC_API.HANDLE_EXCEPTIONS
259        (l_api_name,
260         G_PKG_NAME,
261         'OKC_API.G_RET_STS_UNEXP_ERROR',
262         x_msg_count,
263         x_msg_data,
264         '_PUB');
265      WHEN OTHERS THEN
266        x_return_status := OKC_API.HANDLE_EXCEPTIONS
267        (l_api_name,
268         G_PKG_NAME,
269         'OTHERS',
270         x_msg_count,
271         x_msg_data,
272         '_PUB');
273 
274   END update_rg_def_rule;
275 
276   --------------------------------------
277   --PROCEDURE update_rg_def_rule
278   --------------------------------------
279   PROCEDURE update_rg_def_rule(
280      p_api_version                  IN NUMBER,
281      p_init_msg_list                IN VARCHAR2 ,
282      x_return_status                OUT NOCOPY VARCHAR2,
283      x_msg_count                    OUT NOCOPY NUMBER,
284      x_msg_data                     OUT NOCOPY VARCHAR2,
285      p_rgrv_tbl                     IN rgrv_tbl_type,
286      x_rgrv_tbl                     OUT NOCOPY rgrv_tbl_type) IS
287 
288      i				    NUMBER := 0;
289      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
290    BEGIN
291      x_return_status := OKC_API.G_RET_STS_SUCCESS;
292      IF p_rgrv_tbl.COUNT > 0 THEN
293        i := p_rgrv_tbl.FIRST;
294        LOOP
295        update_rg_def_rule(
296                          p_api_version         => p_api_version,
297                          p_init_msg_list       => p_init_msg_list,
298                          x_return_status       => l_return_status,
299                          x_msg_count           => x_msg_count,
300                          x_msg_data            => x_msg_data,
301                          p_rgrv_rec            => p_rgrv_tbl(i),
302                          x_rgrv_rec            => x_rgrv_tbl(i));
303        IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
304          IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
305            x_return_status := l_return_status;
306            raise G_EXCEPTION_HALT_VALIDATION;
307          ELSE
308            x_return_status := l_return_status;
309          END IF;
310        END IF;
311        EXIT WHEN (i = p_rgrv_tbl.LAST);
312        i := p_rgrv_tbl.NEXT(i);
313        END LOOP;
314      END IF;
315    EXCEPTION
316      WHEN G_EXCEPTION_HALT_VALIDATION THEN
317        NULL;
318      WHEN OTHERS THEN
319        OKC_API.set_message(p_app_name      => g_app_name,
320                            p_msg_name      => g_unexpected_error,
321                            p_token1        => g_sqlcode_token,
322                            p_token1_value  => sqlcode,
323                            p_token2        => g_sqlerrm_token,
324                            p_token2_value  => sqlerrm);
325        x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
326   END update_rg_def_rule;
327 
328   --------------------------------------
329   --PROCEDURE delete_rg_def_rule
330   --------------------------------------
331   PROCEDURE delete_rg_def_rule(
332      p_api_version                  IN NUMBER,
333      p_init_msg_list                IN VARCHAR2 ,
334      x_return_status                OUT NOCOPY VARCHAR2,
335      x_msg_count                    OUT NOCOPY NUMBER,
336      x_msg_data                     OUT NOCOPY VARCHAR2,
337      p_rgrv_rec                     IN rgrv_rec_type) IS
338      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
339      l_api_name                     CONSTANT VARCHAR2(30) := 'delete_rg_def_rule';
340      l_rgrv_rec                     rgrv_rec_type := p_rgrv_rec;
341    BEGIN
342      l_return_status := OKC_API.START_ACTIVITY(l_api_name,
343 	 				      p_init_msg_list,
344 		 			      '_PUB',
345                                               x_return_status);
346      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
347        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
348      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
349        raise OKC_API.G_EXCEPTION_ERROR;
350      END IF;
351     -- Call user hook for BEFORE
352      g_rgrv_rec := l_rgrv_rec;
353      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
354      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
355        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
356      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
357        raise OKC_API.G_EXCEPTION_ERROR;
358      END IF;
359 
360      OKC_RULE_DEF_PVT.delete_rg_def_rule(
361                          p_api_version         => p_api_version,
362                          p_init_msg_list       => p_init_msg_list,
363                          x_return_status       => x_return_status,
364                          x_msg_count           => x_msg_count,
365                          x_msg_data            => x_msg_data,
366                          p_rgrv_rec            => p_rgrv_rec);
367 
368      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
369        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
370      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
371        raise OKC_API.G_EXCEPTION_ERROR;
372      END IF;
373 
374      -- Call user hook for AFTER
375      g_rgrv_rec := l_rgrv_rec;
376      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
377      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
378        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
379      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
380        raise OKC_API.G_EXCEPTION_ERROR;
381      END IF;
382      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
383    EXCEPTION
384      WHEN OKC_API.G_EXCEPTION_ERROR THEN
385        x_return_status := OKC_API.HANDLE_EXCEPTIONS
386        (l_api_name,
387         G_PKG_NAME,
388         'OKC_API.G_RET_STS_ERROR',
389         x_msg_count,
390         x_msg_data,
391         '_PUB');
392      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
393        x_return_status := OKC_API.HANDLE_EXCEPTIONS
394        (l_api_name,
395         G_PKG_NAME,
396         'OKC_API.G_RET_STS_UNEXP_ERROR',
397         x_msg_count,
398         x_msg_data,
399         '_PUB');
400      WHEN OTHERS THEN
401        x_return_status := OKC_API.HANDLE_EXCEPTIONS
402        (l_api_name,
403         G_PKG_NAME,
404         'OTHERS',
405         x_msg_count,
406         x_msg_data,
407         '_PUB');
408 
409   END delete_rg_def_rule;
410 
411   --------------------------------------
412   --PROCEDURE delete_rg_def_rule
413   --------------------------------------
414   PROCEDURE delete_rg_def_rule(
415      p_api_version                  IN NUMBER,
416      p_init_msg_list                IN VARCHAR2 ,
417      x_return_status                OUT NOCOPY VARCHAR2,
418      x_msg_count                    OUT NOCOPY NUMBER,
419      x_msg_data                     OUT NOCOPY VARCHAR2,
420      p_rgrv_tbl                     IN rgrv_tbl_type) IS
421 
422      i				    NUMBER := 0;
423      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
424    BEGIN
425      x_return_status := OKC_API.G_RET_STS_SUCCESS;
426      IF p_rgrv_tbl.COUNT > 0 THEN
427        i := p_rgrv_tbl.FIRST;
428        LOOP
429        delete_rg_def_rule(
430                          p_api_version         => p_api_version,
431                          p_init_msg_list       => p_init_msg_list,
432                          x_return_status       => l_return_status,
433                          x_msg_count           => x_msg_count,
434                          x_msg_data            => x_msg_data,
435                          p_rgrv_rec            => p_rgrv_tbl(i));
436        IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
437          IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
438            x_return_status := l_return_status;
439            raise G_EXCEPTION_HALT_VALIDATION;
440          ELSE
441            x_return_status := l_return_status;
442          END IF;
443        END IF;
444        EXIT WHEN (i = p_rgrv_tbl.LAST);
445        i := p_rgrv_tbl.NEXT(i);
446        END LOOP;
447      END IF;
448    EXCEPTION
449      WHEN G_EXCEPTION_HALT_VALIDATION THEN
450        NULL;
451      WHEN OTHERS THEN
452        OKC_API.set_message(p_app_name      => g_app_name,
453                            p_msg_name      => g_unexpected_error,
454                            p_token1        => g_sqlcode_token,
455                            p_token1_value  => sqlcode,
456                            p_token2        => g_sqlerrm_token,
457                            p_token2_value  => sqlerrm);
458        x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
459   END delete_rg_def_rule;
460 
461   --------------------------------------
462   --PROCEDURE validate_rg_def_rule
463   --------------------------------------
464   PROCEDURE validate_rg_def_rule(
465      p_api_version                  IN NUMBER,
466      p_init_msg_list                IN VARCHAR2 ,
467      x_return_status                OUT NOCOPY VARCHAR2,
468      x_msg_count                    OUT NOCOPY NUMBER,
469      x_msg_data                     OUT NOCOPY VARCHAR2,
470      p_rgrv_rec                     IN rgrv_rec_type) IS
471      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
472      l_api_name                     CONSTANT VARCHAR2(30) := 'validate_rg_def_rule';
473      l_rgrv_rec                     rgrv_rec_type := p_rgrv_rec;
474    BEGIN
475      l_return_status := OKC_API.START_ACTIVITY(l_api_name,
476 	 				      p_init_msg_list,
477 		 			      '_PUB',
478                                               x_return_status);
479      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
480        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
481      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
482        raise OKC_API.G_EXCEPTION_ERROR;
483      END IF;
484     -- Call user hook for BEFORE
485      g_rgrv_rec := l_rgrv_rec;
486      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
487      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
488        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
489      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
490        raise OKC_API.G_EXCEPTION_ERROR;
491      END IF;
492 
493      OKC_RULE_DEF_PVT.validate_rg_def_rule(
494                          p_api_version         => p_api_version,
495                          p_init_msg_list       => p_init_msg_list,
496                          x_return_status       => x_return_status,
497                          x_msg_count           => x_msg_count,
498                          x_msg_data            => x_msg_data,
499                          p_rgrv_rec            => p_rgrv_rec);
500 
501      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
502        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
503      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
504        raise OKC_API.G_EXCEPTION_ERROR;
505      END IF;
506 
507      -- Call user hook for AFTER
508      g_rgrv_rec := l_rgrv_rec;
509      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
510      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
511        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
512      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
513        raise OKC_API.G_EXCEPTION_ERROR;
514      END IF;
515      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
516    EXCEPTION
517      WHEN OKC_API.G_EXCEPTION_ERROR THEN
518        x_return_status := OKC_API.HANDLE_EXCEPTIONS
519        (l_api_name,
520         G_PKG_NAME,
521         'OKC_API.G_RET_STS_ERROR',
522         x_msg_count,
523         x_msg_data,
524         '_PUB');
525      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
526        x_return_status := OKC_API.HANDLE_EXCEPTIONS
527        (l_api_name,
528         G_PKG_NAME,
529         'OKC_API.G_RET_STS_UNEXP_ERROR',
530         x_msg_count,
531         x_msg_data,
532         '_PUB');
533      WHEN OTHERS THEN
534        x_return_status := OKC_API.HANDLE_EXCEPTIONS
535        (l_api_name,
536         G_PKG_NAME,
537         'OTHERS',
538         x_msg_count,
539         x_msg_data,
540         '_PUB');
541   END validate_rg_def_rule;
542 
543   --------------------------------------
544   --PROCEDURE validate_rg_def_rule
545   --------------------------------------
546   PROCEDURE validate_rg_def_rule(
547      p_api_version                  IN NUMBER,
548      p_init_msg_list                IN VARCHAR2 ,
549      x_return_status                OUT NOCOPY VARCHAR2,
550      x_msg_count                    OUT NOCOPY NUMBER,
551      x_msg_data                     OUT NOCOPY VARCHAR2,
552      p_rgrv_tbl                     IN rgrv_tbl_type) IS
553 
554      i				    NUMBER := 0;
555      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
556    BEGIN
557      x_return_status := OKC_API.G_RET_STS_SUCCESS;
558      IF p_rgrv_tbl.COUNT > 0 THEN
559        i := p_rgrv_tbl.FIRST;
560        LOOP
561        validate_rg_def_rule(
562                          p_api_version         => p_api_version,
563                          p_init_msg_list       => p_init_msg_list,
564                          x_return_status       => l_return_status,
565                          x_msg_count           => x_msg_count,
566                          x_msg_data            => x_msg_data,
567                          p_rgrv_rec            => p_rgrv_tbl(i));
568        IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
569          IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
570            x_return_status := l_return_status;
571            raise G_EXCEPTION_HALT_VALIDATION;
572          ELSE
573            x_return_status := l_return_status;
574          END IF;
575        END IF;
576        EXIT WHEN (i = p_rgrv_tbl.LAST);
577        i := p_rgrv_tbl.NEXT(i);
578        END LOOP;
579      END IF;
580    EXCEPTION
581      WHEN G_EXCEPTION_HALT_VALIDATION THEN
582        NULL;
583      WHEN OTHERS THEN
584        OKC_API.set_message(p_app_name      => g_app_name,
585                            p_msg_name      => g_unexpected_error,
586                            p_token1        => g_sqlcode_token,
587                            p_token1_value  => sqlcode,
588                            p_token2        => g_sqlerrm_token,
589                            p_token2_value  => sqlerrm);
590        x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
591   END validate_rg_def_rule;
592 
593   --------------------------------------
594   --PROCEDURE lock_rg_def_rule
595   --------------------------------------
596   PROCEDURE lock_rg_def_rule(
597      p_api_version                  IN NUMBER,
598      p_init_msg_list                IN VARCHAR2 ,
599      x_return_status                OUT NOCOPY VARCHAR2,
600      x_msg_count                    OUT NOCOPY NUMBER,
601      x_msg_data                     OUT NOCOPY VARCHAR2,
602      p_rgrv_rec                     IN rgrv_rec_type) IS
603      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
604   BEGIN
605      OKC_RULE_DEF_PVT.lock_rg_def_rule(
606                          p_api_version         => p_api_version,
607                          p_init_msg_list       => p_init_msg_list,
608                          x_return_status       => x_return_status,
609                          x_msg_count           => x_msg_count,
610                          x_msg_data            => x_msg_data,
611                          p_rgrv_rec            => p_rgrv_rec);
612   END lock_rg_def_rule;
613 
614   --------------------------------------
615   --PROCEDURE lock_rg_def_rule
616   --------------------------------------
617   PROCEDURE lock_rg_def_rule(
618      p_api_version                  IN NUMBER,
619      p_init_msg_list                IN VARCHAR2 ,
620      x_return_status                OUT NOCOPY VARCHAR2,
621      x_msg_count                    OUT NOCOPY NUMBER,
622      x_msg_data                     OUT NOCOPY VARCHAR2,
623      p_rgrv_tbl                     IN rgrv_tbl_type) IS
624 
625      i				    NUMBER := 0;
626      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
627    BEGIN
628      x_return_status := OKC_API.G_RET_STS_SUCCESS;
629      IF p_rgrv_tbl.COUNT > 0 THEN
630        i := p_rgrv_tbl.FIRST;
631        LOOP
632        lock_rg_def_rule(
633                          p_api_version         => p_api_version,
634                          p_init_msg_list       => p_init_msg_list,
635                          x_return_status       => l_return_status,
636                          x_msg_count           => x_msg_count,
637                          x_msg_data            => x_msg_data,
638                          p_rgrv_rec            => p_rgrv_tbl(i));
639        IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
640          IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
641            x_return_status := l_return_status;
642            raise G_EXCEPTION_HALT_VALIDATION;
643          ELSE
644            x_return_status := l_return_status;
645          END IF;
646        END IF;
647        EXIT WHEN (i = p_rgrv_tbl.LAST);
648        i := p_rgrv_tbl.NEXT(i);
649        END LOOP;
650      END IF;
651    EXCEPTION
652      WHEN G_EXCEPTION_HALT_VALIDATION THEN
653        NULL;
654      WHEN OTHERS THEN
655        OKC_API.set_message(p_app_name      => g_app_name,
656                            p_msg_name      => g_unexpected_error,
657                            p_token1        => g_sqlcode_token,
658                            p_token1_value  => sqlcode,
659                            p_token2        => g_sqlerrm_token,
660                            p_token2_value  => sqlerrm);
661        x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
662   END lock_rg_def_rule;
663 
664   --------------------------------------
665   --PROCEDURE create_rd_source
666   --------------------------------------
667   PROCEDURE create_rd_source(
668      p_api_version                  IN NUMBER,
669      p_init_msg_list                IN VARCHAR2 ,
670      x_return_status                OUT NOCOPY VARCHAR2,
671      x_msg_count                    OUT NOCOPY NUMBER,
672      x_msg_data                     OUT NOCOPY VARCHAR2,
673      p_rdsv_rec                     IN rdsv_rec_type,
674      x_rdsv_rec                     OUT NOCOPY rdsv_rec_type) IS
675      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
676      l_api_name                     CONSTANT VARCHAR2(30) := 'create_rd_source';
677      l_rdsv_rec                     rdsv_rec_type := p_rdsv_rec;
678    BEGIN
679      l_return_status := OKC_API.START_ACTIVITY(l_api_name,
680 	 				      p_init_msg_list,
681 		 			      '_PUB',
682                                               x_return_status);
683      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
684        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
685      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
686        raise OKC_API.G_EXCEPTION_ERROR;
687      END IF;
688     -- Call user hook for BEFORE
689      g_rdsv_rec := l_rdsv_rec;
690      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
691      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
692        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
693      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
694        raise OKC_API.G_EXCEPTION_ERROR;
695      END IF;
696      l_rdsv_rec := migrate_rdsv(l_rdsv_rec, g_rdsv_rec);
697 
698      OKC_RULE_DEF_PVT.create_rd_source(
699                          p_api_version         => p_api_version,
700                          p_init_msg_list       => p_init_msg_list,
701                          x_return_status       => x_return_status,
702                          x_msg_count           => x_msg_count,
703                          x_msg_data            => x_msg_data,
704                          p_rdsv_rec            => l_rdsv_rec,
705                          x_rdsv_rec            => x_rdsv_rec);
706 
707      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
708        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
709      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
710        raise OKC_API.G_EXCEPTION_ERROR;
711      END IF;
712 
713      -- Call user hook for AFTER
714      g_rdsv_rec := x_rdsv_rec;
715      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
716      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
717        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
718      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
719        raise OKC_API.G_EXCEPTION_ERROR;
720      END IF;
721      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
722    EXCEPTION
723      WHEN OKC_API.G_EXCEPTION_ERROR THEN
724        x_return_status := OKC_API.HANDLE_EXCEPTIONS
725        (l_api_name,
726         G_PKG_NAME,
727         'OKC_API.G_RET_STS_ERROR',
728         x_msg_count,
729         x_msg_data,
730         '_PUB');
731      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
732        x_return_status := OKC_API.HANDLE_EXCEPTIONS
733        (l_api_name,
734         G_PKG_NAME,
735         'OKC_API.G_RET_STS_UNEXP_ERROR',
736         x_msg_count,
737         x_msg_data,
738         '_PUB');
739      WHEN OTHERS THEN
740        x_return_status := OKC_API.HANDLE_EXCEPTIONS
741        (l_api_name,
742         G_PKG_NAME,
743         'OTHERS',
744         x_msg_count,
745         x_msg_data,
746         '_PUB');
747   END create_rd_source;
748 
749   --------------------------------------
750   --PROCEDURE create_rd_source
751   --------------------------------------
752   PROCEDURE create_rd_source(
753      p_api_version                  IN NUMBER,
754      p_init_msg_list                IN VARCHAR2 ,
755      x_return_status                OUT NOCOPY VARCHAR2,
756      x_msg_count                    OUT NOCOPY NUMBER,
757      x_msg_data                     OUT NOCOPY VARCHAR2,
758      p_rdsv_tbl                     IN rdsv_tbl_type,
759      x_rdsv_tbl                     OUT NOCOPY rdsv_tbl_type) IS
760 
761      i				    NUMBER := 0;
762      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
763    BEGIN
764      x_return_status := OKC_API.G_RET_STS_SUCCESS;
765      IF p_rdsv_tbl.COUNT > 0 THEN
766        i := p_rdsv_tbl.FIRST;
767        LOOP
768        create_rd_source(
769                          p_api_version         => p_api_version,
770                          p_init_msg_list       => p_init_msg_list,
771                          x_return_status       => l_return_status,
772                          x_msg_count           => x_msg_count,
773                          x_msg_data            => x_msg_data,
774                          p_rdsv_rec            => p_rdsv_tbl(i),
775                          x_rdsv_rec            => x_rdsv_tbl(i));
776        IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
777          IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
778            x_return_status := l_return_status;
779            raise G_EXCEPTION_HALT_VALIDATION;
780          ELSE
781            x_return_status := l_return_status;
782          END IF;
783        END IF;
784        EXIT WHEN (i = p_rdsv_tbl.LAST);
785        i := p_rdsv_tbl.NEXT(i);
786        END LOOP;
787      END IF;
788    EXCEPTION
789      WHEN G_EXCEPTION_HALT_VALIDATION THEN
790        NULL;
791      WHEN OTHERS THEN
792        OKC_API.set_message(p_app_name      => g_app_name,
793                            p_msg_name      => g_unexpected_error,
794                            p_token1        => g_sqlcode_token,
795                            p_token1_value  => sqlcode,
796                            p_token2        => g_sqlerrm_token,
797                            p_token2_value  => sqlerrm);
798        x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
799   END create_rd_source;
800 
801   --------------------------------------
802   --PROCEDURE update_rd_source
803   --------------------------------------
804   PROCEDURE update_rd_source(
805      p_api_version                  IN NUMBER,
806      p_init_msg_list                IN VARCHAR2 ,
807      x_return_status                OUT NOCOPY VARCHAR2,
808      x_msg_count                    OUT NOCOPY NUMBER,
809      x_msg_data                     OUT NOCOPY VARCHAR2,
810      p_rdsv_rec                     IN rdsv_rec_type,
811      x_rdsv_rec                     OUT NOCOPY rdsv_rec_type) IS
812      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
813      l_api_name                     CONSTANT VARCHAR2(30) := 'update_rd_source';
814      l_rdsv_rec                     rdsv_rec_type := p_rdsv_rec;
815    BEGIN
816      l_return_status := OKC_API.START_ACTIVITY(l_api_name,
817 	 				      p_init_msg_list,
818 		 			      '_PUB',
819                                               x_return_status);
820      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
821        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
822      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
823        raise OKC_API.G_EXCEPTION_ERROR;
824      END IF;
825     -- Call user hook for BEFORE
826      g_rdsv_rec := l_rdsv_rec;
827      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
828      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
829        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
830      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
831        raise OKC_API.G_EXCEPTION_ERROR;
832      END IF;
833      l_rdsv_rec := migrate_rdsv(l_rdsv_rec, g_rdsv_rec);
834 
835      OKC_RULE_DEF_PVT.update_rd_source(
836                          p_api_version         => p_api_version,
837                          p_init_msg_list       => p_init_msg_list,
838                          x_return_status       => x_return_status,
839                          x_msg_count           => x_msg_count,
840                          x_msg_data            => x_msg_data,
841                          p_rdsv_rec            => l_rdsv_rec,
842                          x_rdsv_rec            => x_rdsv_rec);
843 
844      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
845        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
846      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
847        raise OKC_API.G_EXCEPTION_ERROR;
848      END IF;
849 
850      -- Call user hook for AFTER
851      g_rdsv_rec := x_rdsv_rec;
852      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
853      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
854        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
855      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
856        raise OKC_API.G_EXCEPTION_ERROR;
857      END IF;
858      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
859    EXCEPTION
860      WHEN OKC_API.G_EXCEPTION_ERROR THEN
861        x_return_status := OKC_API.HANDLE_EXCEPTIONS
862        (l_api_name,
863         G_PKG_NAME,
864         'OKC_API.G_RET_STS_ERROR',
865         x_msg_count,
866         x_msg_data,
867         '_PUB');
868      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
869        x_return_status := OKC_API.HANDLE_EXCEPTIONS
870        (l_api_name,
871         G_PKG_NAME,
872         'OKC_API.G_RET_STS_UNEXP_ERROR',
873         x_msg_count,
874         x_msg_data,
875         '_PUB');
876      WHEN OTHERS THEN
877        x_return_status := OKC_API.HANDLE_EXCEPTIONS
878        (l_api_name,
879         G_PKG_NAME,
880         'OTHERS',
881         x_msg_count,
882         x_msg_data,
883         '_PUB');
884   END update_rd_source;
885 
886   --------------------------------------
887   --PROCEDURE update_rd_source
888   --------------------------------------
889   PROCEDURE update_rd_source(
890      p_api_version                  IN NUMBER,
891      p_init_msg_list                IN VARCHAR2 ,
892      x_return_status                OUT NOCOPY VARCHAR2,
893      x_msg_count                    OUT NOCOPY NUMBER,
894      x_msg_data                     OUT NOCOPY VARCHAR2,
895      p_rdsv_tbl                     IN rdsv_tbl_type,
896      x_rdsv_tbl                     OUT NOCOPY rdsv_tbl_type) IS
897 
898      i				    NUMBER := 0;
899      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
900    BEGIN
901      x_return_status := OKC_API.G_RET_STS_SUCCESS;
902      IF p_rdsv_tbl.COUNT > 0 THEN
903        i := p_rdsv_tbl.FIRST;
904        LOOP
905        update_rd_source(
906                          p_api_version         => p_api_version,
907                          p_init_msg_list       => p_init_msg_list,
908                          x_return_status       => l_return_status,
909                          x_msg_count           => x_msg_count,
910                          x_msg_data            => x_msg_data,
911                          p_rdsv_rec            => p_rdsv_tbl(i),
912                          x_rdsv_rec            => x_rdsv_tbl(i));
913        IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
914          IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
915            x_return_status := l_return_status;
916            raise G_EXCEPTION_HALT_VALIDATION;
917          ELSE
918            x_return_status := l_return_status;
919          END IF;
920        END IF;
921        EXIT WHEN (i = p_rdsv_tbl.LAST);
922        i := p_rdsv_tbl.NEXT(i);
923        END LOOP;
924      END IF;
925    EXCEPTION
926      WHEN G_EXCEPTION_HALT_VALIDATION THEN
927        NULL;
928      WHEN OTHERS THEN
929        OKC_API.set_message(p_app_name      => g_app_name,
930                            p_msg_name      => g_unexpected_error,
931                            p_token1        => g_sqlcode_token,
932                            p_token1_value  => sqlcode,
933                            p_token2        => g_sqlerrm_token,
934                            p_token2_value  => sqlerrm);
935        x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
936   END update_rd_source;
937 
938   --------------------------------------
939   --PROCEDURE delete_rd_source
940   --------------------------------------
941   PROCEDURE delete_rd_source(
942      p_api_version                  IN NUMBER,
943      p_init_msg_list                IN VARCHAR2 ,
944      x_return_status                OUT NOCOPY VARCHAR2,
945      x_msg_count                    OUT NOCOPY NUMBER,
946      x_msg_data                     OUT NOCOPY VARCHAR2,
947      p_rdsv_rec                     IN rdsv_rec_type) IS
948      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
949      l_api_name                     CONSTANT VARCHAR2(30) := 'delete_rd_source';
950      l_rdsv_rec                     rdsv_rec_type := p_rdsv_rec;
951    BEGIN
952      l_return_status := OKC_API.START_ACTIVITY(l_api_name,
953 	 				      p_init_msg_list,
954 		 			      '_PUB',
955                                               x_return_status);
956      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
957        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
958      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
959        raise OKC_API.G_EXCEPTION_ERROR;
960      END IF;
961     -- Call user hook for BEFORE
962      g_rdsv_rec := l_rdsv_rec;
963      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
964      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
965        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
966      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
967        raise OKC_API.G_EXCEPTION_ERROR;
968      END IF;
969 
970      OKC_RULE_DEF_PVT.delete_rd_source(
971                          p_api_version         => p_api_version,
972                          p_init_msg_list       => p_init_msg_list,
973                          x_return_status       => x_return_status,
974                          x_msg_count           => x_msg_count,
975                          x_msg_data            => x_msg_data,
976                          p_rdsv_rec            => p_rdsv_rec);
977 
978      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
979        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
980      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
981        raise OKC_API.G_EXCEPTION_ERROR;
982      END IF;
983 
984      -- Call user hook for AFTER
985      g_rdsv_rec := l_rdsv_rec;
986      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
987      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
988        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
989      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
990        raise OKC_API.G_EXCEPTION_ERROR;
991      END IF;
992      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
993    EXCEPTION
994      WHEN OKC_API.G_EXCEPTION_ERROR THEN
995        x_return_status := OKC_API.HANDLE_EXCEPTIONS
996        (l_api_name,
997         G_PKG_NAME,
998         'OKC_API.G_RET_STS_ERROR',
999         x_msg_count,
1000         x_msg_data,
1001         '_PUB');
1002      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1003        x_return_status := OKC_API.HANDLE_EXCEPTIONS
1004        (l_api_name,
1005         G_PKG_NAME,
1006         'OKC_API.G_RET_STS_UNEXP_ERROR',
1007         x_msg_count,
1008         x_msg_data,
1009         '_PUB');
1010      WHEN OTHERS THEN
1011        x_return_status := OKC_API.HANDLE_EXCEPTIONS
1012        (l_api_name,
1013         G_PKG_NAME,
1014         'OTHERS',
1015         x_msg_count,
1016         x_msg_data,
1017         '_PUB');
1018   END delete_rd_source;
1019 
1020   --------------------------------------
1021   --PROCEDURE delete_rd_source
1022   --------------------------------------
1023   PROCEDURE delete_rd_source(
1024      p_api_version                  IN NUMBER,
1025      p_init_msg_list                IN VARCHAR2 ,
1026      x_return_status                OUT NOCOPY VARCHAR2,
1027      x_msg_count                    OUT NOCOPY NUMBER,
1028      x_msg_data                     OUT NOCOPY VARCHAR2,
1029      p_rdsv_tbl                     IN rdsv_tbl_type) IS
1030 
1031      i				    NUMBER := 0;
1032      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1033    BEGIN
1034      x_return_status := OKC_API.G_RET_STS_SUCCESS;
1035      IF p_rdsv_tbl.COUNT > 0 THEN
1036        i := p_rdsv_tbl.FIRST;
1037        LOOP
1038        delete_rd_source(
1039                          p_api_version         => p_api_version,
1040                          p_init_msg_list       => p_init_msg_list,
1041                          x_return_status       => l_return_status,
1042                          x_msg_count           => x_msg_count,
1043                          x_msg_data            => x_msg_data,
1044                          p_rdsv_rec            => p_rdsv_tbl(i));
1045        IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1046          IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1047            x_return_status := l_return_status;
1048            raise G_EXCEPTION_HALT_VALIDATION;
1049          ELSE
1050            x_return_status := l_return_status;
1051          END IF;
1052        END IF;
1053        EXIT WHEN (i = p_rdsv_tbl.LAST);
1054        i := p_rdsv_tbl.NEXT(i);
1055        END LOOP;
1056      END IF;
1057    EXCEPTION
1058      WHEN G_EXCEPTION_HALT_VALIDATION THEN
1059        NULL;
1060      WHEN OTHERS THEN
1061        OKC_API.set_message(p_app_name      => g_app_name,
1062                            p_msg_name      => g_unexpected_error,
1063                            p_token1        => g_sqlcode_token,
1064                            p_token1_value  => sqlcode,
1065                            p_token2        => g_sqlerrm_token,
1066                            p_token2_value  => sqlerrm);
1067        x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1068   END delete_rd_source;
1069 
1070   --------------------------------------
1071   --PROCEDURE validate_rd_source
1072   --------------------------------------
1073   PROCEDURE validate_rd_source(
1074      p_api_version                  IN NUMBER,
1075      p_init_msg_list                IN VARCHAR2 ,
1076      x_return_status                OUT NOCOPY VARCHAR2,
1077      x_msg_count                    OUT NOCOPY NUMBER,
1078      x_msg_data                     OUT NOCOPY VARCHAR2,
1079      p_rdsv_rec                     IN rdsv_rec_type) IS
1080      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1081      l_api_name                     CONSTANT VARCHAR2(30) := 'validate_rd_source';
1082      l_rdsv_rec                     rdsv_rec_type := p_rdsv_rec;
1083    BEGIN
1084      l_return_status := OKC_API.START_ACTIVITY(l_api_name,
1085 	 				      p_init_msg_list,
1086 		 			      '_PUB',
1087                                               x_return_status);
1088      IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1089        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1090      ELSIF (l_return_status = OKC_API.G_RET_STS_ERROR) THEN
1091        raise OKC_API.G_EXCEPTION_ERROR;
1092      END IF;
1093     -- Call user hook for BEFORE
1094      g_rdsv_rec := l_rdsv_rec;
1095      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'B');
1096      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1097        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1098      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1099        raise OKC_API.G_EXCEPTION_ERROR;
1100      END IF;
1101 
1102      OKC_RULE_DEF_PVT.validate_rd_source(
1103                          p_api_version         => p_api_version,
1104                          p_init_msg_list       => p_init_msg_list,
1105                          x_return_status       => x_return_status,
1106                          x_msg_count           => x_msg_count,
1107                          x_msg_data            => x_msg_data,
1108                          p_rdsv_rec            => p_rdsv_rec);
1109 
1110      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1111        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1112      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1113        raise OKC_API.G_EXCEPTION_ERROR;
1114      END IF;
1115 
1116      -- Call user hook for AFTER
1117      g_rdsv_rec := l_rdsv_rec;
1118      okc_util.call_user_hook(x_return_status, g_pkg_name, l_api_name, 'A');
1119      IF (x_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1120        raise OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
1121      ELSIF (x_return_status = OKC_API.G_RET_STS_ERROR) THEN
1122        raise OKC_API.G_EXCEPTION_ERROR;
1123      END IF;
1124      OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
1125    EXCEPTION
1126      WHEN OKC_API.G_EXCEPTION_ERROR THEN
1127        x_return_status := OKC_API.HANDLE_EXCEPTIONS
1128        (l_api_name,
1129         G_PKG_NAME,
1130         'OKC_API.G_RET_STS_ERROR',
1131         x_msg_count,
1132         x_msg_data,
1133         '_PUB');
1134      WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1135        x_return_status := OKC_API.HANDLE_EXCEPTIONS
1136        (l_api_name,
1137         G_PKG_NAME,
1138         'OKC_API.G_RET_STS_UNEXP_ERROR',
1139         x_msg_count,
1140         x_msg_data,
1141         '_PUB');
1142      WHEN OTHERS THEN
1143        x_return_status := OKC_API.HANDLE_EXCEPTIONS
1144        (l_api_name,
1145         G_PKG_NAME,
1146         'OTHERS',
1147         x_msg_count,
1148         x_msg_data,
1149         '_PUB');
1150   END validate_rd_source;
1151 
1152   --------------------------------------
1153   --PROCEDURE validate_rd_source
1154   --------------------------------------
1155   PROCEDURE validate_rd_source(
1156      p_api_version                  IN NUMBER,
1157      p_init_msg_list                IN VARCHAR2 ,
1158      x_return_status                OUT NOCOPY VARCHAR2,
1159      x_msg_count                    OUT NOCOPY NUMBER,
1160      x_msg_data                     OUT NOCOPY VARCHAR2,
1161      p_rdsv_tbl                     IN rdsv_tbl_type) IS
1162 
1163      i				    NUMBER := 0;
1164      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1165    BEGIN
1166      x_return_status := OKC_API.G_RET_STS_SUCCESS;
1167      IF p_rdsv_tbl.COUNT > 0 THEN
1168        i := p_rdsv_tbl.FIRST;
1169        LOOP
1170        validate_rd_source(
1171                          p_api_version         => p_api_version,
1172                          p_init_msg_list       => p_init_msg_list,
1173                          x_return_status       => l_return_status,
1174                          x_msg_count           => x_msg_count,
1175                          x_msg_data            => x_msg_data,
1176                          p_rdsv_rec            => p_rdsv_tbl(i));
1177        IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1178          IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1179            x_return_status := l_return_status;
1180            raise G_EXCEPTION_HALT_VALIDATION;
1181          ELSE
1182            x_return_status := l_return_status;
1183          END IF;
1184        END IF;
1185        EXIT WHEN (i = p_rdsv_tbl.LAST);
1186        i := p_rdsv_tbl.NEXT(i);
1187        END LOOP;
1188      END IF;
1189    EXCEPTION
1190      WHEN G_EXCEPTION_HALT_VALIDATION THEN
1191        NULL;
1192      WHEN OTHERS THEN
1193        OKC_API.set_message(p_app_name      => g_app_name,
1194                            p_msg_name      => g_unexpected_error,
1195                            p_token1        => g_sqlcode_token,
1196                            p_token1_value  => sqlcode,
1197                            p_token2        => g_sqlerrm_token,
1198                            p_token2_value  => sqlerrm);
1199        x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1200   END validate_rd_source;
1201 
1202   --------------------------------------
1203   --PROCEDURE lock_rd_source
1204   --------------------------------------
1205   PROCEDURE lock_rd_source(
1206      p_api_version                  IN NUMBER,
1207      p_init_msg_list                IN VARCHAR2 ,
1208      x_return_status                OUT NOCOPY VARCHAR2,
1209      x_msg_count                    OUT NOCOPY NUMBER,
1210      x_msg_data                     OUT NOCOPY VARCHAR2,
1211      p_rdsv_rec                     IN rdsv_rec_type) IS
1212      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1213   BEGIN
1214      OKC_RULE_DEF_PVT.lock_rd_source(
1215                          p_api_version         => p_api_version,
1216                          p_init_msg_list       => p_init_msg_list,
1217                          x_return_status       => x_return_status,
1218                          x_msg_count           => x_msg_count,
1219                          x_msg_data            => x_msg_data,
1220                          p_rdsv_rec            => p_rdsv_rec);
1221   END lock_rd_source;
1222 
1223   --------------------------------------
1224   --PROCEDURE lock_rd_source
1225   --------------------------------------
1226   PROCEDURE lock_rd_source(
1227      p_api_version                  IN NUMBER,
1228      p_init_msg_list                IN VARCHAR2 ,
1229      x_return_status                OUT NOCOPY VARCHAR2,
1230      x_msg_count                    OUT NOCOPY NUMBER,
1231      x_msg_data                     OUT NOCOPY VARCHAR2,
1232      p_rdsv_tbl                     IN rdsv_tbl_type) IS
1233 
1234      i				    NUMBER := 0;
1235      l_return_status                VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
1236    BEGIN
1237      x_return_status := OKC_API.G_RET_STS_SUCCESS;
1238      IF p_rdsv_tbl.COUNT > 0 THEN
1239        i := p_rdsv_tbl.FIRST;
1240        LOOP
1241        lock_rd_source(
1242                          p_api_version         => p_api_version,
1243                          p_init_msg_list       => p_init_msg_list,
1244                          x_return_status       => l_return_status,
1245                          x_msg_count           => x_msg_count,
1246                          x_msg_data            => x_msg_data,
1247                          p_rdsv_rec            => p_rdsv_tbl(i));
1248        IF (l_return_status <> OKC_API.G_RET_STS_SUCCESS) THEN
1249          IF (l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR) THEN
1250            x_return_status := l_return_status;
1251            raise G_EXCEPTION_HALT_VALIDATION;
1252          ELSE
1253            x_return_status := l_return_status;
1254          END IF;
1255        END IF;
1256        EXIT WHEN (i = p_rdsv_tbl.LAST);
1257        i := p_rdsv_tbl.NEXT(i);
1258        END LOOP;
1259      END IF;
1260    EXCEPTION
1261      WHEN G_EXCEPTION_HALT_VALIDATION THEN
1262        NULL;
1263      WHEN OTHERS THEN
1264        OKC_API.set_message(p_app_name      => g_app_name,
1265                            p_msg_name      => g_unexpected_error,
1266                            p_token1        => g_sqlcode_token,
1267                            p_token1_value  => sqlcode,
1268                            p_token2        => g_sqlerrm_token,
1269                            p_token2_value  => sqlerrm);
1270        x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
1271   END lock_rd_source;
1272 
1273 END okc_rule_def_pub;