DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_COUNTERFILTER_PVT

Source


1 PACKAGE BODY CS_COUNTERFILTER_PVT AS
2 /* $Header: csctdflb.pls 115.9 2002/11/18 21:57:28 mkommuri ship $ */
3   FUNCTION get_seq_id RETURN NUMBER IS
4     CURSOR get_seq_id_csr IS
5       SELECT CS_COUNTER_DER_FILTERS_S.nextval FROM SYS.DUAL;
6       l_seq_id                       NUMBER := 0;
7   BEGIN
8     OPEN get_seq_id_csr;
9     FETCH get_seq_id_csr INTO l_seq_id;
10     CLOSE get_seq_id_csr;
11     RETURN(l_seq_id);
12   END get_seq_id;
13 
14 
15   -- Validation
16   FUNCTION Validate_Item_Attributes
17   (
18     p_counterfilter_rec IN  CounterFilter_Rec_Type
19   )
20   RETURN VARCHAR2
21   IS
22     l_return_status	VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
23   BEGIN
24     IF p_counterfilter_rec.counter_id = TAPI_DEV_KIT.G_MISS_NUM OR
25        p_counterfilter_rec.counter_id IS NULL
26     THEN
27       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'counter_id');
28       l_return_status := FND_API.G_RET_STS_ERROR;
29     ELSIF p_counterfilter_rec.seq_no = TAPI_DEV_KIT.G_MISS_NUM OR
30           p_counterfilter_rec.seq_no IS NULL
31     THEN
32       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'seq_no');
33       l_return_status := FND_API.G_RET_STS_ERROR;
34     ELSIF p_counterfilter_rec.counter_property_id = TAPI_DEV_KIT.G_MISS_NUM OR
35           p_counterfilter_rec.counter_property_id IS NULL
36     THEN
37       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'counter_property_id');
38       l_return_status := FND_API.G_RET_STS_ERROR;
39     ELSIF p_counterfilter_rec.last_update_date = TAPI_DEV_KIT.G_MISS_DATE OR
40           p_counterfilter_rec.last_update_date IS NULL
41     THEN
42       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'last_update_date');
43       l_return_status := FND_API.G_RET_STS_ERROR;
44     ELSIF p_counterfilter_rec.last_updated_by = TAPI_DEV_KIT.G_MISS_NUM OR
45           p_counterfilter_rec.last_updated_by IS NULL
46     THEN
47       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'last_updated_by');
48       l_return_status := FND_API.G_RET_STS_ERROR;
49     ELSIF p_counterfilter_rec.creation_date = TAPI_DEV_KIT.G_MISS_DATE OR
50           p_counterfilter_rec.creation_date IS NULL
51     THEN
52       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'creation_date');
53       l_return_status := FND_API.G_RET_STS_ERROR;
54     ELSIF p_counterfilter_rec.created_by = TAPI_DEV_KIT.G_MISS_NUM OR
55           p_counterfilter_rec.created_by IS NULL
56     THEN
57       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'created_by');
58       l_return_status := FND_API.G_RET_STS_ERROR;
59     END IF;
60     RETURN(l_return_status);
61   END Validate_Item_Attributes;
62 
63 
64   ----- Default
65   FUNCTION Default_Item_Attributes
66   (
67     p_counterfilter_rec IN  CounterFilter_Rec_Type,
68     l_def_counterfilter_rec OUT NOCOPY  CounterFilter_Rec_Type
69   )
70   RETURN VARCHAR2
71   IS
72     l_return_status 	VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
73   BEGIN
74     l_def_counterfilter_rec := p_counterfilter_rec;
75     l_def_counterfilter_rec.OBJECT_VERSION_NUMBER := NVL(l_def_counterfilter_rec.OBJECT_VERSION_NUMBER, 0) + 1;
76     RETURN(l_return_status);
77   End Default_Item_attributes;
78 
79 
80   FUNCTION Validate_Item_Record (
81     p_counterfilter_rec IN CounterFilter_Rec_Type
82   )
83   RETURN VARCHAR2 IS
84     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
85   BEGIN
86     RETURN (l_return_status);
87   END Validate_Item_Record;
88 
89 
90   PROCEDURE migrate (
91     p_from	IN CounterFilter_Val_Rec_Type,
92     p_to	OUT NOCOPY CounterFilter_Rec_Type
93   ) IS
94   BEGIN
95     p_to.counter_der_filter_id := p_from.counter_der_filter_id;
96     p_to.counter_id := p_from.counter_id;
97     p_to.seq_no := p_from.seq_no;
98     p_to.left_paren := p_from.left_paren;
99     p_to.counter_property_id := p_from.counter_property_id;
100     p_to.relational_operator := p_from.relational_operator;
101     p_to.right_paren := p_from.right_paren;
102     p_to.right_value := p_from.right_value;
103     p_to.logical_operator := p_from.logical_operator;
104     p_to.last_update_date := p_from.last_update_date;
105     p_to.last_updated_by := p_from.last_updated_by;
106     p_to.creation_date := p_from.creation_date;
107     p_to.created_by := p_from.created_by;
108     p_to.last_update_login := p_from.last_update_login;
109     p_to.attribute1 := p_from.attribute1;
110     p_to.attribute2 := p_from.attribute2;
111     p_to.attribute3 := p_from.attribute3;
112     p_to.attribute4 := p_from.attribute4;
113     p_to.attribute5 := p_from.attribute5;
114     p_to.attribute6 := p_from.attribute6;
115     p_to.attribute7 := p_from.attribute7;
116     p_to.attribute8 := p_from.attribute8;
117     p_to.attribute9 := p_from.attribute9;
118     p_to.attribute10 := p_from.attribute10;
119     p_to.attribute11 := p_from.attribute11;
120     p_to.attribute12 := p_from.attribute12;
121     p_to.attribute13 := p_from.attribute13;
122     p_to.attribute14 := p_from.attribute14;
123     p_to.attribute15 := p_from.attribute15;
124     p_to.context := p_from.context;
125     p_to.object_version_number := p_from.object_version_number;
126   END migrate;
127   PROCEDURE migrate (
128     p_from	IN CounterFilter_Rec_Type,
129     p_to	OUT NOCOPY CounterFilter_Val_Rec_Type
130   ) IS
131   BEGIN
132     p_to.counter_der_filter_id := p_from.counter_der_filter_id;
133     p_to.counter_id := p_from.counter_id;
134     p_to.seq_no := p_from.seq_no;
135     p_to.left_paren := p_from.left_paren;
136     p_to.counter_property_id := p_from.counter_property_id;
137     p_to.relational_operator := p_from.relational_operator;
138     p_to.right_paren := p_from.right_paren;
139     p_to.right_value := p_from.right_value;
140     p_to.logical_operator := p_from.logical_operator;
141     p_to.last_update_date := p_from.last_update_date;
142     p_to.last_updated_by := p_from.last_updated_by;
143     p_to.creation_date := p_from.creation_date;
144     p_to.created_by := p_from.created_by;
145     p_to.last_update_login := p_from.last_update_login;
146     p_to.attribute1 := p_from.attribute1;
147     p_to.attribute2 := p_from.attribute2;
148     p_to.attribute3 := p_from.attribute3;
149     p_to.attribute4 := p_from.attribute4;
150     p_to.attribute5 := p_from.attribute5;
151     p_to.attribute6 := p_from.attribute6;
152     p_to.attribute7 := p_from.attribute7;
153     p_to.attribute8 := p_from.attribute8;
154     p_to.attribute9 := p_from.attribute9;
155     p_to.attribute10 := p_from.attribute10;
156     p_to.attribute11 := p_from.attribute11;
157     p_to.attribute12 := p_from.attribute12;
158     p_to.attribute13 := p_from.attribute13;
159     p_to.attribute14 := p_from.attribute14;
160     p_to.attribute15 := p_from.attribute15;
161     p_to.context := p_from.context;
162     p_to.object_version_number := p_from.object_version_number;
163   END migrate;
164   PROCEDURE insert_row
165   (
166     p_api_version                  IN NUMBER,
167     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
168     p_validation_level             IN NUMBER,
169     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
170     x_return_status                OUT NOCOPY VARCHAR2,
171     x_msg_count                    OUT NOCOPY NUMBER,
172     x_msg_data                     OUT NOCOPY VARCHAR2,
173     p_counterfilter_rec            IN CounterFilter_Rec_Type := G_MISS_COUNTERFILTER_REC,
174     x_counter_der_filter_id        OUT NOCOPY NUMBER,
175     x_object_version_number        OUT NOCOPY NUMBER) IS
176     l_api_name                     CONSTANT VARCHAR2(30) := 'insert_row';
177     l_api_version                  CONSTANT NUMBER := 1;
178     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
179     l_counterfilter_rec            CounterFilter_Rec_Type;
180     l_def_counterfilter_rec        CounterFilter_Rec_Type;
181   BEGIN
182     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
183                                               G_PKG_NAME,
184                                               l_api_version,
185                                               p_api_version,
186                                               p_init_msg_list,
187                                               '_Pvt',
188                                               x_return_status);
189     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
190       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
191     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
192       RAISE FND_API.G_EXC_ERROR;
193     END IF;
194     l_counterfilter_rec := p_counterfilter_rec;
195     --- Validate all non-missing attributes (Item Level Validation)
196     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
197       l_return_status := Validate_Item_Attributes
198       (
199         l_counterfilter_rec    ---- IN
200       );
201       --- If any errors happen abort API
202       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
203         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
204       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
205         RAISE FND_API.G_EXC_ERROR;
206       END IF;
207     END IF;
208     --- Defaulting item attributes
209     l_return_status := Default_Item_Attributes
210     (
211       l_counterfilter_rec,    ---- IN
212       l_def_counterfilter_rec
213     );
214     --- If any errors happen abort API
215     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
216       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
217     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
218       RAISE FND_API.G_EXC_ERROR;
219     END IF;
220     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
221       l_return_status := Validate_Item_Record(l_def_counterfilter_rec);
222       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
223         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
224       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
225         RAISE FND_API.G_EXC_ERROR;
226       END IF;
227     END IF;
228     -- Set primary key value
229     l_def_counterfilter_rec.counter_der_filter_id := get_seq_id;
230     INSERT INTO CS_COUNTER_DER_FILTERS(
231         counter_der_filter_id,
232         counter_id,
233         seq_no,
234         left_paren,
235         counter_property_id,
236         relational_operator,
237         right_paren,
238         right_value,
239         logical_operator,
240         last_update_date,
241         last_updated_by,
242         creation_date,
243         created_by,
244         last_update_login,
245         attribute1,
246         attribute2,
247         attribute3,
248         attribute4,
249         attribute5,
250         attribute6,
251         attribute7,
252         attribute8,
253         attribute9,
254         attribute10,
255         attribute11,
256         attribute12,
257         attribute13,
258         attribute14,
259         attribute15,
260         context,
261         object_version_number)
262       VALUES (
263         l_def_counterfilter_rec.counter_der_filter_id,
264         l_def_counterfilter_rec.counter_id,
265         l_def_counterfilter_rec.seq_no,
266         l_def_counterfilter_rec.left_paren,
267         l_def_counterfilter_rec.counter_property_id,
268         l_def_counterfilter_rec.relational_operator,
269         l_def_counterfilter_rec.right_paren,
270         l_def_counterfilter_rec.right_value,
271         l_def_counterfilter_rec.logical_operator,
272         l_def_counterfilter_rec.last_update_date,
273         l_def_counterfilter_rec.last_updated_by,
274         l_def_counterfilter_rec.creation_date,
275         l_def_counterfilter_rec.created_by,
276         l_def_counterfilter_rec.last_update_login,
277         l_def_counterfilter_rec.attribute1,
278         l_def_counterfilter_rec.attribute2,
279         l_def_counterfilter_rec.attribute3,
280         l_def_counterfilter_rec.attribute4,
281         l_def_counterfilter_rec.attribute5,
282         l_def_counterfilter_rec.attribute6,
283         l_def_counterfilter_rec.attribute7,
284         l_def_counterfilter_rec.attribute8,
285         l_def_counterfilter_rec.attribute9,
286         l_def_counterfilter_rec.attribute10,
287         l_def_counterfilter_rec.attribute11,
288         l_def_counterfilter_rec.attribute12,
289         l_def_counterfilter_rec.attribute13,
290         l_def_counterfilter_rec.attribute14,
291         l_def_counterfilter_rec.attribute15,
292         l_def_counterfilter_rec.context,
293         l_def_counterfilter_rec.object_version_number);
294     -- Set OUT values
295     x_counter_der_filter_id := l_def_counterfilter_rec.counter_der_filter_id;
296     x_object_version_number       := l_def_counterfilter_rec.OBJECT_VERSION_NUMBER;
297     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
298   EXCEPTION
299     WHEN FND_API.G_EXC_ERROR THEN
300       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
301       (
302         l_api_name,
303         G_PKG_NAME,
304         'FND_API.G_RET_STS_ERROR',
305         x_msg_count,
306         x_msg_data,
307         '_Pvt'
308       );
309     APP_EXCEPTION.RAISE_EXCEPTION;
310     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
311       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
312       (
313         l_api_name,
314         G_PKG_NAME,
315         'FND_API.G_RET_STS_UNEXP_ERROR',
316         x_msg_count,
317         x_msg_data,
318         '_Pvt'
319       );
320     APP_EXCEPTION.RAISE_EXCEPTION;
321     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
322       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
323       (
324         l_api_name,
325         G_PKG_NAME,
326         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
327         x_msg_count,
328         x_msg_data,
329         '_Pvt'
330       );
331     APP_EXCEPTION.RAISE_EXCEPTION;
332   END insert_row;
333   PROCEDURE insert_row
334   (
335     p_api_version                  IN NUMBER,
336     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
337     p_validation_level             IN NUMBER,
338     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
342     p_counter_id                   IN NUMBER := NULL,
339     x_return_status                OUT NOCOPY VARCHAR2,
340     x_msg_count                    OUT NOCOPY NUMBER,
341     x_msg_data                     OUT NOCOPY VARCHAR2,
343     p_seq_no                       IN NUMBER := NULL,
344     p_left_paren                   IN CS_COUNTER_DER_FILTERS.LEFT_PAREN%TYPE := NULL,
345     p_counter_property_id          IN NUMBER := NULL,
346     p_relational_operator          IN CS_COUNTER_DER_FILTERS.RELATIONAL_OPERATOR%TYPE := NULL,
347     p_right_paren                  IN CS_COUNTER_DER_FILTERS.RIGHT_PAREN%TYPE := NULL,
348     p_right_value                  IN CS_COUNTER_DER_FILTERS.RIGHT_VALUE%TYPE := NULL,
349     p_logical_operator             IN CS_COUNTER_DER_FILTERS.LOGICAL_OPERATOR%TYPE := NULL,
350     p_last_update_date             IN CS_COUNTER_DER_FILTERS.LAST_UPDATE_DATE%TYPE := NULL,
351     p_last_updated_by              IN NUMBER := NULL,
352     p_creation_date                IN CS_COUNTER_DER_FILTERS.CREATION_DATE%TYPE := NULL,
353     p_created_by                   IN NUMBER := NULL,
354     p_last_update_login            IN NUMBER := NULL,
355     p_attribute1                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE1%TYPE := NULL,
356     p_attribute2                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE2%TYPE := NULL,
357     p_attribute3                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE3%TYPE := NULL,
358     p_attribute4                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE4%TYPE := NULL,
359     p_attribute5                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE5%TYPE := NULL,
360     p_attribute6                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE6%TYPE := NULL,
361     p_attribute7                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE7%TYPE := NULL,
362     p_attribute8                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE8%TYPE := NULL,
363     p_attribute9                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE9%TYPE := NULL,
364     p_attribute10                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE10%TYPE := NULL,
365     p_attribute11                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE11%TYPE := NULL,
366     p_attribute12                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE12%TYPE := NULL,
367     p_attribute13                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE13%TYPE := NULL,
368     p_attribute14                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE14%TYPE := NULL,
369     p_attribute15                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE15%TYPE := NULL,
370     p_context                      IN CS_COUNTER_DER_FILTERS.CONTEXT%TYPE := NULL,
371     p_object_version_number        IN NUMBER := NULL,
372     x_counter_der_filter_id        OUT NOCOPY NUMBER,
373     x_object_version_number        OUT NOCOPY NUMBER) IS
374     l_api_name                     CONSTANT VARCHAR2(30) := 'insert_row';
375     l_api_version                  CONSTANT NUMBER := 1;
376     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
377     l_counterfilter_rec            CounterFilter_Rec_Type;
378   BEGIN
379     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
380                                               G_PKG_NAME,
381                                               l_api_version,
382                                               p_api_version,
383                                               p_init_msg_list,
384                                               '_Pvt',
385                                               x_return_status);
386     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
387       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
388     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
389       RAISE FND_API.G_EXC_ERROR;
390     END IF;
391     l_counterfilter_rec.COUNTER_ID := p_counter_id;
392     l_counterfilter_rec.SEQ_NO := p_seq_no;
393     l_counterfilter_rec.LEFT_PAREN := p_left_paren;
394     l_counterfilter_rec.COUNTER_PROPERTY_ID := p_counter_property_id;
395     l_counterfilter_rec.RELATIONAL_OPERATOR := p_relational_operator;
396     l_counterfilter_rec.RIGHT_PAREN := p_right_paren;
397     l_counterfilter_rec.RIGHT_VALUE := p_right_value;
398     l_counterfilter_rec.LOGICAL_OPERATOR := p_logical_operator;
399     l_counterfilter_rec.LAST_UPDATE_DATE := p_last_update_date;
400     l_counterfilter_rec.LAST_UPDATED_BY := p_last_updated_by;
401     l_counterfilter_rec.CREATION_DATE := p_creation_date;
402     l_counterfilter_rec.CREATED_BY := p_created_by;
403     l_counterfilter_rec.LAST_UPDATE_LOGIN := p_last_update_login;
404     l_counterfilter_rec.ATTRIBUTE1 := p_attribute1;
405     l_counterfilter_rec.ATTRIBUTE2 := p_attribute2;
406     l_counterfilter_rec.ATTRIBUTE3 := p_attribute3;
407     l_counterfilter_rec.ATTRIBUTE4 := p_attribute4;
408     l_counterfilter_rec.ATTRIBUTE5 := p_attribute5;
409     l_counterfilter_rec.ATTRIBUTE6 := p_attribute6;
410     l_counterfilter_rec.ATTRIBUTE7 := p_attribute7;
411     l_counterfilter_rec.ATTRIBUTE8 := p_attribute8;
412     l_counterfilter_rec.ATTRIBUTE9 := p_attribute9;
413     l_counterfilter_rec.ATTRIBUTE10 := p_attribute10;
414     l_counterfilter_rec.ATTRIBUTE11 := p_attribute11;
415     l_counterfilter_rec.ATTRIBUTE12 := p_attribute12;
416     l_counterfilter_rec.ATTRIBUTE13 := p_attribute13;
417     l_counterfilter_rec.ATTRIBUTE14 := p_attribute14;
418     l_counterfilter_rec.ATTRIBUTE15 := p_attribute15;
419     l_counterfilter_rec.CONTEXT := p_context;
420     l_counterfilter_rec.OBJECT_VERSION_NUMBER := p_object_version_number;
421     insert_row(
422       p_api_version,
423       --p_init_msg_list,
424 	 FND_API.G_TRUE,
425       p_validation_level,
426       --p_commit,
427 	 FND_API.G_TRUE,
431       l_counterfilter_rec,
428       x_return_status,
429       x_msg_count,
430       x_msg_data,
432       x_counter_der_filter_id,
433       x_object_version_number
434     );
435     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
436   EXCEPTION
437     WHEN FND_API.G_EXC_ERROR THEN
438       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
439       (
440         l_api_name,
441         G_PKG_NAME,
442         'FND_API.G_RET_STS_ERROR',
443         x_msg_count,
444         x_msg_data,
445         '_Pvt'
446       );
447     APP_EXCEPTION.RAISE_EXCEPTION;
448     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
449       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
450       (
451         l_api_name,
452         G_PKG_NAME,
453         'FND_API.G_RET_STS_UNEXP_ERROR',
454         x_msg_count,
455         x_msg_data,
456         '_Pvt'
457       );
458     APP_EXCEPTION.RAISE_EXCEPTION;
459     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
460       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
461       (
462         l_api_name,
463         G_PKG_NAME,
464         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
465         x_msg_count,
466         x_msg_data,
467         '_Pvt'
468       );
469     APP_EXCEPTION.RAISE_EXCEPTION;
470   END insert_row;
471   Procedure lock_row
472   (
473     p_api_version                  IN NUMBER,
474     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
475     p_validation_level             IN NUMBER,
476     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
477     x_return_status                OUT NOCOPY VARCHAR2,
478     x_msg_count                    OUT NOCOPY NUMBER,
479     x_msg_data                     OUT NOCOPY VARCHAR2,
480     p_counter_der_filter_id        IN NUMBER,
481     p_object_version_number        IN NUMBER) IS
482     E_Resource_Busy               EXCEPTION;
483     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
484     CURSOR lock_csr IS
485     SELECT OBJECT_VERSION_NUMBER
486      FROM CS_COUNTER_DER_FILTERS
487     WHERE
488       COUNTER_DER_FILTER_ID = p_counter_der_filter_id AND
489       OBJECT_VERSION_NUMBER = p_object_version_number
490     FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
491 
492     CURSOR  lchk_csr IS
493     SELECT OBJECT_VERSION_NUMBER
494      FROM CS_COUNTER_DER_FILTERS
495     WHERE
496       COUNTER_DER_FILTER_ID = p_counter_der_filter_id
497       ;
498     l_api_name                     CONSTANT VARCHAR2(30) := 'lock_row';
499     l_api_version                  CONSTANT NUMBER := 1;
500     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
501     l_object_version_number       CS_COUNTER_DER_FILTERS.OBJECT_VERSION_NUMBER%TYPE;
502     lc_object_version_number      CS_COUNTER_DER_FILTERS.OBJECT_VERSION_NUMBER%TYPE;
503     l_row_notfound                BOOLEAN := FALSE;
504     lc_row_notfound               BOOLEAN := FALSE;
505   BEGIN
506     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
507                                               G_PKG_NAME,
508                                               l_api_version,
509                                               p_api_version,
510                                               p_init_msg_list,
511                                               '_Pvt',
512                                               x_return_status);
513     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
514       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
515     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
516       RAISE FND_API.G_EXC_ERROR;
517     END IF;
518     BEGIN
519       OPEN lock_csr;
520       FETCH lock_csr INTO l_object_version_number;
521       l_row_notfound := lock_csr%NOTFOUND;
522       CLOSE lock_csr;
523     EXCEPTION
524       WHEN E_Resource_Busy THEN
525         IF (lock_csr%ISOPEN) THEN
526           CLOSE lock_csr;
527         END IF;
528         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
529         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
530     END;
531 
532     IF ( l_row_notfound ) THEN
533       OPEN lchk_csr;
534       FETCH lchk_csr INTO lc_object_version_number;
535       lc_row_notfound := lchk_csr%NOTFOUND;
536       CLOSE lchk_csr;
537     END IF;
538     IF (lc_row_notfound) THEN
539       TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
540       RAISE FND_API.G_EXC_ERROR;
541     ELSIF lc_object_version_number > p_object_version_number THEN
542       TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
543       RAISE FND_API.G_EXC_ERROR;
544     ELSIF lc_object_version_number <> p_object_version_number THEN
545       TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
546       RAISE FND_API.G_EXC_ERROR;
547     ELSIF lc_object_version_number = -1 THEN
548       TAPI_DEV_KIT.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
549       RAISE FND_API.G_EXC_ERROR;
550     END IF;
551     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
552   EXCEPTION
553     WHEN FND_API.G_EXC_ERROR THEN
554       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
555       (
556         l_api_name,
557         G_PKG_NAME,
558         'FND_API.G_RET_STS_ERROR',
559         x_msg_count,
560         x_msg_data,
561         '_Pvt'
562       );
563     APP_EXCEPTION.RAISE_EXCEPTION;
567         l_api_name,
564     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
565       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
566       (
568         G_PKG_NAME,
569         'FND_API.G_RET_STS_UNEXP_ERROR',
570         x_msg_count,
571         x_msg_data,
572         '_Pvt'
573       );
574     APP_EXCEPTION.RAISE_EXCEPTION;
575     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
576       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
577       (
578         l_api_name,
579         G_PKG_NAME,
580         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
581         x_msg_count,
582         x_msg_data,
583         '_Pvt'
584       );
585     APP_EXCEPTION.RAISE_EXCEPTION;
586   END lock_row;
587   Procedure update_row
588   (
589     p_api_version                  IN NUMBER,
590     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
591     p_validation_level             IN NUMBER,
592     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
593     x_return_status                OUT NOCOPY VARCHAR2,
594     x_msg_count                    OUT NOCOPY NUMBER,
595     x_msg_data                     OUT NOCOPY VARCHAR2,
596     p_counterfilter_val_rec        IN CounterFilter_Val_Rec_Type := G_MISS_COUNTERFILTER_VAL_REC,
597     x_object_version_number        OUT NOCOPY NUMBER) IS
598     l_api_name                     CONSTANT VARCHAR2(30) := 'update_row';
599     l_api_version                  CONSTANT NUMBER := 1;
600     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
601     l_counterfilter_rec            CounterFilter_Rec_Type;
602     l_def_counterfilter_rec        CounterFilter_Rec_Type;
603     FUNCTION populate_new_record (
604       p_counterfilter_rec	IN CounterFilter_Rec_Type,
605       x_counterfilter_rec	OUT NOCOPY CounterFilter_Rec_Type
606     ) RETURN VARCHAR2 IS
607       CURSOR ccd_pk_csr (p_counter_der_filter_id  IN NUMBER) IS
608       SELECT *
609         FROM Cs_Counter_Der_Filters
610        WHERE cs_counter_der_filters.counter_der_filter_id = p_counter_der_filter_id;
611       l_ccd_pk                       ccd_pk_csr%ROWTYPE;
612       l_row_notfound		BOOLEAN := TRUE;
613       l_return_status		VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
614     BEGIN
615       x_counterfilter_rec := p_counterfilter_rec;
616       -- Get current database values
617       OPEN ccd_pk_csr (p_counterfilter_rec.counter_der_filter_id);
618       FETCH ccd_pk_csr INTO l_ccd_pk;
619       l_row_notfound := ccd_pk_csr%NOTFOUND;
620       CLOSE ccd_pk_csr;
621       IF (l_row_notfound) THEN
622         l_return_status := FND_API.G_RET_STS_ERROR;
623       END IF;
624       IF (x_counterfilter_rec.counter_der_filter_id = TAPI_DEV_KIT.G_MISS_NUM)
625       THEN
626         x_counterfilter_rec.counter_der_filter_id := l_ccd_pk.counter_der_filter_id;
627       END IF;
628       IF (x_counterfilter_rec.counter_id = TAPI_DEV_KIT.G_MISS_NUM)
629       THEN
630         x_counterfilter_rec.counter_id := l_ccd_pk.counter_id;
631       END IF;
632       IF (x_counterfilter_rec.seq_no = TAPI_DEV_KIT.G_MISS_NUM)
633       THEN
634         x_counterfilter_rec.seq_no := l_ccd_pk.seq_no;
635       END IF;
636       IF (x_counterfilter_rec.left_paren = TAPI_DEV_KIT.G_MISS_CHAR)
637       THEN
638         x_counterfilter_rec.left_paren := l_ccd_pk.left_paren;
639       END IF;
640       IF (x_counterfilter_rec.counter_property_id = TAPI_DEV_KIT.G_MISS_NUM)
641       THEN
642         x_counterfilter_rec.counter_property_id := l_ccd_pk.counter_property_id;
643       END IF;
644       IF (x_counterfilter_rec.relational_operator = TAPI_DEV_KIT.G_MISS_CHAR)
645       THEN
646         x_counterfilter_rec.relational_operator := l_ccd_pk.relational_operator;
647       END IF;
648       IF (x_counterfilter_rec.right_paren = TAPI_DEV_KIT.G_MISS_CHAR)
649       THEN
650         x_counterfilter_rec.right_paren := l_ccd_pk.right_paren;
651       END IF;
652       IF (x_counterfilter_rec.right_value = TAPI_DEV_KIT.G_MISS_CHAR)
653       THEN
654         x_counterfilter_rec.right_value := l_ccd_pk.right_value;
655       END IF;
656       IF (x_counterfilter_rec.logical_operator = TAPI_DEV_KIT.G_MISS_CHAR)
657       THEN
658         x_counterfilter_rec.logical_operator := l_ccd_pk.logical_operator;
659       END IF;
660       IF (x_counterfilter_rec.last_update_date = TAPI_DEV_KIT.G_MISS_DATE)
661       THEN
662         x_counterfilter_rec.last_update_date := l_ccd_pk.last_update_date;
663       END IF;
664       IF (x_counterfilter_rec.last_updated_by = TAPI_DEV_KIT.G_MISS_NUM)
665       THEN
666         x_counterfilter_rec.last_updated_by := l_ccd_pk.last_updated_by;
667       END IF;
668       IF (x_counterfilter_rec.creation_date = TAPI_DEV_KIT.G_MISS_DATE)
669       THEN
670         x_counterfilter_rec.creation_date := l_ccd_pk.creation_date;
671       END IF;
672       IF (x_counterfilter_rec.created_by = TAPI_DEV_KIT.G_MISS_NUM)
673       THEN
674         x_counterfilter_rec.created_by := l_ccd_pk.created_by;
675       END IF;
676       IF (x_counterfilter_rec.last_update_login = TAPI_DEV_KIT.G_MISS_NUM)
677       THEN
678         x_counterfilter_rec.last_update_login := l_ccd_pk.last_update_login;
679       END IF;
680       IF (x_counterfilter_rec.attribute1 = TAPI_DEV_KIT.G_MISS_CHAR)
681       THEN
682         x_counterfilter_rec.attribute1 := l_ccd_pk.attribute1;
683       END IF;
684       IF (x_counterfilter_rec.attribute2 = TAPI_DEV_KIT.G_MISS_CHAR)
685       THEN
689       THEN
686         x_counterfilter_rec.attribute2 := l_ccd_pk.attribute2;
687       END IF;
688       IF (x_counterfilter_rec.attribute3 = TAPI_DEV_KIT.G_MISS_CHAR)
690         x_counterfilter_rec.attribute3 := l_ccd_pk.attribute3;
691       END IF;
692       IF (x_counterfilter_rec.attribute4 = TAPI_DEV_KIT.G_MISS_CHAR)
693       THEN
694         x_counterfilter_rec.attribute4 := l_ccd_pk.attribute4;
695       END IF;
696       IF (x_counterfilter_rec.attribute5 = TAPI_DEV_KIT.G_MISS_CHAR)
697       THEN
698         x_counterfilter_rec.attribute5 := l_ccd_pk.attribute5;
699       END IF;
700       IF (x_counterfilter_rec.attribute6 = TAPI_DEV_KIT.G_MISS_CHAR)
701       THEN
702         x_counterfilter_rec.attribute6 := l_ccd_pk.attribute6;
703       END IF;
704       IF (x_counterfilter_rec.attribute7 = TAPI_DEV_KIT.G_MISS_CHAR)
705       THEN
706         x_counterfilter_rec.attribute7 := l_ccd_pk.attribute7;
707       END IF;
708       IF (x_counterfilter_rec.attribute8 = TAPI_DEV_KIT.G_MISS_CHAR)
709       THEN
710         x_counterfilter_rec.attribute8 := l_ccd_pk.attribute8;
711       END IF;
712       IF (x_counterfilter_rec.attribute9 = TAPI_DEV_KIT.G_MISS_CHAR)
713       THEN
714         x_counterfilter_rec.attribute9 := l_ccd_pk.attribute9;
715       END IF;
716       IF (x_counterfilter_rec.attribute10 = TAPI_DEV_KIT.G_MISS_CHAR)
717       THEN
718         x_counterfilter_rec.attribute10 := l_ccd_pk.attribute10;
719       END IF;
720       IF (x_counterfilter_rec.attribute11 = TAPI_DEV_KIT.G_MISS_CHAR)
721       THEN
722         x_counterfilter_rec.attribute11 := l_ccd_pk.attribute11;
723       END IF;
724       IF (x_counterfilter_rec.attribute12 = TAPI_DEV_KIT.G_MISS_CHAR)
725       THEN
726         x_counterfilter_rec.attribute12 := l_ccd_pk.attribute12;
727       END IF;
728       IF (x_counterfilter_rec.attribute13 = TAPI_DEV_KIT.G_MISS_CHAR)
729       THEN
730         x_counterfilter_rec.attribute13 := l_ccd_pk.attribute13;
731       END IF;
732       IF (x_counterfilter_rec.attribute14 = TAPI_DEV_KIT.G_MISS_CHAR)
733       THEN
734         x_counterfilter_rec.attribute14 := l_ccd_pk.attribute14;
735       END IF;
736       IF (x_counterfilter_rec.attribute15 = TAPI_DEV_KIT.G_MISS_CHAR)
737       THEN
738         x_counterfilter_rec.attribute15 := l_ccd_pk.attribute15;
739       END IF;
740       IF (x_counterfilter_rec.context = TAPI_DEV_KIT.G_MISS_CHAR)
741       THEN
742         x_counterfilter_rec.context := l_ccd_pk.context;
743       END IF;
744       IF (x_counterfilter_rec.object_version_number = TAPI_DEV_KIT.G_MISS_NUM)
745       THEN
746         x_counterfilter_rec.object_version_number := l_ccd_pk.object_version_number;
747       END IF;
748       RETURN(l_return_status);
749     END populate_new_record;
750   BEGIN
751     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
752                                               G_PKG_NAME,
753                                               l_api_version,
754                                               p_api_version,
755                                               p_init_msg_list,
756                                               '_Pvt',
757                                               x_return_status);
758     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
759       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
760     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
761       RAISE FND_API.G_EXC_ERROR;
762     END IF;
763     migrate(p_counterfilter_val_rec, l_counterfilter_rec);
764     --- Defaulting item attributes
765     l_return_status := Default_Item_Attributes
766     (
767       l_counterfilter_rec,    ---- IN
768       l_def_counterfilter_rec
769     );
770     --- If any errors happen abort API
771     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
772       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
773     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
774       RAISE FND_API.G_EXC_ERROR;
775     END IF;
776     l_return_status := populate_new_record(l_def_counterfilter_rec, l_def_counterfilter_rec);
777     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
778       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
779     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
780       RAISE FND_API.G_EXC_ERROR;
781     END IF;
782     --- Validate all non-missing attributes (Item Level Validation)
783     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
784       l_return_status := Validate_Item_Attributes
785       (
786         l_def_counterfilter_rec    ---- IN
787       );
788       --- If any errors happen abort API
789       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
790         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
791       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
792         RAISE FND_API.G_EXC_ERROR;
793       END IF;
794     END IF;
795     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
796       l_return_status := Validate_Item_Record(l_def_counterfilter_rec);
797       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
798         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
799       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
800         RAISE FND_API.G_EXC_ERROR;
801       END IF;
802     END IF;
803     UPDATE  CS_COUNTER_DER_FILTERS
804     SET
805         COUNTER_DER_FILTER_ID = l_def_counterfilter_rec.counter_der_filter_id ,
809         COUNTER_PROPERTY_ID = l_def_counterfilter_rec.counter_property_id ,
806         COUNTER_ID = l_def_counterfilter_rec.counter_id ,
807         SEQ_NO = l_def_counterfilter_rec.seq_no ,
808         LEFT_PAREN = l_def_counterfilter_rec.left_paren ,
810         RELATIONAL_OPERATOR = l_def_counterfilter_rec.relational_operator ,
811         RIGHT_PAREN = l_def_counterfilter_rec.right_paren ,
812         RIGHT_VALUE = l_def_counterfilter_rec.right_value ,
813         LOGICAL_OPERATOR = l_def_counterfilter_rec.logical_operator ,
814         LAST_UPDATE_DATE = l_def_counterfilter_rec.last_update_date ,
815         LAST_UPDATED_BY = l_def_counterfilter_rec.last_updated_by ,
816         CREATION_DATE = l_def_counterfilter_rec.creation_date ,
817         CREATED_BY = l_def_counterfilter_rec.created_by ,
818         LAST_UPDATE_LOGIN = l_def_counterfilter_rec.last_update_login ,
819         ATTRIBUTE1 = l_def_counterfilter_rec.attribute1 ,
820         ATTRIBUTE2 = l_def_counterfilter_rec.attribute2 ,
821         ATTRIBUTE3 = l_def_counterfilter_rec.attribute3 ,
822         ATTRIBUTE4 = l_def_counterfilter_rec.attribute4 ,
823         ATTRIBUTE5 = l_def_counterfilter_rec.attribute5 ,
824         ATTRIBUTE6 = l_def_counterfilter_rec.attribute6 ,
825         ATTRIBUTE7 = l_def_counterfilter_rec.attribute7 ,
826         ATTRIBUTE8 = l_def_counterfilter_rec.attribute8 ,
827         ATTRIBUTE9 = l_def_counterfilter_rec.attribute9 ,
828         ATTRIBUTE10 = l_def_counterfilter_rec.attribute10 ,
829         ATTRIBUTE11 = l_def_counterfilter_rec.attribute11 ,
830         ATTRIBUTE12 = l_def_counterfilter_rec.attribute12 ,
831         ATTRIBUTE13 = l_def_counterfilter_rec.attribute13 ,
832         ATTRIBUTE14 = l_def_counterfilter_rec.attribute14 ,
833         ATTRIBUTE15 = l_def_counterfilter_rec.attribute15 ,
834         CONTEXT = l_def_counterfilter_rec.context ,
835         OBJECT_VERSION_NUMBER = l_def_counterfilter_rec.object_version_number
836         WHERE
837           COUNTER_DER_FILTER_ID = l_def_counterfilter_rec.counter_der_filter_id
838           ;
839     x_object_version_number := l_def_counterfilter_rec.OBJECT_VERSION_NUMBER;
840     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
841   EXCEPTION
842     WHEN FND_API.G_EXC_ERROR THEN
843       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
844       (
845         l_api_name,
846         G_PKG_NAME,
847         'FND_API.G_RET_STS_ERROR',
848         x_msg_count,
849         x_msg_data,
850         '_Pvt'
851       );
852     APP_EXCEPTION.RAISE_EXCEPTION;
853     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
854       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
855       (
856         l_api_name,
857         G_PKG_NAME,
858         'FND_API.G_RET_STS_UNEXP_ERROR',
859         x_msg_count,
860         x_msg_data,
861         '_Pvt'
862       );
863     APP_EXCEPTION.RAISE_EXCEPTION;
864     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
865       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
866       (
867         l_api_name,
868         G_PKG_NAME,
869         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
870         x_msg_count,
871         x_msg_data,
872         '_Pvt'
873       );
874     APP_EXCEPTION.RAISE_EXCEPTION;
875   END update_row;
876   Procedure update_row
877   (
878     p_api_version                  IN NUMBER,
879     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
880     p_validation_level             IN NUMBER,
881     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
882     x_return_status                OUT NOCOPY VARCHAR2,
883     x_msg_count                    OUT NOCOPY NUMBER,
884     x_msg_data                     OUT NOCOPY VARCHAR2,
885     p_counter_der_filter_id        IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
886     p_counter_id                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
887     p_seq_no                       IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
888     p_left_paren                   IN CS_COUNTER_DER_FILTERS.LEFT_PAREN%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
889     p_counter_property_id          IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
890     p_relational_operator          IN CS_COUNTER_DER_FILTERS.RELATIONAL_OPERATOR%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
891     p_right_paren                  IN CS_COUNTER_DER_FILTERS.RIGHT_PAREN%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
892     p_right_value                  IN CS_COUNTER_DER_FILTERS.RIGHT_VALUE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
893     p_logical_operator             IN CS_COUNTER_DER_FILTERS.LOGICAL_OPERATOR%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
894     p_last_update_date             IN CS_COUNTER_DER_FILTERS.LAST_UPDATE_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
895     p_last_updated_by              IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
896     p_creation_date                IN CS_COUNTER_DER_FILTERS.CREATION_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
897     p_created_by                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
898     p_last_update_login            IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
899     p_attribute1                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE1%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
900     p_attribute2                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE2%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
901     p_attribute3                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE3%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
902     p_attribute4                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE4%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
903     p_attribute5                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE5%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
907     p_attribute9                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE9%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
904     p_attribute6                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE6%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
905     p_attribute7                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE7%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
906     p_attribute8                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE8%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
908     p_attribute10                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE10%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
909     p_attribute11                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE11%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
910     p_attribute12                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE12%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
911     p_attribute13                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE13%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
912     p_attribute14                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE14%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
913     p_attribute15                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE15%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
914     p_context                      IN CS_COUNTER_DER_FILTERS.CONTEXT%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
915     p_object_version_number        IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
916     x_object_version_number        OUT NOCOPY NUMBER) IS
917     l_api_name                     CONSTANT VARCHAR2(30) := 'update_row';
918     l_api_version                  CONSTANT NUMBER := 1;
919     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
920     l_counterfilter_rec            CounterFilter_Val_Rec_Type;
921   BEGIN
922     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
923                                               G_PKG_NAME,
924                                               l_api_version,
925                                               p_api_version,
926                                               p_init_msg_list,
927                                               '_Pvt',
928                                               x_return_status);
929     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
930       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
931     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
932       RAISE FND_API.G_EXC_ERROR;
933     END IF;
934     l_counterfilter_rec.COUNTER_DER_FILTER_ID := p_counter_der_filter_id;
935     l_counterfilter_rec.COUNTER_ID := p_counter_id;
936     l_counterfilter_rec.SEQ_NO := p_seq_no;
937     l_counterfilter_rec.LEFT_PAREN := p_left_paren;
938     l_counterfilter_rec.COUNTER_PROPERTY_ID := p_counter_property_id;
939     l_counterfilter_rec.RELATIONAL_OPERATOR := p_relational_operator;
940     l_counterfilter_rec.RIGHT_PAREN := p_right_paren;
941     l_counterfilter_rec.RIGHT_VALUE := p_right_value;
942     l_counterfilter_rec.LOGICAL_OPERATOR := p_logical_operator;
943     l_counterfilter_rec.LAST_UPDATE_DATE := p_last_update_date;
944     l_counterfilter_rec.LAST_UPDATED_BY := p_last_updated_by;
945     l_counterfilter_rec.CREATION_DATE := p_creation_date;
946     l_counterfilter_rec.CREATED_BY := p_created_by;
947     l_counterfilter_rec.LAST_UPDATE_LOGIN := p_last_update_login;
948     l_counterfilter_rec.ATTRIBUTE1 := p_attribute1;
949     l_counterfilter_rec.ATTRIBUTE2 := p_attribute2;
950     l_counterfilter_rec.ATTRIBUTE3 := p_attribute3;
951     l_counterfilter_rec.ATTRIBUTE4 := p_attribute4;
952     l_counterfilter_rec.ATTRIBUTE5 := p_attribute5;
953     l_counterfilter_rec.ATTRIBUTE6 := p_attribute6;
954     l_counterfilter_rec.ATTRIBUTE7 := p_attribute7;
955     l_counterfilter_rec.ATTRIBUTE8 := p_attribute8;
956     l_counterfilter_rec.ATTRIBUTE9 := p_attribute9;
957     l_counterfilter_rec.ATTRIBUTE10 := p_attribute10;
958     l_counterfilter_rec.ATTRIBUTE11 := p_attribute11;
959     l_counterfilter_rec.ATTRIBUTE12 := p_attribute12;
960     l_counterfilter_rec.ATTRIBUTE13 := p_attribute13;
961     l_counterfilter_rec.ATTRIBUTE14 := p_attribute14;
962     l_counterfilter_rec.ATTRIBUTE15 := p_attribute15;
963     l_counterfilter_rec.CONTEXT := p_context;
964     l_counterfilter_rec.OBJECT_VERSION_NUMBER := p_object_version_number;
965     update_row(
966       p_api_version,
967       FND_API.G_TRUE ,
968       p_validation_level,
969       FND_API.G_TRUE ,
970       x_return_status,
971       x_msg_count,
972       x_msg_data,
973       l_counterfilter_rec,
974       x_object_version_number
975     );
976     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
977   EXCEPTION
978     WHEN FND_API.G_EXC_ERROR THEN
979       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
980       (
981         l_api_name,
982         G_PKG_NAME,
983         'FND_API.G_RET_STS_ERROR',
984         x_msg_count,
985         x_msg_data,
986         '_Pvt'
987       );
988     APP_EXCEPTION.RAISE_EXCEPTION;
989     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
990       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
991       (
992         l_api_name,
993         G_PKG_NAME,
994         'FND_API.G_RET_STS_UNEXP_ERROR',
995         x_msg_count,
996         x_msg_data,
997         '_Pvt'
998       );
999     APP_EXCEPTION.RAISE_EXCEPTION;
1000     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1001       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1002       (
1003         l_api_name,
1004         G_PKG_NAME,
1005         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1006         x_msg_count,
1007         x_msg_data,
1008         '_Pvt'
1009       );
1010     APP_EXCEPTION.RAISE_EXCEPTION;
1011   END update_row;
1012   Procedure delete_row
1016     p_validation_level             IN NUMBER,
1013   (
1014     p_api_version                  IN NUMBER,
1015     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1017     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1018     x_return_status                OUT NOCOPY VARCHAR2,
1019     x_msg_count                    OUT NOCOPY NUMBER,
1020     x_msg_data                     OUT NOCOPY VARCHAR2,
1021     p_counter_der_filter_id        IN NUMBER
1022     ) IS
1023     l_api_name                     CONSTANT VARCHAR2(30) := 'delete_row';
1024     l_api_version                  CONSTANT NUMBER := 1;
1025     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1026   BEGIN
1027     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
1028                                               G_PKG_NAME,
1029                                               l_api_version,
1030                                               p_api_version,
1031                                               p_init_msg_list,
1032                                               '_Pvt',
1033                                               x_return_status);
1034     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1035       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1036     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1037       RAISE FND_API.G_EXC_ERROR;
1038     END IF;
1039     DELETE  FROM CS_COUNTER_DER_FILTERS
1040     WHERE
1041       COUNTER_DER_FILTER_ID = p_counter_der_filter_id
1042       ;
1043     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
1044   EXCEPTION
1045     WHEN FND_API.G_EXC_ERROR THEN
1046       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1047       (
1048         l_api_name,
1049         G_PKG_NAME,
1050         'FND_API.G_RET_STS_ERROR',
1051         x_msg_count,
1052         x_msg_data,
1053         '_Pvt'
1054       );
1055     APP_EXCEPTION.RAISE_EXCEPTION;
1056     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1057       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1058       (
1059         l_api_name,
1060         G_PKG_NAME,
1061         'FND_API.G_RET_STS_UNEXP_ERROR',
1062         x_msg_count,
1063         x_msg_data,
1064         '_Pvt'
1065       );
1066     APP_EXCEPTION.RAISE_EXCEPTION;
1067     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1068       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1069       (
1070         l_api_name,
1071         G_PKG_NAME,
1072         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1073         x_msg_count,
1074         x_msg_data,
1075         '_Pvt'
1076       );
1077     APP_EXCEPTION.RAISE_EXCEPTION;
1078   END delete_row;
1079   PROCEDURE validate_row
1080   (
1081     p_api_version                  IN NUMBER,
1082     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1083     p_validation_level             IN NUMBER,
1084     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1085     x_return_status                OUT NOCOPY VARCHAR2,
1086     x_msg_count                    OUT NOCOPY NUMBER,
1087     x_msg_data                     OUT NOCOPY VARCHAR2,
1088     p_counterfilter_val_rec        IN CounterFilter_Val_Rec_Type := G_MISS_COUNTERFILTER_VAL_REC) IS
1089     l_api_name                     CONSTANT VARCHAR2(30) := 'validate_row';
1090     l_api_version                  CONSTANT NUMBER := 1;
1091     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1092     l_counterfilter_rec            CounterFilter_Rec_Type;
1093     l_def_counterfilter_rec        CounterFilter_Rec_Type;
1094   BEGIN
1095     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
1096                                               G_PKG_NAME,
1097                                               l_api_version,
1098                                               p_api_version,
1099                                               p_init_msg_list,
1100                                               '_Pvt',
1101                                               x_return_status);
1102     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1103       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1104     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1105       RAISE FND_API.G_EXC_ERROR;
1106     END IF;
1107     migrate(p_counterfilter_val_rec, l_counterfilter_rec);
1108     --- Validate all non-missing attributes (Item Level Validation)
1109     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
1110       l_return_status := Validate_Item_Attributes
1111       (
1112         l_counterfilter_rec    ---- IN
1113       );
1114       --- If any errors happen abort API
1115       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1116         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1117       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1118         RAISE FND_API.G_EXC_ERROR;
1119       END IF;
1120     END IF;
1121     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
1122       l_return_status := Validate_Item_Record(l_def_counterfilter_rec);
1123       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1124         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1125       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1126         RAISE FND_API.G_EXC_ERROR;
1127       END IF;
1128     END IF;
1129     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
1130   EXCEPTION
1131     WHEN FND_API.G_EXC_ERROR THEN
1132       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1133       (
1137         x_msg_count,
1134         l_api_name,
1135         G_PKG_NAME,
1136         'FND_API.G_RET_STS_ERROR',
1138         x_msg_data,
1139         '_Pvt'
1140       );
1141     APP_EXCEPTION.RAISE_EXCEPTION;
1142     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1143       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1144       (
1145         l_api_name,
1146         G_PKG_NAME,
1147         'FND_API.G_RET_STS_UNEXP_ERROR',
1148         x_msg_count,
1149         x_msg_data,
1150         '_Pvt'
1151       );
1152     APP_EXCEPTION.RAISE_EXCEPTION;
1153     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1154       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1155       (
1156         l_api_name,
1157         G_PKG_NAME,
1158         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1159         x_msg_count,
1160         x_msg_data,
1161         '_Pvt'
1162       );
1163     APP_EXCEPTION.RAISE_EXCEPTION;
1164   END validate_row;
1165   PROCEDURE validate_row
1166   (
1167     p_api_version                  IN NUMBER,
1168     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1169     p_validation_level             IN NUMBER,
1170     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1171     x_return_status                OUT NOCOPY VARCHAR2,
1172     x_msg_count                    OUT NOCOPY NUMBER,
1173     x_msg_data                     OUT NOCOPY VARCHAR2,
1174     p_counter_der_filter_id        IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1175     p_counter_id                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1176     p_seq_no                       IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1177     p_left_paren                   IN CS_COUNTER_DER_FILTERS.LEFT_PAREN%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1178     p_counter_property_id          IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1179     p_relational_operator          IN CS_COUNTER_DER_FILTERS.RELATIONAL_OPERATOR%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1180     p_right_paren                  IN CS_COUNTER_DER_FILTERS.RIGHT_PAREN%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1181     p_right_value                  IN CS_COUNTER_DER_FILTERS.RIGHT_VALUE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1182     p_logical_operator             IN CS_COUNTER_DER_FILTERS.LOGICAL_OPERATOR%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1183     p_last_update_date             IN CS_COUNTER_DER_FILTERS.LAST_UPDATE_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1184     p_last_updated_by              IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1185     p_creation_date                IN CS_COUNTER_DER_FILTERS.CREATION_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
1186     p_created_by                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1187     p_last_update_login            IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1188     p_attribute1                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE1%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1189     p_attribute2                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE2%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1190     p_attribute3                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE3%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1191     p_attribute4                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE4%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1192     p_attribute5                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE5%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1193     p_attribute6                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE6%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1194     p_attribute7                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE7%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1195     p_attribute8                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE8%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1196     p_attribute9                   IN CS_COUNTER_DER_FILTERS.ATTRIBUTE9%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1197     p_attribute10                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE10%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1198     p_attribute11                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE11%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1199     p_attribute12                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE12%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1200     p_attribute13                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE13%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1201     p_attribute14                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE14%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1202     p_attribute15                  IN CS_COUNTER_DER_FILTERS.ATTRIBUTE15%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1203     p_context                      IN CS_COUNTER_DER_FILTERS.CONTEXT%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
1204     p_object_version_number        IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM) IS
1205     l_api_name                     CONSTANT VARCHAR2(30) := 'validate_row';
1206     l_api_version                  CONSTANT NUMBER := 1;
1207     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1208     l_counterfilter_rec            CounterFilter_Val_Rec_Type;
1209   BEGIN
1210     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
1211                                               G_PKG_NAME,
1212                                               l_api_version,
1213                                               p_api_version,
1214                                               p_init_msg_list,
1215                                               '_Pvt',
1216                                               x_return_status);
1217     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1218       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1219     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1220       RAISE FND_API.G_EXC_ERROR;
1221     END IF;
1222     l_counterfilter_rec.COUNTER_DER_FILTER_ID := p_counter_der_filter_id;
1223     l_counterfilter_rec.COUNTER_ID := p_counter_id;
1224     l_counterfilter_rec.SEQ_NO := p_seq_no;
1228     l_counterfilter_rec.RIGHT_PAREN := p_right_paren;
1225     l_counterfilter_rec.LEFT_PAREN := p_left_paren;
1226     l_counterfilter_rec.COUNTER_PROPERTY_ID := p_counter_property_id;
1227     l_counterfilter_rec.RELATIONAL_OPERATOR := p_relational_operator;
1229     l_counterfilter_rec.RIGHT_VALUE := p_right_value;
1230     l_counterfilter_rec.LOGICAL_OPERATOR := p_logical_operator;
1231     l_counterfilter_rec.LAST_UPDATE_DATE := p_last_update_date;
1232     l_counterfilter_rec.LAST_UPDATED_BY := p_last_updated_by;
1233     l_counterfilter_rec.CREATION_DATE := p_creation_date;
1234     l_counterfilter_rec.CREATED_BY := p_created_by;
1235     l_counterfilter_rec.LAST_UPDATE_LOGIN := p_last_update_login;
1236     l_counterfilter_rec.ATTRIBUTE1 := p_attribute1;
1237     l_counterfilter_rec.ATTRIBUTE2 := p_attribute2;
1238     l_counterfilter_rec.ATTRIBUTE3 := p_attribute3;
1239     l_counterfilter_rec.ATTRIBUTE4 := p_attribute4;
1240     l_counterfilter_rec.ATTRIBUTE5 := p_attribute5;
1241     l_counterfilter_rec.ATTRIBUTE6 := p_attribute6;
1242     l_counterfilter_rec.ATTRIBUTE7 := p_attribute7;
1243     l_counterfilter_rec.ATTRIBUTE8 := p_attribute8;
1244     l_counterfilter_rec.ATTRIBUTE9 := p_attribute9;
1245     l_counterfilter_rec.ATTRIBUTE10 := p_attribute10;
1246     l_counterfilter_rec.ATTRIBUTE11 := p_attribute11;
1247     l_counterfilter_rec.ATTRIBUTE12 := p_attribute12;
1248     l_counterfilter_rec.ATTRIBUTE13 := p_attribute13;
1249     l_counterfilter_rec.ATTRIBUTE14 := p_attribute14;
1250     l_counterfilter_rec.ATTRIBUTE15 := p_attribute15;
1251     l_counterfilter_rec.CONTEXT := p_context;
1252     l_counterfilter_rec.OBJECT_VERSION_NUMBER := p_object_version_number;
1253     validate_row(
1254       p_api_version,
1255       p_init_msg_list,
1256       p_validation_level,
1257       p_commit,
1258       x_return_status,
1259       x_msg_count,
1260       x_msg_data,
1261       l_counterfilter_rec
1262     );
1263     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
1264   EXCEPTION
1265     WHEN FND_API.G_EXC_ERROR THEN
1266       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1267       (
1268         l_api_name,
1269         G_PKG_NAME,
1270         'FND_API.G_RET_STS_ERROR',
1271         x_msg_count,
1272         x_msg_data,
1273         '_Pvt'
1274       );
1275     APP_EXCEPTION.RAISE_EXCEPTION;
1276     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1277       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1278       (
1279         l_api_name,
1280         G_PKG_NAME,
1281         'FND_API.G_RET_STS_UNEXP_ERROR',
1282         x_msg_count,
1283         x_msg_data,
1284         '_Pvt'
1285       );
1286     APP_EXCEPTION.RAISE_EXCEPTION;
1287     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1288       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1289       (
1290         l_api_name,
1291         G_PKG_NAME,
1292         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1293         x_msg_count,
1294         x_msg_data,
1295         '_Pvt'
1296       );
1297     APP_EXCEPTION.RAISE_EXCEPTION;
1298   END validate_row;
1299 END CS_COUNTERFILTER_PVT;