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