DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_BP_RULES

Source


1 PACKAGE BODY Okl_Bp_Rules AS
2 /* $Header: OKLRBPRB.pls 115.1 2002/03/21 19:04:41 pkm ship        $ */
3 
4 PROCEDURE extract_rules(
5        p_api_version                  IN NUMBER,
6    	   p_init_msg_list                IN VARCHAR2 DEFAULT Okl_Api.G_FALSE,
7 	   p_khr_id						  IN NUMBER,
8 	   p_kle_id						  IN NUMBER,
9 	   p_rgd_code					  IN VARCHAR2,
10 	   p_rdf_code					  IN VARCHAR2,
11    	   x_return_status                OUT NOCOPY VARCHAR2,
12    	   x_msg_count                    OUT NOCOPY NUMBER,
13    	   x_msg_data                     OUT NOCOPY VARCHAR2,
14 	   x_rulv_rec				  	  OUT NOCOPY rulv_rec_type)
15 IS
16 
17 
18 l_api_version 		NUMBER := 1;
19 l_init_msg_list 	VARCHAR2(1) ;
20 l_msg_count 		NUMBER ;
21 l_msg_data 			VARCHAR2(2000);
22 l_rg_count			NUMBER;
23 l_rule_count		NUMBER;
24 
25 l_khr_id			NUMBER;
26 l_kle_id			NUMBER;
27 
28 
29 i					NUMBER;
30 
31 cntrct_rg_excp		EXCEPTION;
32 
33 l_api_name          CONSTANT VARCHAR2(30) := 'OKL_CONS_BILL';
34 l_return_status     VARCHAR2(1) := Okc_Api.G_RET_STS_SUCCESS;
35 
36 BEGIN
37 	l_khr_id := p_khr_id;
38 	l_kle_id := p_kle_id;
39 
40 
41 
42 	--Get all rules for a Contract and Rule group
43 	Okl_Rule_Apis_Pvt.GET_CONTRACT_RGS(
44 					  l_api_version,
45 					  l_init_msg_list,
46 					  l_khr_id,
47 					  l_kle_id,
48 					  p_rgd_code,	  --'LABILL'
49 					  x_return_status,
50 					  l_msg_count,
51 					  l_msg_data,
52 					  l_rgpv_tbl,
53 					  l_rg_count);
54 
55 	--dbms_output.put_line(l_rgpv_tbl.COUNT);
56 
57     IF (l_rgpv_tbl.COUNT = 1) THEN
58 	    l_rgpv_rec := l_rgpv_tbl(1);
59     ELSIF (l_rgpv_tbl.COUNT > 1) THEN
60       	RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
61 	ELSE
62 		NULL;
63 	END IF;
64 
65 	Okl_Rule_Apis_Pvt.GET_CONTRACT_RULES(
66 					  l_api_version,
67                       l_init_msg_list,
68                       l_rgpv_rec,
69                       p_rdf_code,
70                       x_return_status,
71                       l_msg_count,
72                       l_msg_data,
73                       l_rulv_tbl,
74                       l_rule_count);
75 
76 	--dbms_output.put_line('# 2 '||l_rulv_tbl.COUNT);
77     FOR i IN  1..l_rulv_tbl.COUNT LOOP
78           NULL;
79 		--dbms_output.put_line('# 21 '||l_rulv_tbl(i).rule_information_category||'--'||l_rulv_tbl(i).rule_information1);
80 	END LOOP;
81 
82     IF (l_rulv_tbl.COUNT = 1) THEN
83 	    x_rulv_rec := l_rulv_tbl(1);
84     ELSIF (l_rulv_tbl.COUNT > 1) THEN
85       	RAISE Okc_Api.G_EXCEPTION_UNEXPECTED_ERROR;
86 	ELSE
87 		NULL;
88 	END IF;
89 
90 /*
91   	This section needed only to view the details of a rule evaluation SQL
92 	BPD does not need this yet...
93 	Okl_Rule_Apis_Pvt.GET_RULE_DISP_VALUE(
94 					  l_api_version,
95                       l_init_msg_list,
96                       l_rulv_rec,
97                       l_return_status,
98                       l_msg_count,
99                       l_msg_data,
100                       x_rulv_disp_rec);
101 */
102 
103 EXCEPTION
104     WHEN Okc_Api.G_EXCEPTION_ERROR THEN
105       x_return_status := Okc_Api.HANDLE_EXCEPTIONS(
106 			p_api_name  => l_api_name,
107 			p_pkg_name  => g_pkg_name,
108 			p_exc_name  => 'Okc_Api.G_RET_STS_ERROR',
109 			x_msg_count => x_msg_count,
110 			x_msg_data  => x_msg_data,
111 			p_api_type  => g_api_type);
112     WHEN OTHERS THEN
113       x_return_status :=Okc_Api.HANDLE_EXCEPTIONS
114       (
115         l_api_name,
116         G_PKG_NAME,
117         'OTHERS',
118         x_msg_count,
119         x_msg_data,
120         '_PVT'
121       );
122 END extract_rules;
123 
124 
125 END Okl_Bp_Rules;