[Home] [Help]
PACKAGE BODY: APPS.EAM_METERREADING_PUB
Source
1 PACKAGE BODY EAM_METERREADING_PUB as
2 /* $Header: EAMPMTRB.pls 120.6 2006/03/02 21:56:10 mmaduska ship $ */
3
4 -- Start of comments
5 -- API name: EAM_MeterReading_PUB
6 -- Type : Public
7 -- Function: Create new meter reading; disable existing meter reading
8 -- Pre-reqs: None.
9 -- Version : Current version 1.0
10 -- End of comments
11
12 G_PKG_NAME CONSTANT VARCHAR2(30):='EAM_MeterReading_PUB';
13
14
15 -- Procedure for raising errors
16 PROCEDURE RAISE_ERROR (ERROR VARCHAR2)
17 IS
18 BEGIN
19 FND_MESSAGE.SET_NAME ('EAM', ERROR);
20 FND_MSG_PUB.ADD;
21 RAISE FND_API.G_EXC_ERROR;
22 END;
23
24
25 PROCEDURE check_wip_entity_id (p_wip_entity_id number , p_meter_id number)
26 IS
27 x_maintenance_object_id number;
28 l_count number;
29
30 l_api_name CONSTANT VARCHAR2(30) :='check_wip_entity_id';
31 l_module varchar2(200) ;
32
33 l_log_level CONSTANT NUMBER := fnd_log.g_current_runtime_level;
34 l_uLog CONSTANT BOOLEAN := fnd_log.level_unexpected >= l_log_level;
35 l_pLog CONSTANT BOOLEAN := l_uLog AND fnd_log.level_procedure >= l_log_level;
36 l_sLog CONSTANT BOOLEAN := l_pLog AND fnd_log.level_statement >= l_log_level;
37 BEGIN
38 IF (l_ulog) THEN
39 l_module := 'eam.plsql.'||g_pkg_name|| '.' || l_api_name;
40 END IF;
41
42 IF (l_plog) THEN
43 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
44 '==================== Entered EAM_MeterReading_PUB.check_wip_entity_id ====================');
45 END IF;
46
47 SELECT maintenance_object_id into x_maintenance_object_id
48 FROM wip_discrete_jobs
49 WHERE wip_entity_id = p_wip_entity_id
50 AND maintenance_object_type = 3;
51 IF (l_plog) THEN
52 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
53 'x_maintenance_object_id:'||x_maintenance_object_id);
54 END IF;
55
56
57 SELECT COUNT(1) into l_count
58 FROM csi_counter_associations csa,csi_counter_relationships ccr
59 WHERE
60 csa.source_object_id = x_maintenance_object_id
61 AND csa.counter_id = ccr.OBJECT_COUNTER_ID (+)
62 AND nvl(ccr.source_counter_id (+),csa.counter_id) = p_meter_id
63 and CCR.ACTIVE_END_DATE (+) >= sysdate ;
64
65 IF (l_plog) THEN
66 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
67 'l_count:'||l_count);
68 END IF;
69 IF l_count = 0 then
70 raise_error ('EAM_MTR_WO_INVALID'); -- Specified meter is invalid for this work order.
71 END IF;
72
73 IF (l_plog) THEN
74 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
75 '==================== Exiting from EAM_MeterReading_PUB.check_wip_entity_id ====================');
76 END IF;
77 EXCEPTION
78 WHEN no_data_found THEN
79 --Invalid work order
80 fnd_message.set_name('EAM', 'EAM_INVALID_PARAMETER');
81 fnd_message.set_token('NAME', 'WIP_ENTITY_ID :' || p_wip_entity_id);
82 fnd_msg_pub.add;
83 RAISE fnd_api.g_exc_error;
84 END;
85
86
87 PROCEDURE create_meter_reading
88 (
89 p_api_version IN number,
90 p_init_msg_list IN varchar2:=FND_API.G_FALSE,
91 p_commit IN varchar2:=FND_API.G_FALSE,
92 x_msg_count OUT NOCOPY number,
93 x_msg_data OUT NOCOPY varchar2,
94 x_return_status OUT NOCOPY varchar2,
95 p_meter_reading_rec IN Eam_MeterReading_PUB.Meter_Reading_Rec_Type,
96 p_ctr_property_readings_tbl IN EAM_MeterReading_PUB.Ctr_Property_readings_Tbl,
97 p_value_before_reset IN number:=NULL,
98 p_ignore_warnings IN varchar2 := 'Y',
99 x_meter_reading_id OUT NOCOPY number
100 )
101 IS
102 l_api_name CONSTANT varchar2(30) := 'create_meter_reading';
103 l_api_version CONSTANT number := 1.0;
104 l_current_reading_date date;
105 l_reset varchar2(1);
106 l_transaction varchar2(1) := 'N';
107 l_wip_entity_id number;
108 l_source_transaction_id number;
109 l_source_transaction_type_id number;
110 l_ctr_property_readings_tbl Csi_Ctr_Datastructures_PUB.Ctr_Property_Readings_Tbl;
111 l_ctr_rdg_tbl Csi_Ctr_Datastructures_PUB.Counter_Readings_Tbl;
112 l_csi_txn_tbl Csi_Datastructures_PUB.transaction_tbl;
113
114 l_module varchar2(200);
115
116 l_log_level CONSTANT NUMBER := fnd_log.g_current_runtime_level;
117 l_uLog CONSTANT BOOLEAN := fnd_log.level_unexpected >= l_log_level;
118 l_pLog CONSTANT BOOLEAN := l_uLog AND fnd_log.level_procedure >= l_log_level;
119 l_sLog CONSTANT BOOLEAN := l_pLog AND fnd_log.level_statement >= l_log_level;
120
121 BEGIN
122 -- Standard Start of API savepoint
123 SAVEPOINT create_meter_reading_Pub;
124 IF (l_ulog) THEN
125 l_module := 'eam.plsql.'||g_pkg_name|| '.' || l_api_name;
126 END IF;
127
128 IF (l_plog) THEN
129 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
130 '==================== Entered EAM_MeterReading_PUB.create_meter_reading ====================');
131 END IF;
132 -- Standard call to check for call compatibility.
133
134
135 IF NOT FND_API.Compatible_API_Call (l_api_version,
136 p_api_version,
137 l_api_name,
138 G_PKG_NAME )
139 THEN
140 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
141 END IF;
142
143
144 -- Initialize message list if p_init_msg_list is set to TRUE.
145 IF FND_API.to_Boolean( p_init_msg_list ) THEN
146 FND_MSG_PUB.initialize;
147 END IF;
148
149 -- Initialize API return status to success
150 x_return_status := FND_API.G_RET_STS_SUCCESS;
151
152 -- API body
153 l_ctr_property_readings_tbl.DELETE;
154 l_ctr_rdg_tbl.DELETE;
155 l_csi_txn_tbl.DELETE;
156
157 l_wip_entity_id := p_meter_reading_rec.wip_entity_id;
158 l_current_reading_date := p_meter_reading_rec.current_reading_date;
159 l_reset := p_meter_reading_rec.reset_flag;
160
161 -- Check if the asset for which the current work order is raised has the current counter associated to it.
162 IF l_wip_entity_id IS NOT NULL THEN
163 IF (l_plog) THEN
164 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
165 '==================== Calling check_wip_entity_id ====================');
166 END IF;
167 check_wip_entity_id (l_wip_entity_id , p_meter_reading_rec.meter_id);
168 IF (l_plog) THEN
169 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
170 '==================== Returning from check_wip_entity_id ====================');
171 END IF;
172 END IF;
173
174 -- Assign the values of Source transaction id and source transactio type for the transaction records.
175 IF(l_wip_entity_id IS NOT NULL) THEN
176 l_source_transaction_type_id := 92;
177 l_source_transaction_id := l_wip_entity_id;
178 l_transaction := 'Y';
179 ELSIF (p_meter_reading_rec.check_in_out_type = 1 AND p_meter_reading_rec.check_in_out_txn_id IS NOT NULL) THEN
180 l_source_transaction_type_id := 94;
181 l_source_transaction_id := p_meter_reading_rec.check_in_out_txn_id;
182 l_transaction := 'Y';
183 ELSIF (p_meter_reading_rec.check_in_out_type = 2 AND p_meter_reading_rec.check_in_out_txn_id IS NOT NULL) THEN
184 l_source_transaction_type_id := 95;
185 l_source_transaction_id := p_meter_reading_rec.check_in_out_txn_id;
186 l_transaction := 'Y';
187 ELSIF(p_meter_reading_rec.instance_id IS NOT NULL) THEN
188 l_source_transaction_type_id := 91;
189 l_source_transaction_id := p_meter_reading_rec.instance_id;
190 l_transaction := 'Y';
191 ELSE
192 l_source_transaction_type_id := 88; --transaction type when there is no transaction info
193 l_transaction := 'Y';
194 END IF;
195
196 IF l_transaction = 'Y' THEN
197 l_csi_txn_tbl(1).source_header_ref_id := l_source_transaction_id;
198 l_csi_txn_tbl(1).transaction_type_id := l_source_transaction_type_id;
199 l_csi_txn_tbl(1).transaction_date := l_current_reading_date;
200 l_csi_txn_tbl(1).source_transaction_date := l_current_reading_date;
201 END IF;
202
203
204 -- Assigning values for the Counter readings record
205
206 -- If the record is a reset reading Reset Mode should be soft for EAM else null.
207 IF (l_reset='Y') then
208 l_ctr_rdg_tbl(1).reset_mode := 'SOFT';
209 l_ctr_rdg_tbl(1).reset_counter_reading := p_value_before_reset;
210 l_ctr_rdg_tbl(1).reset_reason := p_meter_reading_rec.reset_reason;
211 ELSE
212 l_ctr_rdg_tbl(1).reset_mode := NULL;
213 l_ctr_rdg_tbl(1).reset_counter_reading := NULL;
214 l_ctr_rdg_tbl(1).reset_reason := NULL;
215 END IF;
216
217
218 l_ctr_rdg_tbl(1).counter_id := p_meter_reading_rec.meter_id;
219 l_ctr_rdg_tbl(1).counter_reading := p_meter_reading_rec.current_reading;
220 l_ctr_rdg_tbl(1).value_timestamp:= p_meter_reading_rec.current_reading_date;
221 l_ctr_rdg_tbl(1).comments := p_meter_reading_rec.description;
222 l_ctr_rdg_tbl(1).disabled_flag := 'N';
223 l_ctr_rdg_tbl(1).adjustment_type := p_meter_reading_rec.adjustment_type;
224 l_ctr_rdg_tbl(1).adjustment_reading := p_meter_reading_rec.adjustment_reading;
225 l_ctr_rdg_tbl(1).net_reading := p_meter_reading_rec.net_reading;
226 l_ctr_rdg_tbl(1).attribute_category := p_meter_reading_rec.attribute_category;
227 l_ctr_rdg_tbl(1).attribute1 := p_meter_reading_rec.attribute1;
228 l_ctr_rdg_tbl(1).attribute2 := p_meter_reading_rec.attribute2;
229 l_ctr_rdg_tbl(1).attribute3 := p_meter_reading_rec.attribute3;
230 l_ctr_rdg_tbl(1).attribute4 := p_meter_reading_rec.attribute4;
231 l_ctr_rdg_tbl(1).attribute5 := p_meter_reading_rec.attribute5;
232 l_ctr_rdg_tbl(1).attribute6 := p_meter_reading_rec.attribute6;
233 l_ctr_rdg_tbl(1).attribute7 := p_meter_reading_rec.attribute7;
234 l_ctr_rdg_tbl(1).attribute8 := p_meter_reading_rec.attribute8;
235 l_ctr_rdg_tbl(1).attribute9 := p_meter_reading_rec.attribute9;
236 l_ctr_rdg_tbl(1).attribute10 := p_meter_reading_rec.attribute10;
237 l_ctr_rdg_tbl(1).attribute11 := p_meter_reading_rec.attribute11;
238 l_ctr_rdg_tbl(1).attribute12 := p_meter_reading_rec.attribute12;
239 l_ctr_rdg_tbl(1).attribute13 := p_meter_reading_rec.attribute13;
240 l_ctr_rdg_tbl(1).attribute14 := p_meter_reading_rec.attribute14;
241 l_ctr_rdg_tbl(1).attribute15 := p_meter_reading_rec.attribute15;
242 l_ctr_rdg_tbl(1).attribute16 := p_meter_reading_rec.attribute16;
243 l_ctr_rdg_tbl(1).attribute17 := p_meter_reading_rec.attribute17;
244 l_ctr_rdg_tbl(1).attribute18 := p_meter_reading_rec.attribute18;
245 l_ctr_rdg_tbl(1).attribute19 := p_meter_reading_rec.attribute19;
246 l_ctr_rdg_tbl(1).attribute10 := p_meter_reading_rec.attribute20;
247 l_ctr_rdg_tbl(1).attribute21 := p_meter_reading_rec.attribute21;
248 l_ctr_rdg_tbl(1).attribute22 := p_meter_reading_rec.attribute22;
249 l_ctr_rdg_tbl(1).attribute23 := p_meter_reading_rec.attribute23;
250 l_ctr_rdg_tbl(1).attribute24 := p_meter_reading_rec.attribute24;
251 l_ctr_rdg_tbl(1).attribute25 := p_meter_reading_rec.attribute25;
252 l_ctr_rdg_tbl(1).attribute26 := p_meter_reading_rec.attribute26;
253 l_ctr_rdg_tbl(1).attribute27 := p_meter_reading_rec.attribute27;
254 l_ctr_rdg_tbl(1).attribute28 := p_meter_reading_rec.attribute28;
255 l_ctr_rdg_tbl(1).attribute29 := p_meter_reading_rec.attribute29;
256 l_ctr_rdg_tbl(1).attribute30 := p_meter_reading_rec.attribute30;
257 IF l_transaction = 'Y' THEN
258 l_ctr_rdg_tbl(1).parent_tbl_index := 1;
259 END IF;
260
261 --Assigning values to the counter property record.
262 IF p_ctr_property_readings_tbl.count > 0 THEN
263 FOR i IN p_ctr_property_readings_tbl.FIRST .. p_ctr_property_readings_tbl.LAST LOOP
264 IF p_ctr_property_readings_tbl.EXISTS(i) THEN
265 l_ctr_property_readings_tbl(i).counter_property_id := p_ctr_property_readings_tbl(i).counter_property_id;
266 l_ctr_property_readings_tbl(i).property_value := p_ctr_property_readings_tbl(i).property_value;
267 l_ctr_property_readings_tbl(i).value_timestamp := p_ctr_property_readings_tbl(i).value_timestamp;
268 l_ctr_property_readings_tbl(i).attribute_category := p_ctr_property_readings_tbl(i).attribute_category;
269 l_ctr_property_readings_tbl(i).attribute1 := p_ctr_property_readings_tbl(i).attribute1;
270 l_ctr_property_readings_tbl(i).attribute2 := p_ctr_property_readings_tbl(i).attribute2;
271 l_ctr_property_readings_tbl(i).attribute3 := p_ctr_property_readings_tbl(i).attribute3;
272 l_ctr_property_readings_tbl(i).attribute4 := p_ctr_property_readings_tbl(i).attribute4;
273 l_ctr_property_readings_tbl(i).attribute5 := p_ctr_property_readings_tbl(i).attribute5;
274 l_ctr_property_readings_tbl(i).attribute6 := p_ctr_property_readings_tbl(i).attribute6;
275 l_ctr_property_readings_tbl(i).attribute7 := p_ctr_property_readings_tbl(i).attribute7;
276 l_ctr_property_readings_tbl(i).attribute8 := p_ctr_property_readings_tbl(i).attribute8;
277 l_ctr_property_readings_tbl(i).attribute9 := p_ctr_property_readings_tbl(i).attribute9;
278 l_ctr_property_readings_tbl(i).attribute10 := p_ctr_property_readings_tbl(i).attribute10;
279 l_ctr_property_readings_tbl(i).attribute11 := p_ctr_property_readings_tbl(i).attribute11;
280 l_ctr_property_readings_tbl(i).attribute12 := p_ctr_property_readings_tbl(i).attribute12;
281 l_ctr_property_readings_tbl(i).attribute13 := p_ctr_property_readings_tbl(i).attribute13;
282 l_ctr_property_readings_tbl(i).attribute14 := p_ctr_property_readings_tbl(i).attribute14;
283 l_ctr_property_readings_tbl(i).attribute15 := p_ctr_property_readings_tbl(i).attribute15;
284 l_ctr_property_readings_tbl(i).migrated_flag := p_ctr_property_readings_tbl(i).migrated_flag;
285 IF l_transaction = 'Y' THEN
286 l_ctr_property_readings_tbl(i).parent_tbl_index := 1;
287 END IF;
288 END IF;
289 END LOOP;
290 END IF;
291
292 -- Call to CSI API to create counter reading.
293 IF (l_plog) THEN
294 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
295 '==================== Calling Csi_Counter_Readings_PUB.Capture_Counter_reading ===================='
296 ||'x_return_status:'||x_return_status
297 ||' x_msg_count:'||x_msg_count
298 ||'x_msg_data:'||x_msg_data);
299 END IF;
300 Csi_Counter_Readings_PUB.Capture_Counter_reading(p_api_version => p_api_version,
301 p_commit => p_commit,
302 p_init_msg_list => p_init_msg_list,
303 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
304 p_txn_tbl => l_csi_txn_tbl,
305 p_ctr_rdg_tbl => l_ctr_rdg_tbl,
306 p_ctr_prop_rdg_tbl => l_ctr_property_readings_tbl,
307 x_return_status => x_return_status,
308 x_msg_count => x_msg_count,
309 x_msg_data => x_msg_data);
310 IF (l_plog) THEN
311 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
312 '==================== Returning from Csi_Counter_Readings_PUB.Capture_Counter_reading ===================='
313 ||'x_return_status:'||x_return_status
314 ||' x_msg_count:'||x_msg_count
315 ||'x_msg_data:'||x_msg_data);
316 END IF;
317
318 x_meter_reading_id := l_ctr_rdg_tbl(1).counter_value_id;
319
320
321 -- End of API body.
322 -- Standard check of p_commit.
323 IF FND_API.To_Boolean( p_commit ) THEN
324 COMMIT WORK;
325 IF (l_plog) THEN
326 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'Committed Work');
327 END IF;
328 END IF;
329 IF (l_plog) THEN
330 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
331 '==================== Exiting from EAM_MeterReading_PUB.create_meter_reading ====================');
332 END IF;
333
334
335 EXCEPTION
336 WHEN FND_API.G_EXC_ERROR THEN
337 ROLLBACK TO create_meter_reading_Pub;
338 x_return_status := FND_API.G_RET_STS_ERROR ;
339 IF (l_plog) THEN
340 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO create_meter_reading_Pub');
341 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
342 '===================EAM_MeterReading_PUB.create_meter_readingr: EXPECTED ERROR======='||
343 '==================== Calling FND_MSG_PUB.Count_And_Get ====================');
344 END IF;
345 FND_MSG_PUB.Count_And_Get
346 ( p_count => x_msg_count ,
347 p_data => x_msg_data
348 );
349 IF (l_plog) THEN
350 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
351 '==================== Returned from FND_MSG_PUB.Count_And_Get ====================');
352 END IF;
353 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
354 ROLLBACK TO create_meter_reading_Pub;
355 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
356 IF (l_plog) THEN
357 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO create_meter_reading_Pub');
358 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
359 '===================EAM_MeterReading_PUB.create_meter_readingr: UNEXPECTED ERROR======='||
360 '==================== Calling FND_MSG_PUB.Count_And_Get ====================');
361 END IF;
362 FND_MSG_PUB.Count_And_Get
363 ( p_count => x_msg_count ,
364 p_data => x_msg_data
365 );
366 IF (l_plog) THEN
367 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
368 '==================== Returned from FND_MSG_PUB.Count_And_Get ====================');
369 END IF;
370 WHEN OTHERS THEN
371 ROLLBACK TO create_meter_reading_Pub;
372 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
373 IF (l_plog) THEN
374 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO create_meter_reading_Pub');
375 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
376 '=================== EAM_MeterReading_PUB.create_meter_reading: OTHERS ERROR=======');
377 END IF;
378 IF FND_MSG_PUB.Check_Msg_Level
379 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
380 THEN
381 IF (l_plog) THEN
382 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
383 '==================== Calling FND_MSG_PUB.Add_Exc_Msg ====================');
384 END IF;
385 FND_MSG_PUB.Add_Exc_Msg
386 ( G_PKG_NAME ,
387 l_api_name
388 );
389 IF (l_plog) THEN
390 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
391 '==================== Returned from FND_MSG_PUB.Add_Exc_Msg ====================');
392 END IF;
393 END IF;
394 IF (l_plog) THEN
395 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
396 '==================== Calling FND_MSG_PUB.Count_And_Get ====================');
397 END IF;
398 FND_MSG_PUB.Count_And_Get
399 ( p_count => x_msg_count ,
400 p_data => x_msg_data
401 );
402 IF (l_plog) THEN
403 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
404 '==================== Returned from FND_MSG_PUB.Count_And_Get ====================');
405 END IF;
406 END create_meter_reading;
407
408 procedure create_meter_reading
409 (
410 p_api_version IN number,
411 p_init_msg_list IN varchar2 := FND_API.G_FALSE,
412 p_commit IN varchar2 := FND_API.G_FALSE,
413 x_msg_count OUT NOCOPY number,
414 x_msg_data OUT NOCOPY varchar2,
415 x_return_status OUT NOCOPY varchar2,
416 p_meter_reading_rec IN EAM_MeterReading_PUB.Meter_Reading_Rec_Type,
417 p_value_before_reset IN number := NULL,
418 p_ignore_warnings IN varchar2 := 'Y',
419 x_meter_reading_id OUT NOCOPY number
420 )
421 IS
422
423 l_api_name CONSTANT varchar2(30) := 'create_meter_reading';
424 l_api_version CONSTANT number := 1.0;
425 l_ctr_property_readings_tbl EAM_MeterReading_PUB.Ctr_Property_readings_Tbl;
426 l_msg_count NUMBER;
427 l_msg_data VARCHAR2(5000);
428 l_return_status VARCHAR2(1);
429 l_meter_reading_id NUMBER;
430
431 l_module varchar2(200) ;
432 l_log_level CONSTANT NUMBER := fnd_log.g_current_runtime_level;
433 l_uLog CONSTANT BOOLEAN := fnd_log.level_unexpected >= l_log_level;
434 l_pLog CONSTANT BOOLEAN := l_uLog AND fnd_log.level_procedure >= l_log_level;
435 l_sLog CONSTANT BOOLEAN := l_pLog AND fnd_log.level_statement >= l_log_level;
436
437
438 BEGIN
439 -- Standard Start of API savepoint
440 SAVEPOINT create_meter_reading_Pub;
441 IF (l_ulog) THEN
442 l_module := 'eam.plsql.'||g_pkg_name|| '.' || l_api_name;
443 END IF;
444
445 IF (l_plog) THEN
446 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
447 '==================== Entered EAM_MeterReading_PUB.create_meter_reading ====================');
448 END IF;
449 -- Standard call to check for call compatibility.
450
451
452 IF NOT FND_API.Compatible_API_Call (l_api_version,
453 p_api_version,
454 l_api_name,
455 G_PKG_NAME )
456 THEN
457 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
458 END IF;
459
460
461 -- Initialize message list if p_init_msg_list is set to TRUE.
462 IF FND_API.to_Boolean( p_init_msg_list ) THEN
463 FND_MSG_PUB.initialize;
464 END IF;
465
466 -- Initialize API return status to success
467 x_return_status := FND_API.G_RET_STS_SUCCESS;
468
469 -- API body
470 l_ctr_property_readings_tbl.DELETE;
471 IF (l_plog) THEN
472 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
473 '==================== Calling EAM_MeterReading_PUB.create_meter_reading ===================='
474 ||'l_return_status:'||l_return_status
475 ||' l_msg_count:'||l_msg_count
476 ||'l_msg_data:'||l_msg_data);
477 END IF;
478 EAM_MeterReading_PUB.create_meter_reading(p_api_version => p_api_version,
479 p_init_msg_list => p_init_msg_list,
480 p_commit => p_commit,
481 x_msg_count => l_msg_count,
482 x_msg_data => l_msg_data,
483 x_return_status => l_return_status,
484 p_meter_reading_rec => p_meter_reading_rec,
485 p_ctr_property_readings_tbl => l_ctr_property_readings_tbl,
486 p_value_before_reset => p_value_before_reset,
487 p_ignore_warnings => p_ignore_warnings,
488 x_meter_reading_id => l_meter_reading_id);
489 IF (l_plog) THEN
490 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
491 '==================== Returned from EAM_MeterReading_PUB.create_meter_reading ===================='
492 ||'l_return_status:'||l_return_status
493 ||' l_msg_count:'||l_msg_count
494 ||'l_msg_data:'||l_msg_data);
495 END IF;
496
497 -- End of API body.
498 -- Standard check of p_commit.
499 IF FND_API.To_Boolean( p_commit ) THEN
500
501 COMMIT WORK;
502 IF (l_plog) THEN
503 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'Commiting Work');
504 END IF;
505 END IF;
506 IF (l_plog) THEN
507 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
508 '==================== Exiting EAM_MeterReading_PUB.create_meter_reading ====================');
509 END IF;
510
511
512 EXCEPTION
513 WHEN FND_API.G_EXC_ERROR THEN
514 ROLLBACK TO create_meter_reading_Pub;
515 x_return_status := FND_API.G_RET_STS_ERROR ;
516 IF (l_plog) THEN
517 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO create_meter_reading_Pub');
518 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
519 '===================EAM_MeterReading_PUB.create_meter_reading: EXPECTED ERROR======='||
520 '==================== Calling FND_MSG_PUB.Count_And_Get ====================');
521 END IF;
522 FND_MSG_PUB.Count_And_Get
523 ( p_count => x_msg_count ,
524 p_data => x_msg_data
525 );
526 IF (l_plog) THEN
527 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
528 '==================== Returned from FND_MSG_PUB.Count_And_Get ====================');
529 END IF;
530 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
531 ROLLBACK TO create_meter_reading_Pub;
532 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
533 IF (l_plog) THEN
534 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO create_meter_reading_Pub');
535 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
536 '===================EAM_MeterReading_PUB.create_meter_reading: UNEXPECTED ERROR======='||
537 '==================== Calling FND_MSG_PUB.Count_And_Get ====================');
538 END IF;
539 FND_MSG_PUB.Count_And_Get
540 ( p_count => x_msg_count ,
541 p_data => x_msg_data
542 );
543 IF (l_plog) THEN
544 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
545 '==================== Returned from FND_MSG_PUB.Count_And_Get ====================');
546 END IF;
547 WHEN OTHERS THEN
548 ROLLBACK TO create_meter_reading_Pub;
549 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
550 IF (l_plog) THEN
551 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO create_meter_reading_Pub');
552 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
553 '===================EAM_MeterReading_PUB.create_meter_reading: OTHERS ERROR=======');
554 END IF;
555 IF FND_MSG_PUB.Check_Msg_Level
556 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
557 THEN
558 IF (l_plog) THEN
559 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
560 '==================== Calling FND_MSG_PUB.Add_Exc_Msg ====================');
561 END IF;
562 FND_MSG_PUB.Add_Exc_Msg
563 ( G_PKG_NAME ,
564 l_api_name
565 );
566 IF (l_plog) THEN
567 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
568 '==================== Returned from FND_MSG_PUB.Add_Exc_Msg ====================');
569 END IF;
570 END IF;
571 IF (l_plog) THEN
572 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
573 '==================== Calling FND_MSG_PUB.Count_And_Get ====================');
574 END IF;
575 FND_MSG_PUB.Count_And_Get
576 ( p_count => x_msg_count ,
577 p_data => x_msg_data
578 );
579 IF (l_plog) THEN
580 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
581 '==================== Returned from FND_MSG_PUB.Count_And_Get ====================');
582 END IF;
583 END create_meter_reading;
584
585 PROCEDURE disable_meter_reading
586 (
587 p_api_version IN NUMBER,
588 p_init_msg_list IN VARCHAR2:=FND_API.G_FALSE,
589 p_commit IN VARCHAR2:=FND_API.G_FALSE,
590 x_msg_count OUT NOCOPY NUMBER,
591 x_msg_data OUT NOCOPY VARCHAR2,
592 x_return_status OUT NOCOPY VARCHAR2,
593 p_meter_reading_id IN NUMBER:=null,
594 p_meter_id IN NUMBER:=null,
595 p_meter_reading_date IN DATE :=NULL
596 )
597 IS
598
599 l_api_name CONSTANT VARCHAR2(30) := 'disable_meter_reading';
600 l_api_version CONSTANT NUMBER := 1.0;
601 l_object_version_number Number;
602 l_ctr_rdg_tbl Csi_Ctr_Datastructures_PUB.Counter_Readings_Tbl;
603
604 l_module varchar2(200);
605 l_log_level CONSTANT NUMBER := fnd_log.g_current_runtime_level;
606 l_uLog CONSTANT BOOLEAN := fnd_log.level_unexpected >= l_log_level ;
607 l_pLog CONSTANT BOOLEAN := l_uLog AND fnd_log.level_procedure >= l_log_level;
608 l_sLog CONSTANT BOOLEAN := l_pLog AND fnd_log.level_statement >= l_log_level;
609
610 BEGIN
611
612 SAVEPOINT disable_meter_reading_pub;
613 IF (l_ulog) THEN
614 l_module := 'eam.plsql.'||g_pkg_name|| '.' || l_api_name;
615 END IF;
616
617 IF (l_plog) THEN
618 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
619 '==================== Entered EAM_MeterReading_PUB.disable_meter_reading_pub ====================');
620 END IF;
621 -- Standard call to check for call compatibility.
622 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
623 p_api_version ,
624 l_api_name ,
625 G_PKG_NAME )
626 THEN
627 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
628 END IF;
629
630 -- Initialize message list if p_init_msg_list is set to TRUE.
631 IF FND_API.to_Boolean( p_init_msg_list ) THEN
632 FND_MSG_PUB.initialize;
633 END IF;
634
635 -- Initialize API return status to success
636 x_return_status := FND_API.G_RET_STS_SUCCESS;
637
638 -- API body
639
640 l_ctr_rdg_tbl.DELETE;
641
642 SELECT object_version_number
643 INTO l_object_version_number
644 FROM csi_counter_readings
645 WHERE counter_value_id = p_meter_reading_id;
646 IF (l_plog) THEN
647 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
648 'l_object_version_number: '||l_object_version_number);
649 END IF;
650
651 -- Assigning values for the Counter readings record
652 l_ctr_rdg_tbl(1).counter_id := p_meter_id;
653 l_ctr_rdg_tbl(1).counter_value_id := p_meter_reading_id;
654 l_ctr_rdg_tbl(1).value_timestamp:= p_meter_reading_date;
655 l_ctr_rdg_tbl(1).object_version_number:= l_object_version_number;
656 l_ctr_rdg_tbl(1).disabled_flag := 'Y';
657
658 -- Call to CSI API to disable counter reading.
659 IF (l_plog) THEN
660 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
661 '==================== Calling Csi_Counter_Readings_PUB.Update_Counter_Reading ===================='
662 ||'x_return_status:'||x_return_status
663 ||' x_msg_count:'||x_msg_count
664 ||'x_msg_data:'||x_msg_data);
665 END IF;
666 Csi_Counter_Readings_PUB.Update_Counter_Reading (p_api_version => p_api_version,
667 p_commit => p_commit,
668 p_init_msg_list => p_init_msg_list,
669 p_validation_level => FND_API.G_VALID_LEVEL_FULL,
670 p_ctr_rdg_tbl => l_ctr_rdg_tbl,
671 x_return_status => x_return_status,
672 x_msg_count => x_msg_count,
673 x_msg_data => x_msg_data);
674 IF (l_plog) THEN
675 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
676 '==================== Exiting from Csi_Counter_Readings_PUB.Update_Counter_Reading ===================='
677 ||'x_return_status:'||x_return_status
678 ||' x_msg_count:'||x_msg_count
679 ||'x_msg_data:'||x_msg_data);
680 END IF;
681
682 -- End of API body.
683 -- Standard check of p_commit.
684 IF FND_API.To_Boolean( p_commit ) THEN
685 COMMIT WORK;
686 IF (l_plog) THEN
687 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'Committed Work');
688 END IF;
689 END IF;
690 IF (l_plog) THEN
691 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
692 '==================== Exiting EAM_MeterReading_PUB.disable_meter_reading_pub ====================');
693 END IF;
694 EXCEPTION
695 WHEN FND_API.G_EXC_ERROR THEN
696
697 ROLLBACK TO disable_meter_reading_pub;
698 x_return_status := FND_API.G_RET_STS_ERROR ;
699 IF (l_plog) THEN
700 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO disable_meter_reading_pub');
701 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
702 '===================EAM_MeterReading_PUB.disable_meter_reading_pub: EXPECTED ERROR======='||
703 '==================== Calling FND_MSG_PUB.Count_And_Get ====================');
704 END IF;
705 FND_MSG_PUB.Count_And_Get
706 ( p_count => x_msg_count ,
707 p_data => x_msg_data
708 );
709 IF (l_plog) THEN
710 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
711 '==================== Returned from FND_MSG_PUB.Count_And_Get ====================');
712 END IF;
713 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
714
715 ROLLBACK TO disable_meter_reading_pub;
716 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
717 IF (l_plog) THEN
718 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO disable_meter_reading_pub');
719 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
720 '===================EAM_MeterReading_PUB.disable_meter_reading_pub: UNEXPECTED ERROR======='||
721 '==================== Calling FND_MSG_PUB.Count_And_Get ====================');
722 END IF;
723 FND_MSG_PUB.Count_And_Get
724 ( p_count => x_msg_count ,
725 p_data => x_msg_data
726 );
727 IF (l_plog) THEN
728 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
729 '==================== Returned from FND_MSG_PUB.Count_And_Get ====================');
730 END IF;
731 WHEN OTHERS THEN
732
733 ROLLBACK TO disable_meter_reading_pub;
734 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
735 IF (l_plog) THEN
736 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO disable_meter_reading_pub');
737 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
738 '===================EAM_MeterReading_PUB.disable_meter_reading_pub: OTHERS ERROR=======');
739 END IF;
740 IF FND_MSG_PUB.Check_Msg_Level
741 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
742 THEN
743 IF (l_plog) THEN
744 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
745 '==================== Calling FND_MSG_PUB.Add_Exc_Msg ====================');
746 END IF;
747 FND_MSG_PUB.Add_Exc_Msg
748 ( G_PKG_NAME ,
749 l_api_name
750 );
751 IF (l_plog) THEN
752 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
753 '==================== Returned from FND_MSG_PUB.Add_Exc_Msg ====================');
754 END IF;
755 END IF;
756 IF (l_plog) THEN
757 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
758 '==================== Calling FND_MSG_PUB.Count_And_Get ====================');
759 END IF;
760 FND_MSG_PUB.Count_And_Get
761 ( p_count => x_msg_count ,
762 p_data => x_msg_data
763 );
764 IF (l_plog) THEN
765 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
766 '==================== Returned from FND_MSG_PUB.Count_And_Get ====================');
767 END IF;
768
769 END disable_meter_reading;
770
771 END EAM_METERREADING_PUB;