[Home] [Help]
PACKAGE BODY: APPS.EAM_METER_PUB
Source
1 PACKAGE BODY EAM_METER_PUB AS
2 /* $Header: EAMPMETB.pls 120.18 2006/10/26 14:22:16 vmec noship $ */
3
4 /* for de-bugging */
5 /* g_sr_no number ; */
6
7 PROCEDURE print_log(info varchar2) is
8 PRAGMA AUTONOMOUS_TRANSACTION;
9 l_dummy number;
10 BEGIN
11 FND_FILE.PUT_LINE(FND_FILE.LOG, info);
12
13 END;
14
15 -- Start of comments
16 -- API name : create_meter
17 -- Type : Public
18 -- Function :
19 -- Pre-reqs : None.
20 -- Parameters :
21 -- IN : p_api_version IN NUMBER Required
22 -- p_init_msg_list IN VARCHAR2 Optional
23 -- Default = FND_API.G_FALSE
24 -- p_commit IN VARCHAR2 Optional
25 -- Default = FND_API.G_FALSE
26 -- p_validation_level IN NUMBER Optional
27 -- Default = FND_API.G_VALID_LEVEL_FULL
28 -- parameter1
29 -- parameter2
30
31 -- OUT : x_return_status OUT VARCHAR2(1)
32 -- x_msg_count OUT NUMBER
33 -- x_msg_data OUT VARCHAR2(2000)
34 -- Version : Current version 1.0
35 -- End of comments
36
37
38 procedure create_meter
39 (
40 p_api_version IN Number ,
41 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
42 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
43 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
44 x_return_status OUT nocopy VARCHAR2,
45 x_msg_count OUT nocopy NUMBER,
46 x_msg_data OUT nocopy VARCHAR2,
47 p_meter_name IN VARCHAR2,
48 p_meter_uom IN VARCHAR2,
49 p_meter_type IN NUMBER default 1,
50 p_VALUE_CHANGE_DIR IN NUMBER DEFAULT 1,
51 p_USED_IN_SCHEDULING IN VARCHAR2 default 'N',
52 p_USER_DEFINED_RATE IN NUMBER default null,
53 p_USE_PAST_READING IN NUMBER default null,
54 p_DESCRIPTION IN VARCHAR2 default null,
55 p_FROM_EFFECTIVE_DATE IN DATE default null,
56 p_TO_EFFECTIVE_DATE IN DATE default null,
57 p_source_meter_id IN Number DEFAULT NULL,
58 p_factor IN NUMBER DEFAULT 1,
59 p_relationship_start_date IN DATE default null,
60 p_ATTRIBUTE_CATEGORY IN VARCHAR2 default null,
61 p_ATTRIBUTE1 IN VARCHAR2 default null,
62 p_ATTRIBUTE2 IN VARCHAR2 default null,
63 p_ATTRIBUTE3 IN VARCHAR2 default null,
64 p_ATTRIBUTE4 IN VARCHAR2 default null,
65 p_ATTRIBUTE5 IN VARCHAR2 default null,
66 p_ATTRIBUTE6 IN VARCHAR2 default null,
67 p_ATTRIBUTE7 IN VARCHAR2 default null,
68 p_ATTRIBUTE8 IN VARCHAR2 default null,
69 p_ATTRIBUTE9 IN VARCHAR2 default null,
70 p_ATTRIBUTE10 IN VARCHAR2 default null,
71 p_ATTRIBUTE11 IN VARCHAR2 default null,
72 p_ATTRIBUTE12 IN VARCHAR2 default null,
73 p_ATTRIBUTE13 IN VARCHAR2 default null,
74 p_ATTRIBUTE14 IN VARCHAR2 default null,
75 p_ATTRIBUTE15 IN VARCHAR2 default null,
76 p_ATTRIBUTE16 IN VARCHAR2 default null,
77 p_ATTRIBUTE17 IN VARCHAR2 default null,
78 p_ATTRIBUTE18 IN VARCHAR2 default null,
79 p_ATTRIBUTE19 IN VARCHAR2 default null,
80 p_ATTRIBUTE20 IN VARCHAR2 default null,
81 p_ATTRIBUTE21 IN VARCHAR2 default null,
82 p_ATTRIBUTE22 IN VARCHAR2 default null,
83 p_ATTRIBUTE23 IN VARCHAR2 default null,
84 p_ATTRIBUTE24 IN VARCHAR2 default null,
85 p_ATTRIBUTE25 IN VARCHAR2 default null,
86 p_ATTRIBUTE26 IN VARCHAR2 default null,
87 p_ATTRIBUTE27 IN VARCHAR2 default null,
88 p_ATTRIBUTE28 IN VARCHAR2 default null,
89 p_ATTRIBUTE29 IN VARCHAR2 default null,
90 p_ATTRIBUTE30 IN VARCHAR2 default null,
91 p_TMPL_FLAG IN VARCHAR2 default 'N',
92 p_SOURCE_TMPL_ID IN Number default null,
93 p_INITIAL_READING IN NUMBER default 0,
94 P_INITIAL_READING_DATE IN DATE default SYSDATE,
95 P_EAM_REQUIRED_FLAG IN VARCHAR2 default 'N',
96 x_new_meter_id OUT nocopy Number
97
98 )
99 is
100
101 l_api_name CONSTANT VARCHAR2(30) := 'create_meter';
102 l_api_version CONSTANT NUMBER := 1.0;
103 l_meter_id number;
104 l_validated boolean;
105 l_meter_reading_id number;
106 l_initial_reading number;
107 l_tmpl_flag varchar2(30);
108 l_meter_type number;
109 l_value_before_reset Number;
110 l_INITIAL_READING_DATE date;
111 l_commit VARCHAR2(1);
112 l_init_msg_list VARCHAR2(1);
113 l_validation_level NUMBER;
114 l_counter_instance_rec CSI_CTR_DATASTRUCTURES_PUB.Counter_instance_rec;
115 l_counter_template_rec CSI_CTR_DATASTRUCTURES_PUB.Counter_template_rec;
116 l_ctr_properties_tbl CSI_CTR_DATASTRUCTURES_PUB.Ctr_properties_tbl;
117 l_counter_relationships_tbl CSI_CTR_DATASTRUCTURES_PUB.counter_relationships_tbl;
118 l_ctr_derived_filters_tbl CSI_CTR_DATASTRUCTURES_PUB.ctr_derived_filters_tbl;
119 l_counter_associations_tbl CSI_CTR_DATASTRUCTURES_PUB.counter_associations_tbl;
120 l_ctr_item_associations_tbl CSI_CTR_DATASTRUCTURES_PUB.ctr_item_associations_tbl;
121 l_ctr_property_template_tbl CSI_CTR_DATASTRUCTURES_PUB.ctr_property_template_tbl;
122 l_meter_reading_rec Eam_MeterReading_PUB.Meter_Reading_Rec_Type;
123 l_ctr_property_readings_tbl EAM_MeterReading_PUB.Ctr_Property_readings_Tbl;
124 l_object_version_number Number;
125
126 l_module varchar2(200) ;
127 l_log_level CONSTANT NUMBER := fnd_log.g_current_runtime_level;
128 l_uLog CONSTANT BOOLEAN := fnd_log.level_unexpected >= l_log_level ;
129 l_pLog CONSTANT BOOLEAN := l_uLog AND fnd_log.level_procedure >= l_log_level;
130 l_sLog CONSTANT BOOLEAN := l_pLog AND fnd_log.level_statement >= l_log_level;
131
132 begin
133
134 -- Standard Start of API savepoint
135 SAVEPOINT create_meter_pub;
136 if( l_ulog) then
137 l_module := 'eam.plsql.'||g_pkg_name|| '.' || l_api_name;
138 end if;
139
140 IF (l_plog) THEN
141 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
142 '==================== Entered EAM_METER_PUB.create_meter ====================');
143 END IF;
144
145 -- Standard call to check for call compatibility.
146 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
147 p_api_version ,
148 l_api_name ,
149 G_PKG_NAME )
150 THEN
151 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
152 END IF;
153
154 l_commit := p_commit;
155 l_init_msg_list := p_init_msg_list;
156 l_validation_level := p_validation_level;
157
158 IF l_commit IS NULL THEN
159 l_commit := FND_API.G_TRUE;
160 END IF;
161
162 IF l_init_msg_list IS NULL THEN
163 l_init_msg_list := FND_API.G_TRUE;
164 END IF;
165
166 IF l_validation_level IS NULL THEN
167 l_validation_level := FND_API.G_VALID_LEVEL_FULL;
168 END IF;
169
170 -- Initialize message list if p_init_msg_list is set to TRUE.
171 IF FND_API.to_Boolean( l_init_msg_list ) THEN
172 FND_MSG_PUB.initialize;
173 END IF;
174
175 -- Initialize API return status to success
176 x_return_status := FND_API.G_RET_STS_SUCCESS;
177
178 -- API body
179
180 l_ctr_properties_tbl.DELETE;
181 l_counter_relationships_tbl.DELETE;
182 l_ctr_derived_filters_tbl.DELETE;
183 l_counter_associations_tbl.DELETE;
184 l_ctr_property_readings_tbl.DELETE;
185
186
187 if (p_tmpl_flag is null) then
188 l_tmpl_flag:='N';
189 else
190 l_tmpl_flag:=p_tmpl_flag;
191 end if;
192
193 if (p_meter_type is null) then
194 l_meter_type:=1;
195 else
196 l_meter_type:=p_meter_type;
197 end if;
198
199 if (p_initial_reading is null) then
200 l_initial_reading:=0;
201 else
202 l_initial_reading:=p_initial_reading;
203 end if;
204
205 IF l_tmpl_flag = 'N' THEN
206 l_counter_instance_rec.name := p_meter_name;
207 IF p_value_change_dir = 1 THEN
208 l_counter_instance_rec.direction := 'A';
209 ELSIF p_value_change_dir = 2 THEN
210 l_counter_instance_rec.direction := 'D';
211 ELSE l_counter_instance_rec.direction := 'B';
212 END IF;
213
214 l_counter_instance_rec.counter_type := 'REGULAR';
215 l_counter_instance_rec.initial_reading := p_initial_reading;
216 l_counter_instance_rec.initial_reading_date := p_initial_reading_date;
217 l_counter_instance_rec.created_from_counter_tmpl_id := p_source_tmpl_id;
218 l_counter_instance_rec.uom_code := p_meter_uom;
219 l_counter_instance_rec.start_date_active := p_from_effective_date;
220 l_counter_instance_rec.end_date_active := p_to_effective_date;
221 l_counter_instance_rec.reading_type := p_meter_type;
222
223 l_counter_instance_rec.default_usage_rate := p_user_defined_rate;
224 l_counter_instance_rec.use_past_reading := p_use_past_reading;
225 l_counter_instance_rec.used_in_scheduling := p_used_in_scheduling;
226 l_counter_instance_rec.description := p_description;
227 l_counter_instance_rec.time_based_manual_entry := 'Y';
228 l_counter_instance_rec.eam_required_flag := p_eam_required_flag;
229 l_counter_instance_rec.attribute_category := p_attribute_category;
230 l_counter_instance_rec.attribute1 := p_attribute1;
231 l_counter_instance_rec.attribute2 := p_attribute2;
232 l_counter_instance_rec.attribute3 := p_attribute3;
233 l_counter_instance_rec.attribute4 := p_attribute4;
234 l_counter_instance_rec.attribute5 := p_attribute5;
235 l_counter_instance_rec.attribute6 := p_attribute6;
236 l_counter_instance_rec.attribute7 := p_attribute7;
237 l_counter_instance_rec.attribute8 := p_attribute8;
238 l_counter_instance_rec.attribute9 := p_attribute9;
239 l_counter_instance_rec.attribute10 := p_attribute10;
240 l_counter_instance_rec.attribute11 := p_attribute11;
241 l_counter_instance_rec.attribute12 := p_attribute12;
242 l_counter_instance_rec.attribute13 := p_attribute13;
243 l_counter_instance_rec.attribute14 := p_attribute14;
244 l_counter_instance_rec.attribute15 := p_attribute15;
245 l_counter_instance_rec.attribute16 := p_attribute16;
246 l_counter_instance_rec.attribute17 := p_attribute17;
247 l_counter_instance_rec.attribute18 := p_attribute18;
248 l_counter_instance_rec.attribute19 := p_attribute19;
249 l_counter_instance_rec.attribute20 := p_attribute20;
250 l_counter_instance_rec.attribute21 := p_attribute21;
251 l_counter_instance_rec.attribute22 := p_attribute22;
252 l_counter_instance_rec.attribute23 := p_attribute23;
253 l_counter_instance_rec.attribute24 := p_attribute24;
254 l_counter_instance_rec.attribute25 := p_attribute25;
255 l_counter_instance_rec.attribute26 := p_attribute26;
256 l_counter_instance_rec.attribute27 := p_attribute27;
257 l_counter_instance_rec.attribute28 := p_attribute28;
258 l_counter_instance_rec.attribute29 := p_attribute29;
259 l_counter_instance_rec.attribute30 := p_attribute30;
260
261 IF (l_plog) THEN
262 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
263 '==================== Calling CSI_COUNTER_PUB.create_counter ===================='
264 ||'x_return_status:'||x_return_status
265 ||' x_msg_count:'||x_msg_count
266 ||'x_msg_data:'||x_msg_data);
267 END IF;
268 CSI_COUNTER_PUB.create_counter(p_api_version,
269 l_init_msg_list,
270 l_commit,
271 l_validation_level,
272 l_counter_instance_rec,
273 l_ctr_properties_tbl,
274 l_counter_relationships_tbl,
275 l_ctr_derived_filters_tbl,
276 l_counter_associations_tbl,
277 x_return_status,
278 x_msg_count,
279 x_msg_data,
280 x_new_meter_id);
281
282 IF (l_plog) THEN
283 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
284 '==================== Returned from CSI_COUNTER_PUB.create_counter ===================='
285 ||'x_return_status:'||x_return_status
286 ||' x_msg_count:'||x_msg_count
287 ||'x_msg_data:'||x_msg_data);
288 END IF;
289
290 IF p_source_meter_id IS NOT NULL THEN
291
292 l_counter_relationships_tbl(1).relationship_type_code := 'CONFIGURATION';
293 l_counter_relationships_tbl(1).source_counter_id := p_source_meter_id;
294 l_counter_relationships_tbl(1).factor := p_factor;
295 l_counter_relationships_tbl(1).active_start_date := p_relationship_start_date;
296 l_counter_relationships_tbl(1).active_end_date := to_date(null);
297
298
299 SELECT object_version_number
300 INTO l_object_version_number
301 FROM CSI_COUNTERS_B
302 WHERE counter_id = x_new_meter_id;
303
304 l_counter_instance_rec.counter_id := x_new_meter_id;
305 l_counter_instance_rec.object_version_number := l_object_version_number;
306
307 IF (l_plog) THEN
308 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
309 '==================== Calling CSI_COUNTER_PUB.update_counter ===================='
310 ||'x_return_status:'||x_return_status
311 ||' x_msg_count:'||x_msg_count
312 ||'x_msg_data:'||x_msg_data);
313 END IF;
314 CSI_COUNTER_PUB.update_counter(p_api_version,
315 l_init_msg_list,
316 l_commit,
317 l_validation_level,
318 l_counter_instance_rec,
319 l_ctr_properties_tbl,
320 l_counter_relationships_tbl,
321 l_ctr_derived_filters_tbl,
322 l_counter_associations_tbl,
323 x_return_status,
324 x_msg_count,
325 x_msg_data);
326
327 IF (l_plog) THEN
328 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
329 '==================== Returning from CSI_COUNTER_PUB.update_counter ===================='
330 ||'x_return_status:'||x_return_status
331 ||' x_msg_count:'||x_msg_count
332 ||'x_msg_data:'||x_msg_data);
333 END IF;
334
335 END IF;
336
337 --for template meters
338 ELSE
339 l_counter_template_rec.name := p_meter_name;
340 l_counter_template_rec.counter_type := 'REGULAR';
341 IF p_value_change_dir = 1 THEN
342 l_counter_template_rec.direction := 'A';
343 ELSIF p_value_change_dir = 2 THEN
344 l_counter_template_rec.direction := 'D';
345 ELSE l_counter_template_rec.direction := 'B';
346 END IF;
347 l_counter_template_rec.initial_reading := p_initial_reading;
348 l_counter_template_rec.initial_reading_date := p_initial_reading_date;
349 l_counter_template_rec.uom_code := p_meter_uom;
350 l_counter_template_rec.start_date_active := p_from_effective_date;
351 l_counter_template_rec.end_date_active := p_to_effective_date;
352 l_counter_template_rec.reading_type := p_meter_type;
353 l_counter_template_rec.default_usage_rate := p_user_defined_rate;
354 l_counter_template_rec.use_past_reading := p_use_past_reading;
355 l_counter_template_rec.used_in_scheduling := p_used_in_scheduling;
356 l_counter_template_rec.description := p_description;
357 l_counter_template_rec.time_based_manual_entry := 'Y';
358 l_counter_template_rec.eam_required_flag := p_eam_required_flag;
359 l_counter_template_rec.attribute_category := p_attribute_category;
360 l_counter_template_rec.attribute1 := p_attribute1;
361 l_counter_template_rec.attribute2 := p_attribute2;
362 l_counter_template_rec.attribute3 := p_attribute3;
363 l_counter_template_rec.attribute4 := p_attribute4;
364 l_counter_template_rec.attribute5 := p_attribute5;
365 l_counter_template_rec.attribute6 := p_attribute6;
366 l_counter_template_rec.attribute7 := p_attribute7;
367 l_counter_template_rec.attribute8 := p_attribute8;
368 l_counter_template_rec.attribute9 := p_attribute9;
369 l_counter_template_rec.attribute10 := p_attribute10;
370 l_counter_template_rec.attribute11 := p_attribute11;
371 l_counter_template_rec.attribute12 := p_attribute12;
372 l_counter_template_rec.attribute13 := p_attribute13;
373 l_counter_template_rec.attribute14 := p_attribute14;
374 l_counter_template_rec.attribute15 := p_attribute15;
375 l_counter_template_rec.attribute16 := p_attribute16;
376 l_counter_template_rec.attribute17 := p_attribute17;
377 l_counter_template_rec.attribute18 := p_attribute18;
378 l_counter_template_rec.attribute19 := p_attribute19;
379 l_counter_template_rec.attribute20 := p_attribute20;
380 l_counter_template_rec.attribute21 := p_attribute21;
381 l_counter_template_rec.attribute22 := p_attribute22;
382 l_counter_template_rec.attribute23 := p_attribute23;
383 l_counter_template_rec.attribute24 := p_attribute24;
384 l_counter_template_rec.attribute25 := p_attribute25;
385 l_counter_template_rec.attribute26 := p_attribute26;
386 l_counter_template_rec.attribute27 := p_attribute27;
387 l_counter_template_rec.attribute28 := p_attribute28;
388 l_counter_template_rec.attribute29 := p_attribute29;
389 l_counter_template_rec.attribute30 := p_attribute30;
390 IF (l_plog) THEN
391 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
392 '==================== Calling csi_counter_template_pub.create_counter_template ===================='
393 ||'x_return_status:'||x_return_status
394 ||' x_msg_count:'||x_msg_count
395 ||'x_msg_data:'||x_msg_data);
396 END IF;
397 csi_counter_template_pub.create_counter_template(p_api_version,
398 l_commit,
399 l_init_msg_list,
400 l_validation_level,
401 l_counter_template_rec,
402 l_ctr_item_associations_tbl,
403 l_ctr_property_template_tbl,
404 l_counter_relationships_tbl,
405 l_ctr_derived_filters_tbl,
406 x_return_status,
407 x_msg_count,
408 x_msg_data);
409 IF (l_plog) THEN
410 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
411 '==================== Returning from csi_counter_template_pub.create_counter_template ===================='
412 ||'x_return_status:'||x_return_status
413 ||' x_msg_count:'||x_msg_count
414 ||'x_msg_data:'||x_msg_data);
415 END IF;
416 END IF;
417 --end of check for meter/meter template
418
419
420 -- End of API body.
421 -- Standard check of l_commit.
422 IF FND_API.To_Boolean( l_commit ) THEN
423
424 COMMIT WORK;
425 IF (l_plog) THEN
426 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'Commiting Work');
427 END IF;
428 END IF;
429 -- Standard call to get message count and if count is 1, get message info.
430 FND_MSG_PUB.get
431 ( p_msg_index_out => x_msg_count ,
432 p_data => x_msg_data
433 );
434 x_msg_data := substr(x_msg_data,1,4000);
435 IF (l_plog) THEN
436 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
437 '==================== Exiting from EAM_METER_PUB.create_meter ====================');
438 END IF;
439
440 EXCEPTION
441 WHEN FND_API.G_EXC_ERROR THEN
442 ROLLBACK TO create_meter_pub;
443 x_return_status := FND_API.G_RET_STS_ERROR ;
444 IF (l_plog) THEN
445 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO create_meter_pub');
446 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
447 '===================EAM_METER_PUB.create_meter: EXPECTED ERROR======='||
448 '==================== Calling FND_MSG_PUB.get ====================');
449 END IF;
450 FND_MSG_PUB.get
451 ( p_msg_index_out => x_msg_count ,
452 p_data => x_msg_data
453 );
454 IF (l_plog) THEN
455 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
456 '==================== Returned from FND_MSG_PUB.get ====================');
457 END IF;
458 x_msg_data := substr(x_msg_data,1,4000);
459 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
460 ROLLBACK TO create_meter_pub;
461 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
462 IF (l_plog) THEN
463 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO create_meter_pub');
464 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
465 '===================EAM_METER_PUB.create_meter: UNEXPECTED ERROR======='||
466 '==================== Calling FND_MSG_PUB.get ====================');
467 END IF;
468 FND_MSG_PUB.get
469 ( p_msg_index_out => x_msg_count ,
470 p_data => x_msg_data
471 );
472 IF (l_plog) THEN
473 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
474 '==================== Returned from FND_MSG_PUB.get ====================');
475 END IF;
476 x_msg_data := substr(x_msg_data,1,4000);
477 WHEN OTHERS THEN
478 ROLLBACK TO create_meter_pub;
479 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
480 IF (l_plog) THEN
481 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO create_meter_pub');
482 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
483 '===================EAM_METER_PUB.create_meter: OTHERS ERROR=======');
484 END IF;
485 IF FND_MSG_PUB.Check_Msg_Level
486 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
487 THEN
488 IF (l_plog) THEN
489 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
490 '==================== Calling FND_MSG_PUB.Add_Exc_Msg ====================');
491 END IF;
492 FND_MSG_PUB.Add_Exc_Msg
493 ( G_PKG_NAME ,
494 l_api_name
495 );
496 IF (l_plog) THEN
497 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
498 '==================== Returned from FND_MSG_PUB.Add_Exc_Msg ====================');
499 END IF;
500 END IF;
501 IF (l_plog) THEN
502 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
503 '==================== Calling FND_MSG_PUB.get ====================');
504 END IF;
505 FND_MSG_PUB.get
506 ( p_msg_index_out => x_msg_count ,
507 p_data => x_msg_data
508 );
509 IF (l_plog) THEN
510 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
511 '==================== Returned from FND_MSG_PUB.get ====================');
512 END IF;
513
514 x_msg_data := substr(x_msg_data,1,4000);
515 end create_meter;
516
517
518 procedure update_meter
519 (
520 p_api_version IN Number,
521 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
522 p_commit IN VARCHAR2 := FND_API.G_FALSE,
523 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
524 x_return_status OUT nocopy VARCHAR2,
525 x_msg_count OUT nocopy NUMBER,
526 x_msg_data OUT nocopy VARCHAR2,
527 p_meter_id IN number,
528 p_meter_name IN varchar DEFAULT NULL,
529 p_meter_uom IN varchar DEFAULT NULL,
530 p_METER_TYPE IN Number default NULL,
531 p_VALUE_CHANGE_DIR IN Number default NULL,
532 p_USED_IN_SCHEDULING IN VARCHAR2 default NULL,
533 p_USER_DEFINED_RATE IN NUMBER default null,
534 p_USE_PAST_READING IN Number default null,
535 p_DESCRIPTION IN VARCHAR2 default null,
536 p_FROM_EFFECTIVE_DATE IN DATE default null,
537 p_TO_EFFECTIVE_DATE IN DATE default null,
538 p_source_meter_id IN Number DEFAULT NULL,
539 p_factor IN NUMBER DEFAULT NULL,
540 p_relationship_start_date IN DATE default null,
541 p_ATTRIBUTE_CATEGORY IN VARCHAR2 default null,
542 p_ATTRIBUTE1 IN VARCHAR2 default null,
543 p_ATTRIBUTE2 IN VARCHAR2 default null,
544 p_ATTRIBUTE3 IN VARCHAR2 default null,
545 p_ATTRIBUTE4 IN VARCHAR2 default null,
546 p_ATTRIBUTE5 IN VARCHAR2 default null,
547 p_ATTRIBUTE6 IN VARCHAR2 default null,
548 p_ATTRIBUTE7 IN VARCHAR2 default null,
549 p_ATTRIBUTE8 IN VARCHAR2 default null,
550 p_ATTRIBUTE9 IN VARCHAR2 default null,
551 p_ATTRIBUTE10 IN VARCHAR2 default null,
552 p_ATTRIBUTE11 IN VARCHAR2 default null,
553 p_ATTRIBUTE12 IN VARCHAR2 default null,
554 p_ATTRIBUTE13 IN VARCHAR2 default null,
555 p_ATTRIBUTE14 IN VARCHAR2 default null,
556 p_ATTRIBUTE15 IN VARCHAR2 default null,
557 p_ATTRIBUTE16 IN VARCHAR2 default null,
558 p_ATTRIBUTE17 IN VARCHAR2 default null,
559 p_ATTRIBUTE18 IN VARCHAR2 default null,
560 p_ATTRIBUTE19 IN VARCHAR2 default null,
561 p_ATTRIBUTE20 IN VARCHAR2 default null,
562 p_ATTRIBUTE21 IN VARCHAR2 default null,
563 p_ATTRIBUTE22 IN VARCHAR2 default null,
564 p_ATTRIBUTE23 IN VARCHAR2 default null,
565 p_ATTRIBUTE24 IN VARCHAR2 default null,
566 p_ATTRIBUTE25 IN VARCHAR2 default null,
567 p_ATTRIBUTE26 IN VARCHAR2 default null,
568 p_ATTRIBUTE27 IN VARCHAR2 default null,
569 p_ATTRIBUTE28 IN VARCHAR2 default null,
570 p_ATTRIBUTE29 IN VARCHAR2 default null,
571 p_ATTRIBUTE30 IN VARCHAR2 default null,
572 p_TMPL_FLAG IN VARCHAR2 default 'N',
573 p_SOURCE_TMPL_ID IN Number default NULL,
574 P_EAM_REQUIRED_FLAG IN VARCHAR2 default 'N',
575 p_from_eam IN varchar2 default null
576 )
577 is
578
579 l_api_name CONSTANT VARCHAR2(30) := 'update_meter';
580 l_api_version CONSTANT NUMBER := 1.0;
581 l_meter_id number;
582 l_meter_type NUMBER;
583 l_commit VARCHAR2(1);
584 l_init_msg_list VARCHAR2(1);
585 l_validation_level NUMBER;
586 l_counter_instance_rec CSI_CTR_DATASTRUCTURES_PUB.Counter_instance_rec;
587 l_counter_template_rec CSI_CTR_DATASTRUCTURES_PUB.Counter_template_rec;
588 l_ctr_properties_tbl CSI_CTR_DATASTRUCTURES_PUB.Ctr_properties_tbl;
589 l_counter_relationships_tbl CSI_CTR_DATASTRUCTURES_PUB.counter_relationships_tbl;
590 l_ctr_derived_filters_tbl CSI_CTR_DATASTRUCTURES_PUB.ctr_derived_filters_tbl;
591 l_counter_associations_tbl CSI_CTR_DATASTRUCTURES_PUB.counter_associations_tbl;
592 l_ctr_item_associations_tbl CSI_CTR_DATASTRUCTURES_PUB.ctr_item_associations_tbl;
593 l_ctr_property_template_tbl CSI_CTR_DATASTRUCTURES_PUB.ctr_property_template_tbl;
594 l_meter_reading_rec Eam_MeterReading_PUB.Meter_Reading_Rec_Type;
595 l_ctr_property_readings_tbl EAM_MeterReading_PUB.Ctr_Property_readings_Tbl;
596 l_object_version_number Number;
597
598 l_prev_source_counter_id Number;
599 l_prev_relationship_id Number;
600 l_previous_factor Number;
601 l_source_meter_id Number;
602 l_prev_required_flag varchar2(1);
603 l_primary_flag varchar2(1);
604
605 l_module varchar2(200);
606 l_log_level CONSTANT NUMBER := fnd_log.g_current_runtime_level;
607 l_uLog CONSTANT BOOLEAN := fnd_log.level_unexpected >= l_log_level ;
608 l_pLog CONSTANT BOOLEAN := l_uLog AND fnd_log.level_procedure >= l_log_level;
609 l_sLog CONSTANT BOOLEAN := l_pLog AND fnd_log.level_statement >= l_log_level;
610
611 BEGIN
612 -- Standard Start of API savepoint
613 SAVEPOINT update_meter_pub;
614 if( l_ulog) then
615 l_module := 'eam.plsql.'||g_pkg_name|| '.' || l_api_name;
616 end if;
617
618 IF (l_plog) THEN
619 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
620 '==================== Entered EAM_METER_PUB.update_meter ====================');
621 END IF;
622
623 -- Standard call to check for call compatibility.
624 IF NOT FND_API.Compatible_API_Call ( l_api_version ,
625 p_api_version ,
626 l_api_name ,
627 G_PKG_NAME )
628 THEN
629 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
630 END IF;
631
632 l_commit := p_commit;
633 l_init_msg_list := p_init_msg_list;
634 l_validation_level := p_validation_level;
635
636 IF l_commit IS NULL THEN
637 l_commit := FND_API.G_TRUE;
638 END IF;
639
640 IF l_init_msg_list IS NULL THEN
641 l_init_msg_list := FND_API.G_TRUE;
642 END IF;
643
644 IF l_validation_level IS NULL THEN
645 l_validation_level := FND_API.G_VALID_LEVEL_FULL;
646 END IF;
647
648 -- Initialize message list if p_init_msg_list is set to TRUE.
649 IF FND_API.to_Boolean( l_init_msg_list ) THEN
650 FND_MSG_PUB.initialize;
651 END IF;
652
653 -- Initialize API return status to success
654 x_return_status := FND_API.G_RET_STS_SUCCESS;
655
656 -- API body
657
658 l_source_meter_id := p_source_meter_id;
659
660 l_ctr_properties_tbl.DELETE;
661 l_counter_relationships_tbl.DELETE;
662 l_ctr_derived_filters_tbl.DELETE;
663 l_ctr_property_readings_tbl.DELETE;
664 l_counter_associations_tbl.DELETE;
665
666 IF p_tmpl_flag = 'N' THEN
667
668 SELECT object_version_number
669 INTO l_object_version_number
670 FROM CSI_COUNTERS_B
671 WHERE counter_id = p_meter_id;
672
673
674
675 l_counter_instance_rec.counter_id := p_meter_id;
676 l_counter_instance_rec.name := p_meter_name;
677
678 IF p_value_change_dir is not null THEN
679 IF p_value_change_dir = 1 THEN
680 l_counter_instance_rec.direction := 'A';
681 ELSIF p_value_change_dir = 2 THEN
682 l_counter_instance_rec.direction := 'D';
683 ELSE l_counter_instance_rec.direction := 'B';
684 END IF;
685 END IF;
686
687 if nvl(p_eam_required_flag, 'N') = 'N' then
688 select eam_required_flag into l_prev_required_flag
689 from csi_counters_b
690 where counter_id = p_meter_id;
691
692 if nvl(l_prev_required_flag, 'N') = 'Y' then
693
694 begin
695 select primary_failure_flag into l_primary_flag
696 from csi_counter_associations
697 where counter_id = p_meter_id;
698
699 if nvl(l_primary_flag, 'N') = 'Y' then
700 FND_MESSAGE.SET_NAME('EAM', 'EAM_PRIMARY_FLAG_EXISTS');
701 FND_MSG_PUB.ADD;
702 RAISE FND_API.G_EXC_ERROR;
703 end if;
704
705 exception when no_data_found then
706 -- this is not an error condition.
707 null;
708 end;
709
710 end if;
711 end if;
712
713
714 l_counter_instance_rec.counter_type := 'REGULAR';
715 l_counter_instance_rec.object_version_number := l_object_version_number;
716 l_counter_instance_rec.created_from_counter_tmpl_id := p_source_tmpl_id;
717 l_counter_instance_rec.uom_code := p_meter_uom;
718 l_counter_instance_rec.start_date_active := p_from_effective_date;
719 l_counter_instance_rec.end_date_active := p_to_effective_date;
720 l_counter_instance_rec.reading_type := p_meter_type;
721 l_counter_instance_rec.default_usage_rate := p_user_defined_rate;
722 l_counter_instance_rec.use_past_reading := p_use_past_reading;
723 l_counter_instance_rec.used_in_scheduling := p_used_in_scheduling;
724 l_counter_instance_rec.description := p_description;
725 l_counter_instance_rec.time_based_manual_entry := 'Y';
726 l_counter_instance_rec.eam_required_flag := p_eam_required_flag;
727 l_counter_instance_rec.attribute_category := p_attribute_category;
728 l_counter_instance_rec.attribute1 := p_attribute1;
729 l_counter_instance_rec.attribute2 := p_attribute2;
730 l_counter_instance_rec.attribute3 := p_attribute3;
731 l_counter_instance_rec.attribute4 := p_attribute4;
732 l_counter_instance_rec.attribute5 := p_attribute5;
733 l_counter_instance_rec.attribute6 := p_attribute6;
734 l_counter_instance_rec.attribute7 := p_attribute7;
735 l_counter_instance_rec.attribute8 := p_attribute8;
736 l_counter_instance_rec.attribute9 := p_attribute9;
737 l_counter_instance_rec.attribute10 := p_attribute10;
738 l_counter_instance_rec.attribute11 := p_attribute11;
739 l_counter_instance_rec.attribute12 := p_attribute12;
740 l_counter_instance_rec.attribute13 := p_attribute13;
741 l_counter_instance_rec.attribute14 := p_attribute14;
742 l_counter_instance_rec.attribute15 := p_attribute15;
743 l_counter_instance_rec.attribute16 := p_attribute16;
744 l_counter_instance_rec.attribute17 := p_attribute17;
745 l_counter_instance_rec.attribute18 := p_attribute18;
746 l_counter_instance_rec.attribute19 := p_attribute19;
747 l_counter_instance_rec.attribute20 := p_attribute20;
748 l_counter_instance_rec.attribute21 := p_attribute21;
749 l_counter_instance_rec.attribute22 := p_attribute22;
750 l_counter_instance_rec.attribute23 := p_attribute23;
751 l_counter_instance_rec.attribute24 := p_attribute24;
752 l_counter_instance_rec.attribute25 := p_attribute25;
753 l_counter_instance_rec.attribute26 := p_attribute26;
754 l_counter_instance_rec.attribute27 := p_attribute27;
755 l_counter_instance_rec.attribute28 := p_attribute28;
756 l_counter_instance_rec.attribute29 := p_attribute29;
757 l_counter_instance_rec.attribute30 := p_attribute30;
758
759 BEGIN
760 select source_counter_id,relationship_id,factor,object_version_number
761 into l_prev_source_counter_id,l_prev_relationship_id,l_previous_factor,l_object_version_number
762 from csi_counter_relationships
763 where object_counter_id = p_meter_id and active_end_date is null;
764
765 if nvl(p_from_eam, 'N') = 'Y' then
766
767 if l_source_meter_id is null and l_prev_source_counter_id is not null then
768 l_source_meter_id := FND_API.G_MISS_NUM;
769 end if;
770
771 end if;
772
773
774
775 IF l_source_meter_id IS NOT NULL THEN
776 IF l_source_meter_id = FND_API.G_MISS_NUM THEN
777 l_counter_relationships_tbl(1).object_version_number := l_object_version_number;
778 l_counter_relationships_tbl(1).RELATIONSHIP_ID := l_prev_relationship_id;
779 l_counter_relationships_tbl(1).ACTIVE_END_DATE := SYSDATE;
780 ELSIF l_prev_source_counter_id <> l_source_meter_id THEN
781 -- When source counter is changed .. End date the old one and insert a new one
782 l_counter_relationships_tbl(1).object_version_number := l_object_version_number;
783 l_counter_relationships_tbl(1).RELATIONSHIP_ID := l_prev_relationship_id;
784 l_counter_relationships_tbl(1).ACTIVE_END_DATE := SYSDATE;
785 l_counter_relationships_tbl(2).source_counter_id := l_source_meter_id;
786 l_counter_relationships_tbl(2).factor := p_factor;
787 IF( p_relationship_start_date is not null) THEN
788 l_counter_relationships_tbl(2).active_start_date := p_relationship_start_date;
789 ELSE
790 l_counter_relationships_tbl(2).active_start_date := sysdate;
791 END IF;
792 l_counter_relationships_tbl(2).active_end_date := null;
793 l_counter_relationships_tbl(2).relationship_type_code := 'CONFIGURATION';
794 ELSE
795 l_counter_relationships_tbl(1).object_version_number := l_object_version_number;
796 l_counter_relationships_tbl(1).RELATIONSHIP_ID := l_prev_relationship_id;
797 l_counter_relationships_tbl(1).factor := p_factor;
798 IF( p_relationship_start_date is not null) THEN
799 l_counter_relationships_tbl(1).active_start_date := p_relationship_start_date;
800 ELSE
801 l_counter_relationships_tbl(1).active_start_date := sysdate;
802 END IF;
803 END IF;
804 ELSE
805 l_counter_relationships_tbl.delete;
806 END IF;
807
808 EXCEPTION
809 WHEN NO_DATA_FOUND THEN
810 IF (l_source_meter_id IS NOT NULL) THEN -- When a relationship has to be added
811 l_counter_relationships_tbl(1).source_counter_id := l_source_meter_id;
812 l_counter_relationships_tbl(1).factor := p_factor;
813 l_counter_relationships_tbl(1).relationship_type_code := 'CONFIGURATION';
814 IF( p_relationship_start_date is not null) THEN
815 l_counter_relationships_tbl(1).active_start_date := p_relationship_start_date;
816 ELSE
817 l_counter_relationships_tbl(1).active_start_date := sysdate;
818 END IF;
819 END IF;
820 END;
821
822
823 IF (l_plog) THEN
824 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
825 '==================== Calling CSI_COUNTER_PUB.update_counter ===================='
826 ||'x_return_status:'||x_return_status
827 ||' x_msg_count:'||x_msg_count
828 ||'x_msg_data:'||x_msg_data);
829 END IF;
830 CSI_COUNTER_PUB.update_counter(p_api_version,
831 l_init_msg_list,
832 l_commit,
833 l_validation_level,
834 l_counter_instance_rec,
835 l_ctr_properties_tbl,
836 l_counter_relationships_tbl,
837 l_ctr_derived_filters_tbl,
838 l_counter_associations_tbl,
839 x_return_status,
840 x_msg_count,
841 x_msg_data);
842
843 IF (l_plog) THEN
844 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
845 '==================== Returning from CSI_COUNTER_PUB.update_counter ===================='
846 ||'x_return_status:'||x_return_status
847 ||' x_msg_count:'||x_msg_count
848 ||'x_msg_data:'||x_msg_data);
849 END IF;
850
851 ELSE
852
853
854 SELECT object_version_number
855 INTO l_object_version_number
856 FROM CSI_COUNTER_TEMPLATE_B
857 WHERE counter_id = p_meter_id;
858
859 l_counter_template_rec.counter_id := p_meter_id;
860 l_counter_template_rec.name := p_meter_name;
861 IF (l_plog) THEN
862 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
863 'l_object_version_number:'||l_object_version_number);
864 END IF;
865 IF p_value_change_dir = 1 THEN
866 l_counter_template_rec.direction := 'A';
867 ELSIF p_value_change_dir = 2 THEN
868 l_counter_template_rec.direction := 'D';
869 ELSE l_counter_template_rec.direction := 'B';
870 END IF;
871 l_counter_template_rec.counter_type := 'REGULAR';
872 l_counter_template_rec.object_version_number := l_object_version_number;
873 l_counter_template_rec.uom_code := p_meter_uom;
874 l_counter_template_rec.start_date_active := p_from_effective_date;
875 l_counter_template_rec.end_date_active := p_to_effective_date;
876 l_counter_template_rec.reading_type := p_meter_type;
877 l_counter_template_rec.default_usage_rate := p_user_defined_rate;
878 l_counter_template_rec.use_past_reading := p_use_past_reading;
879 l_counter_template_rec.used_in_scheduling := p_used_in_scheduling;
880 l_counter_template_rec.description := p_description;
881 l_counter_template_rec.time_based_manual_entry := 'Y';
882 l_counter_template_rec.eam_required_flag := p_eam_required_flag;
883 l_counter_template_rec.attribute_category := p_attribute_category;
884 l_counter_template_rec.attribute1 := p_attribute1;
885 l_counter_template_rec.attribute2 := p_attribute2;
886 l_counter_template_rec.attribute3 := p_attribute3;
887 l_counter_template_rec.attribute4 := p_attribute4;
888 l_counter_template_rec.attribute5 := p_attribute5;
889 l_counter_template_rec.attribute6 := p_attribute6;
890 l_counter_template_rec.attribute7 := p_attribute7;
891 l_counter_template_rec.attribute8 := p_attribute8;
892 l_counter_template_rec.attribute9 := p_attribute9;
893 l_counter_template_rec.attribute10 := p_attribute10;
894 l_counter_template_rec.attribute11 := p_attribute11;
895 l_counter_template_rec.attribute12 := p_attribute12;
896 l_counter_template_rec.attribute13 := p_attribute13;
897 l_counter_template_rec.attribute14 := p_attribute14;
898 l_counter_template_rec.attribute15 := p_attribute15;
899 l_counter_template_rec.attribute16 := p_attribute16;
900 l_counter_template_rec.attribute17 := p_attribute17;
901 l_counter_template_rec.attribute18 := p_attribute18;
902 l_counter_template_rec.attribute19 := p_attribute19;
903 l_counter_template_rec.attribute20 := p_attribute20;
904 l_counter_template_rec.attribute21 := p_attribute21;
905 l_counter_template_rec.attribute22 := p_attribute22;
906 l_counter_template_rec.attribute23 := p_attribute23;
907 l_counter_template_rec.attribute24 := p_attribute24;
908 l_counter_template_rec.attribute25 := p_attribute25;
909 l_counter_template_rec.attribute26 := p_attribute26;
910 l_counter_template_rec.attribute27 := p_attribute27;
911 l_counter_template_rec.attribute28 := p_attribute28;
912 l_counter_template_rec.attribute29 := p_attribute29;
913 l_counter_template_rec.attribute30 := p_attribute30;
914
915 IF (l_plog) THEN
916 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
917 '==================== Calling csi_counter_template_pub.update_counter_template ===================='
918 ||'x_return_status:'||x_return_status
919 ||' x_msg_count:'||x_msg_count
920 ||'x_msg_data:'||x_msg_data);
921 END IF;
922 csi_counter_template_pub.update_counter_template(p_api_version,
923 l_commit,
924 l_init_msg_list,
925 l_validation_level,
926 l_counter_template_rec,
927 l_ctr_item_associations_tbl,
928 l_ctr_property_template_tbl,
929 l_counter_relationships_tbl,
930 l_ctr_derived_filters_tbl,
931 x_return_status,
932 x_msg_count,
933 x_msg_data);
934 IF (l_plog) THEN
935 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
936 '==================== Returning from csi_counter_template_pub.update_counter_template ===================='
937 ||'x_return_status:'||x_return_status
938 ||' x_msg_count:'||x_msg_count
939 ||'x_msg_data:'||x_msg_data);
940 END IF;
941 END IF;
942
943
944
945 -- End of API body.
946 -- Standard check of l_commit.
947 IF FND_API.To_Boolean( l_commit ) THEN
948 COMMIT WORK;
949 IF (l_plog) THEN
950 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'Commiting Work');
951 END IF;
952 END IF;
953 IF (l_plog) THEN
954 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
955 '==================== Calling FND_MSG_PUB.get ====================');
956 END IF;
957
958 -- Standard call to get message count and if count is 1, get message info.
959 FND_MSG_PUB.get
960 ( p_msg_index_out => x_msg_count ,
961 p_data => x_msg_data
962 );
963 IF (l_plog) THEN
964 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
965 '==================== Returned from FND_MSG_PUB.get ====================');
966
967 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
968 '==================== Exiting EAM_METER_PUB.update_meter ====================');
969 END IF;
970 x_msg_data := substr(x_msg_data,1,4000);
971 EXCEPTION
972 WHEN FND_API.G_EXC_ERROR THEN
973 ROLLBACK TO update_meter_pub;
974 x_return_status := FND_API.G_RET_STS_ERROR ;
975 IF (l_plog) THEN
976 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO update_meter_pub');
977 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
978 '===================EAM_METER_PUB.update_meter: EXPECTED ERROR======='||
979 '==================== Calling FND_MSG_PUB.get ====================');
980 END IF;
981 FND_MSG_PUB.get
982 ( p_msg_index_out => x_msg_count ,
983 p_data => x_msg_data
984 );
985 IF (l_plog) THEN
986 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
987 '==================== Returned from FND_MSG_PUB.get ====================');
988 END IF;
989
990 x_msg_data := substr(x_msg_data,1,4000);
991 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
992 ROLLBACK TO update_meter_pub;
993 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
994 IF (l_plog) THEN
995 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO update_meter_pub');
996 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
997 '===================EAM_METER_PUB.update_meter: UNEXPECTED ERROR======='||
998 '==================== Calling FND_MSG_PUB.get ====================');
999 END IF;
1000 FND_MSG_PUB.get
1001 ( p_msg_index_out => x_msg_count ,
1002 p_data => x_msg_data
1003 );
1004 IF (l_plog) THEN
1005 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
1006 '==================== Returned from FND_MSG_PUB.get ====================');
1007 END IF;
1008 x_msg_data := substr(x_msg_data,1,4000);
1009 WHEN OTHERS THEN
1010 ROLLBACK TO update_meter_pub;
1011 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1012 IF (l_plog) THEN
1013 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,'ROLLBACK TO update_meter_pub');
1014 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
1015 '===================EAM_METER_PUB.update_meter: OTHERS ERROR=======');
1016 END IF;
1017 IF FND_MSG_PUB.Check_Msg_Level
1018 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1019 THEN
1020 IF (l_plog) THEN
1021 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
1022 '==================== Calling FND_MSG_PUB.Add_Exc_Msg ====================');
1023 END IF;
1024 FND_MSG_PUB.Add_Exc_Msg
1025 ( G_PKG_NAME ,
1026 l_api_name
1027 );
1028 IF (l_plog) THEN
1029 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
1030 '==================== Returned from FND_MSG_PUB.Add_Exc_Msg ====================');
1031 END IF;
1032 END IF;
1033 IF (l_plog) THEN
1034 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
1035 '==================== Calling FND_MSG_PUB.get ====================');
1036 END IF;
1037 FND_MSG_PUB.get
1038 ( p_msg_index_out => x_msg_count ,
1039 p_data => x_msg_data
1040 );
1041 IF (l_plog) THEN
1042 FND_LOG.STRING(FND_LOG.LEVEL_PROCEDURE, l_module,
1043 '==================== Returned from FND_MSG_PUB.get ====================');
1044 END IF;
1045
1046 x_msg_data := substr(x_msg_data,1,4000);
1047 end update_meter;
1048
1049
1050
1051 END EAM_METER_PUB;
1052