DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_COUNTERS_PUB

Source


1 PACKAGE BODY CS_Counters_PUB AS
2 /* $Header: cspctrb.pls 120.5.12000000.4 2007/06/18 09:14:55 ngoutam ship $ */
3 
4 -- ---------------------------------------------------------
5 -- Define global variables
6 -- ---------------------------------------------------------
7 G_PKG_NAME	CONSTANT	VARCHAR2(30)	:= 'CS_COUNTERS_PUB';
8 --G_USER		CONSTANT	VARCHAR2(30)	:= FND_GLOBAL.USER_ID;
9 --------------------------------------------------------------------------
10 
11 -- ---------------------------------------------------------
12 -- Private program units
13 -- ---------------------------------------------------------
14 
15 PROCEDURE Initialize_Desc_Flex_For_Upd
16 (
17 	p_desc_flex		IN	CS_COUNTERS_EXT_PVT.DFF_Rec_Type,
18 	p_old_desc_flex	IN	CS_COUNTERS_EXT_PVT.DFF_Rec_Type,
19 	x_desc_flex		OUT NOCOPY	CS_COUNTERS_EXT_PVT.DFF_Rec_Type
20 ) IS
21 BEGIN
22 	x_desc_flex := p_desc_flex;
23 	IF p_desc_flex.attribute1 = FND_API.G_MISS_CHAR THEN
24 		x_desc_flex.attribute1 := p_old_desc_flex.attribute1;
25 	END IF;
26 
27 	IF p_desc_flex.attribute2 = FND_API.G_MISS_CHAR THEN
28 		x_desc_flex.attribute2 := p_old_desc_flex.attribute2;
29 	END IF;
30 
31 	IF p_desc_flex.attribute3 = FND_API.G_MISS_CHAR THEN
32 		x_desc_flex.attribute3 := p_old_desc_flex.attribute3;
33 	END IF;
34 
35 	IF p_desc_flex.attribute4 = FND_API.G_MISS_CHAR THEN
36 		x_desc_flex.attribute4 := p_old_desc_flex.attribute4;
37 	END IF;
38 
39 	IF p_desc_flex.attribute5 = FND_API.G_MISS_CHAR THEN
40 		x_desc_flex.attribute5 := p_old_desc_flex.attribute5;
41 	END IF;
42 
43 	IF p_desc_flex.attribute6 = FND_API.G_MISS_CHAR THEN
44 		x_desc_flex.attribute6 := p_old_desc_flex.attribute6;
45 	END IF;
46 
47 	IF p_desc_flex.attribute7 = FND_API.G_MISS_CHAR THEN
48 		x_desc_flex.attribute7 := p_old_desc_flex.attribute7;
49 	END IF;
50 
51 	IF p_desc_flex.attribute8 = FND_API.G_MISS_CHAR THEN
52 		x_desc_flex.attribute8 := p_old_desc_flex.attribute8;
53 	END IF;
54 
55 	IF p_desc_flex.attribute9 = FND_API.G_MISS_CHAR THEN
56 		x_desc_flex.attribute9 := p_old_desc_flex.attribute1;
57 	END IF;
58 
59 	IF p_desc_flex.attribute10 = FND_API.G_MISS_CHAR THEN
60 		x_desc_flex.attribute10 := p_old_desc_flex.attribute10;
61 	END IF;
62 
63 	IF p_desc_flex.attribute11 = FND_API.G_MISS_CHAR THEN
64 		x_desc_flex.attribute11 := p_old_desc_flex.attribute11;
65 	END IF;
66 
67 	IF p_desc_flex.attribute12 = FND_API.G_MISS_CHAR THEN
68 		x_desc_flex.attribute12 := p_old_desc_flex.attribute12;
69 	END IF;
70 
71 	IF p_desc_flex.attribute13 = FND_API.G_MISS_CHAR THEN
72 		x_desc_flex.attribute13 := p_old_desc_flex.attribute13;
73 	END IF;
74 
75 	IF p_desc_flex.attribute14 = FND_API.G_MISS_CHAR THEN
76 		x_desc_flex.attribute14 := p_old_desc_flex.attribute14;
77 	END IF;
78 
79 	IF p_desc_flex.attribute15 = FND_API.G_MISS_CHAR THEN
80 		x_desc_flex.attribute15 := p_old_desc_flex.attribute15;
81 	END IF;
82 
83         IF p_desc_flex.context = FND_API.G_MISS_CHAR THEN
84                 x_desc_flex.context := p_old_desc_flex.context;
85         END IF;
86 
87 END Initialize_Desc_Flex_For_Upd;
88 
89 PROCEDURE Initialize_CtrRec_For_Upd
90 (
91 	p_ctr_rec		IN	Ctr_Rec_Type,
92 	p_old_ctr_rec	        IN	Ctr_Rec_Type,
93 	x_ctr_rec		OUT NOCOPY	Ctr_Rec_Type
94 ) IS
95 BEGIN
96 	x_ctr_rec := p_ctr_rec;
97 	IF p_ctr_rec.counter_group_id = FND_API.G_MISS_NUM THEN
98 		x_ctr_rec.counter_group_id := p_old_ctr_rec.counter_group_id;
99 	END IF;
100 
101 	IF p_ctr_rec.name = FND_API.G_MISS_CHAR THEN
102 		x_ctr_rec.name := p_old_ctr_rec.name;
103 	END IF;
104 
105 	IF p_ctr_rec.type = FND_API.G_MISS_CHAR THEN
106 		x_ctr_rec.type := p_old_ctr_rec.type;
107 	END IF;
108 
109 	IF p_ctr_rec.initial_reading = FND_API.G_MISS_NUM THEN
110 		x_ctr_rec.initial_reading := p_old_ctr_rec.initial_reading;
111 	END IF;
112 
113 	IF p_ctr_rec.step_value = FND_API.G_MISS_NUM THEN
114 		x_ctr_rec.step_value := p_old_ctr_rec.step_value;
115 	END IF;
116 
117 	IF p_ctr_rec.uom_code = FND_API.G_MISS_CHAR THEN
118 		x_ctr_rec.uom_code := p_old_ctr_rec.uom_code;
119 	END IF;
120 
121 	IF p_ctr_rec.derive_function = FND_API.G_MISS_CHAR THEN
122 		x_ctr_rec.derive_function := p_old_ctr_rec.derive_function;
123 	END IF;
124 
125 	IF p_ctr_rec.derive_counter_id = FND_API.G_MISS_NUM THEN
126 		x_ctr_rec.derive_counter_id := p_old_ctr_rec.derive_counter_id;
127 	END IF;
128 
129 	IF p_ctr_rec.derive_property_id = FND_API.G_MISS_NUM THEN
130 		x_ctr_rec.derive_property_id := p_old_ctr_rec.derive_property_id;
131 	END IF;
132 
133 	IF p_ctr_rec.formula_text = FND_API.G_MISS_CHAR THEN
134 		x_ctr_rec.formula_text := p_old_ctr_rec.formula_text;
135 	END IF;
136 
137 	IF p_ctr_rec.usage_item_id = FND_API.G_MISS_NUM THEN
138 		x_ctr_rec.usage_item_id := p_old_ctr_rec.usage_item_id;
139 	END IF;
140 
141 	IF p_ctr_rec.start_date_active = FND_API.G_MISS_DATE THEN
142 		x_ctr_rec.start_date_active := p_old_ctr_rec.start_date_active;
143 	END IF;
144 
145 	IF p_ctr_rec.end_date_active = FND_API.G_MISS_DATE THEN
146 		x_ctr_rec.end_date_active := p_old_ctr_rec.end_date_active;
147 	END IF;
148 
149 	IF p_ctr_rec.customer_view = FND_API.G_MISS_CHAR THEN
150 		x_ctr_rec.customer_view := p_old_ctr_rec.customer_view;
151 	END IF;
152 
153 	IF p_ctr_rec.duration = FND_API.G_MISS_NUM THEN
154 		x_ctr_rec.duration := p_old_ctr_rec.duration;
155 	END IF;
156 
157 	IF p_ctr_rec.duration_uom = FND_API.G_MISS_CHAR THEN
158 		x_ctr_rec.duration_uom := p_old_ctr_rec.duration_uom;
159 	END IF;
160 
161         IF p_ctr_rec.direction = FND_API.G_MISS_CHAR THEN
162                 x_ctr_rec.direction := p_old_ctr_rec.direction;
163         END IF;
164 
165         IF p_ctr_rec.filter_reading_count = FND_API.G_MISS_NUM THEN
166                 x_ctr_rec.filter_reading_count := p_old_ctr_rec.filter_reading_count;
167         END IF;
168 
169         IF p_ctr_rec.filter_type = FND_API.G_MISS_CHAR THEN
170                 x_ctr_rec.filter_type := p_old_ctr_rec.filter_type;
171         END IF;
172 
173         IF p_ctr_rec.filter_time_uom = FND_API.G_MISS_CHAR THEN
174                 x_ctr_rec.filter_time_uom := p_old_ctr_rec.filter_time_uom;
175         END IF;
176 
177         IF p_ctr_rec.estimation_id = FND_API.G_MISS_CHAR THEN
178                 x_ctr_rec.estimation_id := p_old_ctr_rec.estimation_id;
179         END IF;
180 
181 
182 	Initialize_Desc_Flex_For_Upd
183 	(
184 		p_ctr_Rec.desc_flex,
185 		p_old_ctr_Rec.desc_flex,
186 		x_ctr_rec.desc_flex
187 	);
188 
189 END Initialize_CtrRec_For_Upd;
190 
191 PROCEDURE Initialize_CtrPropRec_For_Upd
192 (
193 	p_ctr_prop_rec		IN	Ctr_Prop_Rec_Type,
194 	p_old_ctr_prop_rec	IN	Ctr_Prop_Rec_Type,
195 	x_ctr_prop_rec		OUT NOCOPY	Ctr_Prop_Rec_Type
196 ) IS
197 BEGIN
198 	x_ctr_prop_rec := p_ctr_prop_rec;
199 	IF p_ctr_prop_rec.counter_id = FND_API.G_MISS_NUM THEN
200 		x_ctr_prop_rec.counter_id := p_old_ctr_prop_rec.counter_id;
201 	END IF;
202 
203 	IF p_ctr_prop_rec.name = FND_API.G_MISS_CHAR THEN
204 		x_ctr_prop_rec.name := p_old_ctr_prop_rec.name;
205 	END IF;
206 
207 	IF p_ctr_prop_rec.property_data_type = FND_API.G_MISS_CHAR THEN
208 		x_ctr_prop_rec.property_data_type := p_old_ctr_prop_rec.property_data_type;
209 	END IF;
210 
211 	IF p_ctr_prop_rec.default_value = FND_API.G_MISS_CHAR THEN
212 		x_ctr_prop_rec.default_value := p_old_ctr_prop_rec.default_value;
213 	END IF;
214 
215 	IF p_ctr_prop_rec.maximum_value = FND_API.G_MISS_CHAR THEN
216 		x_ctr_prop_rec.maximum_value := p_old_ctr_prop_rec.default_value;
217 	END IF;
218 
219 	IF p_ctr_prop_rec.minimum_value = FND_API.G_MISS_CHAR THEN
220 		x_ctr_prop_rec.minimum_value := p_old_ctr_prop_rec.minimum_value;
221 	END IF;
222 
223 	IF p_ctr_prop_rec.start_date_active = FND_API.G_MISS_DATE THEN
224 		x_ctr_prop_rec.start_date_active := p_old_ctr_prop_rec.start_date_active;
225 	END IF;
226 
227 	IF p_ctr_prop_rec.end_date_active = FND_API.G_MISS_DATE THEN
228 		x_ctr_prop_rec.end_date_active := p_old_ctr_prop_rec.end_date_active;
229 	END IF;
230 
231 	IF p_ctr_prop_rec.property_lov_type = FND_API.G_MISS_CHAR THEN
232 		x_ctr_prop_rec.property_lov_type := p_old_ctr_prop_rec.property_lov_type;
233 	END IF;
234 
235 
236 	Initialize_Desc_Flex_For_Upd
237 	(
238 		p_ctr_prop_Rec.desc_flex,
239 		p_old_ctr_prop_Rec.desc_flex,
240 		x_ctr_prop_rec.desc_flex
241 	);
242 
243 END Initialize_CtrPropRec_For_Upd;
244 
245 
246 -- ---------------------------------------------------------
247 -- Public program units
248 -- ---------------------------------------------------------
249 
250 FUNCTION Ctr_Grp_Template_Exists
251 (
252 	p_item_id	NUMBER
253 ) RETURN BOOLEAN IS
254 
255 	l_return_value	BOOLEAN := TRUE;
256 	l_ctr_grp_id	NUMBER;
257 
258  Cursor Grp_Tmpl(p_inv_item_id NUMBER) IS
259    SELECT group_id
260    FROM csi_ctr_item_associations
261    WHERE associated_to_group='Y'
262    AND inventory_item_id = p_inv_item_id;
263 
264 BEGIN
265  open Grp_tmpl(p_item_id);
266  fetch Grp_tmpl into l_ctr_grp_id;
267  close Grp_tmpl;
268  If l_ctr_grp_id is not null then
269    l_return_value := TRUE;
270  Else
271    l_return_value := FALSE;
272  End If;
273    RETURN (l_return_value);
274 END;
275 
276 PROCEDURE Create_Ctr_Grp_Template
277 (
278 	p_api_version			IN	NUMBER,
279 	p_init_msg_list		        IN	VARCHAR2	:= FND_API.G_FALSE,
280 	p_commit			IN	VARCHAR2 :=  FND_API.G_FALSE,
281 	x_return_status		        OUT NOCOPY	VARCHAR2,
282 	x_msg_count			OUT NOCOPY	NUMBER,
283 	x_msg_data			OUT NOCOPY	VARCHAR2,
284 	p_ctr_grp_rec			IN	CS_COUNTERS_PUB.CtrGrp_Rec_Type,
285 	x_ctr_grp_id			IN OUT NOCOPY	NUMBER,
286 	x_object_version_number	        OUT NOCOPY	NUMBER
287 ) IS
288 	l_api_name     CONSTANT	VARCHAR2(30)	:= 'CREATE_CTR_GRP_TEMPLATE';
289 	l_api_version	CONSTANT	NUMBER		:= 1.0;
290 
291  l_ctr_groups_rec   CSI_CTR_DATASTRUCTURES_PUB.counter_groups_rec;
292  l_ctr_item_associations_tbl  CSI_CTR_DATASTRUCTURES_PUB.ctr_item_associations_tbl;
293  l_validation_level NUMBER;
294 
295 BEGIN
296 
297 	SAVEPOINT	Create_Ctr_Grp_Template_PUB;
298 
299 	-- Standard call to check for call compatibility.
300 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
301 								 p_api_version ,
302 								 l_api_name ,
303 								 G_PKG_NAME )	THEN
304 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
305 	END IF;
306 	-- Initialize message list if p_init_msg_list is set to TRUE.
307 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
308 		FND_MSG_PUB.initialize;
309 	END IF;
310 
311 	--  Initialize API return status to success
312 	x_return_status := FND_API.G_RET_STS_SUCCESS;
313 
314 	  -- Customer/Vertical Hookups
315         /*  	Customer pre -processing  section - Mandatory  */
316         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
317            CS_COUNTERS_CUHK.Create_Ctr_Grp_Template_Pre (
318              p_api_version         => l_api_version,
319              p_init_msg_list       => p_init_msg_list,
320              p_commit              => p_commit,
321              x_return_status       => x_return_status,
322              x_msg_count           => x_msg_count,
323              x_msg_data            => x_msg_data,
324              p_ctr_grp_rec         => p_ctr_grp_rec,
325              x_ctr_grp_id          => x_ctr_grp_id,
326              x_object_version_number => x_object_version_number
327             );
328            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
329                  RAISE FND_API.G_EXC_ERROR;
330            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
331                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
332            END IF;
333         END IF;
334         /* 	Vertical pre -processing  section - Mandatory */
335         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
336            CS_COUNTERS_VUHK.Create_Ctr_Grp_Template_Pre (
337               p_api_version         => l_api_version,
338              p_init_msg_list       => p_init_msg_list,
339              p_commit              => p_commit,
340              x_return_status       => x_return_status,
341              x_msg_count           => x_msg_count,
342              x_msg_data            => x_msg_data,
343              p_ctr_grp_rec         => p_ctr_grp_rec,
344              x_ctr_grp_id          => x_ctr_grp_id,
345              x_object_version_number => x_object_version_number
346             );
347            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
348                  RAISE FND_API.G_EXC_ERROR;
349            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
350                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
351            END IF;
352         END IF;
353 
354 
355 	-- Start of API Body
356  l_ctr_groups_rec.COUNTER_GROUP_ID := x_ctr_grp_id;
357  l_ctr_groups_rec.NAME             := p_ctr_grp_rec.NAME;
358  l_ctr_groups_rec.DESCRIPTION      := p_ctr_grp_rec.DESCRIPTION;
359  l_ctr_groups_rec.START_DATE_ACTIVE   := p_ctr_grp_rec.start_date_active;
360  l_ctr_groups_rec.END_DATE_ACTIVE     := p_ctr_grp_rec.end_date_active;
361  l_ctr_groups_rec.ATTRIBUTE1      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE1;
362  l_ctr_groups_rec.ATTRIBUTE2      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE2;
363  l_ctr_groups_rec.ATTRIBUTE3      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE3;
364  l_ctr_groups_rec.ATTRIBUTE4      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE4;
365  l_ctr_groups_rec.ATTRIBUTE5      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE5;
366  l_ctr_groups_rec.ATTRIBUTE6      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE6;
367  l_ctr_groups_rec.ATTRIBUTE7      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE7;
368  l_ctr_groups_rec.ATTRIBUTE8      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE8;
369  l_ctr_groups_rec.ATTRIBUTE9      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE9;
370  l_ctr_groups_rec.ATTRIBUTE10     := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE10;
371  l_ctr_groups_rec.ATTRIBUTE11     := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE11;
372  l_ctr_groups_rec.ATTRIBUTE12     := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE12;
373  l_ctr_groups_rec.ATTRIBUTE13     := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE13;
374  l_ctr_groups_rec.ATTRIBUTE14     := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE14;
375  l_ctr_groups_rec.ATTRIBUTE15     := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE15;
376  l_ctr_groups_rec.CONTEXT         := p_ctr_grp_rec.DESC_FLEX.CONTEXT;
377  l_ctr_groups_rec.ASSOCIATION_TYPE   :=  p_ctr_grp_rec.ASSOCIATION_TYPE;
378 
379 
380  CSI_COUNTER_TEMPLATE_PUB.create_counter_group
381  (
382    p_api_version               =>  p_api_version
383   ,p_commit                    =>  p_commit
384   ,p_init_msg_list             =>  p_init_msg_list
385   ,p_validation_level          =>  l_validation_level
386   ,p_counter_groups_rec        =>  l_ctr_groups_rec
387   ,p_ctr_item_associations_tbl =>  l_ctr_item_associations_tbl
388   ,x_return_status             =>  x_return_status
389   ,x_msg_count                 =>  x_msg_count
390   ,x_msg_data                  =>  x_msg_data
391  );
392 
393 	IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
394 	  ROLLBACK TO Create_Ctr_Grp_Template_PUB;
395 	  RETURN;
396 	END IF;
397 
398 	-- End of API Body
399          -- Customer/Vertical Hookups
400         /*  	Customer post -processing  section - Mandatory 	*/
401         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
402            CS_COUNTERS_CUHK.Create_Ctr_Grp_Template_Post (
403              p_api_version         => l_api_version,
404              p_init_msg_list       => p_init_msg_list,
405              p_commit              => p_commit,
406              x_return_status       => x_return_status,
407              x_msg_count           => x_msg_count,
408              x_msg_data            => x_msg_data,
409              p_ctr_grp_rec         => p_ctr_grp_rec,
410              x_ctr_grp_id          => x_ctr_grp_id,
411              x_object_version_number => x_object_version_number
412             );
413            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
414                  RAISE FND_API.G_EXC_ERROR;
415            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
416                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
417            END IF;
418          END IF;
419          /* 	Vertical post -processing  section - Mandatory  */
420          IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  ) THEN
421            CS_COUNTERS_VUHK.Create_Ctr_Grp_Template_Post (
422              p_api_version         => l_api_version,
423              p_init_msg_list       => p_init_msg_list,
424              p_commit              => p_commit,
425              x_return_status       => x_return_status,
426              x_msg_count           => x_msg_count,
427              x_msg_data            => x_msg_data,
428              p_ctr_grp_rec         => p_ctr_grp_rec,
429              x_ctr_grp_id          => x_ctr_grp_id,
430              x_object_version_number => x_object_version_number
431             );
432            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
433                  RAISE FND_API.G_EXC_ERROR;
434            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
435                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
436            END IF;
437          END IF;
438 
439 	IF FND_API.To_Boolean( p_commit ) THEN
440 		COMMIT WORK;
441 	END IF;
442 
443 	FND_MSG_PUB.Count_And_Get
444 		(p_count => x_msg_count ,
445 	      p_data => x_msg_data
446 		);
447 
448 EXCEPTION
449 
450 	WHEN FND_API.G_EXC_ERROR THEN
451 		ROLLBACK TO Create_Ctr_Grp_Template_PUB;
452 		x_return_status := FND_API.G_RET_STS_ERROR ;
453 		FND_MSG_PUB.Count_And_Get
454 			(p_count => x_msg_count ,
455 			 p_data => x_msg_data
456 			);
457 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
458 		ROLLBACK TO Create_Ctr_Grp_Template_PUB;
459 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
460 		FND_MSG_PUB.Count_And_Get
461 		(p_count => x_msg_count ,
462 		 p_data => x_msg_data
463 		);
464 	WHEN OTHERS THEN
465 		ROLLBACK TO Create_Ctr_Grp_Template_PUB;
466 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
467 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
468 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
469 		END IF;
470 		FND_MSG_PUB.Count_And_Get
471 			(p_count => x_msg_count ,
472 			 p_data => x_msg_data
473 			);
474 END Create_Ctr_Grp_Template;
475 
476 PROCEDURE Create_Ctr_Grp_Instance
477 (
478 	p_api_version			IN	NUMBER,
479 	p_init_msg_list			IN	VARCHAR2	:= FND_API.G_FALSE,
480 	p_commit			IN	VARCHAR2	:= FND_API.G_FALSE,
481 	x_return_status			OUT NOCOPY	VARCHAR2,
482 	x_msg_count			OUT NOCOPY	NUMBER,
483 	x_msg_data			OUT NOCOPY	VARCHAR2,
484 	p_ctr_grp_rec			IN	CS_COUNTERS_PUB.CtrGrp_Rec_Type,
485 	p_source_object_cd		IN	VARCHAR2,
486 	p_source_object_id		IN	NUMBER,
487 	x_ctr_grp_id			IN OUT NOCOPY	NUMBER,
488 	x_object_version_number		OUT NOCOPY	NUMBER
489 ) IS
490 	l_api_name     	CONSTANT	VARCHAR2(30)	:= 'CREATE_CTR_GRP_INSTANCE';
491 	l_api_version	CONSTANT	NUMBER		:= 1.0;
492 
493 BEGIN
494 null;
495 END Create_Ctr_Grp_Instance;
496 
497 PROCEDURE Create_Counter
498 (
499 	p_api_version			IN	NUMBER,
500 	p_init_msg_list			IN	VARCHAR2	:= FND_API.G_FALSE,
501 	p_commit			IN	VARCHAR2	:= FND_API.G_FALSE,
502 	x_return_status			OUT NOCOPY	VARCHAR2,
503 	x_msg_count			OUT NOCOPY	NUMBER,
504 	x_msg_data			OUT NOCOPY	VARCHAR2,
505 	p_ctr_rec			IN	CS_COUNTERS_PUB.Ctr_Rec_Type,
506 	x_ctr_id			IN OUT NOCOPY	NUMBER,
507 	x_object_version_number		OUT NOCOPY	NUMBER
508 ) IS
509 	l_api_name     	CONSTANT	VARCHAR2(30)	:= 'CREATE_COUNTER';
510 	l_api_version	CONSTANT	NUMBER		:= 1.0;
511 
512  l_template_flag VARCHAR2(1);
513  l_counter_template_rec      CSI_CTR_DATASTRUCTURES_PUB.counter_template_rec;
514  l_ctr_item_associations_tbl CSI_CTR_DATASTRUCTURES_PUB.ctr_item_associations_tbl;
515  l_ctr_property_template_tbl CSI_CTR_DATASTRUCTURES_PUB.ctr_property_template_tbl;
516  l_counter_relationships_tbl CSI_CTR_DATASTRUCTURES_PUB.counter_relationships_tbl;
517  l_ctr_derived_filters_tbl   CSI_CTR_DATASTRUCTURES_PUB.ctr_derived_filters_tbl;
518  l_validation_level NUMBER;
519 BEGIN
520 
521 	SAVEPOINT	Create_Counter_PUB;
522 
523 	-- Standard call to check for call compatibility.
524 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
525 								 p_api_version ,
526 								 l_api_name ,
527 								 G_PKG_NAME )	THEN
528 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
529 	END IF;
530 	-- Initialize message list if p_init_msg_list is set to TRUE.
531 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
532 		FND_MSG_PUB.initialize;
533 	END IF;
534 
535 
536         /*  	Customer pre -processing  section - Mandatory  */
537         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
538            CS_COUNTERS_CUHK.Create_Counter_Pre (
539              p_api_version           => l_api_version,
540              p_init_msg_list         => p_init_msg_list,
541              p_commit                => p_commit,
542              x_return_status         => x_return_status,
543              x_msg_count             => x_msg_count,
544              x_msg_data              => x_msg_data,
545              p_ctr_rec               => p_ctr_rec,
546              x_ctr_id                => x_ctr_id,
547              x_object_version_number => x_object_version_number
548            );
549            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
550                  RAISE FND_API.G_EXC_ERROR;
551            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
552                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
553            END IF;
554         END IF;
555         /* 	Vertical pre -processing  section - Mandatory */
556         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
557            CS_COUNTERS_VUHK.Create_Counter_Pre (
558              p_api_version           => l_api_version,
559              p_init_msg_list         => p_init_msg_list,
560              p_commit                => p_commit,
561              x_return_status         => x_return_status,
562              x_msg_count             => x_msg_count,
563              x_msg_data              => x_msg_data,
564              p_ctr_rec               => p_ctr_rec,
565              x_ctr_id                => x_ctr_id,
566              x_object_version_number => x_object_version_number
567            );
568            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
569                  RAISE FND_API.G_EXC_ERROR;
570            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
571                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
572            END IF;
573         END IF;
574 
575 	--  Initialize API return status to success
576 	x_return_status := FND_API.G_RET_STS_SUCCESS;
577 
578 	-- Start of API Body
579   l_counter_template_rec.COUNTER_ID     :=  x_ctr_id;
580   l_counter_template_rec.GROUP_ID       :=  p_ctr_rec.counter_group_id;
581   l_counter_template_rec.COUNTER_TYPE     :=  p_ctr_rec.type;
582   l_counter_template_rec.INITIAL_READING   :=  p_ctr_rec.initial_reading;
583   l_counter_template_rec.TOLERANCE_PLUS   :=  p_ctr_rec.tolerance_plus;
584   l_counter_template_rec.TOLERANCE_MINUS  :=  p_ctr_rec.tolerance_minus;
585   l_counter_template_rec.UOM_CODE         :=  p_ctr_rec.uom_code;
586   l_counter_template_rec.DERIVE_COUNTER_ID   :=  p_ctr_rec.derive_counter_id;
587   l_counter_template_rec.DERIVE_FUNCTION     :=  p_ctr_rec.derive_function;
588   l_counter_template_rec.DERIVE_PROPERTY_ID  :=  p_ctr_rec.derive_property_id;
589   l_counter_template_rec.FORMULA_TEXT      :=  p_ctr_rec.formula_text;
590   l_counter_template_rec.ROLLOVER_LAST_READING   :=  p_ctr_rec.rollover_last_reading;
591   l_counter_template_rec.ROLLOVER_FIRST_READING  :=  p_ctr_rec.rollover_first_reading;
592   l_counter_template_rec.USAGE_ITEM_ID      :=  p_ctr_rec.usage_item_id;
593   l_counter_template_rec.START_DATE_ACTIVE    :=  p_ctr_rec.start_date_active;
594   l_counter_template_rec.END_DATE_ACTIVE    :=  p_ctr_rec.end_date_active;
595   l_counter_template_rec.ATTRIBUTE1    :=  p_ctr_rec.desc_flex.ATTRIBUTE1;
596   l_counter_template_rec.ATTRIBUTE2    :=  p_ctr_rec.desc_flex.ATTRIBUTE2;
597   l_counter_template_rec.ATTRIBUTE3    :=  p_ctr_rec.desc_flex.ATTRIBUTE3;
598   l_counter_template_rec.ATTRIBUTE4    :=  p_ctr_rec.desc_flex.ATTRIBUTE4;
599   l_counter_template_rec.ATTRIBUTE5    :=  p_ctr_rec.desc_flex.ATTRIBUTE5;
600   l_counter_template_rec.ATTRIBUTE6    :=  p_ctr_rec.desc_flex.ATTRIBUTE6;
601   l_counter_template_rec.ATTRIBUTE7    :=  p_ctr_rec.desc_flex.ATTRIBUTE7;
602   l_counter_template_rec.ATTRIBUTE8    :=  p_ctr_rec.desc_flex.ATTRIBUTE8;
603   l_counter_template_rec.ATTRIBUTE9    :=  p_ctr_rec.desc_flex.ATTRIBUTE9;
604   l_counter_template_rec.ATTRIBUTE10   :=  p_ctr_rec.desc_flex.ATTRIBUTE10;
605   l_counter_template_rec.ATTRIBUTE11   :=  p_ctr_rec.desc_flex.ATTRIBUTE11;
606   l_counter_template_rec.ATTRIBUTE12   :=  p_ctr_rec.desc_flex.ATTRIBUTE12;
607   l_counter_template_rec.ATTRIBUTE13   :=  p_ctr_rec.desc_flex.ATTRIBUTE13;
608   l_counter_template_rec.ATTRIBUTE14   :=  p_ctr_rec.desc_flex.ATTRIBUTE14;
609   l_counter_template_rec.ATTRIBUTE15   :=  p_ctr_rec.desc_flex.ATTRIBUTE15;
610   l_counter_template_rec.ATTRIBUTE_CATEGORY  :=  p_ctr_rec.desc_flex.CONTEXT;
611   l_counter_template_rec.CUSTOMER_VIEW     :=  p_ctr_rec.customer_view;
612   l_counter_template_rec.DIRECTION         :=  p_ctr_rec.direction;
613   l_counter_template_rec.FILTER_TYPE       :=  p_ctr_rec.filter_type;
614   l_counter_template_rec.FILTER_READING_COUNT   :=  p_ctr_rec.filter_reading_count;
615   l_counter_template_rec.FILTER_TIME_UOM   :=  p_ctr_rec.filter_time_uom;
616   l_counter_template_rec.ESTIMATION_ID     :=  p_ctr_rec.estimation_id;
617   l_counter_template_rec.NAME            :=  p_ctr_rec.name;
618   l_counter_template_rec.DESCRIPTION     :=  p_ctr_rec.description;
619   l_counter_template_rec.COMMENTS        :=  p_ctr_rec.comments;
620   l_counter_template_rec.READING_TYPE    := 1;
621   IF p_ctr_rec.rollover_last_reading is not null and p_ctr_rec.rollover_first_reading is not null THEN
622     l_counter_template_rec.AUTOMATIC_ROLLOVER := 'Y';
623   ELSE
624     l_counter_template_rec.AUTOMATIC_ROLLOVER := 'N';
625   END IF;
626 
627   CSI_COUNTER_TEMPLATE_PUB.create_counter_template
628   (
629      p_api_version               =>  p_api_version
630     ,p_commit                    =>  p_commit
631     ,p_init_msg_list             =>  p_init_msg_list
632     ,p_validation_level          =>  l_validation_level
633     ,p_counter_template_rec      =>  l_counter_template_rec
634     ,p_ctr_item_associations_tbl =>  l_ctr_item_associations_tbl
635     ,p_ctr_property_template_tbl =>  l_ctr_property_template_tbl
636     ,p_counter_relationships_tbl =>  l_counter_relationships_tbl
637     ,p_ctr_derived_filters_tbl   =>  l_ctr_derived_filters_tbl
638     ,x_return_status             =>  x_return_status
639     ,x_msg_count                 =>  x_msg_count
640     ,x_msg_data                  =>  x_msg_data
641   );
642 
643 	 IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
644 	   ROLLBACK TO Create_Counter_PUB;
645 	   RETURN;
646 	 END IF;
647 	-- End of API Body
648 	--
649 	  -- Customer/Vertical Hookups
650         /*  	Customer post -processing  section - Mandatory 	*/
651         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
652             CS_COUNTERS_CUHK.Create_Counter_Post (
653              p_api_version           => l_api_version,
654              p_init_msg_list         => p_init_msg_list,
655              p_commit                => p_commit,
656              x_return_status         => x_return_status,
657              x_msg_count             => x_msg_count,
658              x_msg_data              => x_msg_data,
659              p_ctr_rec               => p_ctr_rec,
660              x_ctr_id                => x_ctr_id,
661              x_object_version_number => x_object_version_number
662            );
663            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
664                  RAISE FND_API.G_EXC_ERROR;
665            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
666                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
667            END IF;
668         END IF;
669         /* 	Vertical post -processing  section - Mandatory  */
670         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  ) THEN
671            CS_COUNTERS_VUHK.Create_Counter_Post (
672              p_api_version           => l_api_version,
673              p_init_msg_list         => p_init_msg_list,
674              p_commit                => p_commit,
675              x_return_status         => x_return_status,
676              x_msg_count             => x_msg_count,
677              x_msg_data              => x_msg_data,
678              p_ctr_rec               => p_ctr_rec,
679              x_ctr_id                => x_ctr_id,
680              x_object_version_number => x_object_version_number
681            );
682            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
683                  RAISE FND_API.G_EXC_ERROR;
684            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
685                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
686            END IF;
687         END IF;
688 
689 
690 	IF FND_API.To_Boolean( p_commit ) THEN
691 		COMMIT WORK;
692 	END IF;
693 
694 	FND_MSG_PUB.Count_And_Get
695 		(p_count => x_msg_count ,
696 	      p_data => x_msg_data
697 		);
698 
699 EXCEPTION
700 
701 	WHEN FND_API.G_EXC_ERROR THEN
702 		ROLLBACK TO Create_Counter_PUB;
703 		x_return_status := FND_API.G_RET_STS_ERROR ;
704 		FND_MSG_PUB.Count_And_Get
705 			(p_count => x_msg_count ,
706 			 p_data => x_msg_data
707 			);
708 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
709 		ROLLBACK TO Create_Counter_PUB;
710 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
711 		FND_MSG_PUB.Count_And_Get
712 		(p_count => x_msg_count ,
713 		 p_data => x_msg_data
714 		);
715 	WHEN OTHERS THEN
716 		ROLLBACK TO Create_Counter_PUB;
717 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
718 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
719 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
720 		END IF;
721 		FND_MSG_PUB.Count_And_Get
722 			(p_count => x_msg_count ,
723 			 p_data => x_msg_data
724 			);
725 END Create_Counter;
726 
727 PROCEDURE Create_Ctr_Prop
728 (
729 	p_api_version			IN	NUMBER,
730 	p_init_msg_list			IN	VARCHAR2	:= FND_API.G_FALSE,
731 	p_commit			IN	VARCHAR2	:= FND_API.G_FALSE,
732 	x_return_status			OUT NOCOPY	VARCHAR2,
733 	x_msg_count			OUT NOCOPY	NUMBER,
734 	x_msg_data			OUT NOCOPY	VARCHAR2,
735 	p_ctr_prop_rec			IN	Ctr_Prop_Rec_Type,
736 	x_ctr_prop_id			IN OUT NOCOPY	NUMBER,
737 	x_object_version_number		OUT NOCOPY	NUMBER
738 ) is
739 	l_api_name     		CONSTANT	VARCHAR2(30)	:= 'CREATE_CTR_PROP';
740 	l_api_version		CONSTANT	NUMBER		:= 1.0;
741 
742  l_ctr_property_template_rec  CSI_CTR_DATASTRUCTURES_PUB.ctr_property_template_rec;
743  l_validation_level NUMBER;
744 
745 BEGIN
746 
747 	SAVEPOINT	Create_Ctr_Prop_PUB;
748 
749 	-- Standard call to check for call compatibility.
750 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
751 								 p_api_version ,
752 								 l_api_name ,
753 								 G_PKG_NAME )	THEN
754 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
755 	END IF;
756 	-- Initialize message list if p_init_msg_list is set to TRUE.
757 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
758 		FND_MSG_PUB.initialize;
759 	END IF;
760 
761 	  /*  	Customer pre -processing  section - Mandatory  */
762         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
763            CS_COUNTERS_CUHK.Create_Ctr_Prop_Pre (
764              p_api_version         => l_api_version,
765              p_init_msg_list       => p_init_msg_list,
766              p_commit              => p_commit,
767              x_return_status       => x_return_status,
768              x_msg_count           => x_msg_count,
769              x_msg_data            => x_msg_data,
770              p_ctr_prop_rec        => p_ctr_prop_rec,
771              x_ctr_prop_id         => x_ctr_prop_id,
772              x_object_version_number => x_object_version_number
773            );
774            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
775                  RAISE FND_API.G_EXC_ERROR;
776            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
777                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
778            END IF;
779         END IF;
780         /* 	Vertical pre -processing  section - Mandatory */
781         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
782            CS_COUNTERS_VUHK.Create_Ctr_Prop_Pre (
783              p_api_version         => l_api_version,
784              p_init_msg_list       => p_init_msg_list,
785              p_commit              => p_commit,
786              x_return_status       => x_return_status,
787              x_msg_count           => x_msg_count,
788              x_msg_data            => x_msg_data,
789              p_ctr_prop_rec        => p_ctr_prop_rec,
790              x_ctr_prop_id         => x_ctr_prop_id,
791              x_object_version_number => x_object_version_number
792            );
793            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
794                  RAISE FND_API.G_EXC_ERROR;
795            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
796                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
797            END IF;
798         END IF;
799 
800 	--  Initialize API return status to success
801 	x_return_status := FND_API.G_RET_STS_SUCCESS;
802 
803 	-- Start of API Body
804  l_ctr_property_template_rec.COUNTER_PROPERTY_ID        := x_ctr_prop_id;
805  l_ctr_property_template_rec.COUNTER_ID                 := p_ctr_prop_rec.counter_id;
806  l_ctr_property_template_rec.PROPERTY_DATA_TYPE         := p_ctr_prop_rec.property_data_type;
807  l_ctr_property_template_rec.IS_NULLABLE                := p_ctr_prop_rec.is_nullable;
808  l_ctr_property_template_rec.DEFAULT_VALUE              := p_ctr_prop_rec.default_value;
809  l_ctr_property_template_rec.MINIMUM_VALUE              := p_ctr_prop_rec.minimum_value;
810  l_ctr_property_template_rec.MAXIMUM_VALUE              := p_ctr_prop_rec.maximum_value;
811  l_ctr_property_template_rec.UOM_CODE                   := p_ctr_prop_rec.uom_code;
812  l_ctr_property_template_rec.START_DATE_ACTIVE          := p_ctr_prop_rec.start_date_active;
813  l_ctr_property_template_rec.END_DATE_ACTIVE            := p_ctr_prop_rec.end_date_active;
814  l_ctr_property_template_rec.ATTRIBUTE1                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE1;
815  l_ctr_property_template_rec.ATTRIBUTE2                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE2;
816  l_ctr_property_template_rec.ATTRIBUTE3                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE3;
817  l_ctr_property_template_rec.ATTRIBUTE4                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE4;
818  l_ctr_property_template_rec.ATTRIBUTE5                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE5;
819  l_ctr_property_template_rec.ATTRIBUTE6                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE6;
820  l_ctr_property_template_rec.ATTRIBUTE7                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE7;
821  l_ctr_property_template_rec.ATTRIBUTE8                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE8;
822  l_ctr_property_template_rec.ATTRIBUTE9                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE9;
823  l_ctr_property_template_rec.ATTRIBUTE10                := p_ctr_prop_rec.desc_flex.ATTRIBUTE10;
824  l_ctr_property_template_rec.ATTRIBUTE11                := p_ctr_prop_rec.desc_flex.ATTRIBUTE11;
825  l_ctr_property_template_rec.ATTRIBUTE12                := p_ctr_prop_rec.desc_flex.ATTRIBUTE12;
826  l_ctr_property_template_rec.ATTRIBUTE13                := p_ctr_prop_rec.desc_flex.ATTRIBUTE13;
827  l_ctr_property_template_rec.ATTRIBUTE14                := p_ctr_prop_rec.desc_flex.ATTRIBUTE14;
828  l_ctr_property_template_rec.ATTRIBUTE15                := p_ctr_prop_rec.desc_flex.ATTRIBUTE15;
829  l_ctr_property_template_rec.ATTRIBUTE_CATEGORY         := p_ctr_prop_rec.desc_flex.CONTEXT;
830  l_ctr_property_template_rec.PROPERTY_LOV_TYPE          := p_ctr_prop_rec.property_lov_type;
831  l_ctr_property_template_rec.NAME                       := p_ctr_prop_rec.name;
832  l_ctr_property_template_rec.DESCRIPTION                := p_ctr_prop_rec.description;
833 
834  CSI_COUNTER_TEMPLATE_PUB.create_ctr_property_template
835  (
836      p_api_version               =>  p_api_version
837     ,p_commit                    =>  p_commit
838     ,p_init_msg_list             =>  p_init_msg_list
839     ,p_validation_level          =>  l_validation_level
840     ,p_ctr_property_template_rec =>  l_ctr_property_template_rec
841     ,x_return_status             =>  x_return_status
842     ,x_msg_count                 =>  x_msg_count
843     ,x_msg_data                  =>  x_msg_data
844  );
845 
846 	IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
847 	  ROLLBACK TO Create_Ctr_Prop_PUB;
848 	  RETURN;
849 	END IF;
850 	--
851 	-- End of API Body
852 	--
853 	  -- Customer/Vertical Hookups
854         /*  	Customer post -processing  section - Mandatory 	*/
855         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
856             CS_COUNTERS_CUHK.Create_Ctr_Prop_Post (
857              p_api_version         => l_api_version,
858              p_init_msg_list       => p_init_msg_list,
859              p_commit              => p_commit,
860              x_return_status       => x_return_status,
861              x_msg_count           => x_msg_count,
862              x_msg_data            => x_msg_data,
863              p_ctr_prop_rec        => p_ctr_prop_rec,
864              x_ctr_prop_id         => x_ctr_prop_id,
865              x_object_version_number => x_object_version_number
866            );
867            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
868                  RAISE FND_API.G_EXC_ERROR;
869            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
870                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
871            END IF;
872         END IF;
873 
874         /* 	Vertical post -processing  section - Mandatory  */
875         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  ) THEN
876            CS_COUNTERS_VUHK.Create_Ctr_Prop_Post (
877              p_api_version         => l_api_version,
878              p_init_msg_list       => p_init_msg_list,
879              p_commit              => p_commit,
880              x_return_status       => x_return_status,
881              x_msg_count           => x_msg_count,
882              x_msg_data            => x_msg_data,
883              p_ctr_prop_rec        => p_ctr_prop_rec,
884              x_ctr_prop_id         => x_ctr_prop_id,
885              x_object_version_number => x_object_version_number
886            );
887            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
888                  RAISE FND_API.G_EXC_ERROR;
889            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
890                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
891            END IF;
892         END IF;
893 
894 
895 	IF FND_API.To_Boolean( p_commit ) THEN
896 		COMMIT WORK;
897 	END IF;
898 
899 	FND_MSG_PUB.Count_And_Get
900 		(p_count => x_msg_count ,
901 	      p_data => x_msg_data
902 		);
903 
904 EXCEPTION
905 
906 	WHEN FND_API.G_EXC_ERROR THEN
907 		ROLLBACK TO Create_Ctr_Prop_PUB;
908 		x_return_status := FND_API.G_RET_STS_ERROR ;
909 		FND_MSG_PUB.Count_And_Get
910 			(p_count => x_msg_count ,
911 			 p_data => x_msg_data
912 			);
913 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
914 		ROLLBACK TO Create_Ctr_Prop_PUB;
915 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
916 		FND_MSG_PUB.Count_And_Get
917 		(p_count => x_msg_count ,
918 		 p_data => x_msg_data
919 		);
920 	WHEN OTHERS THEN
921 		ROLLBACK TO Create_Ctr_Prop_PUB;
922 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
923 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
924 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
925 		END IF;
926 		FND_MSG_PUB.Count_And_Get
927 			(p_count => x_msg_count ,
928 			 p_data => x_msg_data
929 			);
930 end Create_Ctr_Prop;
931 
932 PROCEDURE Create_Formula_Ref
933 (
934 	p_api_version			IN	NUMBER,
935 	p_init_msg_list			IN	VARCHAR2	:= FND_API.G_FALSE,
936 	p_commit			IN	VARCHAR2	:= FND_API.G_FALSE,
937 	x_return_status			OUT NOCOPY	VARCHAR2,
938 	x_msg_count			OUT NOCOPY	NUMBER,
939 	x_msg_data			OUT NOCOPY	VARCHAR2,
940 	p_counter_id			IN	NUMBER,
941 	p_bind_var_name			IN	VARCHAR2,
942 	p_mapped_item_id		IN	NUMBER	:= null,
943 	p_mapped_counter_id		IN	NUMBER,
944 	p_desc_flex			IN	CS_COUNTERS_EXT_PVT.DFF_Rec_Type,
945 	x_ctr_formula_bvar_id		IN OUT NOCOPY	NUMBER,
946 	x_object_version_number		OUT NOCOPY	NUMBER,
947 	p_reading_type          	IN      VARCHAR2
948 ) is
949 	l_api_name     	CONSTANT	VARCHAR2(30)	:= 'CREATE_FORMULA_REF';
950 	l_api_version	CONSTANT	NUMBER		:= 1.0;
951 
952  l_counter_relationships_rec  CSI_CTR_DATASTRUCTURES_PUB.counter_relationships_rec;
953  l_validation_level NUMBER;
954 
955  cursor ctr_associations IS
956  SELECT ctr_association_id, inventory_item_id
957  FROM csi_ctr_item_associations
958  WHERE counter_id = p_counter_id;
959  l_ctr_association_id number;
960  l_inventory_item_id number;
961 
962  cursor src_ctr_associations(p_inv_item_id number) IS
963  SELECT ctr_association_id
964  FROM csi_ctr_item_associations
965  WHERE counter_id = p_mapped_counter_id
966  AND inventory_item_id = p_inv_item_id;
967  l_src_ctr_association_id number;
968 
969 BEGIN
970 
971 	SAVEPOINT	Create_Formula_Ref_PUB;
972 
973 	-- Standard call to check for call compatibility.
974 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
975 								 p_api_version ,
976 								 l_api_name ,
977 								 G_PKG_NAME )	THEN
978 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
979 	END IF;
980 	-- Initialize message list if p_init_msg_list is set to TRUE.
981 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
982 		FND_MSG_PUB.initialize;
983 	END IF;
984 
985 	     /*  	Customer pre -processing  section - Mandatory  */
986         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
987            CS_COUNTERS_CUHK.Create_Formula_Ref_Pre (
988              p_api_version         => l_api_version,
989              p_init_msg_list       => p_init_msg_list,
990              p_commit              => p_commit,
991              x_return_status       => x_return_status,
992              x_msg_count           => x_msg_count,
993              x_msg_data            => x_msg_data,
994              p_counter_id          => p_counter_id,
995              p_bind_var_name       => p_bind_var_name,
996              p_mapped_item_id      => p_mapped_item_id,
997              p_mapped_counter_id   => p_mapped_counter_id,
998              x_ctr_formula_bvar_id => x_ctr_formula_bvar_id,
999              x_object_version_number => x_object_version_number,
1000              p_reading_type        => p_reading_type
1001            );
1002            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1003                  RAISE FND_API.G_EXC_ERROR;
1004            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1005                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1006            END IF;
1007         END IF;
1008         /* 	Vertical pre -processing  section - Mandatory */
1009         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
1010            CS_COUNTERS_VUHK.Create_Formula_Ref_Pre (
1011              p_api_version         => l_api_version,
1012              p_init_msg_list       => p_init_msg_list,
1013              p_commit              => p_commit,
1014              x_return_status       => x_return_status,
1015              x_msg_count           => x_msg_count,
1016              x_msg_data            => x_msg_data,
1017              p_counter_id          => p_counter_id,
1018              p_bind_var_name       => p_bind_var_name,
1019              p_mapped_item_id      => p_mapped_item_id,
1020              p_mapped_counter_id   => p_mapped_counter_id,
1021              x_ctr_formula_bvar_id => x_ctr_formula_bvar_id,
1022              x_object_version_number => x_object_version_number,
1023              p_reading_type        => p_reading_type
1024            );
1025            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1026                  RAISE FND_API.G_EXC_ERROR;
1027            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1028                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1029            END IF;
1030         END IF;
1031 
1032 	--  Initialize API return status to success
1033 	x_return_status := FND_API.G_RET_STS_SUCCESS;
1034 	--
1035 	-- Start of API Body
1036  --this is a template, insert one reference for each ctr association id of the formula counter.
1037   FOR ctr_associations_rec in ctr_associations LOOP
1038    l_src_ctr_association_id := null;
1039    l_counter_relationships_rec.RELATIONSHIP_ID         := x_ctr_formula_bvar_id;
1040    l_counter_relationships_rec.CTR_ASSOCIATION_ID      := ctr_associations_rec.ctr_association_id;
1041    l_counter_relationships_rec.RELATIONSHIP_TYPE_CODE  := 'FORMULA';
1042    l_counter_relationships_rec.SOURCE_COUNTER_ID       := p_mapped_counter_id;
1043    l_counter_relationships_rec.OBJECT_COUNTER_ID       := p_counter_id;
1044    l_counter_relationships_rec.ATTRIBUTE_CATEGORY      := p_desc_flex.CONTEXT;
1045    l_counter_relationships_rec.ATTRIBUTE1       := p_desc_flex.ATTRIBUTE1;
1046    l_counter_relationships_rec.ATTRIBUTE2       := p_desc_flex.ATTRIBUTE2;
1047    l_counter_relationships_rec.ATTRIBUTE3       := p_desc_flex.ATTRIBUTE3;
1048    l_counter_relationships_rec.ATTRIBUTE4       := p_desc_flex.ATTRIBUTE4;
1049    l_counter_relationships_rec.ATTRIBUTE5       := p_desc_flex.ATTRIBUTE5;
1050    l_counter_relationships_rec.ATTRIBUTE6       := p_desc_flex.ATTRIBUTE6;
1051    l_counter_relationships_rec.ATTRIBUTE7       := p_desc_flex.ATTRIBUTE7;
1052    l_counter_relationships_rec.ATTRIBUTE8       := p_desc_flex.ATTRIBUTE8;
1053    l_counter_relationships_rec.ATTRIBUTE9       := p_desc_flex.ATTRIBUTE9;
1054    l_counter_relationships_rec.ATTRIBUTE10      := p_desc_flex.ATTRIBUTE10;
1055    l_counter_relationships_rec.ATTRIBUTE11      := p_desc_flex.ATTRIBUTE11;
1056    l_counter_relationships_rec.ATTRIBUTE12      := p_desc_flex.ATTRIBUTE12;
1057    l_counter_relationships_rec.ATTRIBUTE13      := p_desc_flex.ATTRIBUTE13;
1058    l_counter_relationships_rec.ATTRIBUTE14      := p_desc_flex.ATTRIBUTE14;
1059    l_counter_relationships_rec.ATTRIBUTE15      := p_desc_flex.ATTRIBUTE15;
1060    l_counter_relationships_rec.BIND_VARIABLE_NAME       := p_bind_var_name;
1061    l_counter_relationships_rec.FACTOR    := 1;
1062 
1063    open src_ctr_associations(ctr_associations_rec.inventory_item_id);
1064    fetch src_ctr_associations into l_src_ctr_association_id;
1065    close src_ctr_associations;
1066 
1067    If l_src_ctr_association_id is not null then
1068 
1069     CSI_COUNTER_TEMPLATE_PUB.create_counter_relationship
1070     (
1071      p_api_version               =>  p_api_version
1072     ,p_commit                    =>  p_commit
1073     ,p_init_msg_list             =>  p_init_msg_list
1074     ,p_validation_level          =>  l_validation_level
1075     ,p_counter_relationships_rec =>  l_counter_relationships_rec
1076     ,x_return_status             =>  x_return_status
1077     ,x_msg_count                 =>  x_msg_count
1078     ,x_msg_data                  =>  x_msg_data
1079     );
1080 
1081    	IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
1082 	    ROLLBACK TO Create_Formula_Ref_PUB;
1083 	    RETURN;
1084     End if;
1085 	  END IF;
1086   END LOOP;
1087 	--
1088 	-- End of API Body
1089 	--
1090 
1091     -- Customer/Vertical Hookups
1092         /*  	Customer post -processing  section - Mandatory 	*/
1093         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
1094             CS_COUNTERS_CUHK.Create_Formula_Ref_Post (
1095              p_api_version         => l_api_version,
1096              p_init_msg_list       => p_init_msg_list,
1097              p_commit              => p_commit,
1098              x_return_status       => x_return_status,
1099              x_msg_count           => x_msg_count,
1100              x_msg_data            => x_msg_data,
1101              p_counter_id          => p_counter_id,
1102              p_bind_var_name       => p_bind_var_name,
1103              p_mapped_item_id      => p_mapped_item_id,
1104              p_mapped_counter_id   => p_mapped_counter_id,
1105              x_ctr_formula_bvar_id => x_ctr_formula_bvar_id,
1106              x_object_version_number => x_object_version_number,
1107              p_reading_type        => p_reading_type
1108            );
1109            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1110                  RAISE FND_API.G_EXC_ERROR;
1111            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1112                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1113            END IF;
1114         END IF;
1115         /* 	Vertical post -processing  section - Mandatory  */
1116         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  ) THEN
1117            CS_COUNTERS_VUHK.Create_Formula_Ref_Post (
1118              p_api_version         => l_api_version,
1119              p_init_msg_list       => p_init_msg_list,
1120              p_commit              => p_commit,
1121              x_return_status       => x_return_status,
1122              x_msg_count           => x_msg_count,
1123              x_msg_data            => x_msg_data,
1124              p_counter_id          => p_counter_id,
1125              p_bind_var_name       => p_bind_var_name,
1126              p_mapped_item_id      => p_mapped_item_id,
1127              p_mapped_counter_id   => p_mapped_counter_id,
1128              x_ctr_formula_bvar_id => x_ctr_formula_bvar_id,
1129              x_object_version_number => x_object_version_number,
1130              p_reading_type        => p_reading_type
1131            );
1132            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1133                  RAISE FND_API.G_EXC_ERROR;
1134            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1135                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1136            END IF;
1137         END IF;
1138 
1139 
1140 	IF FND_API.To_Boolean( p_commit ) THEN
1141 		COMMIT WORK;
1142 	END IF;
1143 
1144 	FND_MSG_PUB.Count_And_Get
1145 		(p_count => x_msg_count ,
1146 	      p_data => x_msg_data
1147 		);
1148 
1149 EXCEPTION
1150 
1151 	WHEN FND_API.G_EXC_ERROR THEN
1152 		ROLLBACK TO Create_Formula_Ref_PUB;
1153 		x_return_status := FND_API.G_RET_STS_ERROR ;
1154 		FND_MSG_PUB.Count_And_Get
1155 			(p_count => x_msg_count ,
1156 			 p_data => x_msg_data
1157 			);
1158 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1159 		ROLLBACK TO Create_Formula_Ref_PUB;
1160 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1161 		FND_MSG_PUB.Count_And_Get
1162 		(p_count => x_msg_count ,
1163 		 p_data => x_msg_data
1164 		);
1165 	WHEN OTHERS THEN
1166 		ROLLBACK TO Create_Formula_Ref_PUB;
1167 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1168 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1169 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
1170 		END IF;
1171 		FND_MSG_PUB.Count_And_Get
1172 			(p_count => x_msg_count ,
1173 			 p_data => x_msg_data
1174 			);
1175 
1176 end Create_Formula_Ref;
1177 
1178 PROCEDURE Create_GrpOp_Filter
1179 (
1180 	p_api_version		IN	NUMBER,
1181 	p_init_msg_list		IN	VARCHAR2	:= FND_API.G_FALSE,
1182 	p_commit		IN	VARCHAR2	:= FND_API.G_FALSE,
1183 	x_return_status		OUT NOCOPY	VARCHAR2,
1184 	x_msg_count		OUT NOCOPY	NUMBER,
1185 	x_msg_data		OUT NOCOPY	VARCHAR2,
1186 	p_seq_no		IN	NUMBER		:= null,
1187 	p_counter_id		IN	NUMBER,
1188 	p_left_paren		IN	VARCHAR2,
1189 	p_ctr_prop_id		IN	NUMBER,
1190 	p_rel_op		IN	VARCHAR2,
1191 	p_right_val		IN	VARCHAR2,
1192 	p_right_paren		IN	VARCHAR2,
1193 	p_log_op		IN	VARCHAR2,
1194 	p_desc_flex		IN	CS_COUNTERS_EXT_PVT.DFF_Rec_Type,
1195 	x_ctr_der_filter_id	IN OUT NOCOPY	NUMBER,
1196 	x_object_version_number	OUT NOCOPY	NUMBER
1197 ) is
1198 	l_api_name     	CONSTANT	VARCHAR2(30)	:= 'CREATE_GRPOP_FILTER';
1199 	l_api_version	CONSTANT	NUMBER		:= 1.0;
1200 
1201  l_ctr_derived_filters_tbl CSI_CTR_DATASTRUCTURES_PUB.ctr_derived_filters_tbl;
1202  l_validation_level NUMBER;
1203 
1204 BEGIN
1205 
1206 	SAVEPOINT	Create_GrpOp_Filter_PUB;
1207 
1208 	-- Standard call to check for call compatibility.
1209 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
1210 								 p_api_version ,
1211 								 l_api_name ,
1212 								 G_PKG_NAME )	THEN
1213 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1214 	END IF;
1215 	-- Initialize message list if p_init_msg_list is set to TRUE.
1216 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
1217 		FND_MSG_PUB.initialize;
1218 	END IF;
1219 
1220 	   /*   Customer / Vertical Hookups
1221         /*  	Customer pre -processing  section - Mandatory  */
1222         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
1223            CS_COUNTERS_CUHK.Create_GrpOp_Filter_Pre (
1224              p_api_version         => l_api_version,
1225              p_init_msg_list       => p_init_msg_list,
1226              p_commit              => p_commit,
1227              x_return_status       => x_return_status,
1228              x_msg_count           => x_msg_count,
1229              x_msg_data            => x_msg_data,
1230              p_seq_no              => p_seq_no,
1231              p_counter_id          => p_counter_id,
1232              p_left_paren          => p_left_paren,
1233              p_ctr_prop_id         => p_ctr_prop_id,
1234              p_rel_op              => p_rel_op,
1235              p_right_val           => p_right_val,
1236              p_right_paren         => p_right_paren,
1237              p_log_op              => p_log_op,
1238              x_ctr_der_filter_id   => x_ctr_der_filter_id,
1239              x_object_version_number => x_object_version_number
1240            );
1241            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1242                  RAISE FND_API.G_EXC_ERROR;
1243            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1244                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1245            END IF;
1246         END IF;
1247         /* 	Vertical pre -processing  section - Mandatory */
1248         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
1249            CS_COUNTERS_VUHK.Create_GrpOp_Filter_Pre (
1250              p_api_version         => l_api_version,
1251              p_init_msg_list       => p_init_msg_list,
1252              p_commit              => p_commit,
1253              x_return_status       => x_return_status,
1254              x_msg_count           => x_msg_count,
1255              x_msg_data            => x_msg_data,
1256              p_seq_no              => p_seq_no,
1257              p_counter_id          => p_counter_id,
1258              p_left_paren          => p_left_paren,
1259              p_ctr_prop_id         => p_ctr_prop_id,
1260              p_rel_op              => p_rel_op,
1261              p_right_val           => p_right_val,
1262              p_right_paren         => p_right_paren,
1263              p_log_op              => p_log_op,
1264              x_ctr_der_filter_id   => x_ctr_der_filter_id,
1265              x_object_version_number => x_object_version_number
1266            );
1267            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1268                  RAISE FND_API.G_EXC_ERROR;
1269            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1270                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1271            END IF;
1272         END IF;
1273 	--  Initialize API return status to success
1274 	x_return_status := FND_API.G_RET_STS_SUCCESS;
1275 	--
1276 	-- Start of API Body
1277  l_ctr_derived_filters_tbl(1).COUNTER_DERIVED_FILTER_ID := x_ctr_der_filter_id;
1278  l_ctr_derived_filters_tbl(1).COUNTER_ID   :=  p_counter_id;
1279  l_ctr_derived_filters_tbl(1).SEQ_NO     :=  p_seq_no;
1280  l_ctr_derived_filters_tbl(1).LEFT_PARENT   :=  p_left_paren;
1281  l_ctr_derived_filters_tbl(1).COUNTER_PROPERTY_ID   :=  p_ctr_prop_id;
1282  l_ctr_derived_filters_tbl(1).RELATIONAL_OPERATOR   :=  p_rel_op;
1283  l_ctr_derived_filters_tbl(1).RIGHT_VALUE         :=  p_right_val;
1284  l_ctr_derived_filters_tbl(1).RIGHT_PARENT      :=  p_right_paren;
1285  l_ctr_derived_filters_tbl(1).LOGICAL_OPERATOR   :=  p_log_op;
1286  l_ctr_derived_filters_tbl(1).ATTRIBUTE1         := p_desc_flex.ATTRIBUTE1;
1287  l_ctr_derived_filters_tbl(1).ATTRIBUTE2         := p_desc_flex.ATTRIBUTE2;
1288  l_ctr_derived_filters_tbl(1).ATTRIBUTE3         := p_desc_flex.ATTRIBUTE3;
1289  l_ctr_derived_filters_tbl(1).ATTRIBUTE4         := p_desc_flex.ATTRIBUTE4;
1290  l_ctr_derived_filters_tbl(1).ATTRIBUTE5         := p_desc_flex.ATTRIBUTE5;
1291  l_ctr_derived_filters_tbl(1).ATTRIBUTE6         := p_desc_flex.ATTRIBUTE6;
1292  l_ctr_derived_filters_tbl(1).ATTRIBUTE7         := p_desc_flex.ATTRIBUTE7;
1293  l_ctr_derived_filters_tbl(1).ATTRIBUTE8         := p_desc_flex.ATTRIBUTE8;
1294  l_ctr_derived_filters_tbl(1).ATTRIBUTE9         := p_desc_flex.ATTRIBUTE9;
1295  l_ctr_derived_filters_tbl(1).ATTRIBUTE10        := p_desc_flex.ATTRIBUTE10;
1296  l_ctr_derived_filters_tbl(1).ATTRIBUTE11        := p_desc_flex.ATTRIBUTE11;
1297  l_ctr_derived_filters_tbl(1).ATTRIBUTE12        := p_desc_flex.ATTRIBUTE12;
1298  l_ctr_derived_filters_tbl(1).ATTRIBUTE13        := p_desc_flex.ATTRIBUTE13;
1299  l_ctr_derived_filters_tbl(1).ATTRIBUTE14        := p_desc_flex.ATTRIBUTE14;
1300  l_ctr_derived_filters_tbl(1).ATTRIBUTE15        := p_desc_flex.ATTRIBUTE15;
1301  l_ctr_derived_filters_tbl(1).ATTRIBUTE_CATEGORY  := p_desc_flex.CONTEXT;
1302 
1303  CSI_COUNTER_TEMPLATE_PUB.create_derived_filters
1304  (
1305      p_api_version               =>  p_api_version
1306     ,p_commit                    =>  p_commit
1307     ,p_init_msg_list             =>  p_init_msg_list
1308     ,p_validation_level          =>  l_validation_level
1309     ,p_ctr_derived_filters_tbl   =>  l_ctr_derived_filters_tbl
1310     ,x_return_status             =>  x_return_status
1311     ,x_msg_count                 =>  x_msg_count
1312     ,x_msg_data                  =>  x_msg_data
1313  );
1314 
1315 	IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
1316 	  ROLLBACK TO Create_GrpOp_Filter_PUB;
1317 	  RETURN;
1318 	END IF;
1319 	--
1320 	-- End of API Body
1321 	--
1322 	--
1323         -- Customer/Vertical Hookups
1324         /*  	Customer post -processing  section - Mandatory 	*/
1325         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
1326             CS_COUNTERS_CUHK.Create_GrpOp_Filter_Post (
1327              p_api_version         => l_api_version,
1328              p_init_msg_list       => p_init_msg_list,
1329              p_commit              => p_commit,
1330              x_return_status       => x_return_status,
1331              x_msg_count           => x_msg_count,
1332              x_msg_data            => x_msg_data,
1333              p_seq_no              => p_seq_no,
1334              p_counter_id          => p_counter_id,
1335              p_left_paren          => p_left_paren,
1336              p_ctr_prop_id         => p_ctr_prop_id,
1337              p_rel_op              => p_rel_op,
1338              p_right_val           => p_right_val,
1339              p_right_paren         => p_right_paren,
1340              p_log_op              => p_log_op,
1341              x_ctr_der_filter_id   => x_ctr_der_filter_id,
1342              x_object_version_number => x_object_version_number
1343            );
1344            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1345                  RAISE FND_API.G_EXC_ERROR;
1346            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1347                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1348            END IF;
1349         END IF;
1350         /* 	Vertical post -processing  section - Mandatory  */
1351         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  ) THEN
1352            CS_COUNTERS_VUHK.Create_GrpOp_Filter_Post (
1353              p_api_version         => l_api_version,
1354              p_init_msg_list       => p_init_msg_list,
1355              p_commit              => p_commit,
1356              x_return_status       => x_return_status,
1357              x_msg_count           => x_msg_count,
1358              x_msg_data            => x_msg_data,
1359              p_seq_no              => p_seq_no,
1360              p_counter_id          => p_counter_id,
1361              p_left_paren          => p_left_paren,
1362              p_ctr_prop_id         => p_ctr_prop_id,
1363              p_rel_op              => p_rel_op,
1364              p_right_val           => p_right_val,
1365              p_right_paren         => p_right_paren,
1366              p_log_op              => p_log_op,
1367              x_ctr_der_filter_id   => x_ctr_der_filter_id,
1368              x_object_version_number => x_object_version_number
1369            );
1370            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1371                  RAISE FND_API.G_EXC_ERROR;
1372            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1373                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1374            END IF;
1375         END IF;
1376 
1377 	IF FND_API.To_Boolean( p_commit ) THEN
1378 		COMMIT WORK;
1379 	END IF;
1380 
1381 	FND_MSG_PUB.Count_And_Get
1382 		(p_count => x_msg_count ,
1383 	      p_data => x_msg_data
1384 		);
1385 
1386 EXCEPTION
1387 
1388 	WHEN FND_API.G_EXC_ERROR THEN
1389 		ROLLBACK TO Create_GrpOp_Filter_PUB;
1390 		x_return_status := FND_API.G_RET_STS_ERROR ;
1391 		FND_MSG_PUB.Count_And_Get
1392 			(p_count => x_msg_count ,
1393 			 p_data => x_msg_data
1394 			);
1395 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1396 		ROLLBACK TO Create_GrpOp_Filter_PUB;
1397 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1398 		FND_MSG_PUB.Count_And_Get
1399 		(p_count => x_msg_count ,
1400 		 p_data => x_msg_data
1401 		);
1402 	WHEN OTHERS THEN
1403 		ROLLBACK TO Create_GrpOp_Filter_PUB;
1404 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1405 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1406 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
1407 		END IF;
1408 		FND_MSG_PUB.Count_And_Get
1409 			(p_count => x_msg_count ,
1410 			 p_data => x_msg_data
1411 			);
1412 
1413 end Create_GrpOp_Filter;
1414 
1415 PROCEDURE Create_Ctr_Association
1416 (
1417 	p_api_version			IN	NUMBER,
1418 	p_init_msg_list			IN	VARCHAR2	:= FND_API.G_FALSE,
1419 	p_commit			IN	VARCHAR2	:= FND_API.G_FALSE,
1420 	x_return_status			OUT NOCOPY	VARCHAR2,
1421 	x_msg_count			OUT NOCOPY	NUMBER,
1422 	x_msg_data			OUT NOCOPY	VARCHAR2,
1423 	p_ctr_grp_id			IN	NUMBER,
1424 	p_source_object_id		IN	NUMBER,
1425 	p_desc_flex			IN	CS_COUNTERS_EXT_PVT.DFF_Rec_Type,
1426 	x_ctr_association_id		OUT NOCOPY	NUMBER,
1427 	x_object_version_number		OUT NOCOPY	NUMBER
1428 ) is
1429 	l_api_name    	CONSTANT	VARCHAR2(30)	:= 'CREATE_CTR_ASSOCIATION';
1430 	l_api_version	CONSTANT	NUMBER		:= 1.0;
1431 	l_association_type		VARCHAR2(30);
1432  l_ctr_item_associations_rec CSI_CTR_DATASTRUCTURES_PUB.ctr_item_associations_rec;
1433  l_validation_level NUMBER;
1434 BEGIN
1435 	SAVEPOINT	Create_Ctr_Association_PUB;
1436 
1437 	-- Standard call to check for call compatibility.
1438 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
1439 								 p_api_version ,
1440 								 l_api_name ,
1441 								 G_PKG_NAME )	THEN
1442 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1443 	END IF;
1444 	-- Initialize message list if p_init_msg_list is set to TRUE.
1445 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
1446 		FND_MSG_PUB.initialize;
1447 	END IF;
1448 	   /*    Customer/Vertical Hookups
1449         /*  	Customer pre -processing  section - Mandatory  */
1450         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
1451            CS_COUNTERS_CUHK.Create_Ctr_Association_Pre (
1452              p_api_version           => l_api_version,
1453              p_init_msg_list         => p_init_msg_list,
1454              p_commit                => p_commit,
1455              x_return_status         => x_return_status,
1456              x_msg_count             => x_msg_count,
1457              x_msg_data              => x_msg_data,
1458              p_ctr_grp_id            => p_ctr_grp_id,
1459              p_source_object_id      => p_source_object_id,
1460              x_ctr_association_id    => x_ctr_association_id,
1461              x_object_version_number => x_object_version_number
1462            );
1463            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1464                  RAISE FND_API.G_EXC_ERROR;
1465            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1466                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1467            END IF;
1468         END IF;
1469         /* 	Vertical pre -processing  section - Mandatory */
1470         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
1471            CS_COUNTERS_VUHK.Create_Ctr_Association_Pre (
1472              p_api_version           => l_api_version,
1473              p_init_msg_list         => p_init_msg_list,
1474              p_commit                => p_commit,
1475              x_return_status         => x_return_status,
1476              x_msg_count             => x_msg_count,
1477              x_msg_data              => x_msg_data,
1478              p_ctr_grp_id            => p_ctr_grp_id,
1479              p_source_object_id      => p_source_object_id,
1480              x_ctr_association_id    => x_ctr_association_id,
1481              x_object_version_number => x_object_version_number
1482            );
1483            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1484                  RAISE FND_API.G_EXC_ERROR;
1485            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1486                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1487            END IF;
1488         END IF;
1489 
1490 	--  Initialize API return status to success
1491 	x_return_status := FND_API.G_RET_STS_SUCCESS;
1492 	-- Start of API Body
1493 /*
1494  BEGIN
1495 		SELECT association_type
1496 		INTO l_association_type
1497 		FROM cs_counter_groups
1498 		WHERE counter_group_id = p_ctr_grp_id;
1499 --		and	  template_flag = 'Y';
1500 
1501 	EXCEPTION WHEN NO_DATA_FOUND THEN
1502 		CS_Counters_PVT.ExitWithErrMsg('CS_API_CTR_GRP_INVALID');
1503 	END;
1504 */
1505  l_ctr_item_associations_rec.CTR_ASSOCIATION_ID     := x_ctr_association_id;
1506  l_ctr_item_associations_rec.GROUP_ID               := p_ctr_grp_id;
1507  l_ctr_item_associations_rec.INVENTORY_ITEM_ID      := p_source_object_id;
1508  l_ctr_item_associations_rec.ATTRIBUTE1             := p_desc_flex.ATTRIBUTE1;
1509  l_ctr_item_associations_rec.ATTRIBUTE2             := p_desc_flex.ATTRIBUTE2;
1510  l_ctr_item_associations_rec.ATTRIBUTE3             := p_desc_flex.ATTRIBUTE3;
1511  l_ctr_item_associations_rec.ATTRIBUTE4             := p_desc_flex.ATTRIBUTE4;
1512  l_ctr_item_associations_rec.ATTRIBUTE5             := p_desc_flex.ATTRIBUTE5;
1513  l_ctr_item_associations_rec.ATTRIBUTE6             := p_desc_flex.ATTRIBUTE6;
1514  l_ctr_item_associations_rec.ATTRIBUTE7             := p_desc_flex.ATTRIBUTE7;
1515  l_ctr_item_associations_rec.ATTRIBUTE8             := p_desc_flex.ATTRIBUTE8;
1516  l_ctr_item_associations_rec.ATTRIBUTE9             := p_desc_flex.ATTRIBUTE9;
1517  l_ctr_item_associations_rec.ATTRIBUTE10            := p_desc_flex.ATTRIBUTE10;
1518  l_ctr_item_associations_rec.ATTRIBUTE11            := p_desc_flex.ATTRIBUTE11;
1519  l_ctr_item_associations_rec.ATTRIBUTE12            := p_desc_flex.ATTRIBUTE12;
1520  l_ctr_item_associations_rec.ATTRIBUTE13            := p_desc_flex.ATTRIBUTE13;
1521  l_ctr_item_associations_rec.ATTRIBUTE14            := p_desc_flex.ATTRIBUTE14;
1522  l_ctr_item_associations_rec.ATTRIBUTE15            := p_desc_flex.ATTRIBUTE15;
1523  l_ctr_item_associations_rec.ATTRIBUTE_CATEGORY     := p_desc_flex.CONTEXT;
1524  --convert association type 'PROD_ITEM' TO 'TRACKABLE', AND SERVICE ITEM
1525 /*
1526  IF l_association_type = 'PROD_ITEM' THEN
1527    l_ctr_item_associations_rec.ASSOCIATION_TYPE       := 'TRACKABLE';
1528  ELSIF l_association_type = 'SVC_ITEM' THEN
1529    l_ctr_item_associations_rec.ASSOCIATION_TYPE       := 'CONTRACT';
1530  END IF;
1531 */
1532  l_ctr_item_associations_rec.ASSOCIATED_TO_GROUP    := 'Y';
1533 
1534  CSI_COUNTER_TEMPLATE_PUB.create_item_association
1535  (
1536     p_api_version               =>  p_api_version
1537    ,p_commit                    =>  p_commit
1538    ,p_init_msg_list             =>  p_init_msg_list
1539    ,p_validation_level          =>  l_validation_level
1540    ,p_ctr_item_associations_rec =>  l_ctr_item_associations_rec
1541    ,x_return_status             =>  x_return_status
1542    ,x_msg_count                 =>  x_msg_count
1543    ,x_msg_data                  =>  x_msg_data
1544  );
1545 
1546  IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
1547 	  ROLLBACK TO 	Create_Ctr_Association_PUB;
1548 	  RETURN;
1549 	END IF;
1550 
1551 	-- End of API Body
1552 	--
1553 	 -- Customer/Vertical Hookups
1554         /*  	Customer post -processing  section - Mandatory 	*/
1555         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
1556             CS_COUNTERS_CUHK.Create_Ctr_Association_Post (
1557              p_api_version           => l_api_version,
1558              p_init_msg_list         => p_init_msg_list,
1559              p_commit                => p_commit,
1560              x_return_status         => x_return_status,
1561              x_msg_count             => x_msg_count,
1562              x_msg_data              => x_msg_data,
1563              p_ctr_grp_id            => p_ctr_grp_id,
1564              p_source_object_id      => p_source_object_id,
1565              x_ctr_association_id    => l_ctr_item_associations_rec.CTR_ASSOCIATION_ID,
1566              x_object_version_number => x_object_version_number
1567            );
1568            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1569                  RAISE FND_API.G_EXC_ERROR;
1570            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1571                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1572            END IF;
1573         END IF;
1574         /* 	Vertical post -processing  section - Mandatory */
1575         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  )  THEN
1576            CS_COUNTERS_VUHK.Create_Ctr_Association_Post (
1577              p_api_version           => l_api_version,
1578              p_init_msg_list         => p_init_msg_list,
1579              p_commit                => p_commit,
1580              x_return_status         => x_return_status,
1581              x_msg_count             => x_msg_count,
1582              x_msg_data              => x_msg_data,
1583              p_ctr_grp_id            => p_ctr_grp_id,
1584              p_source_object_id      => p_source_object_id,
1585              x_ctr_association_id    => l_ctr_item_associations_rec.CTR_ASSOCIATION_ID,
1586              x_object_version_number => x_object_version_number
1587            );
1588            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1589                  RAISE FND_API.G_EXC_ERROR;
1590            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1591                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1592            END IF;
1593         END IF;
1594 
1595 	IF FND_API.To_Boolean( p_commit ) THEN
1596 		COMMIT WORK;
1597 	END IF;
1598 
1599 	FND_MSG_PUB.Count_And_Get
1600 		(p_count => x_msg_count ,
1601 	      p_data => x_msg_data
1602 		);
1603 
1604 EXCEPTION
1605 
1606 	WHEN FND_API.G_EXC_ERROR THEN
1607 		ROLLBACK TO Create_Ctr_Association_PUB;
1608 		x_return_status := FND_API.G_RET_STS_ERROR ;
1609 		FND_MSG_PUB.Count_And_Get
1610 			(p_count => x_msg_count ,
1611 			 p_data => x_msg_data
1612 			);
1613 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1614 		ROLLBACK TO Create_Ctr_Association_PUB;
1615 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1616 		FND_MSG_PUB.Count_And_Get
1617 		(p_count => x_msg_count ,
1618 		 p_data => x_msg_data
1619 		);
1620 	WHEN OTHERS THEN
1621 		ROLLBACK TO Create_Ctr_Association_PUB;
1622 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1623 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1624 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
1625 		END IF;
1626 		FND_MSG_PUB.Count_And_Get
1627 			(p_count => x_msg_count ,
1628 			 p_data => x_msg_data
1629 			);
1630 
1631 end Create_Ctr_Association;
1632 
1633 PROCEDURE AutoInstantiate_Counters
1634 (
1635 	p_api_version			IN	NUMBER,
1636 	p_init_msg_list			IN	VARCHAR2	:= FND_API.G_FALSE,
1637 	p_commit			IN	VARCHAR2	:= FND_API.G_FALSE,
1638 	x_return_status			OUT NOCOPY	VARCHAR2,
1639 	x_msg_count			OUT NOCOPY	NUMBER,
1640 	x_msg_data			OUT NOCOPY	VARCHAR2,
1641 	p_source_object_id_template	IN	NUMBER,
1642 	p_source_object_id_instance	IN	NUMBER,
1643 	x_ctr_grp_id_template		IN OUT NOCOPY	NUMBER,
1644 	x_ctr_grp_id_instance		IN OUT NOCOPY	NUMBER,
1645  p_organization_id               IN      NUMBER      := cs_std.get_item_valdn_orgzn_id
1646 ) is
1647 	l_api_name    	CONSTANT	VARCHAR2(30)	:= 'AUTOINSTANTIATE_COUNTERS';
1648 	l_api_version	CONSTANT	NUMBER		:= 1.0;
1649         l_ctr_template_autoinst_tbl     CSI_COUNTER_TEMPLATE_PUB.ctr_template_autoinst_tbl;
1650         l_counter_autoinstantiate_tbl   CSI_COUNTER_TEMPLATE_PUB.counter_autoinstantiate_tbl;
1651         l_msg_index     NUMBER;
1652         l_msg_count     NUMBER;
1653 BEGIN
1654 	SAVEPOINT	AutoInstantiate_Counters_PUB;
1655 
1656 	-- Standard call to check for call compatibility.
1657 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
1658 								 p_api_version ,
1659 								 l_api_name ,
1660 								 G_PKG_NAME )	THEN
1661 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1662 	END IF;
1663 	-- Initialize message list if p_init_msg_list is set to TRUE.
1664 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
1665 		FND_MSG_PUB.initialize;
1666 	END IF;
1667 
1668         /*    Customer/Vertical Hookups
1669         /*  	Customer pre -processing  section - Mandatory  */
1670         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
1671            CS_COUNTERS_CUHK.AutoInstantiate_Counters_Pre (
1672              p_api_version           => l_api_version,
1673              p_init_msg_list         => p_init_msg_list,
1674              p_commit                => p_commit,
1675              x_return_status         => x_return_status,
1676              x_msg_count             => x_msg_count,
1677              x_msg_data              => x_msg_data,
1678              p_source_object_id_template => p_source_object_id_template,
1679              p_source_object_id_instance => p_source_object_id_instance,
1680              x_ctr_grp_id_template   => x_ctr_grp_id_template,
1681              x_ctr_grp_id_instance   => x_ctr_grp_id_instance
1682            );
1683            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1684                  RAISE FND_API.G_EXC_ERROR;
1685            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1686                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1687            END IF;
1688         END IF;
1689         /* 	Vertical pre -processing  section - Mandatory */
1690         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
1691            CS_COUNTERS_VUHK.AutoInstantiate_Counters_Pre (
1692              p_api_version           => l_api_version,
1693              p_init_msg_list         => p_init_msg_list,
1694              p_commit                => p_commit,
1695              x_return_status         => x_return_status,
1696              x_msg_count             => x_msg_count,
1697              x_msg_data              => x_msg_data,
1698              p_source_object_id_template => p_source_object_id_template,
1699              p_source_object_id_instance => p_source_object_id_instance,
1700              x_ctr_grp_id_template   => x_ctr_grp_id_template,
1701              x_ctr_grp_id_instance   => x_ctr_grp_id_instance
1702            );
1703            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1704                  RAISE FND_API.G_EXC_ERROR;
1705            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1706                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1707            END IF;
1708         END IF;
1709 
1710 	--  Initialize API return status to success
1711 	x_return_status := FND_API.G_RET_STS_SUCCESS;
1712 	-- Start of API Body
1713         CSI_COUNTER_TEMPLATE_PUB.AutoInstantiate_Counters
1714         (
1715          p_api_version               => p_api_version
1716          ,p_commit                    => p_commit
1717          ,p_init_msg_list             => p_init_msg_list
1718          ,x_return_status             => x_return_status
1719          ,x_msg_count                 => x_msg_count
1720          ,x_msg_data                  => x_msg_data
1721          ,p_source_object_id_template => p_source_object_id_template
1722          ,p_source_object_id_instance => p_source_object_id_instance
1723          ,x_ctr_id_template	      => l_ctr_template_autoinst_tbl
1724          ,x_ctr_id_instance	      => l_counter_autoinstantiate_tbl
1725          ,x_ctr_grp_id_template       => x_ctr_grp_id_template
1726          ,x_ctr_grp_id_instance       => x_ctr_grp_id_instance
1727          ,p_organization_id           => p_organization_id
1728         );
1729 
1730         IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
1731 	   l_msg_index := 1;
1732            l_msg_count := x_msg_count;
1733 
1734            WHILE l_msg_count > 0 LOOP
1735               x_msg_data := FND_MSG_PUB.GET
1736                              (l_msg_index,
1737                               FND_API.G_FALSE);
1738               csi_ctr_gen_utility_pvt.put_line('Error from CSI_COUNTER_TEMPLATE_PUB.AutoInstantiate_Counters');
1739               csi_ctr_gen_utility_pvt.put_line('MESSAGE DATA = '||x_msg_data);
1740               l_msg_index := l_msg_index + 1;
1741               l_msg_count := l_msg_count - 1;
1742            END LOOP;
1743            RAISE FND_API.G_EXC_ERROR;
1744         END IF;
1745 
1746 	-- End of API Body
1747 	--
1748         -- Customer/Vertical Hookups
1749         /*  	Customer post -processing  section - Mandatory 	*/
1750         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
1751             CS_COUNTERS_CUHK.AutoInstantiate_Counters_Post (
1752              p_api_version           => l_api_version,
1753              p_init_msg_list         => p_init_msg_list,
1754              p_commit                => p_commit,
1755              x_return_status         => x_return_status,
1756              x_msg_count             => x_msg_count,
1757              x_msg_data              => x_msg_data,
1758              p_source_object_id_template => p_source_object_id_template,
1759              p_source_object_id_instance => p_source_object_id_instance,
1760              x_ctr_grp_id_template   => x_ctr_grp_id_template,
1761              x_ctr_grp_id_instance   => x_ctr_grp_id_instance
1762            );
1763            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1764                  RAISE FND_API.G_EXC_ERROR;
1765            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1766                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1767            END IF;
1768         END IF;
1769         /* 	Vertical post -processing  section - Mandatory */
1770         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  )  THEN
1771            CS_COUNTERS_VUHK.AutoInstantiate_Counters_Post (
1772              p_api_version           => l_api_version,
1773              p_init_msg_list         => p_init_msg_list,
1774              p_commit                => p_commit,
1775              x_return_status         => x_return_status,
1776              x_msg_count             => x_msg_count,
1777              x_msg_data              => x_msg_data,
1778              p_source_object_id_template => p_source_object_id_template,
1779              p_source_object_id_instance => p_source_object_id_instance,
1780              x_ctr_grp_id_template   => x_ctr_grp_id_template,
1781              x_ctr_grp_id_instance   => x_ctr_grp_id_instance
1782            );
1783            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1784                  RAISE FND_API.G_EXC_ERROR;
1785            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1786                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1787            END IF;
1788         END IF;
1789 
1790 	-- IF FND_API.To_Boolean( p_commit ) THEN
1791 	IF FND_API.To_Boolean(nvl(p_commit,FND_API.G_FALSE)) THEN
1792 		COMMIT WORK;
1793 	END IF;
1794 
1795 	FND_MSG_PUB.Count_And_Get
1796 		(p_count => x_msg_count ,
1797 	      p_data => x_msg_data
1798 		);
1799 
1800 EXCEPTION
1801 	WHEN FND_API.G_EXC_ERROR THEN
1802 		x_return_status := FND_API.G_RET_STS_ERROR ;
1803 		ROLLBACK TO AutoInstantiate_Counters_PUB;
1804 		FND_MSG_PUB.Count_And_Get
1805 			(p_count => x_msg_count ,
1806 			 p_data => x_msg_data
1807 			);
1808 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1809 		ROLLBACK TO AutoInstantiate_Counters_PUB;
1810 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1811 		FND_MSG_PUB.Count_And_Get
1812 		(p_count => x_msg_count ,
1813 		 p_data => x_msg_data
1814 		);
1815 	WHEN OTHERS THEN
1816 		ROLLBACK TO AutoInstantiate_Counters_PUB;
1817 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1818 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1819 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
1820 		END IF;
1821 		FND_MSG_PUB.Count_And_Get
1822 			(p_count => x_msg_count ,
1823 			 p_data => x_msg_data
1824 			);
1825 
1826 end AutoInstantiate_Counters;
1827 
1828 PROCEDURE Instantiate_Counters
1829 (
1830         p_api_version                   IN      NUMBER,
1831         p_init_msg_list                 IN      VARCHAR2        := FND_API.G_FALSE,
1832         p_commit                        IN      VARCHAR2        := FND_API.G_FALSE,
1833         x_return_status                 OUT NOCOPY     VARCHAR2,
1834         x_msg_count                     OUT NOCOPY     NUMBER,
1835         x_msg_data                      OUT NOCOPY     VARCHAR2,
1836         p_counter_group_id_template     IN      NUMBER,
1837         p_source_object_code_instance   IN      VARCHAR2,
1838         p_source_object_id_instance     IN      NUMBER,
1839         x_ctr_grp_id_template           OUT NOCOPY     NUMBER,
1840         x_ctr_grp_id_instance           OUT NOCOPY     NUMBER
1841 ) is
1842         l_api_name      CONSTANT        VARCHAR2(30)    := 'INSTANTIATE_COUNTERS';
1843         l_api_version   CONSTANT        NUMBER          := 1.0;
1844         l_ctr_grp_id_instance   NUMBER;
1845         l_ctr_id_template NUMBER;
1846         l_ctr_id_instance NUMBER;
1847 
1848 
1849 BEGIN
1850 
1851         SAVEPOINT       Instantiate_Counters_PUB;
1852 
1853         -- Standard call to check for call compatibility.
1854         IF NOT FND_API.Compatible_API_Call (l_api_version ,
1855                                                                  p_api_version ,
1856                                                                  l_api_name ,
1857                                                                  G_PKG_NAME )   THEN
1858                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1859         END IF;
1860         -- Initialize message list if p_init_msg_list is set to TRUE.
1861         IF FND_API.to_Boolean( p_init_msg_list ) THEN
1862                 FND_MSG_PUB.initialize;
1863         END IF;
1864 
1865         /*   Customer/Vertical Hookups
1866         /*      Customer pre -processing  section - Mandatory  */
1867         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
1868            CS_COUNTERS_CUHK.Instantiate_Counters_Pre (
1869              p_api_version           => l_api_version,
1870              p_init_msg_list         => p_init_msg_list,
1871              p_commit                => p_commit,
1872              x_return_status         => x_return_status,
1873              x_msg_count             => x_msg_count,
1874              x_msg_data              => x_msg_data,
1875              p_counter_group_id_template => p_counter_group_id_template,
1876              p_source_object_code_instance => p_source_object_code_instance,
1877              p_source_object_id_instance => p_source_object_id_instance,
1878              x_ctr_grp_id_template   => x_ctr_grp_id_template,
1879              x_ctr_grp_id_instance   => x_ctr_grp_id_instance
1880            );
1881            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1882                  RAISE FND_API.G_EXC_ERROR;
1883            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1884                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1885            END IF;
1886         END IF;
1887         /*      Vertical pre -processing  section - Mandatory */
1888         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
1889            CS_COUNTERS_VUHK.Instantiate_Counters_Pre (
1890              p_api_version           => l_api_version,
1891              p_init_msg_list         => p_init_msg_list,
1892              p_commit                => p_commit,
1893              x_return_status         => x_return_status,
1894              x_msg_count             => x_msg_count,
1895              x_msg_data              => x_msg_data,
1896              p_counter_group_id_template => p_counter_group_id_template,
1897              p_source_object_code_instance => p_source_object_code_instance,
1898              p_source_object_id_instance => p_source_object_id_instance,
1899              x_ctr_grp_id_template   => x_ctr_grp_id_template,
1900              x_ctr_grp_id_instance   => x_ctr_grp_id_instance
1901            );
1902            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1903                  RAISE FND_API.G_EXC_ERROR;
1904            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1905                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1906            END IF;
1907         END IF;
1908 
1909         --  Initialize API return status to success
1910         x_return_status := FND_API.G_RET_STS_SUCCESS;
1911         -- Start of API Body
1912        CSI_COUNTER_TEMPLATE_PUB.instantiate_grp_counters
1913         (
1914           p_api_version,
1915           p_init_msg_list,
1916           p_commit,
1917           x_return_status,
1918           x_msg_count,
1919           x_msg_data,
1920           p_counter_group_id_template,
1921           p_source_object_code_instance,
1922           p_source_object_id_instance,
1923           x_ctr_grp_id_instance,
1924           p_maint_org_id=>NULL,
1925           p_primary_failure_flag=>NULL
1926           );
1927         -- End of API Body
1928         --
1929         -- Customer/Vertical Hookups
1930         /*      Customer post -processing  section - Mandatory  */
1931         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
1932             CS_COUNTERS_CUHK.Instantiate_Counters_Post (
1933              p_api_version           => l_api_version,
1934              p_init_msg_list         => p_init_msg_list,
1935              p_commit                => p_commit,
1936              x_return_status         => x_return_status,
1937              x_msg_count             => x_msg_count,
1938              x_msg_data              => x_msg_data,
1939              p_counter_group_id_template => p_counter_group_id_template,
1940              p_source_object_code_instance => p_source_object_code_instance,
1941              p_source_object_id_instance => p_source_object_id_instance,
1942              x_ctr_grp_id_template   => x_ctr_grp_id_template,
1943              x_ctr_grp_id_instance   => l_ctr_grp_id_instance
1944            );
1945            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1946                  RAISE FND_API.G_EXC_ERROR;
1947            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1948                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1949            END IF;
1950         END IF;
1951         /*      Vertical post -processing  section - Mandatory */
1952         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  )  THEN
1953            CS_COUNTERS_VUHK.Instantiate_Counters_Post (
1954              p_api_version           => l_api_version,
1955              p_init_msg_list         => p_init_msg_list,
1956              p_commit                => p_commit,
1957              x_return_status         => x_return_status,
1958              x_msg_count             => x_msg_count,
1959              x_msg_data              => x_msg_data,
1960              p_counter_group_id_template => p_counter_group_id_template,
1961              p_source_object_code_instance => p_source_object_code_instance,
1962              p_source_object_id_instance => p_source_object_id_instance,
1963              x_ctr_grp_id_template   => x_ctr_grp_id_template,
1964              x_ctr_grp_id_instance   => l_ctr_grp_id_instance
1965            );
1966            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
1967                  RAISE FND_API.G_EXC_ERROR;
1968            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1969                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1970            END IF;
1971         END IF;
1972 
1973         IF FND_API.To_Boolean( p_commit ) THEN
1974                 COMMIT WORK;
1975         END IF;
1976 
1977         FND_MSG_PUB.Count_And_Get
1978                 (p_count => x_msg_count ,
1979               p_data => x_msg_data
1980                 );
1981 
1982 EXCEPTION
1983 
1984         WHEN FND_API.G_EXC_ERROR THEN
1985                 ROLLBACK TO Instantiate_Counters_PUB;
1986                 x_return_status := FND_API.G_RET_STS_ERROR ;
1987                 FND_MSG_PUB.Count_And_Get
1988                         (p_count => x_msg_count ,
1989                          p_data => x_msg_data
1990                         );
1991         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1992                 ROLLBACK TO Instantiate_Counters_PUB;
1993                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1994                 FND_MSG_PUB.Count_And_Get
1995                 (p_count => x_msg_count ,
1996                  p_data => x_msg_data
1997                 );
1998         WHEN OTHERS THEN
1999                 ROLLBACK TO Instantiate_Counters_PUB;
2000                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2001                 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2002                         FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
2003                 END IF;
2004                 FND_MSG_PUB.Count_And_Get
2005                         (p_count => x_msg_count ,
2006                          p_data => x_msg_data
2007                         );
2008 
2009 end Instantiate_Counters;
2010 
2011 PROCEDURE Update_Ctr_Grp
2012 (
2013 	p_api_version			IN	NUMBER,
2014 	p_init_msg_list			IN	VARCHAR2	:= FND_API.G_FALSE,
2015 	p_commit			IN	VARCHAR2	:= FND_API.G_FALSE,
2016 	x_return_status			OUT NOCOPY	VARCHAR2,
2017 	x_msg_count			OUT NOCOPY	NUMBER,
2018 	x_msg_data			OUT NOCOPY	VARCHAR2,
2019 	p_ctr_grp_id			IN	NUMBER,
2020 	p_object_version_number		IN	NUMBER,
2021 	p_ctr_grp_rec			IN	CS_COUNTERS_PUB.CtrGrp_Rec_Type,
2022 	p_cascade_upd_to_instances	IN	VARCHAR2 := FND_API.G_FALSE,
2023 	x_object_version_number		OUT NOCOPY	NUMBER
2024 ) is
2025 	l_api_name     	CONSTANT	VARCHAR2(30)	:= 'UPDATE_CTR_GRP';
2026 	l_api_version	CONSTANT	NUMBER		:= 1.0;
2027 
2028  l_ctr_groups_rec   CSI_CTR_DATASTRUCTURES_PUB.counter_groups_rec;
2029  l_ctr_item_associations_tbl  CSI_CTR_DATASTRUCTURES_PUB.ctr_item_associations_tbl;
2030  l_validation_level NUMBER;
2031 
2032 BEGIN
2033 
2034 	SAVEPOINT	Update_Ctr_Grp_PUB;
2035 
2036 	-- Standard call to check for call compatibility.
2037 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
2038 								 p_api_version ,
2039 								 l_api_name ,
2040 								 G_PKG_NAME )	THEN
2041 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2042 	END IF;
2043 	-- Initialize message list if p_init_msg_list is set to TRUE.
2044 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
2045 		FND_MSG_PUB.initialize;
2046 	END IF;
2047 
2048 	 /*  	Customer pre -processing  section - Mandatory  */
2049         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
2050            CS_COUNTERS_CUHK.Update_Ctr_Grp_Pre (
2051              p_api_version           => l_api_version,
2052              p_init_msg_list         => p_init_msg_list,
2053              p_commit                => p_commit,
2054              x_return_status         => x_return_status,
2055              x_msg_count             => x_msg_count,
2056              x_msg_data              => x_msg_data,
2057              p_ctr_grp_id            => p_ctr_grp_id,
2058              p_object_version_number => p_object_version_number,
2059              p_ctr_grp_rec           => p_ctr_grp_rec,
2060              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2061              x_object_version_number => x_object_version_number
2062            );
2063            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2064                  RAISE FND_API.G_EXC_ERROR;
2065            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2066                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2067            END IF;
2068         END IF;
2069         /* 	Vertical pre -processing  section - Mandatory */
2070         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
2071            CS_COUNTERS_VUHK.Update_Ctr_Grp_Pre (
2072              p_api_version           => l_api_version,
2073              p_init_msg_list         => p_init_msg_list,
2074              p_commit                => p_commit,
2075              x_return_status         => x_return_status,
2076              x_msg_count             => x_msg_count,
2077              x_msg_data              => x_msg_data,
2078              p_ctr_grp_id            => p_ctr_grp_id,
2079              p_object_version_number => p_object_version_number,
2080              p_ctr_grp_rec           => p_ctr_grp_rec,
2081              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2082              x_object_version_number => x_object_version_number
2083            );
2084            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2085                  RAISE FND_API.G_EXC_ERROR;
2086            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2087                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2088            END IF;
2089         END IF;
2090 
2091 	--  Initialize API return status to success
2092 	x_return_status := FND_API.G_RET_STS_SUCCESS;
2093 	--
2094 	-- Start of API Body
2095  l_ctr_groups_rec.COUNTER_GROUP_ID := p_ctr_grp_id;
2096  l_ctr_groups_rec.NAME             := p_ctr_grp_rec.NAME;
2097  l_ctr_groups_rec.DESCRIPTION      := p_ctr_grp_rec.DESCRIPTION;
2098  l_ctr_groups_rec.START_DATE_ACTIVE   := p_ctr_grp_rec.start_date_active;
2099  l_ctr_groups_rec.END_DATE_ACTIVE     := p_ctr_grp_rec.end_date_active;
2100  l_ctr_groups_rec.ATTRIBUTE1      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE1;
2101  l_ctr_groups_rec.ATTRIBUTE2      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE2;
2102  l_ctr_groups_rec.ATTRIBUTE3      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE3;
2103  l_ctr_groups_rec.ATTRIBUTE4      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE4;
2104  l_ctr_groups_rec.ATTRIBUTE5      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE5;
2105  l_ctr_groups_rec.ATTRIBUTE6      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE6;
2106  l_ctr_groups_rec.ATTRIBUTE7      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE7;
2107  l_ctr_groups_rec.ATTRIBUTE8      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE8;
2108  l_ctr_groups_rec.ATTRIBUTE9      := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE9;
2109  l_ctr_groups_rec.ATTRIBUTE10     := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE10;
2110  l_ctr_groups_rec.ATTRIBUTE11     := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE11;
2111  l_ctr_groups_rec.ATTRIBUTE12     := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE12;
2112  l_ctr_groups_rec.ATTRIBUTE13     := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE13;
2113  l_ctr_groups_rec.ATTRIBUTE14     := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE14;
2114  l_ctr_groups_rec.ATTRIBUTE15     := p_ctr_grp_rec.DESC_FLEX.ATTRIBUTE15;
2115  l_ctr_groups_rec.CONTEXT         := p_ctr_grp_rec.DESC_FLEX.CONTEXT;
2116  l_ctr_groups_rec.ASSOCIATION_TYPE     :=  p_ctr_grp_rec.ASSOCIATION_TYPE;
2117  l_ctr_groups_rec.OBJECT_VERSION_NUMBER :=  p_object_version_number;
2118 
2119  CSI_COUNTER_TEMPLATE_PUB.update_counter_group
2120   (
2121      p_api_version               =>  p_api_version
2122     ,p_commit                    =>  p_commit
2123     ,p_init_msg_list             =>  p_init_msg_list
2124     ,p_validation_level          =>  l_validation_level
2125     ,p_counter_groups_rec        =>  l_ctr_groups_rec
2126     ,p_ctr_item_associations_tbl =>  l_ctr_item_associations_tbl
2127     ,x_return_status             =>  x_return_status
2128     ,x_msg_count                 =>  x_msg_count
2129     ,x_msg_data                  =>  x_msg_data
2130  );
2131 
2132 	IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
2133 	  ROLLBACK TO Update_Ctr_Grp_PUB;
2134 	  RETURN;
2135 	END IF;
2136 
2137 	-- End of API Body
2138 	--
2139 	  -- Customer/Vertical Hookups
2140         /*  	Customer post -processing  section - Mandatory 	*/
2141         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
2142             CS_COUNTERS_CUHK.Update_Ctr_Grp_Post (
2143              p_api_version           => l_api_version,
2144              p_init_msg_list         => p_init_msg_list,
2145              p_commit                => p_commit,
2146              x_return_status         => x_return_status,
2147              x_msg_count             => x_msg_count,
2148              x_msg_data              => x_msg_data,
2149              p_ctr_grp_id            => p_ctr_grp_id,
2150              p_object_version_number => p_object_version_number,
2151              p_ctr_grp_rec           => p_ctr_grp_rec,
2152              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2153              x_object_version_number => x_object_version_number
2154            );
2155            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2156                  RAISE FND_API.G_EXC_ERROR;
2157            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2158                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2159            END IF;
2160         END IF;
2161         /* 	Vertical post -processing  section - Mandatory */
2162         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  )  THEN
2163            CS_COUNTERS_VUHK.Update_Ctr_Grp_Post (
2164              p_api_version           => l_api_version,
2165              p_init_msg_list         => p_init_msg_list,
2166              p_commit                => p_commit,
2167              x_return_status         => x_return_status,
2168              x_msg_count             => x_msg_count,
2169              x_msg_data              => x_msg_data,
2170              p_ctr_grp_id            => p_ctr_grp_id,
2171              p_object_version_number => p_object_version_number,
2172              p_ctr_grp_rec           => p_ctr_grp_rec,
2173              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2174              x_object_version_number => x_object_version_number
2175            );
2176            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2177                  RAISE FND_API.G_EXC_ERROR;
2178            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2179                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2180            END IF;
2181         END IF;
2182 
2183 
2184 	IF FND_API.To_Boolean( p_commit ) THEN
2185 		COMMIT WORK;
2186 	END IF;
2187 
2188 	FND_MSG_PUB.Count_And_Get
2189 		(p_count => x_msg_count ,
2190 	      p_data => x_msg_data
2191 		);
2192 
2193 EXCEPTION
2194 
2195 	WHEN FND_API.G_EXC_ERROR THEN
2196 		ROLLBACK TO Update_Ctr_Grp_PUB;
2197 		x_return_status := FND_API.G_RET_STS_ERROR ;
2198 		FND_MSG_PUB.Count_And_Get
2199 			(p_count => x_msg_count ,
2200 			 p_data => x_msg_data
2201 			);
2202 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2203 		ROLLBACK TO Update_Ctr_Grp_PUB;
2204 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2205 		FND_MSG_PUB.Count_And_Get
2206 		(p_count => x_msg_count ,
2207 		 p_data => x_msg_data
2208 		);
2209 	WHEN OTHERS THEN
2210 		ROLLBACK TO Update_Ctr_Grp_PUB;
2211 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2212 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2213 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
2214 		END IF;
2215 		FND_MSG_PUB.Count_And_Get
2216 			(p_count => x_msg_count ,
2217 			 p_data => x_msg_data
2218 			);
2219 
2220 end Update_Ctr_Grp;
2221 
2222 PROCEDURE Update_Counter
2223 (
2224 	p_api_version			IN	NUMBER,
2225 	p_init_msg_list			IN	VARCHAR2	:= FND_API.G_FALSE,
2226 	p_commit			IN	VARCHAR2	:= FND_API.G_FALSE,
2227 	x_return_status			OUT NOCOPY	VARCHAR2,
2228 	x_msg_count			OUT NOCOPY	NUMBER,
2229 	x_msg_data			OUT NOCOPY	VARCHAR2,
2230 	p_ctr_id			IN	NUMBER,
2231 	p_object_version_number		IN	NUMBER,
2232 	p_ctr_rec			IN	CS_COUNTERS_PUB.Ctr_Rec_Type,
2233 	p_cascade_upd_to_instances	IN	VARCHAR2 := FND_API.G_FALSE,
2234 	x_object_version_number		OUT NOCOPY	NUMBER
2235 ) is
2236 	l_api_name     	CONSTANT	VARCHAR2(30)	:= 'UPDATE_COUNTER';
2237 	l_api_version	CONSTANT	NUMBER		:= 1.0;
2238 
2239  l_counter_template_rec      CSI_CTR_DATASTRUCTURES_PUB.counter_template_rec;
2240  l_ctr_item_associations_tbl CSI_CTR_DATASTRUCTURES_PUB.ctr_item_associations_tbl;
2241  l_ctr_property_template_tbl CSI_CTR_DATASTRUCTURES_PUB.ctr_property_template_tbl;
2242  l_counter_relationships_tbl CSI_CTR_DATASTRUCTURES_PUB.counter_relationships_tbl;
2243  l_ctr_derived_filters_tbl   CSI_CTR_DATASTRUCTURES_PUB.ctr_derived_filters_tbl;
2244  l_validation_level NUMBER;
2245 
2246 BEGIN
2247 
2248 	SAVEPOINT	Update_Counter_PUB;
2249 
2250 	-- Standard call to check for call compatibility.
2251 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
2252 								 p_api_version ,
2253 								 l_api_name ,
2254 								 G_PKG_NAME )	THEN
2255 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2256 	END IF;
2257 	-- Initialize message list if p_init_msg_list is set to TRUE.
2258 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
2259 		FND_MSG_PUB.initialize;
2260 	END IF;
2261 
2262 	    /*   Customer/Vertical Hookups
2263         /*  	Customer pre -processing  section - Mandatory  */
2264         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
2265            CS_COUNTERS_CUHK.Update_Counter_Pre (
2266              p_api_version           => l_api_version,
2267              p_init_msg_list         => p_init_msg_list,
2268              p_commit                => p_commit,
2269              x_return_status         => x_return_status,
2270              x_msg_count             => x_msg_count,
2271              x_msg_data              => x_msg_data,
2272              p_ctr_id                => p_ctr_id,
2273              p_object_version_number => p_object_version_number,
2274              p_ctr_rec               => p_ctr_rec,
2275              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2276              x_object_version_number => x_object_version_number
2277            );
2278            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2279                  RAISE FND_API.G_EXC_ERROR;
2280            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2281                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2282            END IF;
2283         END IF;
2284         /* 	Vertical pre -processing  section - Mandatory */
2285         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
2286            CS_COUNTERS_VUHK.Update_Counter_Pre (
2287              p_api_version           => l_api_version,
2288              p_init_msg_list         => p_init_msg_list,
2289              p_commit                => p_commit,
2290              x_return_status         => x_return_status,
2291              x_msg_count             => x_msg_count,
2292              x_msg_data              => x_msg_data,
2293              p_ctr_id                => p_ctr_id,
2294              p_object_version_number => p_object_version_number,
2295              p_ctr_rec               => p_ctr_rec,
2296              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2297              x_object_version_number => x_object_version_number
2298            );
2299            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2300                  RAISE FND_API.G_EXC_ERROR;
2301            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2302                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2303            END IF;
2304         END IF;
2305 
2306 	--  Initialize API return status to success
2307 	x_return_status := FND_API.G_RET_STS_SUCCESS;
2308 	--
2309 	-- Start of API Body
2310 
2311  l_counter_template_rec.COUNTER_ID     :=  p_ctr_id;
2312  l_counter_template_rec.GROUP_ID       :=  p_ctr_rec.counter_group_id;
2313  l_counter_template_rec.COUNTER_TYPE     :=  p_ctr_rec.type;
2314  l_counter_template_rec.INITIAL_READING   :=  p_ctr_rec.initial_reading;
2315  l_counter_template_rec.TOLERANCE_PLUS   :=  p_ctr_rec.tolerance_plus;
2316  l_counter_template_rec.TOLERANCE_MINUS  :=  p_ctr_rec.tolerance_minus;
2317  l_counter_template_rec.UOM_CODE         :=  p_ctr_rec.uom_code;
2318  l_counter_template_rec.DERIVE_COUNTER_ID   :=  p_ctr_rec.derive_counter_id;
2319  l_counter_template_rec.DERIVE_FUNCTION     :=  p_ctr_rec.derive_function;
2320  l_counter_template_rec.DERIVE_PROPERTY_ID  :=  p_ctr_rec.derive_property_id;
2321  l_counter_template_rec.FORMULA_TEXT      :=  p_ctr_rec.formula_text;
2322  l_counter_template_rec.ROLLOVER_LAST_READING   :=  p_ctr_rec.rollover_last_reading;
2323  l_counter_template_rec.ROLLOVER_FIRST_READING  :=  p_ctr_rec.rollover_first_reading;
2324  l_counter_template_rec.USAGE_ITEM_ID      :=  p_ctr_rec.usage_item_id;
2325  l_counter_template_rec.START_DATE_ACTIVE    :=  p_ctr_rec.start_date_active;
2326  l_counter_template_rec.END_DATE_ACTIVE    :=  p_ctr_rec.end_date_active;
2327  l_counter_template_rec.ATTRIBUTE1    :=  p_ctr_rec.desc_flex.ATTRIBUTE1;
2328  l_counter_template_rec.ATTRIBUTE2    :=  p_ctr_rec.desc_flex.ATTRIBUTE2;
2329  l_counter_template_rec.ATTRIBUTE3    :=  p_ctr_rec.desc_flex.ATTRIBUTE3;
2330  l_counter_template_rec.ATTRIBUTE4    :=  p_ctr_rec.desc_flex.ATTRIBUTE4;
2331  l_counter_template_rec.ATTRIBUTE5    :=  p_ctr_rec.desc_flex.ATTRIBUTE5;
2332  l_counter_template_rec.ATTRIBUTE6    :=  p_ctr_rec.desc_flex.ATTRIBUTE6;
2333  l_counter_template_rec.ATTRIBUTE7    :=  p_ctr_rec.desc_flex.ATTRIBUTE7;
2334  l_counter_template_rec.ATTRIBUTE8    :=  p_ctr_rec.desc_flex.ATTRIBUTE8;
2335  l_counter_template_rec.ATTRIBUTE9    :=  p_ctr_rec.desc_flex.ATTRIBUTE9;
2336  l_counter_template_rec.ATTRIBUTE10   :=  p_ctr_rec.desc_flex.ATTRIBUTE10;
2337  l_counter_template_rec.ATTRIBUTE11   :=  p_ctr_rec.desc_flex.ATTRIBUTE11;
2338  l_counter_template_rec.ATTRIBUTE12   :=  p_ctr_rec.desc_flex.ATTRIBUTE12;
2339  l_counter_template_rec.ATTRIBUTE13   :=  p_ctr_rec.desc_flex.ATTRIBUTE13;
2340  l_counter_template_rec.ATTRIBUTE14   :=  p_ctr_rec.desc_flex.ATTRIBUTE14;
2341  l_counter_template_rec.ATTRIBUTE15   :=  p_ctr_rec.desc_flex.ATTRIBUTE15;
2342  l_counter_template_rec.ATTRIBUTE_CATEGORY  :=  p_ctr_rec.desc_flex.CONTEXT;
2343  l_counter_template_rec.CUSTOMER_VIEW     :=  p_ctr_rec.customer_view;
2344  l_counter_template_rec.DIRECTION         :=  p_ctr_rec.direction;
2345  l_counter_template_rec.FILTER_TYPE       :=  p_ctr_rec.filter_type;
2346  l_counter_template_rec.FILTER_READING_COUNT   :=  p_ctr_rec.filter_reading_count;
2347  l_counter_template_rec.FILTER_TIME_UOM   :=  p_ctr_rec.filter_time_uom;
2348  l_counter_template_rec.ESTIMATION_ID     :=  p_ctr_rec.estimation_id;
2349  l_counter_template_rec.NAME            :=  p_ctr_rec.name;
2350  l_counter_template_rec.DESCRIPTION     :=  p_ctr_rec.description;
2351  l_counter_template_rec.COMMENTS        :=  p_ctr_rec.comments;
2352  l_counter_template_rec.OBJECT_VERSION_NUMBER :=  p_object_version_number;
2353 
2354  CSI_COUNTER_TEMPLATE_PUB.update_counter_template
2355  (
2356     p_api_version               =>  p_api_version
2357    ,p_commit                    =>  p_commit
2358    ,p_init_msg_list             =>  p_init_msg_list
2359    ,p_validation_level          =>  l_validation_level
2360    ,p_counter_template_rec      =>  l_counter_template_rec
2361    ,p_ctr_item_associations_tbl =>  l_ctr_item_associations_tbl
2362    ,p_ctr_property_template_tbl =>  l_ctr_property_template_tbl
2363    ,p_counter_relationships_tbl =>  l_counter_relationships_tbl
2364    ,p_ctr_derived_filters_tbl   =>  l_ctr_derived_filters_tbl
2365    ,x_return_status             =>  x_return_status
2366    ,x_msg_count                 =>  x_msg_count
2367    ,x_msg_data                  =>  x_msg_data
2368  );
2369 
2370 	IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
2371 	  ROLLBACK TO Update_Counter_PUB;
2372 	  RETURN;
2373 	END IF;
2374 
2375 	-- End of API Body
2376 	--
2377 	--
2378         -- Customer/Vertical Hookups
2379         /*  	Customer post -processing  section - Mandatory 	*/
2380         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
2381             CS_COUNTERS_CUHK.Update_Counter_Post (
2382              p_api_version           => l_api_version,
2383              p_init_msg_list         => p_init_msg_list,
2384              p_commit                => p_commit,
2385              x_return_status         => x_return_status,
2386              x_msg_count             => x_msg_count,
2387              x_msg_data              => x_msg_data,
2388              p_ctr_id                => p_ctr_id,
2389              p_object_version_number => p_object_version_number,
2390              p_ctr_rec               => p_ctr_rec,
2391              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2392              x_object_version_number => x_object_version_number
2393            );
2394            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2395                  RAISE FND_API.G_EXC_ERROR;
2396            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2397                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2398            END IF;
2399         END IF;
2400         /*      Vertical post -processing  section - Mandatory  */
2401         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  ) THEN
2402             CS_COUNTERS_VUHK.Update_Counter_Post (
2403              p_api_version           => l_api_version,
2404              p_init_msg_list         => p_init_msg_list,
2405              p_commit                => p_commit,
2406              x_return_status         => x_return_status,
2407              x_msg_count             => x_msg_count,
2408              x_msg_data              => x_msg_data,
2409              p_ctr_id                => p_ctr_id,
2410              p_object_version_number => p_object_version_number,
2411              p_ctr_rec               => p_ctr_rec,
2412              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2413              x_object_version_number => x_object_version_number
2414            );
2415            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2416                  RAISE FND_API.G_EXC_ERROR;
2417            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2418                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2419            END IF;
2420         END IF;
2421 
2422 	IF FND_API.To_Boolean( p_commit ) THEN
2423 		COMMIT WORK;
2424 	END IF;
2425 
2426 	FND_MSG_PUB.Count_And_Get
2427 		(p_count => x_msg_count ,
2428 	      p_data => x_msg_data
2429 		);
2430 
2431 EXCEPTION
2432 
2433 	WHEN FND_API.G_EXC_ERROR THEN
2434 		ROLLBACK TO Update_Counter_PUB;
2435 		x_return_status := FND_API.G_RET_STS_ERROR ;
2436 		FND_MSG_PUB.Count_And_Get
2437 			(p_count => x_msg_count ,
2438 			 p_data => x_msg_data
2439 			);
2440 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2441 		ROLLBACK TO Update_Counter_PUB;
2442 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2443 		FND_MSG_PUB.Count_And_Get
2444 		(p_count => x_msg_count ,
2445 		 p_data => x_msg_data
2446 		);
2447 	WHEN OTHERS THEN
2448 		ROLLBACK TO Update_Counter_PUB;
2449 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2450 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2451 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
2452 		END IF;
2453 		FND_MSG_PUB.Count_And_Get
2454 			(p_count => x_msg_count ,
2455 			 p_data => x_msg_data
2456 			);
2457 
2458 end Update_Counter;
2459 
2460 PROCEDURE Update_Ctr_Prop
2461 (
2462 	p_api_version		IN	NUMBER,
2463 	p_init_msg_list	        IN	VARCHAR2	:= FND_API.G_FALSE,
2464 	p_commit		IN	VARCHAR2	:= FND_API.G_FALSE,
2465 	x_return_status	        OUT NOCOPY	VARCHAR2,
2466 	x_msg_count		OUT NOCOPY	NUMBER,
2467 	x_msg_data		OUT NOCOPY	VARCHAR2,
2468 	p_ctr_prop_id		IN	NUMBER,
2469 	p_object_version_number	IN	NUMBER,
2470 	p_ctr_prop_rec		IN	Ctr_Prop_Rec_Type,
2471 	p_cascade_upd_to_instances	IN	VARCHAR2 := FND_API.G_FALSE,
2472 	x_object_version_number	OUT NOCOPY	NUMBER
2473 ) is
2474 	l_api_name     CONSTANT	VARCHAR2(30)	:= 'UPDATE_CTR_PROP';
2475 	l_api_version	CONSTANT	NUMBER		:= 1.0;
2476 
2477  l_ctr_property_template_rec  CSI_CTR_DATASTRUCTURES_PUB.ctr_property_template_rec;
2478  l_validation_level NUMBER;
2479 
2480 BEGIN
2481 
2482 	SAVEPOINT	Update_Ctr_Prop_PUB;
2483 
2484 	-- Standard call to check for call compatibility.
2485 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
2486 								 p_api_version ,
2487 								 l_api_name ,
2488 								 G_PKG_NAME )	THEN
2489 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2490 	END IF;
2491 	-- Initialize message list if p_init_msg_list is set to TRUE.
2492 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
2493 		FND_MSG_PUB.initialize;
2494 	END IF;
2495 
2496 
2497         /*   Customer/Vertical Hookups
2498         /*  	Customer pre -processing  section - Mandatory  */
2499         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
2500            CS_COUNTERS_CUHK.Update_Ctr_Prop_Pre (
2501              p_api_version           => l_api_version,
2502              p_init_msg_list         => p_init_msg_list,
2503              p_commit                => p_commit,
2504              x_return_status         => x_return_status,
2505              x_msg_count             => x_msg_count,
2506              x_msg_data              => x_msg_data,
2507              p_ctr_prop_id           => p_ctr_prop_id,
2508              p_object_version_number => p_object_version_number,
2509              p_ctr_prop_rec          => p_ctr_prop_rec,
2510              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2511              x_object_version_number => x_object_version_number
2512            );
2513            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2514                  RAISE FND_API.G_EXC_ERROR;
2515            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2516                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2517            END IF;
2518         END IF;
2519         /* 	Vertical pre -processing  section - Mandatory */
2520         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
2521            CS_COUNTERS_VUHK.Update_Ctr_Prop_Pre (
2522              p_api_version           => l_api_version,
2523              p_init_msg_list         => p_init_msg_list,
2524              p_commit                => p_commit,
2525              x_return_status         => x_return_status,
2526              x_msg_count             => x_msg_count,
2527              x_msg_data              => x_msg_data,
2528              p_ctr_prop_id           => p_ctr_prop_id,
2529              p_object_version_number => p_object_version_number,
2530              p_ctr_prop_rec          => p_ctr_prop_rec,
2531              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2532              x_object_version_number => x_object_version_number
2533            );
2534            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2535                  RAISE FND_API.G_EXC_ERROR;
2536            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2537                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2538            END IF;
2539         END IF;
2540 
2541 	--  Initialize API return status to success
2542 	x_return_status := FND_API.G_RET_STS_SUCCESS;
2543 	--
2544 	-- Start of API Body
2545  l_ctr_property_template_rec.COUNTER_PROPERTY_ID        := p_ctr_prop_id;
2546  l_ctr_property_template_rec.COUNTER_ID                 := p_ctr_prop_rec.counter_id;
2547  l_ctr_property_template_rec.PROPERTY_DATA_TYPE         := p_ctr_prop_rec.property_data_type;
2548  l_ctr_property_template_rec.IS_NULLABLE                := p_ctr_prop_rec.is_nullable;
2549  l_ctr_property_template_rec.DEFAULT_VALUE              := p_ctr_prop_rec.default_value;
2550  l_ctr_property_template_rec.MINIMUM_VALUE              := p_ctr_prop_rec.minimum_value;
2551  l_ctr_property_template_rec.MAXIMUM_VALUE              := p_ctr_prop_rec.maximum_value;
2552  l_ctr_property_template_rec.UOM_CODE                   := p_ctr_prop_rec.uom_code;
2553  l_ctr_property_template_rec.START_DATE_ACTIVE          := p_ctr_prop_rec.start_date_active;
2554  l_ctr_property_template_rec.END_DATE_ACTIVE            := p_ctr_prop_rec.end_date_active;
2555  l_ctr_property_template_rec.ATTRIBUTE1                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE1;
2556  l_ctr_property_template_rec.ATTRIBUTE2                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE2;
2557  l_ctr_property_template_rec.ATTRIBUTE3                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE3;
2558  l_ctr_property_template_rec.ATTRIBUTE4                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE4;
2559  l_ctr_property_template_rec.ATTRIBUTE5                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE5;
2560  l_ctr_property_template_rec.ATTRIBUTE6                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE6;
2561  l_ctr_property_template_rec.ATTRIBUTE7                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE7;
2562  l_ctr_property_template_rec.ATTRIBUTE8                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE8;
2563  l_ctr_property_template_rec.ATTRIBUTE9                 := p_ctr_prop_rec.desc_flex.ATTRIBUTE9;
2564  l_ctr_property_template_rec.ATTRIBUTE10                := p_ctr_prop_rec.desc_flex.ATTRIBUTE10;
2565  l_ctr_property_template_rec.ATTRIBUTE11                := p_ctr_prop_rec.desc_flex.ATTRIBUTE11;
2566  l_ctr_property_template_rec.ATTRIBUTE12                := p_ctr_prop_rec.desc_flex.ATTRIBUTE12;
2567  l_ctr_property_template_rec.ATTRIBUTE13                := p_ctr_prop_rec.desc_flex.ATTRIBUTE13;
2568  l_ctr_property_template_rec.ATTRIBUTE14                := p_ctr_prop_rec.desc_flex.ATTRIBUTE14;
2569  l_ctr_property_template_rec.ATTRIBUTE15                := p_ctr_prop_rec.desc_flex.ATTRIBUTE15;
2570  l_ctr_property_template_rec.ATTRIBUTE_CATEGORY         := p_ctr_prop_rec.desc_flex.CONTEXT;
2571  l_ctr_property_template_rec.PROPERTY_LOV_TYPE          := p_ctr_prop_rec.property_lov_type;
2572  l_ctr_property_template_rec.NAME                       := p_ctr_prop_rec.name;
2573  l_ctr_property_template_rec.DESCRIPTION                := p_ctr_prop_rec.description;
2574  l_ctr_property_template_rec.OBJECT_VERSION_NUMBER      :=  p_object_version_number;
2575 
2576  CSI_COUNTER_TEMPLATE_PUB.update_ctr_property_template
2577  (
2578     p_api_version               =>  p_api_version
2579    ,p_commit                    =>  p_commit
2580    ,p_init_msg_list             =>  p_init_msg_list
2581    ,p_validation_level          =>  l_validation_level
2582    ,p_ctr_property_template_rec =>  l_ctr_property_template_rec
2583    ,x_return_status             =>  x_return_status
2584    ,x_msg_count                 =>  x_msg_count
2585    ,x_msg_data                  =>  x_msg_data
2586  );
2587 
2588 	IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
2589 	  ROLLBACK TO Update_Ctr_Prop_PUB;
2590 	  RETURN;
2591 	END IF;
2592 
2593 	-- End of API Body
2594 	--
2595 	   /*  	Customer post -processing  section - Mandatory 	*/
2596         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
2597             CS_COUNTERS_CUHK.Update_Ctr_Prop_Post (
2598              p_api_version           => l_api_version,
2599              p_init_msg_list         => p_init_msg_list,
2600              p_commit                => p_commit,
2601              x_return_status         => x_return_status,
2602              x_msg_count             => x_msg_count,
2603              x_msg_data              => x_msg_data,
2604              p_ctr_prop_id           => p_ctr_prop_id,
2605              p_object_version_number => p_object_version_number,
2606              p_ctr_prop_rec          => p_ctr_prop_rec,
2607              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2608              x_object_version_number => x_object_version_number
2609            );
2610            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2611                  RAISE FND_API.G_EXC_ERROR;
2612            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2613                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2614            END IF;
2615         END IF;
2616         /*      Vertical post -processing  section - Mandatory  */
2617         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  ) THEN
2618             CS_COUNTERS_VUHK.Update_Ctr_Prop_Post (
2619              p_api_version           => l_api_version,
2620              p_init_msg_list         => p_init_msg_list,
2621              p_commit                => p_commit,
2622              x_return_status         => x_return_status,
2623              x_msg_count             => x_msg_count,
2624              x_msg_data              => x_msg_data,
2625              p_ctr_prop_id           => p_ctr_prop_id,
2626              p_object_version_number => p_object_version_number,
2627              p_ctr_prop_rec          => p_ctr_prop_rec,
2628              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2629              x_object_version_number => x_object_version_number
2630            );
2631            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2632                  RAISE FND_API.G_EXC_ERROR;
2633            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2634                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2635            END IF;
2636         END IF;
2637 
2638 	IF FND_API.To_Boolean( p_commit ) THEN
2639 		COMMIT WORK;
2640 	END IF;
2641 
2642 	FND_MSG_PUB.Count_And_Get
2643 		(p_count => x_msg_count ,
2644 	      p_data => x_msg_data
2645 		);
2646 
2647 EXCEPTION
2648 
2649 	WHEN FND_API.G_EXC_ERROR THEN
2650 		ROLLBACK TO Update_Ctr_Prop_PUB;
2651 		x_return_status := FND_API.G_RET_STS_ERROR ;
2652 		FND_MSG_PUB.Count_And_Get
2653 			(p_count => x_msg_count ,
2654 			 p_data => x_msg_data
2655 			);
2656 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2657 		ROLLBACK TO Update_Ctr_Prop_PUB;
2658 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2659 		FND_MSG_PUB.Count_And_Get
2660 		(p_count => x_msg_count ,
2661 		 p_data => x_msg_data
2662 		);
2663 	WHEN OTHERS THEN
2664 		ROLLBACK TO Update_Ctr_Prop_PUB;
2665 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2666 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2667 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
2668 		END IF;
2669 		FND_MSG_PUB.Count_And_Get
2670 			(p_count => x_msg_count ,
2671 			 p_data => x_msg_data
2672 			);
2673 
2674 end Update_Ctr_Prop;
2675 
2676 PROCEDURE Update_Formula_Ref
2677 (
2678 	p_api_version			IN	NUMBER,
2679 	p_init_msg_list			IN	VARCHAR2	:= FND_API.G_FALSE,
2680 	p_commit			IN	VARCHAR2	:= FND_API.G_FALSE,
2681 	x_return_status			OUT NOCOPY	VARCHAR2,
2682 	x_msg_count			OUT NOCOPY	NUMBER,
2683 	x_msg_data			OUT NOCOPY	VARCHAR2,
2684 	p_ctr_formula_bvar_id		IN	NUMBER,
2685 	p_object_version_number		IN	NUMBER,
2686 	p_counter_id			IN	NUMBER,
2687 	p_bind_var_name			IN	VARCHAR2,
2688 	p_mapped_item_id		IN	NUMBER	:= null,
2689 	p_mapped_counter_id		IN	NUMBER,
2690 	p_desc_flex			IN	CS_COUNTERS_EXT_PVT.DFF_Rec_Type,
2691 	p_cascade_upd_to_instances	IN	VARCHAR2 := FND_API.G_FALSE,
2692 	x_object_version_number		OUT NOCOPY	NUMBER,
2693 	p_reading_type                  IN   VARCHAR2
2694 ) is
2695 	l_api_name     CONSTANT	VARCHAR2(30)	:= 'UPDATE_FORMULA_REF';
2696 	l_api_version	CONSTANT	NUMBER		:= 1.0;
2697 
2698  l_counter_relationships_rec  CSI_CTR_DATASTRUCTURES_PUB.counter_relationships_rec;
2699  l_validation_level NUMBER;
2700 
2701 BEGIN
2702 
2703 	SAVEPOINT	Update_Formula_Ref_PUB;
2704 
2705 	-- Standard call to check for call compatibility.
2706 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
2707 								 p_api_version ,
2708 								 l_api_name ,
2709 								 G_PKG_NAME )	THEN
2710 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2711 	END IF;
2712 	-- Initialize message list if p_init_msg_list is set to TRUE.
2713 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
2714 		FND_MSG_PUB.initialize;
2715 	END IF;
2716 
2717 	     /*   Customer/Vertical Hookups
2718         /*  	Customer pre -processing  section - Mandatory  */
2719         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
2720            CS_COUNTERS_CUHK.Update_Formula_Ref_Pre (
2721              p_api_version           => l_api_version,
2722              p_init_msg_list         => p_init_msg_list,
2723              p_commit                => p_commit,
2724              x_return_status         => x_return_status,
2725              x_msg_count             => x_msg_count,
2726              x_msg_data              => x_msg_data,
2727              p_ctr_formula_bvar_id   => p_ctr_formula_bvar_id,
2728              p_object_version_number => p_object_version_number,
2729              p_counter_id            => p_counter_id,
2730              p_bind_var_name         => p_bind_var_name,
2731              p_mapped_item_id        => p_mapped_item_id,
2732              p_mapped_counter_id     => p_mapped_counter_id,
2733              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2734              x_object_version_number => x_object_version_number,
2735              p_reading_type          => p_reading_type
2736            );
2737            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2738                  RAISE FND_API.G_EXC_ERROR;
2739            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2740                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2741            END IF;
2742         END IF;
2743         /* 	Vertical pre -processing  section - Mandatory */
2744         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
2745            CS_COUNTERS_VUHK.Update_Formula_Ref_Pre (
2746              p_api_version           => l_api_version,
2747              p_init_msg_list         => p_init_msg_list,
2748              p_commit                => p_commit,
2749              x_return_status         => x_return_status,
2750              x_msg_count             => x_msg_count,
2751              x_msg_data              => x_msg_data,
2752              p_ctr_formula_bvar_id   => p_ctr_formula_bvar_id,
2753              p_object_version_number => p_object_version_number,
2754              p_counter_id            => p_counter_id,
2755              p_bind_var_name         => p_bind_var_name,
2756              p_mapped_item_id        => p_mapped_item_id,
2757              p_mapped_counter_id     => p_mapped_counter_id,
2758              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2759              x_object_version_number => x_object_version_number,
2760              p_reading_type          => p_reading_type
2761            );
2762            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2763                  RAISE FND_API.G_EXC_ERROR;
2764            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2765                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2766            END IF;
2767         END IF;
2768 
2769 	--  Initialize API return status to success
2770 	x_return_status := FND_API.G_RET_STS_SUCCESS;
2771 	--
2772 	-- Start of API Body
2773    l_counter_relationships_rec.RELATIONSHIP_ID         := p_ctr_formula_bvar_id;
2774    --l_counter_relationships_rec.CTR_ASSOCIATION_ID      := ctr_associations_rec.ctr_association_id;
2775    --l_counter_relationships_rec.RELATIONSHIP_TYPE_CODE  := 'FORMULA';
2776    l_counter_relationships_rec.SOURCE_COUNTER_ID       := p_mapped_counter_id;
2777    l_counter_relationships_rec.OBJECT_COUNTER_ID       := p_counter_id;
2778    l_counter_relationships_rec.ATTRIBUTE_CATEGORY      := p_desc_flex.CONTEXT;
2779    l_counter_relationships_rec.ATTRIBUTE1       := p_desc_flex.ATTRIBUTE1;
2780    l_counter_relationships_rec.ATTRIBUTE2       := p_desc_flex.ATTRIBUTE2;
2781    l_counter_relationships_rec.ATTRIBUTE3       := p_desc_flex.ATTRIBUTE3;
2782    l_counter_relationships_rec.ATTRIBUTE4       := p_desc_flex.ATTRIBUTE4;
2783    l_counter_relationships_rec.ATTRIBUTE5       := p_desc_flex.ATTRIBUTE5;
2784    l_counter_relationships_rec.ATTRIBUTE6       := p_desc_flex.ATTRIBUTE6;
2785    l_counter_relationships_rec.ATTRIBUTE7       := p_desc_flex.ATTRIBUTE7;
2786    l_counter_relationships_rec.ATTRIBUTE8       := p_desc_flex.ATTRIBUTE8;
2787    l_counter_relationships_rec.ATTRIBUTE9       := p_desc_flex.ATTRIBUTE9;
2788    l_counter_relationships_rec.ATTRIBUTE10      := p_desc_flex.ATTRIBUTE10;
2789    l_counter_relationships_rec.ATTRIBUTE11      := p_desc_flex.ATTRIBUTE11;
2790    l_counter_relationships_rec.ATTRIBUTE12      := p_desc_flex.ATTRIBUTE12;
2791    l_counter_relationships_rec.ATTRIBUTE13      := p_desc_flex.ATTRIBUTE13;
2792    l_counter_relationships_rec.ATTRIBUTE14      := p_desc_flex.ATTRIBUTE14;
2793    l_counter_relationships_rec.ATTRIBUTE15      := p_desc_flex.ATTRIBUTE15;
2794    l_counter_relationships_rec.BIND_VARIABLE_NAME       := p_bind_var_name;
2795    l_counter_relationships_rec.OBJECT_VERSION_NUMBER  := p_object_version_number;
2796 
2797     CSI_COUNTER_TEMPLATE_PUB.create_counter_relationship
2798     (
2799      p_api_version               =>  p_api_version
2800     ,p_commit                    =>  p_commit
2801     ,p_init_msg_list             =>  p_init_msg_list
2802     ,p_validation_level          =>  l_validation_level
2803     ,p_counter_relationships_rec =>  l_counter_relationships_rec
2804     ,x_return_status             =>  x_return_status
2805     ,x_msg_count                 =>  x_msg_count
2806     ,x_msg_data                  =>  x_msg_data
2807     );
2808 
2809    	IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
2810 	    ROLLBACK TO Create_Formula_Ref_PUB;
2811 	    RETURN;
2812     End if;
2813 
2814 	-- End of API Body
2815 	--
2816 	--
2817         /*  	Customer post -processing  section - Mandatory 	*/
2818         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
2819             CS_COUNTERS_CUHK.Update_Formula_Ref_Post (
2820              p_api_version           => l_api_version,
2821              p_init_msg_list         => p_init_msg_list,
2822              p_commit                => p_commit,
2823              x_return_status         => x_return_status,
2824              x_msg_count             => x_msg_count,
2825              x_msg_data              => x_msg_data,
2826              p_ctr_formula_bvar_id   => p_ctr_formula_bvar_id,
2827              p_object_version_number => p_object_version_number,
2828              p_counter_id            => p_counter_id,
2829              p_bind_var_name         => p_bind_var_name,
2830              p_mapped_item_id        => p_mapped_item_id,
2831              p_mapped_counter_id     => p_mapped_counter_id,
2832              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2833              x_object_version_number => x_object_version_number,
2834              p_reading_type          => p_reading_type
2835            );
2836            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2837                  RAISE FND_API.G_EXC_ERROR;
2838            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2839                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2840            END IF;
2841         END IF;
2842         /*      Vertical post -processing  section - Mandatory  */
2843         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  ) THEN
2844             CS_COUNTERS_VUHK.Update_Formula_Ref_Post (
2845              p_api_version           => l_api_version,
2846              p_init_msg_list         => p_init_msg_list,
2847              p_commit                => p_commit,
2848              x_return_status         => x_return_status,
2849              x_msg_count             => x_msg_count,
2850              x_msg_data              => x_msg_data,
2851              p_ctr_formula_bvar_id   => p_ctr_formula_bvar_id,
2852              p_object_version_number => p_object_version_number,
2853              p_counter_id            => p_counter_id,
2854              p_bind_var_name         => p_bind_var_name,
2855              p_mapped_item_id        => p_mapped_item_id,
2856              p_mapped_counter_id     => p_mapped_counter_id,
2857              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2858              x_object_version_number => x_object_version_number,
2859              p_reading_type          => p_reading_type
2860            );
2861            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2862                  RAISE FND_API.G_EXC_ERROR;
2863            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2864                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2865            END IF;
2866         END IF;
2867 
2868 	IF FND_API.To_Boolean( p_commit ) THEN
2869 		COMMIT WORK;
2870 	END IF;
2871 
2872 	FND_MSG_PUB.Count_And_Get
2873 		(p_count => x_msg_count ,
2874 	      p_data => x_msg_data
2875 		);
2876 
2877 EXCEPTION
2878 
2879 	WHEN FND_API.G_EXC_ERROR THEN
2880 		ROLLBACK TO Update_Formula_Ref_PUB;
2881 		x_return_status := FND_API.G_RET_STS_ERROR ;
2882 		FND_MSG_PUB.Count_And_Get
2883 			(p_count => x_msg_count ,
2884 			 p_data => x_msg_data
2885 			);
2886 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2887 		ROLLBACK TO Update_Formula_Ref_PUB;
2888 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2889 		FND_MSG_PUB.Count_And_Get
2890 		(p_count => x_msg_count ,
2891 		 p_data => x_msg_data
2892 		);
2893 	WHEN OTHERS THEN
2894 		ROLLBACK TO Update_Formula_Ref_PUB;
2895 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
2896 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2897 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
2898 		END IF;
2899 		FND_MSG_PUB.Count_And_Get
2900 			(p_count => x_msg_count ,
2901 			 p_data => x_msg_data
2902 			);
2903 
2904 end Update_Formula_Ref;
2905 
2906 
2907 PROCEDURE Update_GrpOp_Filter
2908 (
2909 	p_api_version		IN	NUMBER,
2910 	p_init_msg_list		IN	VARCHAR2	:= FND_API.G_FALSE,
2911 	p_commit		IN	VARCHAR2	:= FND_API.G_FALSE,
2912 	x_return_status		OUT NOCOPY	VARCHAR2,
2913 	x_msg_count		OUT NOCOPY	NUMBER,
2914 	x_msg_data		OUT NOCOPY	VARCHAR2,
2915 	p_ctr_der_filter_id	IN	NUMBER,
2916 	p_object_version_number	IN	NUMBER,
2917 	p_seq_no		IN	NUMBER		:= null,
2918 	p_counter_id		IN	NUMBER,
2919 	p_left_paren		IN	VARCHAR2,
2920 	p_ctr_prop_id		IN	NUMBER,
2921 	p_rel_op		IN	VARCHAR2,
2922 	p_right_val		IN	VARCHAR2,
2923 	p_right_paren		IN	VARCHAR2,
2924 	p_log_op		IN	VARCHAR2,
2925 	p_desc_flex		IN	CS_COUNTERS_EXT_PVT.DFF_Rec_Type,
2926 	p_cascade_upd_to_instances	IN	VARCHAR2 := FND_API.G_FALSE,
2927 	x_object_version_number	OUT NOCOPY	NUMBER
2928 ) is
2929 	l_api_name     	CONSTANT	VARCHAR2(30)	:= 'UPDATE_GRPOP_FILTER';
2930 	l_api_version	CONSTANT	NUMBER		:= 1.0;
2931 
2932  l_ctr_derived_filters_tbl CSI_CTR_DATASTRUCTURES_PUB.ctr_derived_filters_tbl;
2933  l_validation_level NUMBER;
2934 
2935 BEGIN
2936 
2937 	SAVEPOINT	Update_GrpOp_Filter_PUB;
2938 
2939 	-- Standard call to check for call compatibility.
2940 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
2941 								 p_api_version ,
2942 								 l_api_name ,
2943 								 G_PKG_NAME )	THEN
2944 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2945 	END IF;
2946 	-- Initialize message list if p_init_msg_list is set to TRUE.
2947 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
2948 		FND_MSG_PUB.initialize;
2949 	END IF;
2950 	   /*   Customer/Vertical Hookups
2951         /*  	Customer pre -processing  section - Mandatory  */
2952         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
2953            CS_COUNTERS_CUHK.Update_GrpOp_Filter_Pre (
2954              p_api_version           => l_api_version,
2955              p_init_msg_list         => p_init_msg_list,
2956              p_commit                => p_commit,
2957              x_return_status         => x_return_status,
2958              x_msg_count             => x_msg_count,
2959              x_msg_data              => x_msg_data,
2960              p_ctr_der_filter_id     => p_ctr_der_filter_id,
2961              p_object_version_number => p_object_version_number,
2962              p_seq_no                => p_seq_no,
2963              p_counter_id            => p_counter_id,
2964              p_left_paren            => p_left_paren,
2965              p_ctr_prop_id           => p_ctr_prop_id,
2966              p_rel_op                => p_rel_op,
2967              p_right_val             => p_right_val,
2968              p_right_paren           => p_right_paren,
2969              p_log_op                => p_log_op,
2970              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2971              x_object_version_number => x_object_version_number
2972            );
2973            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2974                  RAISE FND_API.G_EXC_ERROR;
2975            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2976                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2977            END IF;
2978         END IF;
2979         /* 	Vertical pre -processing  section - Mandatory */
2980         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
2981            CS_COUNTERS_VUHK.Update_GrpOp_Filter_Pre (
2982              p_api_version           => l_api_version,
2983              p_init_msg_list         => p_init_msg_list,
2984              p_commit                => p_commit,
2985              x_return_status         => x_return_status,
2986              x_msg_count             => x_msg_count,
2987              x_msg_data              => x_msg_data,
2988              p_ctr_der_filter_id     => p_ctr_der_filter_id,
2989              p_object_version_number => p_object_version_number,
2990              p_seq_no                => p_seq_no,
2991              p_counter_id            => p_counter_id,
2992              p_left_paren            => p_left_paren,
2993              p_ctr_prop_id           => p_ctr_prop_id,
2994              p_rel_op                => p_rel_op,
2995              p_right_val             => p_right_val,
2996              p_right_paren           => p_right_paren,
2997              p_log_op                => p_log_op,
2998              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
2999              x_object_version_number => x_object_version_number
3000            );
3001            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
3002                  RAISE FND_API.G_EXC_ERROR;
3003            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3004                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3005            END IF;
3006         END IF;
3007 
3008 	--  Initialize API return status to success
3009 	x_return_status := FND_API.G_RET_STS_SUCCESS;
3010 	--
3011 	-- Start of API Body
3012 
3013  l_ctr_derived_filters_tbl(1).COUNTER_DERIVED_FILTER_ID := p_ctr_der_filter_id;
3014  l_ctr_derived_filters_tbl(1).COUNTER_ID   :=  p_counter_id;
3015  l_ctr_derived_filters_tbl(1).SEQ_NO     :=  p_seq_no;
3016  l_ctr_derived_filters_tbl(1).LEFT_PARENT   :=  p_left_paren;
3017  l_ctr_derived_filters_tbl(1).COUNTER_PROPERTY_ID   :=  p_ctr_prop_id;
3018  l_ctr_derived_filters_tbl(1).RELATIONAL_OPERATOR   :=  p_rel_op;
3019  l_ctr_derived_filters_tbl(1).RIGHT_VALUE         :=  p_right_val;
3020  l_ctr_derived_filters_tbl(1).RIGHT_PARENT      :=  p_right_paren;
3021  l_ctr_derived_filters_tbl(1).LOGICAL_OPERATOR   :=  p_log_op;
3022  l_ctr_derived_filters_tbl(1).ATTRIBUTE1         := p_desc_flex.ATTRIBUTE1;
3023  l_ctr_derived_filters_tbl(1).ATTRIBUTE2         := p_desc_flex.ATTRIBUTE2;
3024  l_ctr_derived_filters_tbl(1).ATTRIBUTE3         := p_desc_flex.ATTRIBUTE3;
3025  l_ctr_derived_filters_tbl(1).ATTRIBUTE4         := p_desc_flex.ATTRIBUTE4;
3026  l_ctr_derived_filters_tbl(1).ATTRIBUTE5         := p_desc_flex.ATTRIBUTE5;
3027  l_ctr_derived_filters_tbl(1).ATTRIBUTE6         := p_desc_flex.ATTRIBUTE6;
3028  l_ctr_derived_filters_tbl(1).ATTRIBUTE7         := p_desc_flex.ATTRIBUTE7;
3029  l_ctr_derived_filters_tbl(1).ATTRIBUTE8         := p_desc_flex.ATTRIBUTE8;
3030  l_ctr_derived_filters_tbl(1).ATTRIBUTE9         := p_desc_flex.ATTRIBUTE9;
3031  l_ctr_derived_filters_tbl(1).ATTRIBUTE10        := p_desc_flex.ATTRIBUTE10;
3032  l_ctr_derived_filters_tbl(1).ATTRIBUTE11        := p_desc_flex.ATTRIBUTE11;
3033  l_ctr_derived_filters_tbl(1).ATTRIBUTE12        := p_desc_flex.ATTRIBUTE12;
3034  l_ctr_derived_filters_tbl(1).ATTRIBUTE13        := p_desc_flex.ATTRIBUTE13;
3035  l_ctr_derived_filters_tbl(1).ATTRIBUTE14        := p_desc_flex.ATTRIBUTE14;
3036  l_ctr_derived_filters_tbl(1).ATTRIBUTE15        := p_desc_flex.ATTRIBUTE15;
3037  l_ctr_derived_filters_tbl(1).ATTRIBUTE_CATEGORY  := p_desc_flex.CONTEXT;
3038  l_ctr_derived_filters_tbl(1).OBJECT_VERSION_NUMBER := p_object_version_number;
3039 
3040  CSI_COUNTER_TEMPLATE_PUB.update_derived_filters
3041  (
3042     p_api_version               =>  p_api_version
3043    ,p_commit                    =>  p_commit
3044    ,p_init_msg_list             =>  p_init_msg_list
3045    ,p_validation_level          =>  l_validation_level
3046    ,p_ctr_derived_filters_tbl   =>  l_ctr_derived_filters_tbl
3047    ,x_return_status             =>  x_return_status
3048    ,x_msg_count                 =>  x_msg_count
3049    ,x_msg_data                  =>  x_msg_data
3050  );
3051 
3052 	IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
3053 	  ROLLBACK TO Update_GrpOp_Filter_PUB;
3054 	  RETURN;
3055 	END IF;
3056 
3057 	-- End of API Body
3058 	--
3059 	    /*  	Customer post -processing  section - Mandatory 	*/
3060         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
3061             CS_COUNTERS_CUHK.Update_GrpOp_Filter_Post (
3062              p_api_version           => l_api_version,
3063              p_init_msg_list         => p_init_msg_list,
3064              p_commit                => p_commit,
3065              x_return_status         => x_return_status,
3066              x_msg_count             => x_msg_count,
3067              x_msg_data              => x_msg_data,
3068              p_ctr_der_filter_id     => p_ctr_der_filter_id,
3069              p_object_version_number => p_object_version_number,
3070              p_seq_no                => p_seq_no,
3071              p_counter_id            => p_counter_id,
3072              p_left_paren            => p_left_paren,
3073              p_ctr_prop_id           => p_ctr_prop_id,
3074              p_rel_op                => p_rel_op,
3075              p_right_val             => p_right_val,
3076              p_right_paren           => p_right_paren,
3077              p_log_op                => p_log_op,
3078              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
3079              x_object_version_number => x_object_version_number
3080            );
3081            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
3082                  RAISE FND_API.G_EXC_ERROR;
3083            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3084                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3085            END IF;
3086         END IF;
3087         /*      Vertical post -processing  section - Mandatory  */
3088         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  ) THEN
3089             CS_COUNTERS_VUHK.Update_GrpOp_Filter_Post (
3090              p_api_version           => l_api_version,
3091              p_init_msg_list         => p_init_msg_list,
3092              p_commit                => p_commit,
3093              x_return_status         => x_return_status,
3094              x_msg_count             => x_msg_count,
3095              x_msg_data              => x_msg_data,
3096              p_ctr_der_filter_id     => p_ctr_der_filter_id,
3097              p_object_version_number => p_object_version_number,
3098              p_seq_no                => p_seq_no,
3099              p_counter_id            => p_counter_id,
3100              p_left_paren            => p_left_paren,
3101              p_ctr_prop_id           => p_ctr_prop_id,
3102              p_rel_op                => p_rel_op,
3103              p_right_val             => p_right_val,
3104              p_right_paren           => p_right_paren,
3105              p_log_op                => p_log_op,
3106              p_cascade_upd_to_instances => p_cascade_upd_to_instances,
3107              x_object_version_number => x_object_version_number
3108            );
3109            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
3110                  RAISE FND_API.G_EXC_ERROR;
3111            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3112                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3113            END IF;
3114         END IF;
3115 
3116 
3117 	IF FND_API.To_Boolean( p_commit ) THEN
3118 		COMMIT WORK;
3119 	END IF;
3120 
3121 	FND_MSG_PUB.Count_And_Get
3122 		(p_count => x_msg_count ,
3123 	      p_data => x_msg_data
3124 		);
3125 
3126 EXCEPTION
3127 
3128 	WHEN FND_API.G_EXC_ERROR THEN
3129 		ROLLBACK TO Update_GrpOp_Filter_PUB;
3130 		x_return_status := FND_API.G_RET_STS_ERROR ;
3131 		FND_MSG_PUB.Count_And_Get
3132 			(p_count => x_msg_count ,
3133 			 p_data => x_msg_data
3134 			);
3135 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3136 		ROLLBACK TO Update_GrpOp_Filter_PUB;
3137 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3138 		FND_MSG_PUB.Count_And_Get
3139 		(p_count => x_msg_count ,
3140 		 p_data => x_msg_data
3141 		);
3142 	WHEN OTHERS THEN
3143 		ROLLBACK TO Update_GrpOp_Filter_PUB;
3144 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3145 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
3146 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
3147 		END IF;
3148 		FND_MSG_PUB.Count_And_Get
3149 			(p_count => x_msg_count ,
3150 			 p_data => x_msg_data
3151 			);
3152 
3153 end Update_GrpOp_Filter;
3154 
3155 PROCEDURE Update_Ctr_Association
3156 (
3157 	p_api_version			IN	NUMBER,
3158 	p_init_msg_list			IN	VARCHAR2	:= FND_API.G_FALSE,
3159 	p_commit			IN	VARCHAR2	:= FND_API.G_FALSE,
3160 	x_return_status			OUT NOCOPY	VARCHAR2,
3161 	x_msg_count			OUT NOCOPY	NUMBER,
3162 	x_msg_data			OUT NOCOPY	VARCHAR2,
3163 	p_ctr_association_id		IN	NUMBER,
3164 	p_object_version_number		IN	NUMBER,
3165 	p_ctr_grp_id			IN	NUMBER,
3166 	p_source_object_id		IN	NUMBER,
3167 	p_desc_flex			IN	CS_COUNTERS_EXT_PVT.DFF_Rec_Type,
3168 	x_object_version_number		OUT NOCOPY	NUMBER
3169 ) is
3170 	l_api_name      CONSTANT	VARCHAR2(30)	:= 'UPDATE_CTR_ASSOCIATION';
3171 	l_api_version	CONSTANT	NUMBER		:= 1.0;
3172 
3173  l_ctr_item_associations_rec CSI_CTR_DATASTRUCTURES_PUB.ctr_item_associations_rec;
3174  l_validation_level NUMBER;
3175 
3176 BEGIN
3177 
3178 	SAVEPOINT	Update_Ctr_Association_PUB;
3179 
3180 	-- Standard call to check for call compatibility.
3181 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
3182 								 p_api_version ,
3183 								 l_api_name ,
3184 								 G_PKG_NAME )	THEN
3185 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3186 	END IF;
3187 	-- Initialize message list if p_init_msg_list is set to TRUE.
3188 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
3189 		FND_MSG_PUB.initialize;
3190 	END IF;
3191 	     /*   Customer/Vertical Hookups
3192         /*  	Customer pre -processing  section - Mandatory  */
3193         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
3194            CS_COUNTERS_CUHK.Update_Ctr_Association_Pre (
3195              p_api_version           => l_api_version,
3196              p_init_msg_list         => p_init_msg_list,
3197              p_commit                => p_commit,
3198              x_return_status         => x_return_status,
3199              x_msg_count             => x_msg_count,
3200              x_msg_data              => x_msg_data,
3201              p_ctr_association_id    => p_ctr_association_id,
3202              p_object_version_number => p_object_version_number,
3203              p_ctr_grp_id            => p_ctr_grp_id,
3204              p_source_object_id      => p_source_object_id,
3205              x_object_version_number => x_object_version_number
3206            );
3207            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
3208                  RAISE FND_API.G_EXC_ERROR;
3209            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3210                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3211            END IF;
3212         END IF;
3213         /* 	Vertical pre -processing  section - Mandatory */
3214         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
3215            CS_COUNTERS_VUHK.Update_Ctr_Association_Pre (
3216              p_api_version           => l_api_version,
3217              p_init_msg_list         => p_init_msg_list,
3218              p_commit                => p_commit,
3219              x_return_status         => x_return_status,
3220              x_msg_count             => x_msg_count,
3221              x_msg_data              => x_msg_data,
3222              p_ctr_association_id    => p_ctr_association_id,
3223              p_object_version_number => p_object_version_number,
3224              p_ctr_grp_id            => p_ctr_grp_id,
3225              p_source_object_id      => p_source_object_id,
3226              x_object_version_number => x_object_version_number
3227            );
3228            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
3229                  RAISE FND_API.G_EXC_ERROR;
3230            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3231                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3232            END IF;
3233         END IF;
3234 
3235 	--  Initialize API return status to success
3236 	x_return_status := FND_API.G_RET_STS_SUCCESS;
3237 	--
3238 	-- Start of API Body
3239  l_ctr_item_associations_rec.CTR_ASSOCIATION_ID     := p_ctr_association_id;
3240  l_ctr_item_associations_rec.GROUP_ID               := p_ctr_grp_id;
3241  l_ctr_item_associations_rec.INVENTORY_ITEM_ID      := p_source_object_id;
3242  l_ctr_item_associations_rec.ATTRIBUTE1             := p_desc_flex.ATTRIBUTE1;
3243  l_ctr_item_associations_rec.ATTRIBUTE2             := p_desc_flex.ATTRIBUTE2;
3244  l_ctr_item_associations_rec.ATTRIBUTE3             := p_desc_flex.ATTRIBUTE3;
3245  l_ctr_item_associations_rec.ATTRIBUTE4             := p_desc_flex.ATTRIBUTE4;
3246  l_ctr_item_associations_rec.ATTRIBUTE5             := p_desc_flex.ATTRIBUTE5;
3247  l_ctr_item_associations_rec.ATTRIBUTE6             := p_desc_flex.ATTRIBUTE6;
3248  l_ctr_item_associations_rec.ATTRIBUTE7             := p_desc_flex.ATTRIBUTE7;
3249  l_ctr_item_associations_rec.ATTRIBUTE8             := p_desc_flex.ATTRIBUTE8;
3250  l_ctr_item_associations_rec.ATTRIBUTE9             := p_desc_flex.ATTRIBUTE9;
3251  l_ctr_item_associations_rec.ATTRIBUTE10            := p_desc_flex.ATTRIBUTE10;
3252  l_ctr_item_associations_rec.ATTRIBUTE11            := p_desc_flex.ATTRIBUTE11;
3253  l_ctr_item_associations_rec.ATTRIBUTE12            := p_desc_flex.ATTRIBUTE12;
3254  l_ctr_item_associations_rec.ATTRIBUTE13            := p_desc_flex.ATTRIBUTE13;
3255  l_ctr_item_associations_rec.ATTRIBUTE14            := p_desc_flex.ATTRIBUTE14;
3256  l_ctr_item_associations_rec.ATTRIBUTE15            := p_desc_flex.ATTRIBUTE15;
3257  l_ctr_item_associations_rec.ATTRIBUTE_CATEGORY     := p_desc_flex.CONTEXT;
3258  --l_ctr_item_associations_rec.ASSOCIATION_TYPE       := l_association_type;
3259  --l_ctr_item_associations_rec.ASSOCIATED_TO_GROUP    := 'Y';
3260  l_ctr_item_associations_rec.OBJECT_VERSION_NUMBER:=  p_object_version_number;
3261 
3262  CSI_COUNTER_TEMPLATE_PUB.update_item_association
3263  (
3264     p_api_version               =>  p_api_version
3265    ,p_commit                    =>  p_commit
3266    ,p_init_msg_list             =>  p_init_msg_list
3267    ,p_validation_level          =>  l_validation_level
3268    ,p_ctr_item_associations_rec =>  l_ctr_item_associations_rec
3269    ,x_return_status             =>  x_return_status
3270    ,x_msg_count                 =>  x_msg_count
3271    ,x_msg_data                  =>  x_msg_data
3272  );
3273 
3274 
3275 	IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
3276 	  ROLLBACK TO Update_Ctr_Association_PUB;
3277 	  RETURN;
3278 	END IF;
3279 
3280 	-- End of API Body
3281 	--
3282 	   /*  	Customer post -processing  section - Mandatory 	*/
3283         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
3284             CS_COUNTERS_CUHK.Update_Ctr_Association_Post (
3285              p_api_version           => l_api_version,
3286              p_init_msg_list         => p_init_msg_list,
3287              p_commit                => p_commit,
3288              x_return_status         => x_return_status,
3289              x_msg_count             => x_msg_count,
3290              x_msg_data              => x_msg_data,
3291              p_ctr_association_id    => p_ctr_association_id,
3292              p_object_version_number => p_object_version_number,
3293              p_ctr_grp_id            => p_ctr_grp_id,
3294              p_source_object_id      => p_source_object_id,
3295              x_object_version_number => x_object_version_number
3296            );
3297            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
3298                  RAISE FND_API.G_EXC_ERROR;
3299            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3300                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3301            END IF;
3302         END IF;
3303         /*      Vertical post -processing  section - Mandatory  */
3304         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  ) THEN
3305             CS_COUNTERS_VUHK.Update_Ctr_Association_Post (
3306              p_api_version           => l_api_version,
3307              p_init_msg_list         => p_init_msg_list,
3308              p_commit                => p_commit,
3309              x_return_status         => x_return_status,
3310              x_msg_count             => x_msg_count,
3311              x_msg_data              => x_msg_data,
3312              p_ctr_association_id    => p_ctr_association_id,
3313              p_object_version_number => p_object_version_number,
3314              p_ctr_grp_id            => p_ctr_grp_id,
3315              p_source_object_id      => p_source_object_id,
3316              x_object_version_number => x_object_version_number
3317            );
3318            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
3319                  RAISE FND_API.G_EXC_ERROR;
3320            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3321                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3322            END IF;
3323         END IF;
3324 
3325 	IF FND_API.To_Boolean( p_commit ) THEN
3326 		COMMIT WORK;
3327 	END IF;
3328 
3329 	FND_MSG_PUB.Count_And_Get
3330 		(p_count => x_msg_count ,
3331 	      p_data => x_msg_data
3332 		);
3333 
3334 EXCEPTION
3335 
3336 	WHEN FND_API.G_EXC_ERROR THEN
3337 		ROLLBACK TO Update_Ctr_Association_PUB;
3338 		x_return_status := FND_API.G_RET_STS_ERROR ;
3339 		FND_MSG_PUB.Count_And_Get
3340 			(p_count => x_msg_count ,
3341 			 p_data => x_msg_data
3342 			);
3343 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3344 		ROLLBACK TO Update_Ctr_Association_PUB;
3345 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3346 		FND_MSG_PUB.Count_And_Get
3347 		(p_count => x_msg_count ,
3348 		 p_data => x_msg_data
3349 		);
3350 	WHEN OTHERS THEN
3351 		ROLLBACK TO Update_Ctr_Association_PUB;
3352 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3353 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
3354 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
3355 		END IF;
3356 		FND_MSG_PUB.Count_And_Get
3357 			(p_count => x_msg_count ,
3358 			 p_data => x_msg_data
3359 			);
3360 
3361 end Update_Ctr_Association;
3362 
3363 PROCEDURE Delete_Counter
3364 (
3365 	p_api_version			IN	NUMBER,
3366 	p_init_msg_list			IN	VARCHAR2	:= FND_API.G_FALSE,
3367 	p_commit			IN	VARCHAR2	:= FND_API.G_FALSE,
3368 	x_return_status			OUT NOCOPY	VARCHAR2,
3369 	x_msg_count			OUT NOCOPY	NUMBER,
3370 	x_msg_data			OUT NOCOPY	VARCHAR2,
3371 	p_ctr_id			IN	NUMBER
3372 ) is
3373 	l_api_name     	CONSTANT	VARCHAR2(30)	:= 'DELETE_COUNTER';
3374 	l_api_version	CONSTANT	NUMBER		:= 1.0;
3375 
3376 BEGIN
3377 null;
3378 end Delete_Counter;
3379 
3380 PROCEDURE Delete_Ctr_Prop
3381 (
3382 	p_api_version		IN	NUMBER,
3383 	p_init_msg_list	        IN	VARCHAR2	:= FND_API.G_FALSE,
3384 	p_commit	        IN	VARCHAR2	:= FND_API.G_FALSE,
3385 	x_return_status	        OUT NOCOPY	VARCHAR2,
3386 	x_msg_count		OUT NOCOPY	NUMBER,
3387 	x_msg_data		OUT NOCOPY	VARCHAR2,
3388 	p_ctr_prop_id		IN	NUMBER
3389 ) is
3390 	l_api_name     CONSTANT	VARCHAR2(30)	:= 'DELETE_CTR_PROP';
3391 	l_api_version	CONSTANT	NUMBER		:= 1.0;
3392 
3393 BEGIN
3394 null;
3395 end Delete_Ctr_Prop;
3396 
3397 
3398 PROCEDURE Delete_Formula_Ref
3399 (
3400 	p_api_version			IN	NUMBER,
3401 	p_init_msg_list			IN	VARCHAR2	:= FND_API.G_FALSE,
3402 	p_commit			IN	VARCHAR2	:= FND_API.G_FALSE,
3403 	x_return_status			OUT NOCOPY	VARCHAR2,
3404 	x_msg_count			OUT NOCOPY	NUMBER,
3405 	x_msg_data			OUT NOCOPY	VARCHAR2,
3406 	p_ctr_formula_bvar_id		IN	NUMBER
3407 ) is
3408 	l_api_name     	CONSTANT	VARCHAR2(30)	:= 'DELETE_FORMULA_REF';
3409 	l_api_version	CONSTANT	NUMBER		:= 1.0;
3410 
3411 BEGIN
3412 null;
3413 end Delete_Formula_Ref;
3414 
3415 
3416 PROCEDURE Delete_GrpOp_Filter
3417 (
3418 	p_api_version		IN	NUMBER,
3419 	p_init_msg_list		IN	VARCHAR2	:= FND_API.G_FALSE,
3420 	p_commit		IN	VARCHAR2	:= FND_API.G_FALSE,
3421 	x_return_status		OUT NOCOPY	VARCHAR2,
3422 	x_msg_count		OUT NOCOPY	NUMBER,
3423 	x_msg_data		OUT NOCOPY	VARCHAR2,
3424 	p_ctr_der_filter_id	IN	NUMBER
3425 ) is
3426 	l_api_name     	CONSTANT	VARCHAR2(30)	:= 'DELETE_GRPOP_FILTER';
3427 	l_api_version	CONSTANT	NUMBER		:= 1.0;
3428 
3429 BEGIN
3430 null;
3431 end Delete_GrpOp_Filter;
3432 
3433 
3434 PROCEDURE Delete_Ctr_Association
3435 (
3436 	p_api_version			IN	NUMBER,
3437 	p_init_msg_list			IN	VARCHAR2	:= FND_API.G_FALSE,
3438 	p_commit			IN	VARCHAR2	:= FND_API.G_FALSE,
3439 	x_return_status			OUT NOCOPY	VARCHAR2,
3440 	x_msg_count			OUT NOCOPY	NUMBER,
3441 	x_msg_data			OUT NOCOPY	VARCHAR2,
3442 	p_ctr_association_id		IN	NUMBER
3443 ) is
3444 	l_api_name     	CONSTANT	VARCHAR2(30)	:= 'DELETE_CTR_ASSOCIATION';
3445 	l_api_version	CONSTANT	NUMBER		:= 1.0;
3446 
3447 BEGIN
3448 null;
3449 end Delete_Ctr_Association;
3450 
3451 PROCEDURE DELETE_COUNTER_INSTANCE(
3452        p_Api_Version              IN   NUMBER,
3453        p_Init_Msg_List            IN   VARCHAR2    := FND_API.G_FALSE,
3454        p_Commit                   IN   VARCHAR2    := FND_API.G_FALSE,
3455        p_SOURCE_OBJECT_ID         IN   NUMBER,
3456        p_SOURCE_OBJECT_CODE       IN   VARCHAR2,
3457        x_Return_status            OUT NOCOPY  VARCHAR2,
3458        x_Msg_Count                OUT NOCOPY  NUMBER,
3459        x_Msg_Data                 OUT NOCOPY  VARCHAR2,
3460        x_delete_status            OUT NOCOPY  VARCHAR2
3461   ) IS
3462        l_api_name           CONSTANT   VARCHAR2(30) := 'DELETE_COUNTER_INSTANCE';
3463        l_api_version        CONSTANT   NUMBER       := 1.0;
3464        l_ctr_group_id  NUMBER;
3465  BEGIN
3466  null;
3467  END  DELETE_COUNTER_INSTANCE;
3468 
3469 PROCEDURE Instantiate_single_Ctr
3470 (
3471         p_api_version                   IN      NUMBER,
3472         p_init_msg_list                 IN      VARCHAR2        := FND_API.G_FALSE,
3473         p_commit                        IN      VARCHAR2        := FND_API.G_FALSE,
3474         x_return_status                 OUT NOCOPY     VARCHAR2,
3475         x_msg_count                     OUT NOCOPY     NUMBER,
3476         x_msg_data                      OUT NOCOPY     VARCHAR2,
3477         p_counter_id_template           IN      NUMBER,
3478         p_source_object_code_instance   IN      VARCHAR2,
3479         p_source_object_id_instance     IN      NUMBER,
3480         x_ctr_id_instance               OUT NOCOPY     NUMBER
3481 ) is
3482         l_api_name      CONSTANT        VARCHAR2(30)    := 'Instantiate_single_Ctr';
3483         l_api_version   CONSTANT        NUMBER          := 1.0;
3484         x_ctr_id_template NUMBER;                       -- Added for bug #5983441
3485 
3486 
3487 
3488 
3489 BEGIN
3490 
3491 /*
3492 
3493 
3494  SAVEPOINT       Instantiate_Counters_PUB;
3495 
3496         -- Standard call to check for call compatibility.
3497         IF NOT FND_API.Compatible_API_Call (l_api_version ,
3498                                                                  p_api_version ,
3499                                                                  l_api_name ,
3500                                                                  G_PKG_NAME )   THEN
3501                 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3502         END IF;
3503         -- Initialize message list if p_init_msg_list is set to TRUE.
3504         IF FND_API.to_Boolean( p_init_msg_list ) THEN
3505                 FND_MSG_PUB.initialize;
3506         END IF;
3507 
3508 	 --BigDecimal [] x_ctr_grp_id_template = new BigDecimal[]{new BigDecimal(0)};
3509        --x_ctr_grp_id_template NUMBER;
3510 
3511         /*   Customer/Vertical Hookups
3512         /*      Customer pre -processing  section - Mandatory  */
3513         /*
3514         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'C' )  ) THEN
3515             CS_COUNTERS_CUHK.Instantiate_Counters_Pre (
3516              p_api_version           => l_api_version,
3517              p_init_msg_list         => p_init_msg_list,
3518              p_commit                => p_commit,
3519              x_return_status         => x_return_status,
3520              x_msg_count             => x_msg_count,
3521              x_msg_data              => x_msg_data,
3522              p_counter_group_id_template => p_counter_group_id_template,
3523              p_source_object_code_instance => p_source_object_code_instance,
3524              p_source_object_id_instance => p_source_object_id_instance,
3525              x_ctr_grp_id_template   => x_ctr_grp_id_template,
3526              x_ctr_grp_id_instance   => x_ctr_grp_id_instance
3527            );
3528 
3529            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
3530                  RAISE FND_API.G_EXC_ERROR;
3531            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3532                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3533            END IF;
3534         END IF;
3535         /*      Vertical pre -processing  section - Mandatory */
3536        /*
3537         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'B', 'V' )  )  THEN
3538            CS_COUNTERS_VUHK.Instantiate_Counters_Pre (
3539              p_api_version=> l_api_version,
3540              p_init_msg_list=> p_init_msg_list,
3541              p_commit => p_commit,
3542              x_return_status=> x_return_status,
3543              x_msg_count=> x_msg_count,
3544              x_msg_data=> x_msg_data,
3545              p_counter_id_template => p_counter_id_template,
3546              p_source_object_code_instance => p_source_object_code_instance,
3547              p_source_object_id_instance => p_source_object_id_instance,
3548              x_ctr_id_template  => x_ctr_id_template,
3549              x_ctr_id_instance   => x_ctr_id_instance
3550            );
3551            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
3552                  RAISE FND_API.G_EXC_ERROR;
3553            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3554                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3555            END IF;
3556         END IF;
3557 
3558         --  Initialize API return status to success
3559         x_return_status := FND_API.G_RET_STS_SUCCESS;
3560         -- Start of API Body
3561 
3562         */
3563 
3564        --Code Added for bug #5983441 starts here
3565 
3566        CSI_COUNTER_TEMPLATE_PUB.Instantiate_Counters
3567         (
3568           p_api_version,
3569           p_init_msg_list,
3570           p_commit,
3571           x_return_status,
3572           x_msg_count,
3573           x_msg_data,
3574           p_counter_id_template,
3575           p_source_object_code_instance,
3576           p_source_object_id_instance,
3577           x_ctr_id_template,
3578           x_ctr_id_instance
3579 
3580           );
3581 
3582         --Code Added for bug #5983441 ends here
3583 
3584         -- End of API Body
3585         --
3586         -- Customer/Vertical Hookups
3587         /*      Customer post -processing  section - Mandatory  */
3588         /*
3589         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'C' )  ) THEN
3590             CS_COUNTERS_CUHK.Instantiate_Counters_Post (
3591              p_api_version           => l_api_version,
3592              p_init_msg_list         => p_init_msg_list,
3593              p_commit                => p_commit,
3594              x_return_status         => x_return_status,
3595              x_msg_count             => x_msg_count,
3596              x_msg_data              => x_msg_data,
3597              p_counter_id_template => p_counter_id_template,
3598              p_source_object_code_instance => p_source_object_code_instance,
3599              p_source_object_id_instance => p_source_object_id_instance,
3600              x_ctr_id_template   => x_ctr_id_template,
3601              x_ctr_id_instance   => l_ctr_id_instance
3602            );
3603            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
3604                  RAISE FND_API.G_EXC_ERROR;
3605            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3606                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3607            END IF;
3608         END IF;
3609         /*      Vertical post -processing  section - Mandatory */
3610        /*
3611         IF  ( JTF_USR_HKS.Ok_to_execute(  G_PKG_NAME, l_api_name, 'A', 'V' )  )  THEN
3612            CS_COUNTERS_VUHK.Instantiate_Counters_Post (
3613              p_api_version           => l_api_version,
3614              p_init_msg_list         => p_init_msg_list,
3615              p_commit                => p_commit,
3616              x_return_status         => x_return_status,
3617              x_msg_count             => x_msg_count,
3618              x_msg_data              => x_msg_data,
3619              p_counter_id_template => p_counter_id_template,
3620              p_source_object_code_instance => p_source_object_code_instance,
3621              p_source_object_id_instance => p_source_object_id_instance,
3622              x_ctr_id_template   => x_ctr_id_template,
3623              x_ctr_id_instance   => l_ctr_id_instance
3624            );
3625            IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
3626                  RAISE FND_API.G_EXC_ERROR;
3627            ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
3628                  RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3629            END IF;
3630         END IF;
3631 
3632         IF FND_API.To_Boolean( p_commit ) THEN
3633                 COMMIT WORK;
3634         END IF;
3635 
3636         FND_MSG_PUB.Count_And_Get
3637                 (p_count => x_msg_count ,
3638               p_data => x_msg_data
3639                 );
3640 
3641 EXCEPTION
3642 
3643         WHEN FND_API.G_EXC_ERROR THEN
3644                 ROLLBACK TO Instantiate_Counters_PUB;
3645                 x_return_status := FND_API.G_RET_STS_ERROR ;
3646                 FND_MSG_PUB.Count_And_Get
3647                         (p_count => x_msg_count ,
3648                          p_data => x_msg_data
3649                         );
3650         WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3651                 ROLLBACK TO Instantiate_Counters_PUB;
3652                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3653                 FND_MSG_PUB.Count_And_Get
3654                 (p_count => x_msg_count ,
3655                  p_data => x_msg_data
3656                 );
3657         WHEN OTHERS THEN
3658                 ROLLBACK TO Instantiate_Counters_PUB;
3659                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3660                 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
3661                         FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
3662                 END IF;
3663                 FND_MSG_PUB.Count_And_Get
3664                         (p_count => x_msg_count ,
3665                          p_data => x_msg_data
3666                         );
3667 --null;
3668 
3669 */
3670 
3671 end Instantiate_single_Ctr;
3672 
3673 PROCEDURE Create_Estimation_Method
3674 (
3675         p_api_version                   IN      NUMBER,
3676         p_init_msg_list                 IN      VARCHAR2        DEFAULT FND_API.G_FALSE,
3677         p_commit                        IN      VARCHAR2        DEFAULT FND_API.G_FALSE,
3678         x_return_status                 OUT NOCOPY      VARCHAR2,
3679         x_msg_count                     OUT NOCOPY      NUMBER,
3680         x_msg_data                      OUT NOCOPY      VARCHAR2,
3681         p_ctr_estimation_rec            IN      CS_COUNTERS_PUB.Ctr_Estimation_Rec_Type,
3682         x_estimation_id                 IN OUT NOCOPY   NUMBER,
3683         x_object_version_number         OUT NOCOPY      NUMBER
3684 ) IS
3685 	l_api_name     	CONSTANT	VARCHAR2(30)	:= 'CREATE_ESTIMATION_METHOD';
3686 	l_api_version	CONSTANT	NUMBER		:= 1.0;
3687 
3688  l_ctr_estimation_methods_rec   CSI_CTR_DATASTRUCTURES_PUB.ctr_estimation_methods_rec;
3689  l_validation_level NUMBER;
3690 
3691 BEGIN
3692         SAVEPOINT	Create_Ctr_Estimation_PUB;
3693 
3694 	-- Standard call to check for call compatibility.
3695 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
3696 								 p_api_version ,
3697 								 l_api_name ,
3698 								 G_PKG_NAME )	THEN
3699 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3700 	END IF;
3701 	-- Initialize message list if p_init_msg_list is set to TRUE.
3702 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
3703 		FND_MSG_PUB.initialize;
3704 	END IF;
3705 
3706 	--  Initialize API return status to success
3707 	x_return_status := FND_API.G_RET_STS_SUCCESS;
3708 
3709 	-- Start of API Body
3710 
3711  l_ctr_estimation_methods_rec.ESTIMATION_ID           := x_estimation_id;
3712  l_ctr_estimation_methods_rec.ESTIMATION_TYPE         := p_ctr_estimation_rec.estimation_type;
3713  l_ctr_estimation_methods_rec.FIXED_VALUE             := p_ctr_estimation_rec.fixed_Value;
3714  l_ctr_estimation_methods_rec.USAGE_MARKUP            := p_ctr_estimation_rec.Usage_Markup;
3715  l_ctr_estimation_methods_rec.DEFAULT_VALUE           := p_ctr_estimation_rec.Default_Value;
3716  l_ctr_estimation_methods_rec.ESTIMATION_AVG_TYPE     := p_ctr_estimation_rec.estimation_avg_type;
3717  l_ctr_estimation_methods_rec.START_DATE_ACTIVE       := p_ctr_estimation_rec.start_date_active;
3718  l_ctr_estimation_methods_rec.END_DATE_ACTIVE         := p_ctr_estimation_rec.end_date_active;
3719  l_ctr_estimation_methods_rec.ATTRIBUTE1              := p_ctr_estimation_rec.ATTRIBUTE1;
3720  l_ctr_estimation_methods_rec.ATTRIBUTE2              := p_ctr_estimation_rec.ATTRIBUTE2;
3721  l_ctr_estimation_methods_rec.ATTRIBUTE3              := p_ctr_estimation_rec.ATTRIBUTE3;
3722  l_ctr_estimation_methods_rec.ATTRIBUTE4              := p_ctr_estimation_rec.ATTRIBUTE4;
3723  l_ctr_estimation_methods_rec.ATTRIBUTE5              := p_ctr_estimation_rec.ATTRIBUTE5;
3724  l_ctr_estimation_methods_rec.ATTRIBUTE6              := p_ctr_estimation_rec.ATTRIBUTE6;
3725  l_ctr_estimation_methods_rec.ATTRIBUTE7              := p_ctr_estimation_rec.ATTRIBUTE7;
3726  l_ctr_estimation_methods_rec.ATTRIBUTE8              := p_ctr_estimation_rec.ATTRIBUTE8;
3727  l_ctr_estimation_methods_rec.ATTRIBUTE9              := p_ctr_estimation_rec.ATTRIBUTE9;
3728  l_ctr_estimation_methods_rec.ATTRIBUTE10             := p_ctr_estimation_rec.ATTRIBUTE10;
3729  l_ctr_estimation_methods_rec.ATTRIBUTE11             := p_ctr_estimation_rec.ATTRIBUTE11;
3730  l_ctr_estimation_methods_rec.ATTRIBUTE12             := p_ctr_estimation_rec.ATTRIBUTE12;
3731  l_ctr_estimation_methods_rec.ATTRIBUTE13             := p_ctr_estimation_rec.ATTRIBUTE13;
3732  l_ctr_estimation_methods_rec.ATTRIBUTE14             := p_ctr_estimation_rec.ATTRIBUTE14;
3733  l_ctr_estimation_methods_rec.ATTRIBUTE15             := p_ctr_estimation_rec.ATTRIBUTE15;
3734  l_ctr_estimation_methods_rec.ATTRIBUTE_CATEGORY      := p_ctr_estimation_rec.ATTRIBUTE_CATEGORY;
3735  l_ctr_estimation_methods_rec.NAME                    := p_ctr_estimation_rec.estimation_name;
3736  l_ctr_estimation_methods_rec.DESCRIPTION             := p_ctr_estimation_rec.estimation_description;
3737 
3738  CSI_COUNTER_TEMPLATE_PUB.create_estimation_method
3739 (
3740    p_api_version               =>  p_api_version
3741   ,p_commit                    =>  p_commit
3742   ,p_init_msg_list             =>  p_init_msg_list
3743   ,p_validation_level          =>  l_validation_level
3744   ,x_return_status             =>  x_return_status
3745   ,x_msg_count                 =>  x_msg_count
3746   ,x_msg_data                  =>  x_msg_data
3747   ,p_ctr_estimation_rec        => l_ctr_estimation_methods_rec
3748 );
3749 
3750 	IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
3751 	  ROLLBACK TO Create_Ctr_Estimation_PUB;
3752 	  RETURN;
3753 	END IF;
3754 	-- End of API Body
3755 
3756 	IF FND_API.To_Boolean( p_commit ) THEN
3757 		COMMIT WORK;
3758 	END IF;
3759 
3760 	FND_MSG_PUB.Count_And_Get
3761 		(p_count => x_msg_count ,
3762 	      p_data => x_msg_data
3763 		);
3764 
3765 EXCEPTION
3766 
3767 	WHEN FND_API.G_EXC_ERROR THEN
3768 		ROLLBACK TO Create_Ctr_Estimation_PUB;
3769 		x_return_status := FND_API.G_RET_STS_ERROR ;
3770 		FND_MSG_PUB.Count_And_Get
3771 			(p_count => x_msg_count ,
3772 			 p_data => x_msg_data
3773 			);
3774 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3775 		ROLLBACK TO Create_Ctr_Estimation_PUB;
3776 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3777 		FND_MSG_PUB.Count_And_Get
3778 		(p_count => x_msg_count ,
3779 		 p_data => x_msg_data
3780 		);
3781 	WHEN OTHERS THEN
3782 		ROLLBACK TO Create_Ctr_Estimation_PUB;
3783 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3784 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
3785 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
3786 		END IF;
3787 		FND_MSG_PUB.Count_And_Get
3788 			(p_count => x_msg_count ,
3789 			 p_data => x_msg_data
3790 			);
3791 END Create_Estimation_Method;
3792 
3793 PROCEDURE Update_Estimation_Method
3794 (
3795         p_api_version                   IN      NUMBER,
3796         p_init_msg_list                 IN      VARCHAR2        DEFAULT FND_API.G_FALSE,
3797         p_commit                        IN      VARCHAR2        DEFAULT FND_API.G_FALSE,
3798         x_return_status                 OUT NOCOPY      VARCHAR2,
3799         x_msg_count                     OUT NOCOPY      NUMBER,
3800         x_msg_data                      OUT NOCOPY      VARCHAR2,
3801         p_estimation_id                 IN      NUMBER,
3802         p_object_version_number         IN      NUMBER,
3803         p_ctr_estimation_rec            IN      CS_COUNTERS_PUB.Ctr_Estimation_Rec_Type,
3804         x_object_version_number         OUT NOCOPY      NUMBER
3805 ) is
3806 	l_api_name     	CONSTANT	VARCHAR2(30)	:= 'UPDATE_ESTIMATION_METHOD';
3807 	l_api_version	CONSTANT	NUMBER		:= 1.0;
3808 
3809  l_ctr_estimation_methods_rec   CSI_CTR_DATASTRUCTURES_PUB.ctr_estimation_methods_rec;
3810  l_validation_level NUMBER;
3811 BEGIN
3812 
3813 	SAVEPOINT	Update_Estimation_Method_PUB;
3814 
3815 	-- Standard call to check for call compatibility.
3816 	IF NOT FND_API.Compatible_API_Call (l_api_version ,
3817 								 p_api_version ,
3818 								 l_api_name ,
3819 								 G_PKG_NAME )	THEN
3820 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3821 	END IF;
3822 	-- Initialize message list if p_init_msg_list is set to TRUE.
3823 	IF FND_API.to_Boolean( p_init_msg_list ) THEN
3824 		FND_MSG_PUB.initialize;
3825 	END IF;
3826 	--  Initialize API return status to success
3827 	x_return_status := FND_API.G_RET_STS_SUCCESS;
3828 	--
3829 	-- Start of API Body
3830  l_ctr_estimation_methods_rec.ESTIMATION_ID           := p_estimation_id;
3831  l_ctr_estimation_methods_rec.ESTIMATION_TYPE         := p_ctr_estimation_rec.estimation_type;
3832  l_ctr_estimation_methods_rec.FIXED_VALUE             := p_ctr_estimation_rec.fixed_Value;
3833  l_ctr_estimation_methods_rec.USAGE_MARKUP            := p_ctr_estimation_rec.Usage_Markup;
3834  l_ctr_estimation_methods_rec.DEFAULT_VALUE           := p_ctr_estimation_rec.Default_Value;
3835  l_ctr_estimation_methods_rec.ESTIMATION_AVG_TYPE     := p_ctr_estimation_rec.estimation_avg_type;
3836  l_ctr_estimation_methods_rec.START_DATE_ACTIVE       := p_ctr_estimation_rec.start_date_active;
3837  l_ctr_estimation_methods_rec.END_DATE_ACTIVE         := p_ctr_estimation_rec.end_date_active;
3838  l_ctr_estimation_methods_rec.ATTRIBUTE1              := p_ctr_estimation_rec.ATTRIBUTE1;
3839  l_ctr_estimation_methods_rec.ATTRIBUTE2              := p_ctr_estimation_rec.ATTRIBUTE2;
3840  l_ctr_estimation_methods_rec.ATTRIBUTE3              := p_ctr_estimation_rec.ATTRIBUTE3;
3841  l_ctr_estimation_methods_rec.ATTRIBUTE4              := p_ctr_estimation_rec.ATTRIBUTE4;
3842  l_ctr_estimation_methods_rec.ATTRIBUTE5              := p_ctr_estimation_rec.ATTRIBUTE5;
3843  l_ctr_estimation_methods_rec.ATTRIBUTE6              := p_ctr_estimation_rec.ATTRIBUTE6;
3844  l_ctr_estimation_methods_rec.ATTRIBUTE7              := p_ctr_estimation_rec.ATTRIBUTE7;
3845  l_ctr_estimation_methods_rec.ATTRIBUTE8              := p_ctr_estimation_rec.ATTRIBUTE8;
3846  l_ctr_estimation_methods_rec.ATTRIBUTE9              := p_ctr_estimation_rec.ATTRIBUTE9;
3847  l_ctr_estimation_methods_rec.ATTRIBUTE10             := p_ctr_estimation_rec.ATTRIBUTE10;
3848  l_ctr_estimation_methods_rec.ATTRIBUTE11             := p_ctr_estimation_rec.ATTRIBUTE11;
3849  l_ctr_estimation_methods_rec.ATTRIBUTE12             := p_ctr_estimation_rec.ATTRIBUTE12;
3850  l_ctr_estimation_methods_rec.ATTRIBUTE13             := p_ctr_estimation_rec.ATTRIBUTE13;
3851  l_ctr_estimation_methods_rec.ATTRIBUTE14             := p_ctr_estimation_rec.ATTRIBUTE14;
3852  l_ctr_estimation_methods_rec.ATTRIBUTE15             := p_ctr_estimation_rec.ATTRIBUTE15;
3853  l_ctr_estimation_methods_rec.ATTRIBUTE_CATEGORY      := p_ctr_estimation_rec.ATTRIBUTE_CATEGORY;
3854  l_ctr_estimation_methods_rec.NAME                    := p_ctr_estimation_rec.estimation_name;
3855  l_ctr_estimation_methods_rec.DESCRIPTION             := p_ctr_estimation_rec.estimation_description;
3856 
3857 
3858  CSI_COUNTER_TEMPLATE_PUB.Update_Estimation_Method
3859 (
3860    p_api_version               =>  p_api_version
3861   ,p_commit                    =>  p_commit
3862   ,p_init_msg_list             =>  p_init_msg_list
3863   ,p_validation_level          =>  l_validation_level
3864   ,x_return_status             =>  x_return_status
3865   ,x_msg_count                 =>  x_msg_count
3866   ,x_msg_data                  =>  x_msg_data
3867   ,p_ctr_estimation_rec        =>  l_ctr_estimation_methods_rec
3868 );
3869 
3870 	IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
3871 	  ROLLBACK TO Update_Estimation_Method_PUB;
3872 	  RETURN;
3873 	END IF;
3874 
3875 	-- End of API Body
3876 
3877         IF FND_API.To_Boolean( p_commit ) THEN
3878 		COMMIT WORK;
3879 	END IF;
3880 
3881 	FND_MSG_PUB.Count_And_Get
3882 		(p_count => x_msg_count ,
3883 	      p_data => x_msg_data
3884 		);
3885 
3886 EXCEPTION
3887 
3888 	WHEN FND_API.G_EXC_ERROR THEN
3889 		ROLLBACK TO Update_Estimation_Method_PUB;
3890 		x_return_status := FND_API.G_RET_STS_ERROR ;
3891 		FND_MSG_PUB.Count_And_Get
3892 			(p_count => x_msg_count ,
3893 			 p_data => x_msg_data
3894 			);
3895 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3896 		ROLLBACK TO Update_Estimation_Method_PUB;
3897 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3898 		FND_MSG_PUB.Count_And_Get
3899 		(p_count => x_msg_count ,
3900 		 p_data => x_msg_data
3901 		);
3902 	WHEN OTHERS THEN
3903 		ROLLBACK TO Update_Estimation_Method_PUB;
3904 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
3905 		IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
3906 			FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
3907 		END IF;
3908 		FND_MSG_PUB.Count_And_Get
3909 			(p_count => x_msg_count ,
3910 			 p_data => x_msg_data
3911 			);
3912 
3913 end Update_Estimation_Method;
3914 
3915 END CS_Counters_PUB;