[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;