[Home] [Help]
PACKAGE BODY: APPS.CS_CTR_CAPTURE_READING_PUB
Source
1 PACKAGE BODY CS_CTR_CAPTURE_READING_PUB as
2 -- $Header: csxpcrdb.pls 120.2.12010000.2 2009/04/17 14:23:18 ngoutam ship $
3 -- Start of Comments
4 -- Package name : CS_CAPTURE_READING_PUB
5 -- Purpose : Capture readings for counters
6 -- History :
7 -- NOTE :
8 -- End of Comments
9 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CS_CTR_CAPTURE_READING_PUB';
10 G_FILE_NAME CONSTANT VARCHAR2(12) := 'csxpcrdb.pls';
11
12 PROCEDURE Capture_Counter_Reading(
13 P_Api_Version_Number IN NUMBER,
14 P_Init_Msg_List IN VARCHAR2,
15 P_Commit IN VARCHAR2,
16 p_validation_level IN NUMBER,
17 p_CTR_GRP_LOG_Rec IN CTR_GRP_LOG_Rec_Type,
18 p_CTR_RDG_Tbl IN CTR_RDG_Tbl_Type,
19 p_PROP_RDG_Tbl IN PROP_RDG_Tbl_Type,
20 X_Return_Status OUT NOCOPY VARCHAR2,
21 X_Msg_Count OUT NOCOPY NUMBER,
22 X_Msg_Data OUT NOCOPY VARCHAR2
23 )
24 IS
25 l_api_name CONSTANT VARCHAR2(30) := 'CAPTURE_COUNTER_READING';
26 l_api_version_number CONSTANT NUMBER := 1.0;
27 l_return_status_full VARCHAR2(1);
28 l_ctr_grp_log_id NUMBER;
29 l_array_counter NUMBER;
30 l_txn_tbl csi_datastructures_pub.transaction_tbl;
31 l_ctr_rdg_tbl csi_ctr_datastructures_pub.counter_readings_tbl;
32 --
33 l_ctr_prop_rdg_tbl csi_ctr_datastructures_pub.ctr_property_readings_tbl;
34 --
35 l_counter_id NUMBER;
36 l_rdg_count NUMBER := 0;
37 l_prop_rdg_count NUMBER := 0;
38 l_msg_index NUMBER;
39 l_msg_count NUMBER;
40 l_empty_txn VARCHAR2(1);
41 l_src_obj_code CSI_COUNTER_ASSOCIATIONS.source_object_code%TYPE;
42 l_src_obj_id NUMBER;
43
44 BEGIN
45 -- Standard Start of API savepoint
46 SAVEPOINT CS_CTR_CAPTURE_READING_PUB;
47 -- Standard call to check for call compatibility.
48 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
49 p_api_version_number,
50 l_api_name,
51 G_PKG_NAME)
52 THEN
53 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
54 END IF;
55 --
56 x_return_status := FND_API.G_RET_STS_SUCCESS;
57 --
58 IF p_ctr_rdg_tbl.count = 0 THEN
59 x_return_status := FND_API.G_RET_STS_ERROR ;
60 csi_ctr_gen_utility_pvt.put_line('No Counter Readings captured...');
61 Return;
62 END IF;
63 --
64 IF NVL(p_ctr_grp_log_rec.source_transaction_code,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
65 IF p_ctr_grp_log_rec.source_transaction_code in ('CP','INTERNAL') THEN
66 l_txn_tbl(1).transaction_type_id := 80;
67 ELSIF p_ctr_grp_log_rec.source_transaction_code = 'CONTRACT_LINE' THEN
68 l_txn_tbl(1).transaction_type_id := 81;
69 ELSIF p_ctr_grp_log_rec.source_transaction_code = 'OKL_CNTR_GRP' THEN
70 l_txn_tbl(1).transaction_type_id := 85;
71 ELSIF p_ctr_grp_log_rec.source_transaction_code = 'FS' THEN
72 l_txn_tbl(1).transaction_type_id := 86;
73 ELSIF p_ctr_grp_log_rec.source_transaction_code = 'DR' THEN
74 l_txn_tbl(1).transaction_type_id := 87;
75 ELSE
76 csi_ctr_gen_utility_pvt.put_line('Invalid Source Transaction Code : '||p_ctr_grp_log_rec.source_transaction_code);
77 csi_ctr_gen_utility_pvt.ExitWithErrMsg('CS_API_CTR_SRC_TXN_INFO_REQD');
78 END IF;
79 --
80 l_txn_tbl(1).source_header_ref_id := p_CTR_GRP_LOG_Rec.source_transaction_id;
81 l_txn_tbl(1).source_transaction_date := sysdate;
82 l_txn_tbl(1).ATTRIBUTE1 := p_CTR_GRP_LOG_Rec.ATTRIBUTE1;
83 l_txn_tbl(1).ATTRIBUTE2 := p_CTR_GRP_LOG_Rec.ATTRIBUTE2;
84 l_txn_tbl(1).ATTRIBUTE3 := p_CTR_GRP_LOG_Rec.ATTRIBUTE3;
85 l_txn_tbl(1).ATTRIBUTE4 := p_CTR_GRP_LOG_Rec.ATTRIBUTE4;
86 l_txn_tbl(1).ATTRIBUTE5 := p_CTR_GRP_LOG_Rec.ATTRIBUTE5;
87 l_txn_tbl(1).ATTRIBUTE6 := p_CTR_GRP_LOG_Rec.ATTRIBUTE6;
88 l_txn_tbl(1).ATTRIBUTE7 := p_CTR_GRP_LOG_Rec.ATTRIBUTE7;
89 l_txn_tbl(1).ATTRIBUTE8 := p_CTR_GRP_LOG_Rec.ATTRIBUTE8;
90 l_txn_tbl(1).ATTRIBUTE9 := p_CTR_GRP_LOG_Rec.ATTRIBUTE9;
91 l_txn_tbl(1).ATTRIBUTE10 := p_CTR_GRP_LOG_Rec.ATTRIBUTE10;
92 l_txn_tbl(1).ATTRIBUTE11 := p_CTR_GRP_LOG_Rec.ATTRIBUTE11;
93 l_txn_tbl(1).ATTRIBUTE12 := p_CTR_GRP_LOG_Rec.ATTRIBUTE12;
94 l_txn_tbl(1).ATTRIBUTE13 := p_CTR_GRP_LOG_Rec.ATTRIBUTE13;
95 l_txn_tbl(1).ATTRIBUTE14 := p_CTR_GRP_LOG_Rec.ATTRIBUTE14;
96 l_txn_tbl(1).ATTRIBUTE15 := p_CTR_GRP_LOG_Rec.ATTRIBUTE15;
97 l_txn_tbl(1).CONTEXT := p_CTR_GRP_LOG_Rec.CONTEXT;
98 l_empty_txn := 'N';
99 ELSE
100 l_txn_tbl.DELETE;
101 l_empty_txn := 'Y';
102 END IF; -- Group Log Source Txn code check
103 --
104 l_array_counter := p_CTR_RDG_Tbl.First;
105 WHILE p_ctr_rdg_tbl.EXISTS(l_array_counter) LOOP
106 l_rdg_count := l_rdg_count + 1;
107 l_ctr_rdg_tbl(l_rdg_count).COUNTER_VALUE_ID := p_ctr_rdg_tbl(l_array_counter).counter_value_id;
108 l_ctr_rdg_tbl(l_rdg_count).COUNTER_ID := p_ctr_rdg_tbl(l_array_counter).counter_id;
109 l_ctr_rdg_tbl(l_rdg_count).VALUE_TIMESTAMP := p_ctr_rdg_tbl(l_array_counter).VALUE_TIMESTAMP;
110 l_ctr_rdg_tbl(l_rdg_count).COUNTER_READING := p_ctr_rdg_tbl(l_array_counter).COUNTER_READING ;
111 --
112 IF NVL(p_ctr_rdg_tbl(l_array_counter).RESET_FLAG,'N') = 'Y' THEN
113 l_ctr_rdg_tbl(l_rdg_count).RESET_MODE := 'SOFT';
114 ELSE
115 l_ctr_rdg_tbl(l_rdg_count).RESET_MODE := NULL;
116 END IF;
117 --
118 l_ctr_rdg_tbl(l_rdg_count).RESET_REASON := p_ctr_rdg_tbl(l_array_counter).RESET_REASON;
119 l_ctr_rdg_tbl(l_rdg_count).RESET_COUNTER_READING :=p_ctr_rdg_tbl(l_array_counter).POST_RESET_FIRST_RDG;
120 l_ctr_rdg_tbl(l_rdg_count).ADJUSTMENT_TYPE := p_ctr_rdg_tbl(l_array_counter).MISC_READING_TYPE;
121 l_ctr_rdg_tbl(l_rdg_count).ADJUSTMENT_READING := p_ctr_rdg_tbl(l_array_counter).MISC_READING ;
122 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE1 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE1;
123 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE2 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE2;
124 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE3 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE3;
125 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE4 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE4;
126 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE5 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE5;
127 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE6 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE6;
128 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE7 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE7;
129 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE8 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE8;
130 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE9 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE9;
131 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE10 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE10;
132 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE11 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE11;
133 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE12 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE12;
134 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE13 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE13;
135 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE14 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE14;
136 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE15 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE15;
137 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE_CATEGORY := p_ctr_rdg_tbl(l_array_counter).CONTEXT;
138 l_ctr_rdg_tbl(l_rdg_count).COMMENTS := p_ctr_rdg_tbl(l_array_counter).COMMENTS;
139 l_ctr_rdg_tbl(l_rdg_count).DISABLED_FLAG := p_ctr_rdg_tbl(l_array_counter).OVERRIDE_VALID_FLAG;
140 --
141 IF l_empty_txn = 'N' THEN
142 l_ctr_rdg_tbl(l_rdg_count).PARENT_TBL_INDEX := 1; -- Grouped against single transaction
143 ELSE -- No Group Log provided. So, using the counter info to create Transaction
144 Begin
145 select source_object_code,source_object_id
146 into l_src_obj_code,l_src_obj_id
147 from CSI_COUNTER_ASSOCIATIONS
148 where counter_id = p_ctr_rdg_tbl(l_array_counter).counter_id
149 and rownum < 2;
150 --
151 l_txn_tbl(l_rdg_count).source_transaction_date := sysdate;
152 l_txn_tbl(l_rdg_count).source_header_ref_id := l_src_obj_id;
153 IF l_src_obj_code = 'CP' THEN
154 l_txn_tbl(l_rdg_count).transaction_type_id := 80;
155 ELSIF l_src_obj_code = 'CONTRACT_LINE' THEN
156 l_txn_tbl(l_rdg_count).transaction_type_id := 81;
157 ELSE
158 csi_ctr_gen_utility_pvt.put_line('Unable to get Source Txn Code from Counter Associations..');
159 csi_ctr_gen_utility_pvt.ExitWithErrMsg('CS_API_CTR_SRC_TXN_INFO_REQD');
160 END IF;
161 Exception
162 When no_data_found then
163 csi_ctr_gen_utility_pvt.ExitWithErrMsg('CSI_API_CTR_INVALID');
164 End;
165 l_ctr_rdg_tbl(l_rdg_count).PARENT_TBL_INDEX := l_rdg_count;
166 END IF;
167 --
168 l_array_counter := p_ctr_rdg_tbl.NEXT(l_array_counter);
169 END LOOP;
170 --
171 IF p_prop_rdg_tbl.count > 0 THEN
172 l_array_counter := p_prop_rdg_tbl.First;
173 WHILE p_prop_rdg_tbl.EXISTS(l_array_counter) LOOP
174 l_prop_rdg_count := l_prop_rdg_count + 1; --Put here for 8441477
175 l_ctr_prop_rdg_tbl(l_prop_rdg_count).parent_tbl_index := NULL;
176 --l_prop_rdg_count := l_prop_rdg_count + 1; --Commented for bug 8441477
177 -- Property should be valid and belong to one of the counters captured above
178 Begin
179 select counter_id
180 into l_counter_id
181 from CSI_COUNTER_PROPERTIES_B
182 where counter_property_id = p_prop_rdg_tbl(l_array_counter).counter_property_id;
183 Exception
184 when no_data_found then
185 csi_ctr_gen_utility_pvt.put_line('Counter Property is Invalid or Expired...');
186 csi_ctr_gen_utility_pvt.ExitWithErrMsg('CSI_API_CTR_PROP_INVALID');
187 End;
188 --
189 FOR j IN l_ctr_rdg_tbl.FIRST .. l_ctr_rdg_tbl.LAST LOOP
190 IF l_ctr_rdg_tbl(j).counter_id = l_counter_id THEN
191 l_ctr_prop_rdg_tbl(l_prop_rdg_count).parent_tbl_index := j;
192 l_ctr_prop_rdg_tbl(l_prop_rdg_count).VALUE_TIMESTAMP := l_ctr_rdg_tbl(j).VALUE_TIMESTAMP;
193 exit;
194 END IF;
195 END LOOP;
196 --
197 IF l_ctr_prop_rdg_tbl(l_prop_rdg_count).parent_tbl_index IS NULL THEN
198 csi_ctr_gen_utility_pvt.ExitWithErrMsg('CSI_API_CTR_PROP_INVALID');
199 END IF;
200 --
201 l_ctr_prop_rdg_tbl(l_prop_rdg_count).COUNTER_PROP_VALUE_ID := p_prop_rdg_tbl(l_array_counter).counter_prop_value_id;
202 l_ctr_prop_rdg_tbl(l_prop_rdg_count).COUNTER_PROPERTY_ID := p_prop_rdg_tbl(l_array_counter).counter_property_id;
203 l_ctr_prop_rdg_tbl(l_prop_rdg_count).PROPERTY_VALUE := p_prop_rdg_tbl(l_array_counter).PROPERTY_VALUE ;
204 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE1 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE1;
205 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE2 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE2;
206 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE3 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE3;
207 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE4 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE4;
208 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE5 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE5;
209 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE6 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE6;
210 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE7 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE7;
211 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE8 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE8;
212 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE9 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE9;
213 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE10 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE10;
214 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE11 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE11;
215 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE12 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE12;
216 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE13 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE13;
217 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE14 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE14;
218 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE15 := p_prop_rdg_tbl(l_array_counter).ATTRIBUTE15;
219 l_ctr_prop_rdg_tbl(l_prop_rdg_count).ATTRIBUTE_CATEGORY := p_prop_rdg_tbl(l_array_counter).CONTEXT;
220 l_array_counter := p_prop_rdg_tbl.NEXT(l_array_counter);
221 END LOOP;
222 END IF;
223 --
224 -- Call CSI Capture Counter Reading API
225 Csi_Counter_Readings_Pub.Capture_Counter_Reading
226 (
227 p_api_version => 1.0
228 ,p_commit => p_commit
229 ,p_init_msg_list => p_init_msg_list
230 ,p_validation_level => p_validation_level
231 ,p_txn_tbl => l_txn_tbl
232 ,p_ctr_rdg_tbl => l_ctr_rdg_tbl
233 ,p_ctr_prop_rdg_tbl => l_ctr_prop_rdg_tbl
234 ,x_return_status => x_return_status
235 ,x_msg_count => x_msg_count
236 ,x_msg_data => x_msg_data
237 );
238 --
239 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
240 csi_ctr_gen_utility_pvt.put_line('ERROR FROM Capture_Counter_Reading_pub API ');
241 l_msg_index := 1;
242 l_msg_count := x_msg_count;
243 WHILE l_msg_count > 0 LOOP
244 x_msg_data := FND_MSG_PUB.GET
245 ( l_msg_index,
246 FND_API.G_FALSE
247 );
248 csi_ctr_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
249 l_msg_index := l_msg_index + 1;
250 l_msg_count := l_msg_count - 1;
251 END LOOP;
252 RAISE FND_API.G_EXC_ERROR;
253 END IF;
254 --
255 -- End of API body
256 --
257 -- Standard check for p_commit
258 IF FND_API.to_Boolean( p_commit )
259 THEN
260 COMMIT WORK;
261 END IF;
262 -- Standard call to get message count and if count is 1, get message info.
263 FND_MSG_PUB.Count_And_Get
264 ( p_count => x_msg_count,
265 p_data => x_msg_data
266 );
267 EXCEPTION
268 WHEN FND_API.G_EXC_ERROR THEN
269 ROLLBACK TO CS_CTR_CAPTURE_READING_PUB;
270 x_return_status := FND_API.G_RET_STS_ERROR ;
271 FND_MSG_PUB.Count_And_Get
272 (p_count => x_msg_count ,
273 p_data => x_msg_data
274 );
275 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
276 ROLLBACK TO CS_CTR_CAPTURE_READING_PUB;
277 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
278 FND_MSG_PUB.Count_And_Get
279 (p_count => x_msg_count ,
280 p_data => x_msg_data
281 );
282 WHEN OTHERS THEN
283 ROLLBACK TO CS_CTR_CAPTURE_READING_PUB;
284 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
285 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
286 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
287 END IF;
288 FND_MSG_PUB.Count_And_Get
289 (p_count => x_msg_count ,
290 p_data => x_msg_data
291 );
292 END Capture_Counter_Reading;
293
294 PROCEDURE Update_Counter_Reading(
295 P_Api_Version_Number IN NUMBER,
296 P_Init_Msg_List IN VARCHAR2,
297 P_Commit IN VARCHAR2,
298 p_validation_level IN NUMBER,
299 p_CTR_GRP_LOG_ID IN NUMBER,
300 p_CTR_RDG_Tbl IN CTR_RDG_Tbl_Type,
301 p_PROP_RDG_Tbl IN PROP_RDG_Tbl_Type,
305 )
302 X_Return_Status OUT NOCOPY VARCHAR2,
303 X_Msg_Count OUT NOCOPY NUMBER,
304 X_Msg_Data OUT NOCOPY VARCHAR2
306 IS
307 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_COUNTER_READING';
308 l_api_version_number CONSTANT NUMBER := 1.0;
309 l_return_status_full VARCHAR2(1);
310 l_s_temp VARCHAR2(100);
311 l_ctr_grp_log_id NUMBER;
312 l_array_counter NUMBER;
313 l_ctr_rdg_tbl csi_ctr_datastructures_pub.counter_readings_tbl;
314 --
315 l_rdg_count NUMBER := 0;
316 l_msg_index NUMBER;
317 l_msg_count NUMBER;
318 BEGIN
319 -- Standard Start of API savepoint
320 SAVEPOINT CS_CTR_CAPTURE_READING_PUB;
321 -- Standard call to check for call compatibility.
322 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
323 p_api_version_number,
324 l_api_name,
325 G_PKG_NAME)
326 THEN
327 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
328 END IF;
329 --
330 x_return_status := FND_API.G_RET_STS_SUCCESS;
331 --
332 -- API body
333 --
334 IF p_ctr_rdg_tbl.count > 0 THEN
335 l_array_counter := p_ctr_rdg_tbl.First;
336 WHILE p_ctr_rdg_tbl.EXISTS(l_array_counter) LOOP
337 l_rdg_count := l_rdg_count + 1;
338 l_ctr_rdg_tbl(l_rdg_count).COUNTER_VALUE_ID := p_ctr_rdg_tbl(l_array_counter).counter_value_id;
339 l_ctr_rdg_tbl(l_rdg_count).COUNTER_ID := p_ctr_rdg_tbl(l_array_counter).counter_id;
340 l_ctr_rdg_tbl(l_rdg_count).VALUE_TIMESTAMP := p_ctr_rdg_tbl(l_array_counter).VALUE_TIMESTAMP;
341 l_ctr_rdg_tbl(l_rdg_count).COUNTER_READING := p_ctr_rdg_tbl(l_array_counter).COUNTER_READING ;
342 --
343 IF NVL(p_ctr_rdg_tbl(l_array_counter).RESET_FLAG,'N') = 'Y' THEN
344 l_ctr_rdg_tbl(l_rdg_count).RESET_MODE := 'SOFT';
345 ELSE
346 l_ctr_rdg_tbl(l_rdg_count).RESET_MODE := NULL;
347 END IF;
348 --
349 l_ctr_rdg_tbl(l_rdg_count).RESET_REASON := p_ctr_rdg_tbl(l_array_counter).RESET_REASON;
350 l_ctr_rdg_tbl(l_rdg_count).COUNTER_READING := p_ctr_rdg_tbl(l_array_counter).PRE_RESET_LAST_RDG;
351 l_ctr_rdg_tbl(l_rdg_count).RESET_COUNTER_READING :=p_ctr_rdg_tbl(l_array_counter).POST_RESET_FIRST_RDG;
352 l_ctr_rdg_tbl(l_rdg_count).ADJUSTMENT_TYPE := p_ctr_rdg_tbl(l_array_counter).MISC_READING_TYPE;
353 l_ctr_rdg_tbl(l_rdg_count).ADJUSTMENT_READING := p_ctr_rdg_tbl(l_array_counter).MISC_READING ;
354 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE1 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE1;
355 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE2 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE2;
356 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE3 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE3;
357 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE4 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE4;
358 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE5 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE5;
359 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE6 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE6;
360 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE7 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE7;
361 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE8 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE8;
362 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE9 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE9;
363 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE10 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE10;
364 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE11 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE11;
365 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE12 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE12;
366 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE13 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE13;
367 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE14 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE14;
368 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE15 := p_ctr_rdg_tbl(l_array_counter).ATTRIBUTE15;
369 l_ctr_rdg_tbl(l_rdg_count).ATTRIBUTE_CATEGORY := p_ctr_rdg_tbl(l_array_counter).CONTEXT;
370 l_ctr_rdg_tbl(l_rdg_count).COMMENTS := p_ctr_rdg_tbl(l_array_counter).COMMENTS;
371 l_ctr_rdg_tbl(l_rdg_count).DISABLED_FLAG := p_ctr_rdg_tbl(l_array_counter).OVERRIDE_VALID_FLAG;
372 --
373 l_array_counter := p_ctr_rdg_tbl.NEXT(l_array_counter);
374 END LOOP;
375 --
376 -- Call CSI Update Counter Reading API
377 Csi_Counter_Readings_Pub.Update_Counter_Reading
378 (
379 p_api_version => 1.0
380 ,p_commit => p_commit
381 ,p_init_msg_list => p_init_msg_list
382 ,p_validation_level => p_validation_level
383 ,p_ctr_rdg_tbl => l_ctr_rdg_tbl
384 ,x_return_status => x_return_status
385 ,x_msg_count => x_msg_count
386 ,x_msg_data => x_msg_data
387 );
388 --
389 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
390 csi_ctr_gen_utility_pvt.put_line('ERROR FROM Update_Counter_Reading_pub API ');
391 l_msg_index := 1;
392 l_msg_count := x_msg_count;
393 WHILE l_msg_count > 0 LOOP
394 x_msg_data := FND_MSG_PUB.GET
395 ( l_msg_index,
396 FND_API.G_FALSE
397 );
398 csi_ctr_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
399 l_msg_index := l_msg_index + 1;
400 l_msg_count := l_msg_count - 1;
401 END LOOP;
402 RAISE FND_API.G_EXC_ERROR;
403 END IF;
404 END IF;
405 --
406 -- Standard check for p_commit
407 IF FND_API.to_Boolean( p_commit )
408 THEN
409 COMMIT WORK;
410 END IF;
411 -- Standard call to get message count and if count is 1, get message info.
412 FND_MSG_PUB.Count_And_Get
413 ( p_count => x_msg_count,
414 p_data => x_msg_data
415 );
416 EXCEPTION
417 WHEN FND_API.G_EXC_ERROR THEN
418 ROLLBACK TO CS_CTR_CAPTURE_READING_PUB;
419 x_return_status := FND_API.G_RET_STS_ERROR ;
420 FND_MSG_PUB.Count_And_Get
424 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
421 (p_count => x_msg_count ,
422 p_data => x_msg_data
423 );
425 ROLLBACK TO CS_CTR_CAPTURE_READING_PUB;
426 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
427 FND_MSG_PUB.Count_And_Get
428 (p_count => x_msg_count ,
429 p_data => x_msg_data
430 );
431 WHEN OTHERS THEN
432 ROLLBACK TO CS_CTR_CAPTURE_READING_PUB;
433 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
434 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
435 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
436 END IF;
437 FND_MSG_PUB.Count_And_Get
438 (p_count => x_msg_count ,
439 p_data => x_msg_data
440 );
441 END Update_Counter_Reading;
442
443 PROCEDURE CAPTURE_COUNTER_READING(
444 P_Api_Version_Number IN NUMBER,
445 P_Init_Msg_List IN VARCHAR2,
446 P_Commit IN VARCHAR2,
447 p_validation_level IN NUMBER,
448 p_CTR_RDG_Rec IN CTR_RDG_Rec_Type,
449 p_COUNTER_GRP_LOG_ID IN NUMBER,
450 X_Return_Status OUT NOCOPY VARCHAR2,
451 X_Msg_Count OUT NOCOPY NUMBER,
452 X_Msg_Data OUT NOCOPY VARCHAR2
453 ) IS
454 l_api_name CONSTANT VARCHAR2(30) := 'CAPTURE_COUNTER_READING';
455 l_api_version_number CONSTANT NUMBER := 1.0;
456 l_txn_tbl csi_datastructures_pub.transaction_tbl;
457 l_ctr_rdg_tbl csi_ctr_datastructures_pub.counter_readings_tbl;
458 l_ctr_prop_rdg_tbl csi_ctr_datastructures_pub.ctr_property_readings_tbl;
459 l_src_obj_code CSI_COUNTER_ASSOCIATIONS.source_object_code%TYPE;
460 l_src_obj_id NUMBER;
461 --
462 l_rdg_count NUMBER := 0;
463 l_msg_index NUMBER;
464 l_msg_count NUMBER;
465 BEGIN
466 -- Standard Start of API savepoint
467 SAVEPOINT CS_CTR_CAPTURE_READING_PUB;
468 -- Standard call to check for call compatibility.
469 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
470 p_api_version_number,
471 l_api_name,
472 G_PKG_NAME)
473 THEN
474 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
475 END IF;
476 --
477 x_return_status := FND_API.G_RET_STS_SUCCESS;
478 --
479 IF p_counter_grp_log_id IS NULL THEN
480 Begin
481 select source_object_code,source_object_id
482 into l_src_obj_code,l_src_obj_id
483 from CSI_COUNTER_ASSOCIATIONS
484 where counter_id = p_ctr_rdg_rec.counter_id
485 and rownum < 2;
486 --
487 l_txn_tbl(1).source_transaction_date := sysdate;
488 l_txn_tbl(1).source_header_ref_id := l_src_obj_id;
489 IF l_src_obj_code = 'CP' THEN
490 l_txn_tbl(1).transaction_type_id := 80;
491 ELSIF l_src_obj_code = 'CONTRACT_LINE' THEN
492 l_txn_tbl(1).transaction_type_id := 81;
493 ELSE
494 csi_ctr_gen_utility_pvt.put_line('Unable to get Source Txn Code from Counter Associations..');
495 csi_ctr_gen_utility_pvt.ExitWithErrMsg('CS_API_CTR_SRC_TXN_INFO_REQD');
496 END IF;
497 Exception
498 When no_data_found then
499 csi_ctr_gen_utility_pvt.ExitWithErrMsg('CSI_API_CTR_INVALID');
500 End;
501 ELSE -- Should have got inserted into CSI Transaction during Pre Capture Phase
502 Begin
503 select transaction_type_id,source_header_ref_id,source_transaction_date
504 into l_txn_tbl(1).transaction_type_id,
505 l_txn_tbl(1).source_header_ref_id,
506 l_txn_tbl(1).source_transaction_date
507 from CSI_TRANSACTIONS
508 where transaction_id = p_counter_grp_log_id;
509 Exception
510 when no_data_found then
511 csi_ctr_gen_utility_pvt.put_line('Counter Group Log passed did not get into CSI_TRANSACTIONS..');
512 csi_ctr_gen_utility_pvt.ExitWithErrMsg
513 ( p_msg_name => 'CSI_INVALID_TXN_ID',
514 p_token1_name => 'transaction_id',
515 p_token1_val => to_char(p_counter_grp_log_id)
516 );
517 End;
518 END IF;
519 --
520 l_ctr_rdg_tbl(1).COUNTER_VALUE_ID := p_ctr_rdg_rec.counter_value_id;
521 l_ctr_rdg_tbl(1).COUNTER_ID := p_ctr_rdg_rec.counter_id;
522 l_ctr_rdg_tbl(1).VALUE_TIMESTAMP := p_ctr_rdg_rec.VALUE_TIMESTAMP;
523 l_ctr_rdg_tbl(1).COUNTER_READING := p_ctr_rdg_rec.COUNTER_READING ;
524 --
525 IF NVL(p_ctr_rdg_rec.RESET_FLAG,'N') = 'Y' THEN
526 l_ctr_rdg_tbl(1).RESET_MODE := 'SOFT';
527 ELSE
528 l_ctr_rdg_tbl(1).RESET_MODE := NULL;
529 END IF;
530 --
531 l_ctr_rdg_tbl(1).RESET_REASON := p_ctr_rdg_rec.RESET_REASON;
532 l_ctr_rdg_tbl(1).COUNTER_READING := p_ctr_rdg_rec.PRE_RESET_LAST_RDG;
533 l_ctr_rdg_tbl(1).RESET_COUNTER_READING :=p_ctr_rdg_rec.POST_RESET_FIRST_RDG;
534 l_ctr_rdg_tbl(1).ADJUSTMENT_TYPE := p_ctr_rdg_rec.MISC_READING_TYPE;
535 l_ctr_rdg_tbl(1).ADJUSTMENT_READING := p_ctr_rdg_rec.MISC_READING ;
536 l_ctr_rdg_tbl(1).ATTRIBUTE1 := p_ctr_rdg_rec.ATTRIBUTE1;
537 l_ctr_rdg_tbl(1).ATTRIBUTE2 := p_ctr_rdg_rec.ATTRIBUTE2;
538 l_ctr_rdg_tbl(1).ATTRIBUTE3 := p_ctr_rdg_rec.ATTRIBUTE3;
539 l_ctr_rdg_tbl(1).ATTRIBUTE4 := p_ctr_rdg_rec.ATTRIBUTE4;
540 l_ctr_rdg_tbl(1).ATTRIBUTE5 := p_ctr_rdg_rec.ATTRIBUTE5;
541 l_ctr_rdg_tbl(1).ATTRIBUTE6 := p_ctr_rdg_rec.ATTRIBUTE6;
542 l_ctr_rdg_tbl(1).ATTRIBUTE7 := p_ctr_rdg_rec.ATTRIBUTE7;
543 l_ctr_rdg_tbl(1).ATTRIBUTE8 := p_ctr_rdg_rec.ATTRIBUTE8;
544 l_ctr_rdg_tbl(1).ATTRIBUTE9 := p_ctr_rdg_rec.ATTRIBUTE9;
545 l_ctr_rdg_tbl(1).ATTRIBUTE10 := p_ctr_rdg_rec.ATTRIBUTE10;
546 l_ctr_rdg_tbl(1).ATTRIBUTE11 := p_ctr_rdg_rec.ATTRIBUTE11;
550 l_ctr_rdg_tbl(1).ATTRIBUTE15 := p_ctr_rdg_rec.ATTRIBUTE15;
547 l_ctr_rdg_tbl(1).ATTRIBUTE12 := p_ctr_rdg_rec.ATTRIBUTE12;
548 l_ctr_rdg_tbl(1).ATTRIBUTE13 := p_ctr_rdg_rec.ATTRIBUTE13;
549 l_ctr_rdg_tbl(1).ATTRIBUTE14 := p_ctr_rdg_rec.ATTRIBUTE14;
551 l_ctr_rdg_tbl(1).ATTRIBUTE_CATEGORY := p_ctr_rdg_rec.CONTEXT;
552 l_ctr_rdg_tbl(1).COMMENTS := p_ctr_rdg_rec.COMMENTS;
553 l_ctr_rdg_tbl(1).DISABLED_FLAG := p_ctr_rdg_rec.OVERRIDE_VALID_FLAG;
554 l_ctr_rdg_tbl(1).PARENT_TBL_INDEX := 1; -- Grouped against single transaction
555 --
556 -- Call CSI Capture Counter Reading API
557 Csi_Counter_Readings_Pub.Capture_Counter_Reading
558 (
559 p_api_version => 1.0
560 ,p_commit => p_commit
561 ,p_init_msg_list => p_init_msg_list
562 ,p_validation_level => p_validation_level
563 ,p_txn_tbl => l_txn_tbl
564 ,p_ctr_rdg_tbl => l_ctr_rdg_tbl
565 ,p_ctr_prop_rdg_tbl => l_ctr_prop_rdg_tbl
566 ,x_return_status => x_return_status
567 ,x_msg_count => x_msg_count
568 ,x_msg_data => x_msg_data
569 );
570 --
571 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
572 csi_ctr_gen_utility_pvt.put_line('ERROR FROM Capture_Counter_Reading_pub API ');
573 l_msg_index := 1;
574 l_msg_count := x_msg_count;
575 WHILE l_msg_count > 0 LOOP
576 x_msg_data := FND_MSG_PUB.GET
577 ( l_msg_index,
578 FND_API.G_FALSE
579 );
580 csi_ctr_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
581 l_msg_index := l_msg_index + 1;
582 l_msg_count := l_msg_count - 1;
583 END LOOP;
584 RAISE FND_API.G_EXC_ERROR;
585 END IF;
586 --
587 -- End of API body
588 --
589 -- Standard check for p_commit
590 IF FND_API.to_Boolean( p_commit )
591 THEN
592 COMMIT WORK;
593 END IF;
594 -- Standard call to get message count and if count is 1, get message info.
595 FND_MSG_PUB.Count_And_Get
596 ( p_count => x_msg_count,
597 p_data => x_msg_data
598 );
599 EXCEPTION
600 WHEN FND_API.G_EXC_ERROR THEN
601 ROLLBACK TO CS_CTR_CAPTURE_READING_PUB;
602 x_return_status := FND_API.G_RET_STS_ERROR ;
603 FND_MSG_PUB.Count_And_Get
604 (p_count => x_msg_count ,
605 p_data => x_msg_data
606 );
607 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
608 ROLLBACK TO CS_CTR_CAPTURE_READING_PUB;
609 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
610 FND_MSG_PUB.Count_And_Get
611 (p_count => x_msg_count ,
612 p_data => x_msg_data
613 );
614 WHEN OTHERS THEN
615 ROLLBACK TO CS_CTR_CAPTURE_READING_PUB;
616 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
617 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
618 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
619 END IF;
620 FND_MSG_PUB.Count_And_Get
621 (p_count => x_msg_count ,
622 p_data => x_msg_data
623 );
624 END Capture_Counter_Reading;
625
626 PROCEDURE Update_Counter_Reading(
627 p_Api_Version_Number IN NUMBER,
628 P_Init_Msg_List IN VARCHAR2,
629 P_Commit IN VARCHAR2,
630 p_validation_level IN NUMBER,
631 p_CTR_RDG_Rec IN CTR_RDG_Rec_Type,
632 p_COUNTER_GRP_LOG_ID IN NUMBER,
633 p_object_version_number IN NUMBER,
634 X_Return_Status OUT NOCOPY VARCHAR2,
635 X_Msg_Count OUT NOCOPY NUMBER,
636 X_Msg_Data OUT NOCOPY VARCHAR2
637 ) IS
638 --
639 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_COUNTER_READING';
640 l_api_version_number CONSTANT NUMBER := 1.0;
641 l_ctr_rdg_tbl csi_ctr_datastructures_pub.counter_readings_tbl;
642 l_msg_index NUMBER;
643 l_msg_count NUMBER;
644 BEGIN
645 -- Standard Start of API savepoint
646 SAVEPOINT CS_CTR_CAPTURE_READING_PUB;
647 -- Standard call to check for call compatibility.
648 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
649 p_api_version_number,
650 l_api_name,
651 G_PKG_NAME)
652 THEN
653 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
654 END IF;
655 --
656 x_return_status := FND_API.G_RET_STS_SUCCESS;
657 --
658 -- API body
659 --
660 l_ctr_rdg_tbl(1).COUNTER_VALUE_ID := p_ctr_rdg_rec.counter_value_id;
661 l_ctr_rdg_tbl(1).COUNTER_ID := p_ctr_rdg_rec.counter_id;
662 l_ctr_rdg_tbl(1).VALUE_TIMESTAMP := p_ctr_rdg_rec.VALUE_TIMESTAMP;
663 l_ctr_rdg_tbl(1).COUNTER_READING := p_ctr_rdg_rec.COUNTER_READING ;
664 --
665 IF NVL(p_ctr_rdg_rec.RESET_FLAG,'N') = 'Y' THEN
666 l_ctr_rdg_tbl(1).RESET_MODE := 'SOFT';
667 ELSE
668 l_ctr_rdg_tbl(1).RESET_MODE := NULL;
669 END IF;
670 --
671 l_ctr_rdg_tbl(1).RESET_REASON := p_ctr_rdg_rec.RESET_REASON;
672 l_ctr_rdg_tbl(1).COUNTER_READING := p_ctr_rdg_rec.PRE_RESET_LAST_RDG;
673 l_ctr_rdg_tbl(1).RESET_COUNTER_READING :=p_ctr_rdg_rec.POST_RESET_FIRST_RDG;
674 l_ctr_rdg_tbl(1).ADJUSTMENT_TYPE := p_ctr_rdg_rec.MISC_READING_TYPE;
675 l_ctr_rdg_tbl(1).ADJUSTMENT_READING := p_ctr_rdg_rec.MISC_READING ;
676 l_ctr_rdg_tbl(1).ATTRIBUTE1 := p_ctr_rdg_rec.ATTRIBUTE1;
677 l_ctr_rdg_tbl(1).ATTRIBUTE2 := p_ctr_rdg_rec.ATTRIBUTE2;
678 l_ctr_rdg_tbl(1).ATTRIBUTE3 := p_ctr_rdg_rec.ATTRIBUTE3;
679 l_ctr_rdg_tbl(1).ATTRIBUTE4 := p_ctr_rdg_rec.ATTRIBUTE4;
683 l_ctr_rdg_tbl(1).ATTRIBUTE8 := p_ctr_rdg_rec.ATTRIBUTE8;
680 l_ctr_rdg_tbl(1).ATTRIBUTE5 := p_ctr_rdg_rec.ATTRIBUTE5;
681 l_ctr_rdg_tbl(1).ATTRIBUTE6 := p_ctr_rdg_rec.ATTRIBUTE6;
682 l_ctr_rdg_tbl(1).ATTRIBUTE7 := p_ctr_rdg_rec.ATTRIBUTE7;
684 l_ctr_rdg_tbl(1).ATTRIBUTE9 := p_ctr_rdg_rec.ATTRIBUTE9;
685 l_ctr_rdg_tbl(1).ATTRIBUTE10 := p_ctr_rdg_rec.ATTRIBUTE10;
686 l_ctr_rdg_tbl(1).ATTRIBUTE11 := p_ctr_rdg_rec.ATTRIBUTE11;
687 l_ctr_rdg_tbl(1).ATTRIBUTE12 := p_ctr_rdg_rec.ATTRIBUTE12;
688 l_ctr_rdg_tbl(1).ATTRIBUTE13 := p_ctr_rdg_rec.ATTRIBUTE13;
689 l_ctr_rdg_tbl(1).ATTRIBUTE14 := p_ctr_rdg_rec.ATTRIBUTE14;
690 l_ctr_rdg_tbl(1).ATTRIBUTE15 := p_ctr_rdg_rec.ATTRIBUTE15;
691 l_ctr_rdg_tbl(1).ATTRIBUTE_CATEGORY := p_ctr_rdg_rec.CONTEXT;
692 l_ctr_rdg_tbl(1).COMMENTS := p_ctr_rdg_rec.COMMENTS;
693 l_ctr_rdg_tbl(1).DISABLED_FLAG := p_ctr_rdg_rec.OVERRIDE_VALID_FLAG;
694 --
695 -- Call CSI Update Counter Reading API
696 Csi_Counter_Readings_Pub.Update_Counter_Reading
697 (
698 p_api_version => 1.0
699 ,p_commit => p_commit
700 ,p_init_msg_list => p_init_msg_list
701 ,p_validation_level => p_validation_level
702 ,p_ctr_rdg_tbl => l_ctr_rdg_tbl
703 ,x_return_status => x_return_status
704 ,x_msg_count => x_msg_count
705 ,x_msg_data => x_msg_data
706 );
707 --
708 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
709 csi_ctr_gen_utility_pvt.put_line('ERROR FROM Update_Counter_Reading_pub API ');
710 l_msg_index := 1;
711 l_msg_count := x_msg_count;
712 WHILE l_msg_count > 0 LOOP
713 x_msg_data := FND_MSG_PUB.GET
714 ( l_msg_index,
715 FND_API.G_FALSE
716 );
717 csi_ctr_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
718 l_msg_index := l_msg_index + 1;
719 l_msg_count := l_msg_count - 1;
720 END LOOP;
721 RAISE FND_API.G_EXC_ERROR;
722 END IF;
723 --
724 -- Standard check for p_commit
725 IF FND_API.to_Boolean( p_commit )
726 THEN
727 COMMIT WORK;
728 END IF;
729 -- Standard call to get message count and if count is 1, get message info.
730 FND_MSG_PUB.Count_And_Get
731 ( p_count => x_msg_count,
732 p_data => x_msg_data
733 );
734 EXCEPTION
735 WHEN FND_API.G_EXC_ERROR THEN
736 ROLLBACK TO CS_CTR_CAPTURE_READING_PUB;
737 x_return_status := FND_API.G_RET_STS_ERROR ;
738 FND_MSG_PUB.Count_And_Get
739 (p_count => x_msg_count ,
740 p_data => x_msg_data
741 );
742 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
743 ROLLBACK TO CS_CTR_CAPTURE_READING_PUB;
744 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
745 FND_MSG_PUB.Count_And_Get
746 (p_count => x_msg_count ,
747 p_data => x_msg_data
748 );
749 WHEN OTHERS THEN
750 ROLLBACK TO CS_CTR_CAPTURE_READING_PUB;
751 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
752 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
753 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
754 END IF;
755 FND_MSG_PUB.Count_And_Get
756 (p_count => x_msg_count ,
757 p_data => x_msg_data
758 );
759 END Update_Counter_Reading;
760
761
762 PROCEDURE Capture_Ctr_Prop_Reading(
763 p_Api_version_number IN NUMBER,
764 p_Init_Msg_List IN VARCHAR2,
765 P_Commit IN VARCHAR2,
766 p_validation_level IN NUMBER,
767 p_PROP_RDG_Rec IN PROP_RDG_Rec_Type,
768 p_COUNTER_GRP_LOG_ID IN NUMBER,
769 X_Return_Status OUT NOCOPY VARCHAR2,
770 X_Msg_Count OUT NOCOPY NUMBER,
771 X_Msg_Data OUT NOCOPY VARCHAR2
772 ) IS
773 l_api_name CONSTANT VARCHAR2(30) := 'CAPTURE_CTR_PROP_READING';
774 l_api_version_number CONSTANT NUMBER := 1.0;
775 BEGIN
776 x_return_status := FND_API.G_RET_STS_SUCCESS;
777 END Capture_CTR_Prop_Reading;
778
779 PROCEDURE PRE_CAPTURE_CTR_READING(
780 P_Api_Version_Number IN NUMBER,
781 P_Init_Msg_List IN VARCHAR2,
782 P_Commit IN VARCHAR2,
783 p_validation_level IN NUMBER,
784 P_CTR_GRP_LOG_Rec IN CTR_GRP_LOG_Rec_Type,
785 X_COUNTER_GRP_LOG_ID IN OUT NOCOPY NUMBER,
786 X_Return_Status OUT NOCOPY VARCHAR2,
787 X_Msg_Count OUT NOCOPY NUMBER,
788 X_Msg_Data OUT NOCOPY VARCHAR2
789 ) IS
790 --
791 l_api_name CONSTANT VARCHAR2(30) := 'PRE_CAPTURE_COUNTER_READING';
792 l_api_version_number CONSTANT NUMBER := 1.0;
793 l_txn_rec csi_datastructures_pub.transaction_rec;
794 l_msg_data VARCHAR2(2000);
795 l_msg_index NUMBER;
796 l_msg_count NUMBER;
797 BEGIN
798 -- Standard Start of API savepoint
799 SAVEPOINT PRE_CAPTURE_READING_PUB;
800 -- Standard call to check for call compatibility.
801 IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
802 p_api_version_number,
803 l_api_name,
804 G_PKG_NAME)
805 THEN
806 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
807 END IF;
808 --
809 x_return_status := FND_API.G_RET_STS_SUCCESS;
810 --
811 csi_ctr_gen_utility_pvt.put_line('Inside PRE_CAPTURE_COUNTER_READING...');
812 csi_ctr_gen_utility_pvt.put_line('Source Transaction Code : '||p_ctr_grp_log_rec.source_transaction_code);
816 IF p_ctr_grp_log_rec.source_transaction_code in ('CP','INTERNAL') THEN
813 csi_ctr_gen_utility_pvt.put_line('Source Transaction ID : '||to_char(p_ctr_grp_log_rec.source_transaction_id));
814 --
815 IF NVL(p_ctr_grp_log_rec.source_transaction_code,FND_API.G_MISS_CHAR) <> FND_API.G_MISS_CHAR THEN
817 l_txn_rec.transaction_type_id := 80;
818 ELSIF p_ctr_grp_log_rec.source_transaction_code = 'CONTRACT_LINE' THEN
819 l_txn_rec.transaction_type_id := 81;
820 ELSIF p_ctr_grp_log_rec.source_transaction_code = 'OKL_CNTR_GRP' THEN
821 l_txn_rec.transaction_type_id := 85;
822 ELSIF p_ctr_grp_log_rec.source_transaction_code = 'FS' THEN
823 l_txn_rec.transaction_type_id := 86;
824 ELSIF p_ctr_grp_log_rec.source_transaction_code = 'DR' THEN
825 l_txn_rec.transaction_type_id := 87;
826 ELSE
827 csi_ctr_gen_utility_pvt.put_line('Invalid Source Transaction Code : '||p_ctr_grp_log_rec.source_transaction_code);
828 csi_ctr_gen_utility_pvt.ExitWithErrMsg('CS_API_CTR_SRC_TXN_INFO_REQD');
829 END IF;
830 --
831 l_txn_rec.source_header_ref_id := p_ctr_grp_log_rec.source_transaction_id;
832 l_txn_rec.source_transaction_date := sysdate;
833 l_txn_rec.ATTRIBUTE1 := p_CTR_GRP_LOG_Rec.ATTRIBUTE1;
834 l_txn_rec.ATTRIBUTE2 := p_CTR_GRP_LOG_Rec.ATTRIBUTE2;
835 l_txn_rec.ATTRIBUTE3 := p_CTR_GRP_LOG_Rec.ATTRIBUTE3;
836 l_txn_rec.ATTRIBUTE4 := p_CTR_GRP_LOG_Rec.ATTRIBUTE4;
837 l_txn_rec.ATTRIBUTE5 := p_CTR_GRP_LOG_Rec.ATTRIBUTE5;
838 l_txn_rec.ATTRIBUTE6 := p_CTR_GRP_LOG_Rec.ATTRIBUTE6;
839 l_txn_rec.ATTRIBUTE7 := p_CTR_GRP_LOG_Rec.ATTRIBUTE7;
840 l_txn_rec.ATTRIBUTE8 := p_CTR_GRP_LOG_Rec.ATTRIBUTE8;
841 l_txn_rec.ATTRIBUTE9 := p_CTR_GRP_LOG_Rec.ATTRIBUTE9;
842 l_txn_rec.ATTRIBUTE10 := p_CTR_GRP_LOG_Rec.ATTRIBUTE10;
843 l_txn_rec.ATTRIBUTE11 := p_CTR_GRP_LOG_Rec.ATTRIBUTE11;
844 l_txn_rec.ATTRIBUTE12 := p_CTR_GRP_LOG_Rec.ATTRIBUTE12;
845 l_txn_rec.ATTRIBUTE13 := p_CTR_GRP_LOG_Rec.ATTRIBUTE13;
846 l_txn_rec.ATTRIBUTE14 := p_CTR_GRP_LOG_Rec.ATTRIBUTE14;
847 l_txn_rec.ATTRIBUTE15 := p_CTR_GRP_LOG_Rec.ATTRIBUTE15;
848 l_txn_rec.CONTEXT := p_CTR_GRP_LOG_Rec.CONTEXT;
849 --
850 -- Call Create_Reading Transaction to insert into CSI_TRANSACTIONS
851 csi_ctr_gen_utility_pvt.put_line('Calling Create_Reading_Transaction...');
852 Csi_Counter_Readings_Pvt.Create_Reading_Transaction
853 ( p_api_version => 1.0
854 ,p_commit => fnd_api.g_false
855 ,p_init_msg_list => fnd_api.g_true
856 ,p_validation_level => fnd_api.g_valid_level_full
857 ,p_txn_rec => l_txn_rec
858 ,x_return_status => x_return_status
859 ,x_msg_count => x_msg_count
860 ,x_msg_data => x_msg_data
861 );
862 IF NOT(x_return_status = FND_API.G_RET_STS_SUCCESS) THEN
863 csi_ctr_gen_utility_pvt.put_line('Error from Create_Reading_Transaction...');
864 l_msg_index := 1;
865 FND_MSG_PUB.Count_And_Get
866 (p_count => x_msg_count,
867 p_data => x_msg_data
868 );
869 l_msg_count := x_msg_count;
870 WHILE l_msg_count > 0 LOOP
871 x_msg_data := FND_MSG_PUB.GET
872 ( l_msg_index,
873 FND_API.G_FALSE );
874 csi_ctr_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
875 l_msg_index := l_msg_index + 1;
876 l_msg_count := l_msg_count - 1;
877 END LOOP;
878 RAISE FND_API.G_EXC_ERROR;
879 ELSE -- Transaction created successfully
880 X_COUNTER_GRP_LOG_ID := l_txn_rec.transaction_id;
881 END IF;
882 ELSE
883 X_COUNTER_GRP_LOG_ID := NULL;
884 END IF;
885 --
886 -- End of API body
887 --
888 -- Standard check for p_commit
889 IF FND_API.to_Boolean( p_commit )
890 THEN
891 COMMIT WORK;
892 END IF;
893 -- Standard call to get message count and if count is 1, get message info.
894 FND_MSG_PUB.Count_And_Get
895 ( p_count => x_msg_count,
896 p_data => x_msg_data
897 );
898 EXCEPTION
899 WHEN FND_API.G_EXC_ERROR THEN
900 ROLLBACK TO PRE_CAPTURE_READING_PUB;
901 x_return_status := FND_API.G_RET_STS_ERROR ;
902 FND_MSG_PUB.Count_And_Get
903 (p_count => x_msg_count ,
904 p_data => x_msg_data
905 );
906 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
907 ROLLBACK TO PRE_CAPTURE_READING_PUB;
908 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
909 FND_MSG_PUB.Count_And_Get
910 (p_count => x_msg_count ,
911 p_data => x_msg_data
912 );
913 WHEN OTHERS THEN
914 ROLLBACK TO PRE_CAPTURE_READING_PUB;
915 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
916 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
917 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
918 END IF;
919 FND_MSG_PUB.Count_And_Get
920 (p_count => x_msg_count ,
921 p_data => x_msg_data
922 );
923 END PRE_CAPTURE_CTR_READING;
924 --
925 PROCEDURE POST_CAPTURE_CTR_READING(
926 P_Api_Version_Number IN NUMBER,
927 P_Init_Msg_List IN VARCHAR2,
928 P_Commit IN VARCHAR2,
929 p_validation_level IN NUMBER,
930 p_COUNTER_GRP_LOG_ID IN NUMBER,
931 P_READING_UPDATED IN VARCHAR2,
932 X_Return_Status OUT NOCOPY VARCHAR2,
933 X_Msg_Count OUT NOCOPY NUMBER,
934 X_Msg_Data OUT NOCOPY VARCHAR2
935 ) IS
936 BEGIN
937 x_return_status := FND_API.G_RET_STS_SUCCESS;
938 END POST_CAPTURE_CTR_READING;
939 --
940 PROCEDURE UPDATE_CTR_PROP_READING(
944 p_validation_level IN NUMBER,
941 p_api_version_number IN NUMBER,
942 p_init_msg_list IN VARCHAR2,
943 p_commit IN VARCHAR2,
945 p_PROP_RDG_Rec IN PROP_RDG_Rec_Type,
946 p_COUNTER_GRP_LOG_ID IN NUMBER,
947 p_object_version_number IN NUMBER,
948 X_Return_Status OUT NOCOPY VARCHAR2,
949 X_Msg_Count OUT NOCOPY NUMBER,
950 X_Msg_Data OUT NOCOPY VARCHAR2
951 ) IS
952 l_api_name CONSTANT VARCHAR2(30) := 'UPDATE_CTR_PROP_READING';
953 l_api_version_number CONSTANT NUMBER := 1.0;
954 BEGIN
955 x_return_status := FND_API.G_RET_STS_SUCCESS;
956 END Update_CTR_Prop_Reading;
957 END CS_CTR_CAPTURE_READING_PUB;