[Home] [Help]
PACKAGE BODY: APPS.OKC_CG_UPD_ASMBLR_PVT
Source
1 PACKAGE BODY OKC_CG_UPD_ASMBLR_PVT AS
2 /* $Header: OKCRCUAB.pls 120.2 2005/07/15 16:21:06 pnayani noship $ */
3
4 l_debug VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
5
6 PROCEDURE acn_assemble(
7 p_api_version IN NUMBER,
8 p_init_msg_list IN VARCHAR2 ,
9 x_return_status OUT NOCOPY VARCHAR2,
10 x_msg_count OUT NOCOPY NUMBER,
11 x_msg_data OUT NOCOPY VARCHAR2,
12 p_counter_id IN NUMBER
13 ) IS
14
15 l_api_name CONSTANT VARCHAR2(30) := 'ACN_ASSEMBLE';
16 l_api_version CONSTANT NUMBER := 1.0;
17 l_init_msg_list VARCHAR2(1) ;
18 i NUMBER;
19 l_corrid_rec okc_aq_pvt.corrid_rec_typ;
20 l_msg_tbl okc_aq_pvt.msg_tab_typ;
21 l_msg_count number;
22 l_msg_data varchar2(1000);
23 l_return_status varchar2(1);
24 l_counter_group_id okx_counter_groups_v.counter_group_id%TYPE;
25 l_contract_id okx_counter_groups_v.source_object_id%TYPE;
26
27
28 CURSOR ctr_grp_cur IS
29 /*R12 changes
30 SELECT cg.counter_group_id counter_group_id,
31 cg.source_object_code source_object_code,
32 cg.source_object_id source_object_id
33 FROM okx_counter_grp_log_v log,
34 okx_counter_groups_v cg
35 WHERE log.counter_group_id = cg.counter_group_id
36 AND counter_grp_log_id = p_counter_grp_log_id;*/
37 SELECT ca.source_object_code source_object_code,
38 ca.source_object_id source_object_id
39 FROM csi_counter_associations ca
40 WHERE ca.counter_id = p_counter_id;
41
42 ctr_grp_rec ctr_grp_cur%ROWTYPE;
43
44
45 CURSOR ename_cur IS
46 SELECT aae.element_name
47 FROM okc_actions_b acn,
48 okc_action_attributes_b aae
49 WHERE acn.id = aae.acn_id
50 AND acn.correlation = 'CTR_GRP_UPD' ;
51 ename_rec ename_cur%ROWTYPE;
52
53 CURSOR kl_cur (x IN NUMBER) IS
54 SELECT dnz_chr_id k_id
55 FROM okc_k_lines_b
56 WHERE id = x;
57 kl_rec kl_cur%ROWTYPE;
58
59 CURSOR ctr_cur IS
60 select net_reading counter_reading
61 from csi_counter_readings
62 where counter_id = p_counter_id
63 and nvl(disabled_flag,'N') = 'N'
64 order by value_timestamp desc;
65
66 ctr_rec ctr_cur%ROWTYPE;
67
68 BEGIN
69
70 l_return_status := OKC_API.START_ACTIVITY
71 (l_api_name
72 ,l_init_msg_list
73 ,'_PVT'
74 ,x_return_status);
75
76 IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
77 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
78 ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
79 RAISE OKC_API.G_EXCEPTION_ERROR;
80 END IF;
81
82 l_corrid_rec.corrid := 'CTR_GRP_UPD' ;
83 i := 0;
84
85 -- check if action is enabled
86 IF OKC_K_SIGN_ASMBLR_PVT.isActionEnabled(l_corrid_rec.corrid) = 'Y' THEN
87 l_msg_tbl := okc_aq_pvt.msg_tab_typ();
88 FOR ename_rec IN ename_cur
89 LOOP
90 OPEN ctr_grp_cur;
91 FETCH ctr_grp_cur INTO ctr_grp_rec;
92 IF ename_rec.element_name = 'COUNTER_ID' THEN
93 l_msg_tbl.extend;
94 i := i + 1;
95 l_msg_tbl(i).element_name := ename_rec.element_name;
96 l_msg_tbl(i).element_value := p_counter_id;
97 ELSIF ename_rec.element_name = 'COUNTER_READING' THEN
98 OPEN ctr_cur;
99 FETCH ctr_cur INTO ctr_rec;
100 l_msg_tbl.extend;
101 i := i + 1;
102 l_msg_tbl(i).element_name := ename_rec.element_name;
103 l_msg_tbl(i).element_value := ctr_rec.counter_reading;
104 CLOSE ctr_cur;
105 ELSIF ename_rec.element_name = 'SOURCE_OBJECT_CODE' THEN
106 l_msg_tbl.extend;
107 i := i + 1;
108 l_msg_tbl(i).element_name := ename_rec.element_name;
109 l_msg_tbl(i).element_value := ctr_grp_rec.source_object_code;
110 ELSIF ename_rec.element_name = 'SOURCE_OBJECT_ID' THEN
111 l_msg_tbl.extend;
112 i := i + 1;
113 l_msg_tbl(i).element_name := ename_rec.element_name;
114 l_msg_tbl(i).element_value := ctr_grp_rec.source_object_id;
115 ELSIF ename_rec.element_name = 'K_ID' THEN
116 IF ctr_grp_rec.source_object_code = 'CONTRACT_LINE' AND
117 ctr_grp_rec.source_object_id IS NOT NULL THEN
118 OPEN kl_cur(ctr_grp_rec.source_object_id);
119 FETCH kl_cur INTO kl_rec;
120 l_msg_tbl.extend;
121 i := i + 1;
122 l_msg_tbl(i).element_name := ename_rec.element_name;
123 l_msg_tbl(i).element_value := kl_rec.k_id;
124 CLOSE kl_cur;
125 ELSIF ctr_grp_rec.source_object_code = 'CP' THEN
126 l_msg_tbl.extend;
127 i := i + 1;
128 l_msg_tbl(i).element_name := ename_rec.element_name;
129 l_msg_tbl(i).element_value := NULL;
130 ELSIF ctr_grp_rec.source_object_code IS NULL THEN
131 l_msg_tbl.extend;
132 i := i + 1;
133 l_msg_tbl(i).element_name := ename_rec.element_name;
134 l_msg_tbl(i).element_value := NULL;
135 END IF;
136 END IF;
137 CLOSE ctr_grp_cur;
138 END LOOP;
139
140 OKC_AQ_PUB.send_message(p_api_version => l_api_version
141 ,x_msg_count => l_msg_count
142 ,x_msg_data => l_msg_data
143 ,x_return_status => l_return_status
144 ,p_corrid_rec => l_corrid_rec
145 ,p_msg_tab => l_msg_tbl
146 ,p_queue_name => okc_aq_pvt.g_event_queue_name);
147
148 IF l_return_status = OKC_API.G_RET_STS_UNEXP_ERROR THEN
149 RAISE OKC_API.G_EXCEPTION_UNEXPECTED_ERROR;
150 ELSIF l_return_status = OKC_API.G_RET_STS_ERROR THEN
151 RAISE OKC_API.G_EXCEPTION_ERROR;
152 END IF;
153 END IF; -- OKC_K_SIGN_ASMBLR_PVT.isActionEnabled
154 OKC_API.END_ACTIVITY(x_msg_count, x_msg_data);
155
156 EXCEPTION
157 WHEN OKC_API.G_EXCEPTION_ERROR THEN
158 x_return_status := OKC_API.HANDLE_EXCEPTIONS
159 (l_api_name,
160 G_PKG_NAME,
161 'OKC_API.G_RET_STS_ERROR',
162 x_msg_count,
163 x_msg_data,
164 '_PVT');
165 WHEN OKC_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
166 x_return_status := OKC_API.HANDLE_EXCEPTIONS
167 (l_api_name,
168 G_PKG_NAME,
169 'OKC_API.G_RET_STS_UNEXP_ERROR',
170 x_msg_count,
171 x_msg_data,
172 '_PVT');
173 WHEN OTHERS THEN
174 x_return_status := OKC_API.HANDLE_EXCEPTIONS
175 (l_api_name,
176 G_PKG_NAME,
177 'OTHERS',
178 x_msg_count,
179 x_msg_data,
180 '_PVT');
181 END acn_assemble;
182
183 END OKC_CG_UPD_ASMBLR_PVT;