DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_SERVICE_PVT

Source


1 PACKAGE BODY CS_SERVICE_PVT AS
2 /* $Header: csctserb.pls 115.2 99/07/16 08:54:18 porting ship $ */
3   FUNCTION get_seq_id RETURN NUMBER IS
4     CURSOR get_seq_id_csr IS
5       SELECT CS_CP_SERVICES_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_service_rec IN  Service_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_service_rec.contract_line_status_id = TAPI_DEV_KIT.G_MISS_NUM OR
25        p_service_rec.contract_line_status_id IS NULL
26     THEN
27       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'contract_line_status_id');
28       l_return_status := FND_API.G_RET_STS_ERROR;
29     ELSIF p_service_rec.service_inventory_item_id = TAPI_DEV_KIT.G_MISS_NUM OR
30           p_service_rec.service_inventory_item_id IS NULL
31     THEN
32       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'service_inventory_item_id');
33       l_return_status := FND_API.G_RET_STS_ERROR;
34     ELSIF p_service_rec.service_manufacturing_org_id = TAPI_DEV_KIT.G_MISS_NUM OR
35           p_service_rec.service_manufacturing_org_id IS NULL
36     THEN
37       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'service_manufacturing_org_id');
38       l_return_status := FND_API.G_RET_STS_ERROR;
39     ELSIF p_service_rec.creation_date = TAPI_DEV_KIT.G_MISS_DATE OR
40           p_service_rec.creation_date IS NULL
41     THEN
42       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'creation_date');
43       l_return_status := FND_API.G_RET_STS_ERROR;
44     ELSIF p_service_rec.created_by = TAPI_DEV_KIT.G_MISS_NUM OR
45           p_service_rec.created_by IS NULL
46     THEN
47       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'created_by');
48       l_return_status := FND_API.G_RET_STS_ERROR;
49     ELSIF p_service_rec.last_update_date = TAPI_DEV_KIT.G_MISS_DATE OR
50           p_service_rec.last_update_date IS NULL
51     THEN
52       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'last_update_date');
53       l_return_status := FND_API.G_RET_STS_ERROR;
54     ELSIF p_service_rec.last_updated_by = TAPI_DEV_KIT.G_MISS_NUM OR
55           p_service_rec.last_updated_by IS NULL
56     THEN
57       TAPI_DEV_KIT.set_message(G_APP_NAME, G_REQUIRED_VALUE,G_COL_NAME_TOKEN,'last_updated_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_service_rec IN  Service_Rec_Type,
68     l_def_service_rec OUT  Service_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_service_rec := p_service_rec;
75     RETURN(l_return_status);
76   End Default_Item_attributes;
77 
78 
79   FUNCTION Validate_Item_Record (
80     p_service_rec IN Service_Rec_Type
81   )
82   RETURN VARCHAR2 IS
83     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
84     FUNCTION validate_foreign_keys (
85       p_service_rec IN Service_Rec_Type
86     )
87     RETURN VARCHAR2 IS
88       item_not_found_error          EXCEPTION;
89       CURSOR cs_contracts_statuses_pk_csr (p_contract_status_id  IN NUMBER) IS
90       SELECT *
91         FROM Cs_Contract_Statuses
92        WHERE cs_contract_statuses.contract_status_id = p_contract_status_id;
93       l_cs_contracts_statuses_pk     cs_contracts_statuses_pk_csr%ROWTYPE;
94       CURSOR cs_contract_line_tem1_csr (p_contract_line_template_id  IN NUMBER) IS
95       SELECT *
96         FROM Cs_Contract_Line_Tplts
97        WHERE cs_contract_line_tplts.contract_line_template_id = p_contract_line_template_id;
98       l_cs_contract_line_tem1        cs_contract_line_tem1_csr%ROWTYPE;
99       CURSOR ccpall_pk_csr (p_customer_product_id  IN NUMBER) IS
100       SELECT *
101         FROM Cs_Customer_Products
102        WHERE cs_customer_products.customer_product_id = p_customer_product_id;
103       l_ccpall_pk                    ccpall_pk_csr%ROWTYPE;
104       CURSOR cs_contracts_all_pk_csr (p_contract_id        IN NUMBER) IS
105       SELECT *
106         FROM Cs_Contracts_All
107        WHERE cs_contracts_all.contract_id = p_contract_id;
108       l_cs_contracts_all_pk          cs_contracts_all_pk_csr%ROWTYPE;
109       l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
110       l_row_notfound                 BOOLEAN := TRUE;
111     BEGIN
112       IF (p_service_rec.CONTRACT_LINE_STATUS_ID IS NOT NULL)
113       THEN
114         OPEN cs_contracts_statuses_pk_csr(p_service_rec.CONTRACT_LINE_STATUS_ID);
115         FETCH cs_contracts_statuses_pk_csr INTO l_cs_contracts_statuses_pk;
116         l_row_notfound := cs_contracts_statuses_pk_csr%NOTFOUND;
117         CLOSE cs_contracts_statuses_pk_csr;
118         IF (l_row_notfound) THEN
119           TAPI_DEV_KIT.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'CONTRACT_LINE_STATUS_ID');
120           RAISE item_not_found_error;
121         END IF;
122       END IF;
123       IF (p_service_rec.CONTRACT_LINE_TEMPLATE_ID IS NOT NULL)
124       THEN
125         OPEN cs_contract_line_tem1_csr(p_service_rec.CONTRACT_LINE_TEMPLATE_ID);
126         FETCH cs_contract_line_tem1_csr INTO l_cs_contract_line_tem1;
127         l_row_notfound := cs_contract_line_tem1_csr%NOTFOUND;
128         CLOSE cs_contract_line_tem1_csr;
129         IF (l_row_notfound) THEN
130           TAPI_DEV_KIT.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'CONTRACT_LINE_TEMPLATE_ID');
131           RAISE item_not_found_error;
132         END IF;
133       END IF;
134       IF (p_service_rec.CUSTOMER_PRODUCT_ID IS NOT NULL)
135       THEN
136         OPEN ccpall_pk_csr(p_service_rec.CUSTOMER_PRODUCT_ID);
137         FETCH ccpall_pk_csr INTO l_ccpall_pk;
138         l_row_notfound := ccpall_pk_csr%NOTFOUND;
139         CLOSE ccpall_pk_csr;
140         IF (l_row_notfound) THEN
141           TAPI_DEV_KIT.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'CUSTOMER_PRODUCT_ID');
142           RAISE item_not_found_error;
143         END IF;
144       END IF;
145       IF (p_service_rec.CONTRACT_ID IS NOT NULL)
146       THEN
147         OPEN cs_contracts_all_pk_csr(p_service_rec.CONTRACT_ID);
148         FETCH cs_contracts_all_pk_csr INTO l_cs_contracts_all_pk;
149         l_row_notfound := cs_contracts_all_pk_csr%NOTFOUND;
150         CLOSE cs_contracts_all_pk_csr;
151         IF (l_row_notfound) THEN
152           TAPI_DEV_KIT.set_message(G_APP_NAME, G_INVALID_VALUE,G_COL_NAME_TOKEN,'CONTRACT_ID');
153           RAISE item_not_found_error;
154         END IF;
155       END IF;
156       RETURN (l_return_status);
157     EXCEPTION
158       WHEN item_not_found_error THEN
159         l_return_status := FND_API.G_RET_STS_ERROR;
160         RETURN (l_return_status);
161     END validate_foreign_keys;
162   BEGIN
163     l_return_status := validate_foreign_keys (p_service_rec);
164     RETURN (l_return_status);
165   END Validate_Item_Record;
166 
167 
168   PROCEDURE migrate (
169     p_from	IN Service_Val_Rec_Type,
170     p_to	OUT Service_Rec_Type
171   ) IS
172   BEGIN
173     p_to.cp_service_id := p_from.cp_service_id;
174     p_to.customer_product_id := p_from.customer_product_id;
175     p_to.contract_line_status_id := p_from.contract_line_status_id;
176     p_to.contract_line_template_id := p_from.contract_line_template_id;
177     p_to.contract_id := p_from.contract_id;
178     p_to.service_inventory_item_id := p_from.service_inventory_item_id;
179     p_to.service_manufacturing_org_id := p_from.service_manufacturing_org_id;
180     p_to.status_code := p_from.status_code;
181     p_to.last_cp_service_transaction_id := p_from.last_cp_service_transaction_id;
182     p_to.invoice_flag := p_from.invoice_flag;
183     p_to.coverage_schedule_id := p_from.coverage_schedule_id;
184     p_to.prorate_flag := p_from.prorate_flag;
185     p_to.duration_quantity := p_from.duration_quantity;
186     p_to.unit_of_measure_code := p_from.unit_of_measure_code;
187     p_to.starting_delay := p_from.starting_delay;
188     p_to.bill_to_site_use_id := p_from.bill_to_site_use_id;
189     p_to.bill_to_contact_id := p_from.bill_to_contact_id;
190     p_to.service_txn_availability_code := p_from.service_txn_availability_code;
191     p_to.next_pm_visit_date := p_from.next_pm_visit_date;
192     p_to.pm_visits_completed := p_from.pm_visits_completed;
193     p_to.last_pm_visit_date := p_from.last_pm_visit_date;
194     p_to.pm_schedule_id := p_from.pm_schedule_id;
195     p_to.pm_schedule_flag := p_from.pm_schedule_flag;
196     p_to.current_max_schedule_date := p_from.current_max_schedule_date;
197     p_to.price_list_id := p_from.price_list_id;
198     p_to.service_order_type := p_from.service_order_type;
199     p_to.invoice_count := p_from.invoice_count;
200     p_to.currency_code := p_from.currency_code;
201     p_to.conversion_type := p_from.conversion_type;
202     p_to.conversion_rate := p_from.conversion_rate;
203     p_to.conversion_date := p_from.conversion_date;
204     p_to.original_service_line_id := p_from.original_service_line_id;
205     p_to.warranty_flag := p_from.warranty_flag;
206     p_to.original_start_date := p_from.original_start_date;
207     p_to.original_end_date := p_from.original_end_date;
208     p_to.service_date_change := p_from.service_date_change;
209     p_to.workflow := p_from.workflow;
210     p_to.ship_to_site_use_id := p_from.ship_to_site_use_id;
211     p_to.original_system_line_reference := p_from.original_system_line_reference;
212     p_to.extended_price := p_from.extended_price;
213     p_to.discount_id := p_from.discount_id;
214     p_to.tax_code := p_from.tax_code;
215     p_to.billing_frequency_period := p_from.billing_frequency_period;
216     p_to.first_bill_date := p_from.first_bill_date;
217     p_to.next_bill_date := p_from.next_bill_date;
218     p_to.creation_date := p_from.creation_date;
219     p_to.bill_on := p_from.bill_on;
220     p_to.created_by := p_from.created_by;
221     p_to.last_update_date := p_from.last_update_date;
222     p_to.last_updated_by := p_from.last_updated_by;
223     p_to.last_update_login := p_from.last_update_login;
224     p_to.start_date_active := p_from.start_date_active;
225     p_to.end_date_active := p_from.end_date_active;
226     p_to.pricing_attribute1 := p_from.pricing_attribute1;
227     p_to.pricing_attribute2 := p_from.pricing_attribute2;
228     p_to.pricing_attribute3 := p_from.pricing_attribute3;
229     p_to.pricing_attribute4 := p_from.pricing_attribute4;
230     p_to.pricing_attribute5 := p_from.pricing_attribute5;
231     p_to.pricing_attribute6 := p_from.pricing_attribute6;
232     p_to.pricing_attribute7 := p_from.pricing_attribute7;
233     p_to.pricing_attribute8 := p_from.pricing_attribute8;
234     p_to.pricing_attribute9 := p_from.pricing_attribute9;
235     p_to.pricing_attribute10 := p_from.pricing_attribute10;
236     p_to.pricing_attribute11 := p_from.pricing_attribute11;
237     p_to.pricing_attribute12 := p_from.pricing_attribute12;
238     p_to.pricing_attribute13 := p_from.pricing_attribute13;
239     p_to.pricing_attribute14 := p_from.pricing_attribute14;
240     p_to.pricing_attribute15 := p_from.pricing_attribute15;
241     p_to.pricing_context := p_from.pricing_context;
242     p_to.attribute1 := p_from.attribute1;
243     p_to.attribute2 := p_from.attribute2;
244     p_to.attribute3 := p_from.attribute3;
245     p_to.attribute4 := p_from.attribute4;
246     p_to.attribute5 := p_from.attribute5;
247     p_to.attribute6 := p_from.attribute6;
248     p_to.attribute7 := p_from.attribute7;
249     p_to.attribute8 := p_from.attribute8;
250     p_to.attribute9 := p_from.attribute9;
251     p_to.attribute10 := p_from.attribute10;
252     p_to.attribute11 := p_from.attribute11;
253     p_to.attribute12 := p_from.attribute12;
254     p_to.attribute13 := p_from.attribute13;
255     p_to.attribute14 := p_from.attribute14;
256     p_to.attribute15 := p_from.attribute15;
257     p_to.context := p_from.context;
258     p_to.list_price := p_from.list_price;
259     p_to.org_id := p_from.org_id;
260     p_to.price_percent := p_from.price_percent;
261   END migrate;
262   PROCEDURE migrate (
263     p_from	IN Service_Rec_Type,
264     p_to	OUT Service_Val_Rec_Type
265   ) IS
266   BEGIN
267     p_to.cp_service_id := p_from.cp_service_id;
268     p_to.customer_product_id := p_from.customer_product_id;
269     p_to.contract_line_status_id := p_from.contract_line_status_id;
270     p_to.contract_line_template_id := p_from.contract_line_template_id;
271     p_to.contract_id := p_from.contract_id;
272     p_to.service_inventory_item_id := p_from.service_inventory_item_id;
273     p_to.service_manufacturing_org_id := p_from.service_manufacturing_org_id;
274     p_to.status_code := p_from.status_code;
275     p_to.last_cp_service_transaction_id := p_from.last_cp_service_transaction_id;
276     p_to.invoice_flag := p_from.invoice_flag;
277     p_to.coverage_schedule_id := p_from.coverage_schedule_id;
278     p_to.prorate_flag := p_from.prorate_flag;
279     p_to.duration_quantity := p_from.duration_quantity;
280     p_to.unit_of_measure_code := p_from.unit_of_measure_code;
281     p_to.starting_delay := p_from.starting_delay;
282     p_to.bill_to_site_use_id := p_from.bill_to_site_use_id;
283     p_to.bill_to_contact_id := p_from.bill_to_contact_id;
284     p_to.service_txn_availability_code := p_from.service_txn_availability_code;
285     p_to.next_pm_visit_date := p_from.next_pm_visit_date;
286     p_to.pm_visits_completed := p_from.pm_visits_completed;
287     p_to.last_pm_visit_date := p_from.last_pm_visit_date;
288     p_to.pm_schedule_id := p_from.pm_schedule_id;
289     p_to.pm_schedule_flag := p_from.pm_schedule_flag;
290     p_to.current_max_schedule_date := p_from.current_max_schedule_date;
291     p_to.price_list_id := p_from.price_list_id;
292     p_to.service_order_type := p_from.service_order_type;
293     p_to.invoice_count := p_from.invoice_count;
294     p_to.currency_code := p_from.currency_code;
295     p_to.conversion_type := p_from.conversion_type;
296     p_to.conversion_rate := p_from.conversion_rate;
297     p_to.conversion_date := p_from.conversion_date;
298     p_to.original_service_line_id := p_from.original_service_line_id;
299     p_to.warranty_flag := p_from.warranty_flag;
300     p_to.original_start_date := p_from.original_start_date;
301     p_to.original_end_date := p_from.original_end_date;
302     p_to.service_date_change := p_from.service_date_change;
303     p_to.workflow := p_from.workflow;
304     p_to.ship_to_site_use_id := p_from.ship_to_site_use_id;
305     p_to.original_system_line_reference := p_from.original_system_line_reference;
306     p_to.extended_price := p_from.extended_price;
307     p_to.discount_id := p_from.discount_id;
308     p_to.tax_code := p_from.tax_code;
309     p_to.billing_frequency_period := p_from.billing_frequency_period;
310     p_to.first_bill_date := p_from.first_bill_date;
311     p_to.next_bill_date := p_from.next_bill_date;
312     p_to.creation_date := p_from.creation_date;
313     p_to.bill_on := p_from.bill_on;
314     p_to.created_by := p_from.created_by;
315     p_to.last_update_date := p_from.last_update_date;
316     p_to.last_updated_by := p_from.last_updated_by;
317     p_to.last_update_login := p_from.last_update_login;
318     p_to.start_date_active := p_from.start_date_active;
319     p_to.end_date_active := p_from.end_date_active;
320     p_to.pricing_attribute1 := p_from.pricing_attribute1;
321     p_to.pricing_attribute2 := p_from.pricing_attribute2;
322     p_to.pricing_attribute3 := p_from.pricing_attribute3;
323     p_to.pricing_attribute4 := p_from.pricing_attribute4;
324     p_to.pricing_attribute5 := p_from.pricing_attribute5;
325     p_to.pricing_attribute6 := p_from.pricing_attribute6;
326     p_to.pricing_attribute7 := p_from.pricing_attribute7;
327     p_to.pricing_attribute8 := p_from.pricing_attribute8;
328     p_to.pricing_attribute9 := p_from.pricing_attribute9;
329     p_to.pricing_attribute10 := p_from.pricing_attribute10;
330     p_to.pricing_attribute11 := p_from.pricing_attribute11;
331     p_to.pricing_attribute12 := p_from.pricing_attribute12;
332     p_to.pricing_attribute13 := p_from.pricing_attribute13;
333     p_to.pricing_attribute14 := p_from.pricing_attribute14;
334     p_to.pricing_attribute15 := p_from.pricing_attribute15;
335     p_to.pricing_context := p_from.pricing_context;
336     p_to.attribute1 := p_from.attribute1;
337     p_to.attribute2 := p_from.attribute2;
338     p_to.attribute3 := p_from.attribute3;
339     p_to.attribute4 := p_from.attribute4;
340     p_to.attribute5 := p_from.attribute5;
341     p_to.attribute6 := p_from.attribute6;
342     p_to.attribute7 := p_from.attribute7;
343     p_to.attribute8 := p_from.attribute8;
344     p_to.attribute9 := p_from.attribute9;
345     p_to.attribute10 := p_from.attribute10;
346     p_to.attribute11 := p_from.attribute11;
347     p_to.attribute12 := p_from.attribute12;
348     p_to.attribute13 := p_from.attribute13;
349     p_to.attribute14 := p_from.attribute14;
350     p_to.attribute15 := p_from.attribute15;
351     p_to.context := p_from.context;
352     p_to.list_price := p_from.list_price;
353     p_to.org_id := p_from.org_id;
354     p_to.price_percent := p_from.price_percent;
355   END migrate;
356   PROCEDURE insert_row
357   (
358     p_api_version                  IN NUMBER,
359     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
360     p_validation_level             IN NUMBER,
361     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
362     x_return_status                OUT VARCHAR2,
363     x_msg_count                    OUT NUMBER,
364     x_msg_data                     OUT VARCHAR2,
365     p_service_rec                  IN Service_Rec_Type := G_MISS_SERVICE_REC,
366     x_cp_service_id                OUT NUMBER) IS
367     l_api_name                     CONSTANT VARCHAR2(30) := 'insert_row';
368     l_api_version                  CONSTANT NUMBER := 1;
369     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
370     l_service_rec                  Service_Rec_Type;
371     l_def_service_rec              Service_Rec_Type;
372   BEGIN
373     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
374                                               G_PKG_NAME,
375                                               l_api_version,
376                                               p_api_version,
377                                               p_init_msg_list,
378                                               '_Pvt',
379                                               x_return_status);
380     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
381       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
382     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
383       RAISE FND_API.G_EXC_ERROR;
384     END IF;
385     l_service_rec := p_service_rec;
386     --- Validate all non-missing attributes (Item Level Validation)
387     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
388       l_return_status := Validate_Item_Attributes
389       (
390         l_service_rec    ---- IN
391       );
392       --- If any errors happen abort API
393       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
394         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
395       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
396         RAISE FND_API.G_EXC_ERROR;
397       END IF;
398     END IF;
399     --- Defaulting item attributes
400     l_return_status := Default_Item_Attributes
401     (
402       l_service_rec,    ---- IN
403       l_def_service_rec
404     );
405     --- If any errors happen abort API
406     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
407       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
408     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
409       RAISE FND_API.G_EXC_ERROR;
410     END IF;
411     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
412       l_return_status := Validate_Item_Record(l_def_service_rec);
413       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
414         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
415       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
416         RAISE FND_API.G_EXC_ERROR;
417       END IF;
418     END IF;
419     -- Set primary key value
420     l_def_service_rec.cp_service_id := get_seq_id;
421     INSERT INTO CS_CP_SERVICES(
422         cp_service_id,
423         customer_product_id,
424         contract_line_status_id,
425         contract_line_template_id,
426         contract_id,
427         service_inventory_item_id,
428         service_manufacturing_org_id,
429         status_code,
430         last_cp_service_transaction_id,
431         invoice_flag,
432         coverage_schedule_id,
433         prorate_flag,
434         duration_quantity,
435         unit_of_measure_code,
436         starting_delay,
437         bill_to_site_use_id,
438         bill_to_contact_id,
439         service_txn_availability_code,
440         next_pm_visit_date,
441         pm_visits_completed,
442         last_pm_visit_date,
443         pm_schedule_id,
444         pm_schedule_flag,
445         current_max_schedule_date,
446         price_list_id,
447         service_order_type,
448         invoice_count,
449         currency_code,
450         conversion_type,
451         conversion_rate,
452         conversion_date,
453         original_service_line_id,
454         warranty_flag,
455         original_start_date,
456         original_end_date,
457         service_date_change,
458         workflow,
459         ship_to_site_use_id,
460         original_system_line_reference,
461         extended_price,
462         discount_id,
463         tax_code,
464         billing_frequency_period,
465         first_bill_date,
466         next_bill_date,
467         creation_date,
468         bill_on,
469         created_by,
470         last_update_date,
471         last_updated_by,
472         last_update_login,
473         start_date_active,
474         end_date_active,
475         pricing_attribute1,
476         pricing_attribute2,
477         pricing_attribute3,
478         pricing_attribute4,
479         pricing_attribute5,
480         pricing_attribute6,
481         pricing_attribute7,
482         pricing_attribute8,
483         pricing_attribute9,
484         pricing_attribute10,
485         pricing_attribute11,
486         pricing_attribute12,
487         pricing_attribute13,
488         pricing_attribute14,
489         pricing_attribute15,
490         pricing_context,
491         attribute1,
492         attribute2,
493         attribute3,
494         attribute4,
495         attribute5,
496         attribute6,
497         attribute7,
498         attribute8,
499         attribute9,
500         attribute10,
501         attribute11,
502         attribute12,
503         attribute13,
504         attribute14,
505         attribute15,
506         context,
507         list_price,
508         org_id,
509         price_percent)
510       VALUES (
511         l_def_service_rec.cp_service_id,
512         l_def_service_rec.customer_product_id,
513         l_def_service_rec.contract_line_status_id,
514         l_def_service_rec.contract_line_template_id,
515         l_def_service_rec.contract_id,
516         l_def_service_rec.service_inventory_item_id,
517         l_def_service_rec.service_manufacturing_org_id,
518         l_def_service_rec.status_code,
519         l_def_service_rec.last_cp_service_transaction_id,
520         l_def_service_rec.invoice_flag,
521         l_def_service_rec.coverage_schedule_id,
522         l_def_service_rec.prorate_flag,
523         l_def_service_rec.duration_quantity,
524         l_def_service_rec.unit_of_measure_code,
525         l_def_service_rec.starting_delay,
526         l_def_service_rec.bill_to_site_use_id,
527         l_def_service_rec.bill_to_contact_id,
528         l_def_service_rec.service_txn_availability_code,
529         l_def_service_rec.next_pm_visit_date,
530         l_def_service_rec.pm_visits_completed,
531         l_def_service_rec.last_pm_visit_date,
532         l_def_service_rec.pm_schedule_id,
533         l_def_service_rec.pm_schedule_flag,
534         l_def_service_rec.current_max_schedule_date,
535         l_def_service_rec.price_list_id,
536         l_def_service_rec.service_order_type,
537         l_def_service_rec.invoice_count,
538         l_def_service_rec.currency_code,
539         l_def_service_rec.conversion_type,
540         l_def_service_rec.conversion_rate,
541         l_def_service_rec.conversion_date,
542         l_def_service_rec.original_service_line_id,
543         l_def_service_rec.warranty_flag,
544         l_def_service_rec.original_start_date,
545         l_def_service_rec.original_end_date,
546         l_def_service_rec.service_date_change,
547         l_def_service_rec.workflow,
548         l_def_service_rec.ship_to_site_use_id,
549         l_def_service_rec.original_system_line_reference,
550         l_def_service_rec.extended_price,
551         l_def_service_rec.discount_id,
552         l_def_service_rec.tax_code,
553         l_def_service_rec.billing_frequency_period,
554         l_def_service_rec.first_bill_date,
555         l_def_service_rec.next_bill_date,
556         l_def_service_rec.creation_date,
557         l_def_service_rec.bill_on,
558         l_def_service_rec.created_by,
559         l_def_service_rec.last_update_date,
560         l_def_service_rec.last_updated_by,
561         l_def_service_rec.last_update_login,
562         l_def_service_rec.start_date_active,
563         l_def_service_rec.end_date_active,
564         l_def_service_rec.pricing_attribute1,
565         l_def_service_rec.pricing_attribute2,
566         l_def_service_rec.pricing_attribute3,
567         l_def_service_rec.pricing_attribute4,
568         l_def_service_rec.pricing_attribute5,
569         l_def_service_rec.pricing_attribute6,
570         l_def_service_rec.pricing_attribute7,
571         l_def_service_rec.pricing_attribute8,
572         l_def_service_rec.pricing_attribute9,
573         l_def_service_rec.pricing_attribute10,
574         l_def_service_rec.pricing_attribute11,
575         l_def_service_rec.pricing_attribute12,
576         l_def_service_rec.pricing_attribute13,
577         l_def_service_rec.pricing_attribute14,
578         l_def_service_rec.pricing_attribute15,
579         l_def_service_rec.pricing_context,
580         l_def_service_rec.attribute1,
581         l_def_service_rec.attribute2,
582         l_def_service_rec.attribute3,
583         l_def_service_rec.attribute4,
584         l_def_service_rec.attribute5,
585         l_def_service_rec.attribute6,
586         l_def_service_rec.attribute7,
587         l_def_service_rec.attribute8,
588         l_def_service_rec.attribute9,
589         l_def_service_rec.attribute10,
590         l_def_service_rec.attribute11,
591         l_def_service_rec.attribute12,
592         l_def_service_rec.attribute13,
593         l_def_service_rec.attribute14,
594         l_def_service_rec.attribute15,
595         l_def_service_rec.context,
596         l_def_service_rec.list_price,
597         l_def_service_rec.org_id,
598         l_def_service_rec.price_percent);
599     -- Set OUT values
600     x_cp_service_id := l_def_service_rec.cp_service_id;
601     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
602   EXCEPTION
603     WHEN FND_API.G_EXC_ERROR THEN
604       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
605       (
606         l_api_name,
607         G_PKG_NAME,
608         'FND_API.G_RET_STS_ERROR',
609         x_msg_count,
610         x_msg_data,
611         '_Pvt'
612       );
613     APP_EXCEPTION.RAISE_EXCEPTION;
614     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
615       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
616       (
617         l_api_name,
618         G_PKG_NAME,
619         'FND_API.G_RET_STS_UNEXP_ERROR',
620         x_msg_count,
621         x_msg_data,
622         '_Pvt'
623       );
624     APP_EXCEPTION.RAISE_EXCEPTION;
625     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
626       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
627       (
628         l_api_name,
629         G_PKG_NAME,
630         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
631         x_msg_count,
632         x_msg_data,
633         '_Pvt'
634       );
635     APP_EXCEPTION.RAISE_EXCEPTION;
636   END insert_row;
637   PROCEDURE insert_row
638   (
639     p_api_version                  IN NUMBER,
640     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
641     p_validation_level             IN NUMBER,
642     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
643     x_return_status                OUT VARCHAR2,
644     x_msg_count                    OUT NUMBER,
645     x_msg_data                     OUT VARCHAR2,
646     p_customer_product_id          IN NUMBER := NULL,
647     p_contract_line_status_id      IN NUMBER := NULL,
648     p_contract_line_template_id    IN NUMBER := NULL,
649     p_contract_id                  IN NUMBER := NULL,
650     p_service_inventory_item_id    IN NUMBER := NULL,
651     p_service_manufacturing_org_id  IN NUMBER := NULL,
652     p_status_code                  IN CS_CP_SERVICES.STATUS_CODE%TYPE := NULL,
653     p_lst_cp_srvic_trnsctin_id     IN NUMBER := NULL,
654     p_invoice_flag                 IN CS_CP_SERVICES.INVOICE_FLAG%TYPE := NULL,
655     p_coverage_schedule_id         IN NUMBER := NULL,
656     p_prorate_flag                 IN CS_CP_SERVICES.PRORATE_FLAG%TYPE := NULL,
657     p_duration_quantity            IN NUMBER := NULL,
658     p_unit_of_measure_code         IN CS_CP_SERVICES.UNIT_OF_MEASURE_CODE%TYPE := NULL,
659     p_starting_delay               IN NUMBER := NULL,
660     p_bill_to_site_use_id          IN NUMBER := NULL,
661     p_bill_to_contact_id           IN NUMBER := NULL,
662     p_srvic_txn_vilbility_cd       IN CS_CP_SERVICES.SERVICE_TXN_AVAILABILITY_CODE%TYPE := NULL,
663     p_next_pm_visit_date           IN CS_CP_SERVICES.NEXT_PM_VISIT_DATE%TYPE := NULL,
664     p_pm_visits_completed          IN NUMBER := NULL,
665     p_last_pm_visit_date           IN CS_CP_SERVICES.LAST_PM_VISIT_DATE%TYPE := NULL,
666     p_pm_schedule_id               IN NUMBER := NULL,
667     p_pm_schedule_flag             IN CS_CP_SERVICES.PM_SCHEDULE_FLAG%TYPE := NULL,
668     p_current_max_schedule_date    IN CS_CP_SERVICES.CURRENT_MAX_SCHEDULE_DATE%TYPE := NULL,
669     p_price_list_id                IN NUMBER := NULL,
670     p_service_order_type           IN CS_CP_SERVICES.SERVICE_ORDER_TYPE%TYPE := NULL,
671     p_invoice_count                IN NUMBER := NULL,
672     p_currency_code                IN CS_CP_SERVICES.CURRENCY_CODE%TYPE := NULL,
673     p_conversion_type              IN CS_CP_SERVICES.CONVERSION_TYPE%TYPE := NULL,
674     p_conversion_rate              IN NUMBER := NULL,
675     p_conversion_date              IN CS_CP_SERVICES.CONVERSION_DATE%TYPE := NULL,
676     p_original_service_line_id     IN NUMBER := NULL,
677     p_warranty_flag                IN CS_CP_SERVICES.WARRANTY_FLAG%TYPE := NULL,
678     p_original_start_date          IN CS_CP_SERVICES.ORIGINAL_START_DATE%TYPE := NULL,
679     p_original_end_date            IN CS_CP_SERVICES.ORIGINAL_END_DATE%TYPE := NULL,
680     p_service_date_change          IN CS_CP_SERVICES.SERVICE_DATE_CHANGE%TYPE := NULL,
681     p_workflow                     IN CS_CP_SERVICES.WORKFLOW%TYPE := NULL,
682     p_ship_to_site_use_id          IN NUMBER := NULL,
683     p_riginl_systm_lin_rfrnc       IN CS_CP_SERVICES.ORIGINAL_SYSTEM_LINE_REFERENCE%TYPE := NULL,
684     p_extended_price               IN NUMBER := NULL,
685     p_discount_id                  IN NUMBER := NULL,
686     p_tax_code                     IN CS_CP_SERVICES.TAX_CODE%TYPE := NULL,
687     p_billing_frequency_period     IN CS_CP_SERVICES.BILLING_FREQUENCY_PERIOD%TYPE := NULL,
688     p_first_bill_date              IN CS_CP_SERVICES.FIRST_BILL_DATE%TYPE := NULL,
689     p_next_bill_date               IN CS_CP_SERVICES.NEXT_BILL_DATE%TYPE := NULL,
690     p_creation_date                IN CS_CP_SERVICES.CREATION_DATE%TYPE := NULL,
691     p_bill_on                      IN NUMBER := NULL,
692     p_created_by                   IN NUMBER := NULL,
693     p_last_update_date             IN CS_CP_SERVICES.LAST_UPDATE_DATE%TYPE := NULL,
694     p_last_updated_by              IN NUMBER := NULL,
695     p_last_update_login            IN NUMBER := NULL,
696     p_start_date_active            IN CS_CP_SERVICES.START_DATE_ACTIVE%TYPE := NULL,
697     p_end_date_active              IN CS_CP_SERVICES.END_DATE_ACTIVE%TYPE := NULL,
698     p_pricing_attribute1           IN CS_CP_SERVICES.PRICING_ATTRIBUTE1%TYPE := NULL,
699     p_pricing_attribute2           IN CS_CP_SERVICES.PRICING_ATTRIBUTE2%TYPE := NULL,
700     p_pricing_attribute3           IN CS_CP_SERVICES.PRICING_ATTRIBUTE3%TYPE := NULL,
701     p_pricing_attribute4           IN CS_CP_SERVICES.PRICING_ATTRIBUTE4%TYPE := NULL,
702     p_pricing_attribute5           IN CS_CP_SERVICES.PRICING_ATTRIBUTE5%TYPE := NULL,
703     p_pricing_attribute6           IN CS_CP_SERVICES.PRICING_ATTRIBUTE6%TYPE := NULL,
704     p_pricing_attribute7           IN CS_CP_SERVICES.PRICING_ATTRIBUTE7%TYPE := NULL,
705     p_pricing_attribute8           IN CS_CP_SERVICES.PRICING_ATTRIBUTE8%TYPE := NULL,
706     p_pricing_attribute9           IN CS_CP_SERVICES.PRICING_ATTRIBUTE9%TYPE := NULL,
707     p_pricing_attribute10          IN CS_CP_SERVICES.PRICING_ATTRIBUTE10%TYPE := NULL,
708     p_pricing_attribute11          IN CS_CP_SERVICES.PRICING_ATTRIBUTE11%TYPE := NULL,
709     p_pricing_attribute12          IN CS_CP_SERVICES.PRICING_ATTRIBUTE12%TYPE := NULL,
710     p_pricing_attribute13          IN CS_CP_SERVICES.PRICING_ATTRIBUTE13%TYPE := NULL,
711     p_pricing_attribute14          IN CS_CP_SERVICES.PRICING_ATTRIBUTE14%TYPE := NULL,
712     p_pricing_attribute15          IN CS_CP_SERVICES.PRICING_ATTRIBUTE15%TYPE := NULL,
713     p_pricing_context              IN CS_CP_SERVICES.PRICING_CONTEXT%TYPE := NULL,
714     p_attribute1                   IN CS_CP_SERVICES.ATTRIBUTE1%TYPE := NULL,
715     p_attribute2                   IN CS_CP_SERVICES.ATTRIBUTE2%TYPE := NULL,
716     p_attribute3                   IN CS_CP_SERVICES.ATTRIBUTE3%TYPE := NULL,
717     p_attribute4                   IN CS_CP_SERVICES.ATTRIBUTE4%TYPE := NULL,
718     p_attribute5                   IN CS_CP_SERVICES.ATTRIBUTE5%TYPE := NULL,
719     p_attribute6                   IN CS_CP_SERVICES.ATTRIBUTE6%TYPE := NULL,
720     p_attribute7                   IN CS_CP_SERVICES.ATTRIBUTE7%TYPE := NULL,
721     p_attribute8                   IN CS_CP_SERVICES.ATTRIBUTE8%TYPE := NULL,
722     p_attribute9                   IN CS_CP_SERVICES.ATTRIBUTE9%TYPE := NULL,
723     p_attribute10                  IN CS_CP_SERVICES.ATTRIBUTE10%TYPE := NULL,
724     p_attribute11                  IN CS_CP_SERVICES.ATTRIBUTE11%TYPE := NULL,
725     p_attribute12                  IN CS_CP_SERVICES.ATTRIBUTE12%TYPE := NULL,
726     p_attribute13                  IN CS_CP_SERVICES.ATTRIBUTE13%TYPE := NULL,
727     p_attribute14                  IN CS_CP_SERVICES.ATTRIBUTE14%TYPE := NULL,
728     p_attribute15                  IN CS_CP_SERVICES.ATTRIBUTE15%TYPE := NULL,
729     p_context                      IN CS_CP_SERVICES.CONTEXT%TYPE := NULL,
730     p_list_price                   IN NUMBER := NULL,
731     p_org_id                       IN NUMBER := NULL,
732     p_price_percent                IN NUMBER := NULL,
733     x_cp_service_id                OUT NUMBER) IS
734     l_api_name                     CONSTANT VARCHAR2(30) := 'insert_row';
735     l_api_version                  CONSTANT NUMBER := 1;
736     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
737     l_service_rec                  Service_Rec_Type;
738   BEGIN
739     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
740                                               G_PKG_NAME,
741                                               l_api_version,
742                                               p_api_version,
743                                               p_init_msg_list,
744                                               '_Pvt',
745                                               x_return_status);
746     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
747       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
748     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
749       RAISE FND_API.G_EXC_ERROR;
750     END IF;
751     l_service_rec.CUSTOMER_PRODUCT_ID := p_customer_product_id;
752     l_service_rec.CONTRACT_LINE_STATUS_ID := p_contract_line_status_id;
753     l_service_rec.CONTRACT_LINE_TEMPLATE_ID := p_contract_line_template_id;
754     l_service_rec.CONTRACT_ID := p_contract_id;
755     l_service_rec.SERVICE_INVENTORY_ITEM_ID := p_service_inventory_item_id;
756     l_service_rec.SERVICE_MANUFACTURING_ORG_ID := p_service_manufacturing_org_id;
757     l_service_rec.STATUS_CODE := p_status_code;
758     l_service_rec.LAST_CP_SERVICE_TRANSACTION_ID := p_lst_cp_srvic_trnsctin_id;
759     l_service_rec.INVOICE_FLAG := p_invoice_flag;
760     l_service_rec.COVERAGE_SCHEDULE_ID := p_coverage_schedule_id;
761     l_service_rec.PRORATE_FLAG := p_prorate_flag;
762     l_service_rec.DURATION_QUANTITY := p_duration_quantity;
763     l_service_rec.UNIT_OF_MEASURE_CODE := p_unit_of_measure_code;
764     l_service_rec.STARTING_DELAY := p_starting_delay;
765     l_service_rec.BILL_TO_SITE_USE_ID := p_bill_to_site_use_id;
766     l_service_rec.BILL_TO_CONTACT_ID := p_bill_to_contact_id;
767     l_service_rec.SERVICE_TXN_AVAILABILITY_CODE := p_srvic_txn_vilbility_cd;
768     l_service_rec.NEXT_PM_VISIT_DATE := p_next_pm_visit_date;
769     l_service_rec.PM_VISITS_COMPLETED := p_pm_visits_completed;
770     l_service_rec.LAST_PM_VISIT_DATE := p_last_pm_visit_date;
771     l_service_rec.PM_SCHEDULE_ID := p_pm_schedule_id;
772     l_service_rec.PM_SCHEDULE_FLAG := p_pm_schedule_flag;
773     l_service_rec.CURRENT_MAX_SCHEDULE_DATE := p_current_max_schedule_date;
774     l_service_rec.PRICE_LIST_ID := p_price_list_id;
775     l_service_rec.SERVICE_ORDER_TYPE := p_service_order_type;
776     l_service_rec.INVOICE_COUNT := p_invoice_count;
777     l_service_rec.CURRENCY_CODE := p_currency_code;
778     l_service_rec.CONVERSION_TYPE := p_conversion_type;
779     l_service_rec.CONVERSION_RATE := p_conversion_rate;
780     l_service_rec.CONVERSION_DATE := p_conversion_date;
781     l_service_rec.ORIGINAL_SERVICE_LINE_ID := p_original_service_line_id;
782     l_service_rec.WARRANTY_FLAG := p_warranty_flag;
783     l_service_rec.ORIGINAL_START_DATE := p_original_start_date;
784     l_service_rec.ORIGINAL_END_DATE := p_original_end_date;
785     l_service_rec.SERVICE_DATE_CHANGE := p_service_date_change;
786     l_service_rec.WORKFLOW := p_workflow;
787     l_service_rec.SHIP_TO_SITE_USE_ID := p_ship_to_site_use_id;
788     l_service_rec.ORIGINAL_SYSTEM_LINE_REFERENCE := p_riginl_systm_lin_rfrnc;
789     l_service_rec.EXTENDED_PRICE := p_extended_price;
790     l_service_rec.DISCOUNT_ID := p_discount_id;
791     l_service_rec.TAX_CODE := p_tax_code;
792     l_service_rec.BILLING_FREQUENCY_PERIOD := p_billing_frequency_period;
793     l_service_rec.FIRST_BILL_DATE := p_first_bill_date;
794     l_service_rec.NEXT_BILL_DATE := p_next_bill_date;
795     l_service_rec.CREATION_DATE := p_creation_date;
796     l_service_rec.BILL_ON := p_bill_on;
797     l_service_rec.CREATED_BY := p_created_by;
798     l_service_rec.LAST_UPDATE_DATE := p_last_update_date;
799     l_service_rec.LAST_UPDATED_BY := p_last_updated_by;
800     l_service_rec.LAST_UPDATE_LOGIN := p_last_update_login;
801     l_service_rec.START_DATE_ACTIVE := p_start_date_active;
802     l_service_rec.END_DATE_ACTIVE := p_end_date_active;
803     l_service_rec.PRICING_ATTRIBUTE1 := p_pricing_attribute1;
804     l_service_rec.PRICING_ATTRIBUTE2 := p_pricing_attribute2;
805     l_service_rec.PRICING_ATTRIBUTE3 := p_pricing_attribute3;
806     l_service_rec.PRICING_ATTRIBUTE4 := p_pricing_attribute4;
807     l_service_rec.PRICING_ATTRIBUTE5 := p_pricing_attribute5;
808     l_service_rec.PRICING_ATTRIBUTE6 := p_pricing_attribute6;
809     l_service_rec.PRICING_ATTRIBUTE7 := p_pricing_attribute7;
810     l_service_rec.PRICING_ATTRIBUTE8 := p_pricing_attribute8;
811     l_service_rec.PRICING_ATTRIBUTE9 := p_pricing_attribute9;
812     l_service_rec.PRICING_ATTRIBUTE10 := p_pricing_attribute10;
813     l_service_rec.PRICING_ATTRIBUTE11 := p_pricing_attribute11;
814     l_service_rec.PRICING_ATTRIBUTE12 := p_pricing_attribute12;
815     l_service_rec.PRICING_ATTRIBUTE13 := p_pricing_attribute13;
816     l_service_rec.PRICING_ATTRIBUTE14 := p_pricing_attribute14;
817     l_service_rec.PRICING_ATTRIBUTE15 := p_pricing_attribute15;
818     l_service_rec.PRICING_CONTEXT := p_pricing_context;
819     l_service_rec.ATTRIBUTE1 := p_attribute1;
820     l_service_rec.ATTRIBUTE2 := p_attribute2;
821     l_service_rec.ATTRIBUTE3 := p_attribute3;
822     l_service_rec.ATTRIBUTE4 := p_attribute4;
823     l_service_rec.ATTRIBUTE5 := p_attribute5;
824     l_service_rec.ATTRIBUTE6 := p_attribute6;
825     l_service_rec.ATTRIBUTE7 := p_attribute7;
826     l_service_rec.ATTRIBUTE8 := p_attribute8;
827     l_service_rec.ATTRIBUTE9 := p_attribute9;
828     l_service_rec.ATTRIBUTE10 := p_attribute10;
829     l_service_rec.ATTRIBUTE11 := p_attribute11;
830     l_service_rec.ATTRIBUTE12 := p_attribute12;
831     l_service_rec.ATTRIBUTE13 := p_attribute13;
832     l_service_rec.ATTRIBUTE14 := p_attribute14;
833     l_service_rec.ATTRIBUTE15 := p_attribute15;
834     l_service_rec.CONTEXT := p_context;
835     l_service_rec.LIST_PRICE := p_list_price;
836     l_service_rec.ORG_ID := p_org_id;
837     l_service_rec.PRICE_PERCENT := p_price_percent;
838     insert_row(
839       p_api_version,
840       p_init_msg_list,
841       p_validation_level,
842       p_commit,
843       x_return_status,
844       x_msg_count,
845       x_msg_data,
846       l_service_rec,
847       x_cp_service_id
848     );
849     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
850   EXCEPTION
851     WHEN FND_API.G_EXC_ERROR THEN
852       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
853       (
854         l_api_name,
855         G_PKG_NAME,
856         'FND_API.G_RET_STS_ERROR',
857         x_msg_count,
858         x_msg_data,
859         '_Pvt'
860       );
861     APP_EXCEPTION.RAISE_EXCEPTION;
862     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
863       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
864       (
865         l_api_name,
866         G_PKG_NAME,
867         'FND_API.G_RET_STS_UNEXP_ERROR',
868         x_msg_count,
869         x_msg_data,
870         '_Pvt'
871       );
872     APP_EXCEPTION.RAISE_EXCEPTION;
873     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
874       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
875       (
876         l_api_name,
877         G_PKG_NAME,
878         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
879         x_msg_count,
880         x_msg_data,
881         '_Pvt'
882       );
883     APP_EXCEPTION.RAISE_EXCEPTION;
884   END insert_row;
885   Procedure lock_row
886   (
887     p_api_version                  IN NUMBER,
888     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
889     p_validation_level             IN NUMBER,
890     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
891     x_return_status                OUT VARCHAR2,
892     x_msg_count                    OUT NUMBER,
893     x_msg_data                     OUT VARCHAR2,
894     p_cp_service_id                IN NUMBER,
895     p_customer_product_id          IN NUMBER,
896     p_contract_line_status_id      IN NUMBER,
897     p_contract_line_template_id    IN NUMBER,
898     p_contract_id                  IN NUMBER,
899     p_service_inventory_item_id    IN NUMBER,
900     p_service_manufacturing_org_id  IN NUMBER,
901     p_status_code                  IN VARCHAR2,
902     p_lst_cp_srvic_trnsctin_id     IN NUMBER,
903     p_invoice_flag                 IN VARCHAR2,
904     p_coverage_schedule_id         IN NUMBER,
905     p_prorate_flag                 IN VARCHAR2,
906     p_duration_quantity            IN NUMBER,
907     p_unit_of_measure_code         IN VARCHAR2,
908     p_starting_delay               IN NUMBER,
909     p_bill_to_site_use_id          IN NUMBER,
910     p_bill_to_contact_id           IN NUMBER,
911     p_srvic_txn_vilbility_cd       IN VARCHAR2,
912     p_next_pm_visit_date           IN DATE,
913     p_pm_visits_completed          IN NUMBER,
914     p_last_pm_visit_date           IN DATE,
915     p_pm_schedule_id               IN NUMBER,
916     p_pm_schedule_flag             IN VARCHAR2,
917     p_current_max_schedule_date    IN DATE,
918     p_price_list_id                IN NUMBER,
919     p_service_order_type           IN VARCHAR2,
920     p_invoice_count                IN NUMBER,
921     p_currency_code                IN VARCHAR2,
922     p_conversion_type              IN VARCHAR2,
923     p_conversion_rate              IN NUMBER,
924     p_conversion_date              IN DATE,
925     p_original_service_line_id     IN NUMBER,
926     p_warranty_flag                IN VARCHAR2,
927     p_original_start_date          IN DATE,
928     p_original_end_date            IN DATE,
929     p_service_date_change          IN VARCHAR2,
930     p_workflow                     IN VARCHAR2,
931     p_ship_to_site_use_id          IN NUMBER,
932     p_riginl_systm_lin_rfrnc       IN VARCHAR2,
933     p_extended_price               IN NUMBER,
934     p_discount_id                  IN NUMBER,
935     p_tax_code                     IN VARCHAR2,
936     p_billing_frequency_period     IN VARCHAR2,
937     p_first_bill_date              IN DATE,
938     p_next_bill_date               IN DATE,
939     p_creation_date                IN DATE,
940     p_bill_on                      IN NUMBER,
941     p_created_by                   IN NUMBER,
942     p_last_update_date             IN DATE,
943     p_last_updated_by              IN NUMBER,
944     p_last_update_login            IN NUMBER,
945     p_start_date_active            IN DATE,
946     p_end_date_active              IN DATE,
947     p_pricing_attribute1           IN VARCHAR2,
948     p_pricing_attribute2           IN VARCHAR2,
949     p_pricing_attribute3           IN VARCHAR2,
950     p_pricing_attribute4           IN VARCHAR2,
951     p_pricing_attribute5           IN VARCHAR2,
952     p_pricing_attribute6           IN VARCHAR2,
953     p_pricing_attribute7           IN VARCHAR2,
954     p_pricing_attribute8           IN VARCHAR2,
955     p_pricing_attribute9           IN VARCHAR2,
956     p_pricing_attribute10          IN VARCHAR2,
957     p_pricing_attribute11          IN VARCHAR2,
958     p_pricing_attribute12          IN VARCHAR2,
959     p_pricing_attribute13          IN VARCHAR2,
960     p_pricing_attribute14          IN VARCHAR2,
961     p_pricing_attribute15          IN VARCHAR2,
962     p_pricing_context              IN VARCHAR2,
963     p_attribute1                   IN VARCHAR2,
964     p_attribute2                   IN VARCHAR2,
965     p_attribute3                   IN VARCHAR2,
966     p_attribute4                   IN VARCHAR2,
967     p_attribute5                   IN VARCHAR2,
968     p_attribute6                   IN VARCHAR2,
969     p_attribute7                   IN VARCHAR2,
970     p_attribute8                   IN VARCHAR2,
971     p_attribute9                   IN VARCHAR2,
972     p_attribute10                  IN VARCHAR2,
973     p_attribute11                  IN VARCHAR2,
974     p_attribute12                  IN VARCHAR2,
975     p_attribute13                  IN VARCHAR2,
976     p_attribute14                  IN VARCHAR2,
977     p_attribute15                  IN VARCHAR2,
978     p_context                      IN VARCHAR2,
979     p_list_price                   IN NUMBER,
980     p_org_id                       IN NUMBER,
981     p_price_percent                IN NUMBER) IS
982     E_Resource_Busy               EXCEPTION;
983     PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
984     CURSOR lock_csr IS
985     SELECT *
986      FROM CS_CP_SERVICES
987     WHERE
988       CP_SERVICE_ID = p_cp_service_id
989     FOR UPDATE NOWAIT;
990 
991     l_api_name                     CONSTANT VARCHAR2(30) := 'lock_row';
992     l_api_version                  CONSTANT NUMBER := 1;
993     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
994     l_object_version_number       lock_csr%ROWTYPE;
995     l_row_notfound                BOOLEAN := FALSE;
996     lc_row_notfound               BOOLEAN := FALSE;
997   BEGIN
998     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
999                                               G_PKG_NAME,
1000                                               l_api_version,
1001                                               p_api_version,
1002                                               p_init_msg_list,
1003                                               '_Pvt',
1004                                               x_return_status);
1005     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1006       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1007     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1008       RAISE FND_API.G_EXC_ERROR;
1009     END IF;
1010     BEGIN
1011       OPEN lock_csr;
1012       FETCH lock_csr INTO l_object_version_number;
1013       l_row_notfound := lock_csr%NOTFOUND;
1014       CLOSE lock_csr;
1015     EXCEPTION
1016       WHEN E_Resource_Busy THEN
1017         IF (lock_csr%ISOPEN) THEN
1018           CLOSE lock_csr;
1019         END IF;
1020         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
1021         RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
1022     END;
1023 
1024     IF ( l_row_notfound ) THEN
1025       TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
1026       RAISE FND_API.G_EXC_ERROR;
1027     ELSE
1028       IF (l_object_version_number.CP_SERVICE_ID <> p_cp_service_id) THEN
1029         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1030         RAISE FND_API.G_EXC_ERROR;
1031       END IF;
1032       IF (l_object_version_number.CUSTOMER_PRODUCT_ID <> p_customer_product_id) THEN
1033         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1034         RAISE FND_API.G_EXC_ERROR;
1035       END IF;
1036       IF (l_object_version_number.CONTRACT_LINE_STATUS_ID <> p_contract_line_status_id) THEN
1037         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1038         RAISE FND_API.G_EXC_ERROR;
1039       END IF;
1040       IF (l_object_version_number.CONTRACT_LINE_TEMPLATE_ID <> p_contract_line_template_id) THEN
1041         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1042         RAISE FND_API.G_EXC_ERROR;
1043       END IF;
1044       IF (l_object_version_number.CONTRACT_ID <> p_contract_id) THEN
1045         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1046         RAISE FND_API.G_EXC_ERROR;
1047       END IF;
1048       IF (l_object_version_number.SERVICE_INVENTORY_ITEM_ID <> p_service_inventory_item_id) THEN
1049         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1050         RAISE FND_API.G_EXC_ERROR;
1051       END IF;
1052       IF (l_object_version_number.SERVICE_MANUFACTURING_ORG_ID <> p_service_manufacturing_org_id) THEN
1053         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1054         RAISE FND_API.G_EXC_ERROR;
1055       END IF;
1056       IF (l_object_version_number.STATUS_CODE <> p_status_code) THEN
1057         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1058         RAISE FND_API.G_EXC_ERROR;
1059       END IF;
1060       IF (l_object_version_number.LAST_CP_SERVICE_TRANSACTION_ID <> p_lst_cp_srvic_trnsctin_id) THEN
1061         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1062         RAISE FND_API.G_EXC_ERROR;
1063       END IF;
1064       IF (l_object_version_number.INVOICE_FLAG <> p_invoice_flag) THEN
1065         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1066         RAISE FND_API.G_EXC_ERROR;
1067       END IF;
1068       IF (l_object_version_number.COVERAGE_SCHEDULE_ID <> p_coverage_schedule_id) THEN
1069         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1070         RAISE FND_API.G_EXC_ERROR;
1071       END IF;
1072       IF (l_object_version_number.PRORATE_FLAG <> p_prorate_flag) THEN
1073         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1074         RAISE FND_API.G_EXC_ERROR;
1075       END IF;
1076       IF (l_object_version_number.DURATION_QUANTITY <> p_duration_quantity) THEN
1077         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1078         RAISE FND_API.G_EXC_ERROR;
1079       END IF;
1080       IF (l_object_version_number.UNIT_OF_MEASURE_CODE <> p_unit_of_measure_code) THEN
1081         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1082         RAISE FND_API.G_EXC_ERROR;
1083       END IF;
1084       IF (l_object_version_number.STARTING_DELAY <> p_starting_delay) THEN
1085         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1086         RAISE FND_API.G_EXC_ERROR;
1087       END IF;
1088       IF (l_object_version_number.BILL_TO_SITE_USE_ID <> p_bill_to_site_use_id) THEN
1089         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1090         RAISE FND_API.G_EXC_ERROR;
1091       END IF;
1092       IF (l_object_version_number.BILL_TO_CONTACT_ID <> p_bill_to_contact_id) THEN
1093         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1094         RAISE FND_API.G_EXC_ERROR;
1095       END IF;
1096       IF (l_object_version_number.SERVICE_TXN_AVAILABILITY_CODE <> p_srvic_txn_vilbility_cd) THEN
1097         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1098         RAISE FND_API.G_EXC_ERROR;
1099       END IF;
1100       IF (l_object_version_number.NEXT_PM_VISIT_DATE <> p_next_pm_visit_date) THEN
1101         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1102         RAISE FND_API.G_EXC_ERROR;
1103       END IF;
1104       IF (l_object_version_number.PM_VISITS_COMPLETED <> p_pm_visits_completed) THEN
1105         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1106         RAISE FND_API.G_EXC_ERROR;
1107       END IF;
1108       IF (l_object_version_number.LAST_PM_VISIT_DATE <> p_last_pm_visit_date) THEN
1109         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1110         RAISE FND_API.G_EXC_ERROR;
1111       END IF;
1112       IF (l_object_version_number.PM_SCHEDULE_ID <> p_pm_schedule_id) THEN
1113         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1114         RAISE FND_API.G_EXC_ERROR;
1115       END IF;
1116       IF (l_object_version_number.PM_SCHEDULE_FLAG <> p_pm_schedule_flag) THEN
1117         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1118         RAISE FND_API.G_EXC_ERROR;
1119       END IF;
1120       IF (l_object_version_number.CURRENT_MAX_SCHEDULE_DATE <> p_current_max_schedule_date) THEN
1121         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1122         RAISE FND_API.G_EXC_ERROR;
1123       END IF;
1124       IF (l_object_version_number.PRICE_LIST_ID <> p_price_list_id) THEN
1125         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1126         RAISE FND_API.G_EXC_ERROR;
1127       END IF;
1128       IF (l_object_version_number.SERVICE_ORDER_TYPE <> p_service_order_type) THEN
1129         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1130         RAISE FND_API.G_EXC_ERROR;
1131       END IF;
1132       IF (l_object_version_number.INVOICE_COUNT <> p_invoice_count) THEN
1133         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1134         RAISE FND_API.G_EXC_ERROR;
1135       END IF;
1136       IF (l_object_version_number.CURRENCY_CODE <> p_currency_code) THEN
1137         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1138         RAISE FND_API.G_EXC_ERROR;
1139       END IF;
1140       IF (l_object_version_number.CONVERSION_TYPE <> p_conversion_type) THEN
1141         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1142         RAISE FND_API.G_EXC_ERROR;
1143       END IF;
1144       IF (l_object_version_number.CONVERSION_RATE <> p_conversion_rate) THEN
1145         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1146         RAISE FND_API.G_EXC_ERROR;
1147       END IF;
1148       IF (l_object_version_number.CONVERSION_DATE <> p_conversion_date) THEN
1149         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1150         RAISE FND_API.G_EXC_ERROR;
1151       END IF;
1152       IF (l_object_version_number.ORIGINAL_SERVICE_LINE_ID <> p_original_service_line_id) THEN
1153         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1154         RAISE FND_API.G_EXC_ERROR;
1155       END IF;
1156       IF (l_object_version_number.WARRANTY_FLAG <> p_warranty_flag) THEN
1157         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1158         RAISE FND_API.G_EXC_ERROR;
1159       END IF;
1160       IF (l_object_version_number.ORIGINAL_START_DATE <> p_original_start_date) THEN
1161         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1162         RAISE FND_API.G_EXC_ERROR;
1163       END IF;
1164       IF (l_object_version_number.ORIGINAL_END_DATE <> p_original_end_date) THEN
1165         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1166         RAISE FND_API.G_EXC_ERROR;
1167       END IF;
1168       IF (l_object_version_number.SERVICE_DATE_CHANGE <> p_service_date_change) THEN
1169         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1170         RAISE FND_API.G_EXC_ERROR;
1171       END IF;
1172       IF (l_object_version_number.WORKFLOW <> p_workflow) THEN
1173         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1174         RAISE FND_API.G_EXC_ERROR;
1175       END IF;
1176       IF (l_object_version_number.SHIP_TO_SITE_USE_ID <> p_ship_to_site_use_id) THEN
1177         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1178         RAISE FND_API.G_EXC_ERROR;
1179       END IF;
1180       IF (l_object_version_number.ORIGINAL_SYSTEM_LINE_REFERENCE <> p_riginl_systm_lin_rfrnc) THEN
1181         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1182         RAISE FND_API.G_EXC_ERROR;
1183       END IF;
1184       IF (l_object_version_number.EXTENDED_PRICE <> p_extended_price) THEN
1185         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1186         RAISE FND_API.G_EXC_ERROR;
1187       END IF;
1188       IF (l_object_version_number.DISCOUNT_ID <> p_discount_id) THEN
1189         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1190         RAISE FND_API.G_EXC_ERROR;
1191       END IF;
1192       IF (l_object_version_number.TAX_CODE <> p_tax_code) THEN
1193         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1194         RAISE FND_API.G_EXC_ERROR;
1195       END IF;
1196       IF (l_object_version_number.BILLING_FREQUENCY_PERIOD <> p_billing_frequency_period) THEN
1197         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1198         RAISE FND_API.G_EXC_ERROR;
1199       END IF;
1200       IF (l_object_version_number.FIRST_BILL_DATE <> p_first_bill_date) THEN
1201         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1202         RAISE FND_API.G_EXC_ERROR;
1203       END IF;
1204       IF (l_object_version_number.NEXT_BILL_DATE <> p_next_bill_date) THEN
1205         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1206         RAISE FND_API.G_EXC_ERROR;
1207       END IF;
1208       IF (l_object_version_number.CREATION_DATE <> p_creation_date) THEN
1209         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1210         RAISE FND_API.G_EXC_ERROR;
1211       END IF;
1212       IF (l_object_version_number.BILL_ON <> p_bill_on) THEN
1213         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1214         RAISE FND_API.G_EXC_ERROR;
1215       END IF;
1216       IF (l_object_version_number.CREATED_BY <> p_created_by) THEN
1217         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1218         RAISE FND_API.G_EXC_ERROR;
1219       END IF;
1220       IF (l_object_version_number.LAST_UPDATE_DATE <> p_last_update_date) THEN
1221         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1222         RAISE FND_API.G_EXC_ERROR;
1223       END IF;
1224       IF (l_object_version_number.LAST_UPDATED_BY <> p_last_updated_by) THEN
1225         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1226         RAISE FND_API.G_EXC_ERROR;
1227       END IF;
1228       IF (l_object_version_number.LAST_UPDATE_LOGIN <> p_last_update_login) THEN
1229         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1230         RAISE FND_API.G_EXC_ERROR;
1231       END IF;
1232       IF (l_object_version_number.START_DATE_ACTIVE <> p_start_date_active) THEN
1233         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1234         RAISE FND_API.G_EXC_ERROR;
1235       END IF;
1236       IF (l_object_version_number.END_DATE_ACTIVE <> p_end_date_active) THEN
1237         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1238         RAISE FND_API.G_EXC_ERROR;
1239       END IF;
1240       IF (l_object_version_number.PRICING_ATTRIBUTE1 <> p_pricing_attribute1) THEN
1241         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1242         RAISE FND_API.G_EXC_ERROR;
1243       END IF;
1244       IF (l_object_version_number.PRICING_ATTRIBUTE2 <> p_pricing_attribute2) THEN
1245         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1246         RAISE FND_API.G_EXC_ERROR;
1247       END IF;
1248       IF (l_object_version_number.PRICING_ATTRIBUTE3 <> p_pricing_attribute3) THEN
1249         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1250         RAISE FND_API.G_EXC_ERROR;
1251       END IF;
1252       IF (l_object_version_number.PRICING_ATTRIBUTE4 <> p_pricing_attribute4) THEN
1253         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1254         RAISE FND_API.G_EXC_ERROR;
1255       END IF;
1256       IF (l_object_version_number.PRICING_ATTRIBUTE5 <> p_pricing_attribute5) THEN
1257         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1258         RAISE FND_API.G_EXC_ERROR;
1259       END IF;
1260       IF (l_object_version_number.PRICING_ATTRIBUTE6 <> p_pricing_attribute6) THEN
1261         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1262         RAISE FND_API.G_EXC_ERROR;
1263       END IF;
1264       IF (l_object_version_number.PRICING_ATTRIBUTE7 <> p_pricing_attribute7) THEN
1265         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1266         RAISE FND_API.G_EXC_ERROR;
1267       END IF;
1268       IF (l_object_version_number.PRICING_ATTRIBUTE8 <> p_pricing_attribute8) THEN
1269         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1270         RAISE FND_API.G_EXC_ERROR;
1271       END IF;
1272       IF (l_object_version_number.PRICING_ATTRIBUTE9 <> p_pricing_attribute9) THEN
1273         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1274         RAISE FND_API.G_EXC_ERROR;
1275       END IF;
1276       IF (l_object_version_number.PRICING_ATTRIBUTE10 <> p_pricing_attribute10) THEN
1277         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1278         RAISE FND_API.G_EXC_ERROR;
1279       END IF;
1280       IF (l_object_version_number.PRICING_ATTRIBUTE11 <> p_pricing_attribute11) THEN
1281         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1282         RAISE FND_API.G_EXC_ERROR;
1283       END IF;
1284       IF (l_object_version_number.PRICING_ATTRIBUTE12 <> p_pricing_attribute12) THEN
1285         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1286         RAISE FND_API.G_EXC_ERROR;
1287       END IF;
1288       IF (l_object_version_number.PRICING_ATTRIBUTE13 <> p_pricing_attribute13) THEN
1289         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1290         RAISE FND_API.G_EXC_ERROR;
1291       END IF;
1292       IF (l_object_version_number.PRICING_ATTRIBUTE14 <> p_pricing_attribute14) THEN
1293         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1294         RAISE FND_API.G_EXC_ERROR;
1295       END IF;
1296       IF (l_object_version_number.PRICING_ATTRIBUTE15 <> p_pricing_attribute15) THEN
1297         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1298         RAISE FND_API.G_EXC_ERROR;
1299       END IF;
1300       IF (l_object_version_number.PRICING_CONTEXT <> p_pricing_context) THEN
1301         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1302         RAISE FND_API.G_EXC_ERROR;
1303       END IF;
1304       IF (l_object_version_number.ATTRIBUTE1 <> p_attribute1) THEN
1305         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1306         RAISE FND_API.G_EXC_ERROR;
1307       END IF;
1308       IF (l_object_version_number.ATTRIBUTE2 <> p_attribute2) THEN
1309         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1310         RAISE FND_API.G_EXC_ERROR;
1311       END IF;
1312       IF (l_object_version_number.ATTRIBUTE3 <> p_attribute3) THEN
1313         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1314         RAISE FND_API.G_EXC_ERROR;
1315       END IF;
1316       IF (l_object_version_number.ATTRIBUTE4 <> p_attribute4) THEN
1317         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1318         RAISE FND_API.G_EXC_ERROR;
1319       END IF;
1320       IF (l_object_version_number.ATTRIBUTE5 <> p_attribute5) THEN
1321         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1322         RAISE FND_API.G_EXC_ERROR;
1323       END IF;
1324       IF (l_object_version_number.ATTRIBUTE6 <> p_attribute6) THEN
1325         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1326         RAISE FND_API.G_EXC_ERROR;
1327       END IF;
1328       IF (l_object_version_number.ATTRIBUTE7 <> p_attribute7) THEN
1329         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1330         RAISE FND_API.G_EXC_ERROR;
1331       END IF;
1332       IF (l_object_version_number.ATTRIBUTE8 <> p_attribute8) THEN
1333         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1334         RAISE FND_API.G_EXC_ERROR;
1335       END IF;
1336       IF (l_object_version_number.ATTRIBUTE9 <> p_attribute9) THEN
1337         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1338         RAISE FND_API.G_EXC_ERROR;
1339       END IF;
1340       IF (l_object_version_number.ATTRIBUTE10 <> p_attribute10) THEN
1341         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1342         RAISE FND_API.G_EXC_ERROR;
1343       END IF;
1344       IF (l_object_version_number.ATTRIBUTE11 <> p_attribute11) THEN
1345         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1346         RAISE FND_API.G_EXC_ERROR;
1347       END IF;
1348       IF (l_object_version_number.ATTRIBUTE12 <> p_attribute12) THEN
1349         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1350         RAISE FND_API.G_EXC_ERROR;
1351       END IF;
1352       IF (l_object_version_number.ATTRIBUTE13 <> p_attribute13) THEN
1353         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1354         RAISE FND_API.G_EXC_ERROR;
1355       END IF;
1356       IF (l_object_version_number.ATTRIBUTE14 <> p_attribute14) THEN
1357         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1358         RAISE FND_API.G_EXC_ERROR;
1359       END IF;
1360       IF (l_object_version_number.ATTRIBUTE15 <> p_attribute15) THEN
1361         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1362         RAISE FND_API.G_EXC_ERROR;
1363       END IF;
1364       IF (l_object_version_number.CONTEXT <> p_context) THEN
1365         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1366         RAISE FND_API.G_EXC_ERROR;
1367       END IF;
1368       IF (l_object_version_number.LIST_PRICE <> p_list_price) THEN
1369         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1370         RAISE FND_API.G_EXC_ERROR;
1371       END IF;
1372       IF (l_object_version_number.ORG_ID <> p_org_id) THEN
1373         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1374         RAISE FND_API.G_EXC_ERROR;
1375       END IF;
1376       IF (l_object_version_number.PRICE_PERCENT <> p_price_percent) THEN
1377         TAPI_DEV_KIT.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
1378         RAISE FND_API.G_EXC_ERROR;
1379       END IF;
1380     END IF;
1381     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
1382   EXCEPTION
1383     WHEN FND_API.G_EXC_ERROR THEN
1384       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1385       (
1386         l_api_name,
1387         G_PKG_NAME,
1388         'FND_API.G_RET_STS_ERROR',
1389         x_msg_count,
1390         x_msg_data,
1391         '_Pvt'
1392       );
1393     APP_EXCEPTION.RAISE_EXCEPTION;
1394     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1395       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1396       (
1397         l_api_name,
1398         G_PKG_NAME,
1399         'FND_API.G_RET_STS_UNEXP_ERROR',
1400         x_msg_count,
1401         x_msg_data,
1402         '_Pvt'
1403       );
1404     APP_EXCEPTION.RAISE_EXCEPTION;
1405     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1406       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1407       (
1408         l_api_name,
1409         G_PKG_NAME,
1410         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1411         x_msg_count,
1412         x_msg_data,
1413         '_Pvt'
1414       );
1415     APP_EXCEPTION.RAISE_EXCEPTION;
1416   END lock_row;
1417   Procedure update_row
1418   (
1419     p_api_version                  IN NUMBER,
1420     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1421     p_validation_level             IN NUMBER,
1422     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1423     x_return_status                OUT VARCHAR2,
1424     x_msg_count                    OUT NUMBER,
1425     x_msg_data                     OUT VARCHAR2,
1426     p_service_val_rec              IN Service_Val_Rec_Type := G_MISS_SERVICE_VAL_REC) IS
1427     l_api_name                     CONSTANT VARCHAR2(30) := 'update_row';
1428     l_api_version                  CONSTANT NUMBER := 1;
1429     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1430     l_service_rec                  Service_Rec_Type;
1431     l_def_service_rec              Service_Rec_Type;
1432     FUNCTION populate_new_record (
1433       p_service_rec	IN Service_Rec_Type,
1434       x_service_rec	OUT Service_Rec_Type
1435     ) RETURN VARCHAR2 IS
1436       CURSOR cs_cp_services_pk_csr (p_cp_service_id      IN NUMBER) IS
1437       SELECT *
1438         FROM Cs_Cp_Services
1439        WHERE cs_cp_services.cp_service_id = p_cp_service_id;
1440       l_cs_cp_services_pk            cs_cp_services_pk_csr%ROWTYPE;
1441       l_row_notfound		BOOLEAN := TRUE;
1442       l_return_status		VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
1443     BEGIN
1444       x_service_rec := p_service_rec;
1445       -- Get current database values
1446       OPEN cs_cp_services_pk_csr (p_service_rec.cp_service_id);
1447       FETCH cs_cp_services_pk_csr INTO l_cs_cp_services_pk;
1448       l_row_notfound := cs_cp_services_pk_csr%NOTFOUND;
1449       CLOSE cs_cp_services_pk_csr;
1450       IF (l_row_notfound) THEN
1451         l_return_status := FND_API.G_RET_STS_ERROR;
1452       END IF;
1453       IF (x_service_rec.cp_service_id = TAPI_DEV_KIT.G_MISS_NUM)
1454       THEN
1455         x_service_rec.cp_service_id := l_cs_cp_services_pk.cp_service_id;
1456       END IF;
1457       IF (x_service_rec.customer_product_id = TAPI_DEV_KIT.G_MISS_NUM)
1458       THEN
1459         x_service_rec.customer_product_id := l_cs_cp_services_pk.customer_product_id;
1460       END IF;
1461       IF (x_service_rec.contract_line_status_id = TAPI_DEV_KIT.G_MISS_NUM)
1462       THEN
1463         x_service_rec.contract_line_status_id := l_cs_cp_services_pk.contract_line_status_id;
1464       END IF;
1465       IF (x_service_rec.contract_line_template_id = TAPI_DEV_KIT.G_MISS_NUM)
1466       THEN
1467         x_service_rec.contract_line_template_id := l_cs_cp_services_pk.contract_line_template_id;
1468       END IF;
1469       IF (x_service_rec.contract_id = TAPI_DEV_KIT.G_MISS_NUM)
1470       THEN
1471         x_service_rec.contract_id := l_cs_cp_services_pk.contract_id;
1472       END IF;
1473       IF (x_service_rec.service_inventory_item_id = TAPI_DEV_KIT.G_MISS_NUM)
1474       THEN
1475         x_service_rec.service_inventory_item_id := l_cs_cp_services_pk.service_inventory_item_id;
1476       END IF;
1477       IF (x_service_rec.service_manufacturing_org_id = TAPI_DEV_KIT.G_MISS_NUM)
1478       THEN
1479         x_service_rec.service_manufacturing_org_id := l_cs_cp_services_pk.service_manufacturing_org_id;
1480       END IF;
1481       IF (x_service_rec.status_code = TAPI_DEV_KIT.G_MISS_CHAR)
1482       THEN
1483         x_service_rec.status_code := l_cs_cp_services_pk.status_code;
1484       END IF;
1485       IF (x_service_rec.last_cp_service_transaction_id = TAPI_DEV_KIT.G_MISS_NUM)
1486       THEN
1487         x_service_rec.last_cp_service_transaction_id := l_cs_cp_services_pk.last_cp_service_transaction_id;
1488       END IF;
1489       IF (x_service_rec.invoice_flag = TAPI_DEV_KIT.G_MISS_CHAR)
1490       THEN
1491         x_service_rec.invoice_flag := l_cs_cp_services_pk.invoice_flag;
1492       END IF;
1493       IF (x_service_rec.coverage_schedule_id = TAPI_DEV_KIT.G_MISS_NUM)
1494       THEN
1495         x_service_rec.coverage_schedule_id := l_cs_cp_services_pk.coverage_schedule_id;
1496       END IF;
1497       IF (x_service_rec.prorate_flag = TAPI_DEV_KIT.G_MISS_CHAR)
1498       THEN
1499         x_service_rec.prorate_flag := l_cs_cp_services_pk.prorate_flag;
1500       END IF;
1501       IF (x_service_rec.duration_quantity = TAPI_DEV_KIT.G_MISS_NUM)
1502       THEN
1503         x_service_rec.duration_quantity := l_cs_cp_services_pk.duration_quantity;
1504       END IF;
1505       IF (x_service_rec.unit_of_measure_code = TAPI_DEV_KIT.G_MISS_CHAR)
1506       THEN
1507         x_service_rec.unit_of_measure_code := l_cs_cp_services_pk.unit_of_measure_code;
1508       END IF;
1509       IF (x_service_rec.starting_delay = TAPI_DEV_KIT.G_MISS_NUM)
1510       THEN
1511         x_service_rec.starting_delay := l_cs_cp_services_pk.starting_delay;
1512       END IF;
1513       IF (x_service_rec.bill_to_site_use_id = TAPI_DEV_KIT.G_MISS_NUM)
1514       THEN
1515         x_service_rec.bill_to_site_use_id := l_cs_cp_services_pk.bill_to_site_use_id;
1516       END IF;
1517       IF (x_service_rec.bill_to_contact_id = TAPI_DEV_KIT.G_MISS_NUM)
1518       THEN
1519         x_service_rec.bill_to_contact_id := l_cs_cp_services_pk.bill_to_contact_id;
1520       END IF;
1521       IF (x_service_rec.service_txn_availability_code = TAPI_DEV_KIT.G_MISS_CHAR)
1522       THEN
1523         x_service_rec.service_txn_availability_code := l_cs_cp_services_pk.service_txn_availability_code;
1524       END IF;
1525       IF (x_service_rec.next_pm_visit_date = TAPI_DEV_KIT.G_MISS_DATE)
1526       THEN
1527         x_service_rec.next_pm_visit_date := l_cs_cp_services_pk.next_pm_visit_date;
1528       END IF;
1529       IF (x_service_rec.pm_visits_completed = TAPI_DEV_KIT.G_MISS_NUM)
1530       THEN
1531         x_service_rec.pm_visits_completed := l_cs_cp_services_pk.pm_visits_completed;
1532       END IF;
1533       IF (x_service_rec.last_pm_visit_date = TAPI_DEV_KIT.G_MISS_DATE)
1534       THEN
1535         x_service_rec.last_pm_visit_date := l_cs_cp_services_pk.last_pm_visit_date;
1536       END IF;
1537       IF (x_service_rec.pm_schedule_id = TAPI_DEV_KIT.G_MISS_NUM)
1538       THEN
1539         x_service_rec.pm_schedule_id := l_cs_cp_services_pk.pm_schedule_id;
1540       END IF;
1541       IF (x_service_rec.pm_schedule_flag = TAPI_DEV_KIT.G_MISS_CHAR)
1542       THEN
1543         x_service_rec.pm_schedule_flag := l_cs_cp_services_pk.pm_schedule_flag;
1544       END IF;
1545       IF (x_service_rec.current_max_schedule_date = TAPI_DEV_KIT.G_MISS_DATE)
1546       THEN
1547         x_service_rec.current_max_schedule_date := l_cs_cp_services_pk.current_max_schedule_date;
1548       END IF;
1549       IF (x_service_rec.price_list_id = TAPI_DEV_KIT.G_MISS_NUM)
1550       THEN
1551         x_service_rec.price_list_id := l_cs_cp_services_pk.price_list_id;
1552       END IF;
1553       IF (x_service_rec.service_order_type = TAPI_DEV_KIT.G_MISS_CHAR)
1554       THEN
1555         x_service_rec.service_order_type := l_cs_cp_services_pk.service_order_type;
1556       END IF;
1557       IF (x_service_rec.invoice_count = TAPI_DEV_KIT.G_MISS_NUM)
1558       THEN
1559         x_service_rec.invoice_count := l_cs_cp_services_pk.invoice_count;
1560       END IF;
1561       IF (x_service_rec.currency_code = TAPI_DEV_KIT.G_MISS_CHAR)
1562       THEN
1563         x_service_rec.currency_code := l_cs_cp_services_pk.currency_code;
1564       END IF;
1565       IF (x_service_rec.conversion_type = TAPI_DEV_KIT.G_MISS_CHAR)
1566       THEN
1567         x_service_rec.conversion_type := l_cs_cp_services_pk.conversion_type;
1568       END IF;
1569       IF (x_service_rec.conversion_rate = TAPI_DEV_KIT.G_MISS_NUM)
1570       THEN
1571         x_service_rec.conversion_rate := l_cs_cp_services_pk.conversion_rate;
1572       END IF;
1573       IF (x_service_rec.conversion_date = TAPI_DEV_KIT.G_MISS_DATE)
1574       THEN
1575         x_service_rec.conversion_date := l_cs_cp_services_pk.conversion_date;
1576       END IF;
1577       IF (x_service_rec.original_service_line_id = TAPI_DEV_KIT.G_MISS_NUM)
1578       THEN
1579         x_service_rec.original_service_line_id := l_cs_cp_services_pk.original_service_line_id;
1580       END IF;
1581       IF (x_service_rec.warranty_flag = TAPI_DEV_KIT.G_MISS_CHAR)
1582       THEN
1583         x_service_rec.warranty_flag := l_cs_cp_services_pk.warranty_flag;
1584       END IF;
1585       IF (x_service_rec.original_start_date = TAPI_DEV_KIT.G_MISS_DATE)
1586       THEN
1587         x_service_rec.original_start_date := l_cs_cp_services_pk.original_start_date;
1588       END IF;
1589       IF (x_service_rec.original_end_date = TAPI_DEV_KIT.G_MISS_DATE)
1590       THEN
1591         x_service_rec.original_end_date := l_cs_cp_services_pk.original_end_date;
1592       END IF;
1593       IF (x_service_rec.service_date_change = TAPI_DEV_KIT.G_MISS_CHAR)
1594       THEN
1595         x_service_rec.service_date_change := l_cs_cp_services_pk.service_date_change;
1596       END IF;
1597       IF (x_service_rec.workflow = TAPI_DEV_KIT.G_MISS_CHAR)
1598       THEN
1599         x_service_rec.workflow := l_cs_cp_services_pk.workflow;
1600       END IF;
1601       IF (x_service_rec.ship_to_site_use_id = TAPI_DEV_KIT.G_MISS_NUM)
1602       THEN
1603         x_service_rec.ship_to_site_use_id := l_cs_cp_services_pk.ship_to_site_use_id;
1604       END IF;
1605       IF (x_service_rec.original_system_line_reference = TAPI_DEV_KIT.G_MISS_CHAR)
1606       THEN
1607         x_service_rec.original_system_line_reference := l_cs_cp_services_pk.original_system_line_reference;
1608       END IF;
1609       IF (x_service_rec.extended_price = TAPI_DEV_KIT.G_MISS_NUM)
1610       THEN
1611         x_service_rec.extended_price := l_cs_cp_services_pk.extended_price;
1612       END IF;
1613       IF (x_service_rec.discount_id = TAPI_DEV_KIT.G_MISS_NUM)
1614       THEN
1615         x_service_rec.discount_id := l_cs_cp_services_pk.discount_id;
1616       END IF;
1617       IF (x_service_rec.tax_code = TAPI_DEV_KIT.G_MISS_CHAR)
1618       THEN
1619         x_service_rec.tax_code := l_cs_cp_services_pk.tax_code;
1620       END IF;
1621       IF (x_service_rec.billing_frequency_period = TAPI_DEV_KIT.G_MISS_CHAR)
1622       THEN
1623         x_service_rec.billing_frequency_period := l_cs_cp_services_pk.billing_frequency_period;
1624       END IF;
1625       IF (x_service_rec.first_bill_date = TAPI_DEV_KIT.G_MISS_DATE)
1626       THEN
1627         x_service_rec.first_bill_date := l_cs_cp_services_pk.first_bill_date;
1628       END IF;
1629       IF (x_service_rec.next_bill_date = TAPI_DEV_KIT.G_MISS_DATE)
1630       THEN
1631         x_service_rec.next_bill_date := l_cs_cp_services_pk.next_bill_date;
1632       END IF;
1633       IF (x_service_rec.creation_date = TAPI_DEV_KIT.G_MISS_DATE)
1634       THEN
1635         x_service_rec.creation_date := l_cs_cp_services_pk.creation_date;
1636       END IF;
1637       IF (x_service_rec.bill_on = TAPI_DEV_KIT.G_MISS_NUM)
1638       THEN
1639         x_service_rec.bill_on := l_cs_cp_services_pk.bill_on;
1640       END IF;
1641       IF (x_service_rec.created_by = TAPI_DEV_KIT.G_MISS_NUM)
1642       THEN
1643         x_service_rec.created_by := l_cs_cp_services_pk.created_by;
1644       END IF;
1645       IF (x_service_rec.last_update_date = TAPI_DEV_KIT.G_MISS_DATE)
1646       THEN
1647         x_service_rec.last_update_date := l_cs_cp_services_pk.last_update_date;
1648       END IF;
1649       IF (x_service_rec.last_updated_by = TAPI_DEV_KIT.G_MISS_NUM)
1650       THEN
1651         x_service_rec.last_updated_by := l_cs_cp_services_pk.last_updated_by;
1652       END IF;
1653       IF (x_service_rec.last_update_login = TAPI_DEV_KIT.G_MISS_NUM)
1654       THEN
1655         x_service_rec.last_update_login := l_cs_cp_services_pk.last_update_login;
1656       END IF;
1657       IF (x_service_rec.start_date_active = TAPI_DEV_KIT.G_MISS_DATE)
1658       THEN
1659         x_service_rec.start_date_active := l_cs_cp_services_pk.start_date_active;
1660       END IF;
1661       IF (x_service_rec.end_date_active = TAPI_DEV_KIT.G_MISS_DATE)
1662       THEN
1663         x_service_rec.end_date_active := l_cs_cp_services_pk.end_date_active;
1664       END IF;
1665       IF (x_service_rec.pricing_attribute1 = TAPI_DEV_KIT.G_MISS_CHAR)
1666       THEN
1667         x_service_rec.pricing_attribute1 := l_cs_cp_services_pk.pricing_attribute1;
1668       END IF;
1669       IF (x_service_rec.pricing_attribute2 = TAPI_DEV_KIT.G_MISS_CHAR)
1670       THEN
1671         x_service_rec.pricing_attribute2 := l_cs_cp_services_pk.pricing_attribute2;
1672       END IF;
1673       IF (x_service_rec.pricing_attribute3 = TAPI_DEV_KIT.G_MISS_CHAR)
1674       THEN
1675         x_service_rec.pricing_attribute3 := l_cs_cp_services_pk.pricing_attribute3;
1676       END IF;
1677       IF (x_service_rec.pricing_attribute4 = TAPI_DEV_KIT.G_MISS_CHAR)
1678       THEN
1679         x_service_rec.pricing_attribute4 := l_cs_cp_services_pk.pricing_attribute4;
1680       END IF;
1681       IF (x_service_rec.pricing_attribute5 = TAPI_DEV_KIT.G_MISS_CHAR)
1682       THEN
1683         x_service_rec.pricing_attribute5 := l_cs_cp_services_pk.pricing_attribute5;
1684       END IF;
1685       IF (x_service_rec.pricing_attribute6 = TAPI_DEV_KIT.G_MISS_CHAR)
1686       THEN
1687         x_service_rec.pricing_attribute6 := l_cs_cp_services_pk.pricing_attribute6;
1688       END IF;
1689       IF (x_service_rec.pricing_attribute7 = TAPI_DEV_KIT.G_MISS_CHAR)
1690       THEN
1691         x_service_rec.pricing_attribute7 := l_cs_cp_services_pk.pricing_attribute7;
1692       END IF;
1693       IF (x_service_rec.pricing_attribute8 = TAPI_DEV_KIT.G_MISS_CHAR)
1694       THEN
1695         x_service_rec.pricing_attribute8 := l_cs_cp_services_pk.pricing_attribute8;
1696       END IF;
1697       IF (x_service_rec.pricing_attribute9 = TAPI_DEV_KIT.G_MISS_CHAR)
1698       THEN
1699         x_service_rec.pricing_attribute9 := l_cs_cp_services_pk.pricing_attribute9;
1700       END IF;
1701       IF (x_service_rec.pricing_attribute10 = TAPI_DEV_KIT.G_MISS_CHAR)
1702       THEN
1703         x_service_rec.pricing_attribute10 := l_cs_cp_services_pk.pricing_attribute10;
1704       END IF;
1705       IF (x_service_rec.pricing_attribute11 = TAPI_DEV_KIT.G_MISS_CHAR)
1706       THEN
1707         x_service_rec.pricing_attribute11 := l_cs_cp_services_pk.pricing_attribute11;
1708       END IF;
1709       IF (x_service_rec.pricing_attribute12 = TAPI_DEV_KIT.G_MISS_CHAR)
1710       THEN
1711         x_service_rec.pricing_attribute12 := l_cs_cp_services_pk.pricing_attribute12;
1712       END IF;
1713       IF (x_service_rec.pricing_attribute13 = TAPI_DEV_KIT.G_MISS_CHAR)
1714       THEN
1715         x_service_rec.pricing_attribute13 := l_cs_cp_services_pk.pricing_attribute13;
1716       END IF;
1717       IF (x_service_rec.pricing_attribute14 = TAPI_DEV_KIT.G_MISS_CHAR)
1718       THEN
1719         x_service_rec.pricing_attribute14 := l_cs_cp_services_pk.pricing_attribute14;
1720       END IF;
1721       IF (x_service_rec.pricing_attribute15 = TAPI_DEV_KIT.G_MISS_CHAR)
1722       THEN
1723         x_service_rec.pricing_attribute15 := l_cs_cp_services_pk.pricing_attribute15;
1724       END IF;
1725       IF (x_service_rec.pricing_context = TAPI_DEV_KIT.G_MISS_CHAR)
1726       THEN
1727         x_service_rec.pricing_context := l_cs_cp_services_pk.pricing_context;
1728       END IF;
1729       IF (x_service_rec.attribute1 = TAPI_DEV_KIT.G_MISS_CHAR)
1730       THEN
1731         x_service_rec.attribute1 := l_cs_cp_services_pk.attribute1;
1732       END IF;
1733       IF (x_service_rec.attribute2 = TAPI_DEV_KIT.G_MISS_CHAR)
1734       THEN
1735         x_service_rec.attribute2 := l_cs_cp_services_pk.attribute2;
1736       END IF;
1737       IF (x_service_rec.attribute3 = TAPI_DEV_KIT.G_MISS_CHAR)
1738       THEN
1739         x_service_rec.attribute3 := l_cs_cp_services_pk.attribute3;
1740       END IF;
1741       IF (x_service_rec.attribute4 = TAPI_DEV_KIT.G_MISS_CHAR)
1742       THEN
1743         x_service_rec.attribute4 := l_cs_cp_services_pk.attribute4;
1744       END IF;
1745       IF (x_service_rec.attribute5 = TAPI_DEV_KIT.G_MISS_CHAR)
1746       THEN
1747         x_service_rec.attribute5 := l_cs_cp_services_pk.attribute5;
1748       END IF;
1749       IF (x_service_rec.attribute6 = TAPI_DEV_KIT.G_MISS_CHAR)
1750       THEN
1751         x_service_rec.attribute6 := l_cs_cp_services_pk.attribute6;
1752       END IF;
1753       IF (x_service_rec.attribute7 = TAPI_DEV_KIT.G_MISS_CHAR)
1754       THEN
1755         x_service_rec.attribute7 := l_cs_cp_services_pk.attribute7;
1756       END IF;
1757       IF (x_service_rec.attribute8 = TAPI_DEV_KIT.G_MISS_CHAR)
1758       THEN
1759         x_service_rec.attribute8 := l_cs_cp_services_pk.attribute8;
1760       END IF;
1761       IF (x_service_rec.attribute9 = TAPI_DEV_KIT.G_MISS_CHAR)
1762       THEN
1763         x_service_rec.attribute9 := l_cs_cp_services_pk.attribute9;
1764       END IF;
1765       IF (x_service_rec.attribute10 = TAPI_DEV_KIT.G_MISS_CHAR)
1766       THEN
1767         x_service_rec.attribute10 := l_cs_cp_services_pk.attribute10;
1768       END IF;
1769       IF (x_service_rec.attribute11 = TAPI_DEV_KIT.G_MISS_CHAR)
1770       THEN
1771         x_service_rec.attribute11 := l_cs_cp_services_pk.attribute11;
1772       END IF;
1773       IF (x_service_rec.attribute12 = TAPI_DEV_KIT.G_MISS_CHAR)
1774       THEN
1775         x_service_rec.attribute12 := l_cs_cp_services_pk.attribute12;
1776       END IF;
1777       IF (x_service_rec.attribute13 = TAPI_DEV_KIT.G_MISS_CHAR)
1778       THEN
1779         x_service_rec.attribute13 := l_cs_cp_services_pk.attribute13;
1780       END IF;
1781       IF (x_service_rec.attribute14 = TAPI_DEV_KIT.G_MISS_CHAR)
1782       THEN
1783         x_service_rec.attribute14 := l_cs_cp_services_pk.attribute14;
1784       END IF;
1785       IF (x_service_rec.attribute15 = TAPI_DEV_KIT.G_MISS_CHAR)
1786       THEN
1787         x_service_rec.attribute15 := l_cs_cp_services_pk.attribute15;
1788       END IF;
1789       IF (x_service_rec.context = TAPI_DEV_KIT.G_MISS_CHAR)
1790       THEN
1791         x_service_rec.context := l_cs_cp_services_pk.context;
1792       END IF;
1793       IF (x_service_rec.list_price = TAPI_DEV_KIT.G_MISS_NUM)
1794       THEN
1795         x_service_rec.list_price := l_cs_cp_services_pk.list_price;
1796       END IF;
1797       IF (x_service_rec.org_id = TAPI_DEV_KIT.G_MISS_NUM)
1798       THEN
1799         x_service_rec.org_id := l_cs_cp_services_pk.org_id;
1800       END IF;
1801       IF (x_service_rec.price_percent = TAPI_DEV_KIT.G_MISS_NUM)
1802       THEN
1803         x_service_rec.price_percent := l_cs_cp_services_pk.price_percent;
1804       END IF;
1805       RETURN(l_return_status);
1806     END populate_new_record;
1807   BEGIN
1808     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
1809                                               G_PKG_NAME,
1810                                               l_api_version,
1811                                               p_api_version,
1812                                               p_init_msg_list,
1813                                               '_Pvt',
1814                                               x_return_status);
1815     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1816       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1817     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1818       RAISE FND_API.G_EXC_ERROR;
1819     END IF;
1820     migrate(p_service_val_rec, l_service_rec);
1821     --- Defaulting item attributes
1822     l_return_status := Default_Item_Attributes
1823     (
1824       l_service_rec,    ---- IN
1825       l_def_service_rec
1826     );
1827     --- If any errors happen abort API
1828     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1829       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1830     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1831       RAISE FND_API.G_EXC_ERROR;
1832     END IF;
1833     l_return_status := populate_new_record(l_def_service_rec, l_def_service_rec);
1834     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1835       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1836     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1837       RAISE FND_API.G_EXC_ERROR;
1838     END IF;
1839     --- Validate all non-missing attributes (Item Level Validation)
1840     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
1841       l_return_status := Validate_Item_Attributes
1842       (
1843         l_def_service_rec    ---- IN
1844       );
1845       --- If any errors happen abort API
1846       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1847         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1848       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1849         RAISE FND_API.G_EXC_ERROR;
1850       END IF;
1851     END IF;
1852     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
1853       l_return_status := Validate_Item_Record(l_def_service_rec);
1854       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1855         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1856       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
1857         RAISE FND_API.G_EXC_ERROR;
1858       END IF;
1859     END IF;
1860     UPDATE  CS_CP_SERVICES
1861     SET
1862         CP_SERVICE_ID = l_def_service_rec.cp_service_id ,
1863         CUSTOMER_PRODUCT_ID = l_def_service_rec.customer_product_id ,
1864         CONTRACT_LINE_STATUS_ID = l_def_service_rec.contract_line_status_id ,
1865         CONTRACT_LINE_TEMPLATE_ID = l_def_service_rec.contract_line_template_id ,
1866         CONTRACT_ID = l_def_service_rec.contract_id ,
1867         SERVICE_INVENTORY_ITEM_ID = l_def_service_rec.service_inventory_item_id ,
1868         SERVICE_MANUFACTURING_ORG_ID = l_def_service_rec.service_manufacturing_org_id ,
1869         STATUS_CODE = l_def_service_rec.status_code ,
1870         LAST_CP_SERVICE_TRANSACTION_ID = l_def_service_rec.last_cp_service_transaction_id ,
1871         INVOICE_FLAG = l_def_service_rec.invoice_flag ,
1872         COVERAGE_SCHEDULE_ID = l_def_service_rec.coverage_schedule_id ,
1873         PRORATE_FLAG = l_def_service_rec.prorate_flag ,
1874         DURATION_QUANTITY = l_def_service_rec.duration_quantity ,
1875         UNIT_OF_MEASURE_CODE = l_def_service_rec.unit_of_measure_code ,
1876         STARTING_DELAY = l_def_service_rec.starting_delay ,
1877         BILL_TO_SITE_USE_ID = l_def_service_rec.bill_to_site_use_id ,
1878         BILL_TO_CONTACT_ID = l_def_service_rec.bill_to_contact_id ,
1879         SERVICE_TXN_AVAILABILITY_CODE = l_def_service_rec.service_txn_availability_code ,
1880         NEXT_PM_VISIT_DATE = l_def_service_rec.next_pm_visit_date ,
1881         PM_VISITS_COMPLETED = l_def_service_rec.pm_visits_completed ,
1882         LAST_PM_VISIT_DATE = l_def_service_rec.last_pm_visit_date ,
1883         PM_SCHEDULE_ID = l_def_service_rec.pm_schedule_id ,
1884         PM_SCHEDULE_FLAG = l_def_service_rec.pm_schedule_flag ,
1885         CURRENT_MAX_SCHEDULE_DATE = l_def_service_rec.current_max_schedule_date ,
1886         PRICE_LIST_ID = l_def_service_rec.price_list_id ,
1887         SERVICE_ORDER_TYPE = l_def_service_rec.service_order_type ,
1888         INVOICE_COUNT = l_def_service_rec.invoice_count ,
1889         CURRENCY_CODE = l_def_service_rec.currency_code ,
1890         CONVERSION_TYPE = l_def_service_rec.conversion_type ,
1891         CONVERSION_RATE = l_def_service_rec.conversion_rate ,
1892         CONVERSION_DATE = l_def_service_rec.conversion_date ,
1893         ORIGINAL_SERVICE_LINE_ID = l_def_service_rec.original_service_line_id ,
1894         WARRANTY_FLAG = l_def_service_rec.warranty_flag ,
1895         ORIGINAL_START_DATE = l_def_service_rec.original_start_date ,
1896         ORIGINAL_END_DATE = l_def_service_rec.original_end_date ,
1897         SERVICE_DATE_CHANGE = l_def_service_rec.service_date_change ,
1898         WORKFLOW = l_def_service_rec.workflow ,
1899         SHIP_TO_SITE_USE_ID = l_def_service_rec.ship_to_site_use_id ,
1900         ORIGINAL_SYSTEM_LINE_REFERENCE = l_def_service_rec.original_system_line_reference ,
1901         EXTENDED_PRICE = l_def_service_rec.extended_price ,
1902         DISCOUNT_ID = l_def_service_rec.discount_id ,
1903         TAX_CODE = l_def_service_rec.tax_code ,
1904         BILLING_FREQUENCY_PERIOD = l_def_service_rec.billing_frequency_period ,
1905         FIRST_BILL_DATE = l_def_service_rec.first_bill_date ,
1906         NEXT_BILL_DATE = l_def_service_rec.next_bill_date ,
1907         CREATION_DATE = l_def_service_rec.creation_date ,
1908         BILL_ON = l_def_service_rec.bill_on ,
1909         CREATED_BY = l_def_service_rec.created_by ,
1910         LAST_UPDATE_DATE = l_def_service_rec.last_update_date ,
1911         LAST_UPDATED_BY = l_def_service_rec.last_updated_by ,
1912         LAST_UPDATE_LOGIN = l_def_service_rec.last_update_login ,
1913         START_DATE_ACTIVE = l_def_service_rec.start_date_active ,
1914         END_DATE_ACTIVE = l_def_service_rec.end_date_active ,
1915         PRICING_ATTRIBUTE1 = l_def_service_rec.pricing_attribute1 ,
1916         PRICING_ATTRIBUTE2 = l_def_service_rec.pricing_attribute2 ,
1917         PRICING_ATTRIBUTE3 = l_def_service_rec.pricing_attribute3 ,
1918         PRICING_ATTRIBUTE4 = l_def_service_rec.pricing_attribute4 ,
1919         PRICING_ATTRIBUTE5 = l_def_service_rec.pricing_attribute5 ,
1920         PRICING_ATTRIBUTE6 = l_def_service_rec.pricing_attribute6 ,
1921         PRICING_ATTRIBUTE7 = l_def_service_rec.pricing_attribute7 ,
1922         PRICING_ATTRIBUTE8 = l_def_service_rec.pricing_attribute8 ,
1923         PRICING_ATTRIBUTE9 = l_def_service_rec.pricing_attribute9 ,
1924         PRICING_ATTRIBUTE10 = l_def_service_rec.pricing_attribute10 ,
1925         PRICING_ATTRIBUTE11 = l_def_service_rec.pricing_attribute11 ,
1926         PRICING_ATTRIBUTE12 = l_def_service_rec.pricing_attribute12 ,
1927         PRICING_ATTRIBUTE13 = l_def_service_rec.pricing_attribute13 ,
1928         PRICING_ATTRIBUTE14 = l_def_service_rec.pricing_attribute14 ,
1929         PRICING_ATTRIBUTE15 = l_def_service_rec.pricing_attribute15 ,
1930         PRICING_CONTEXT = l_def_service_rec.pricing_context ,
1931         ATTRIBUTE1 = l_def_service_rec.attribute1 ,
1932         ATTRIBUTE2 = l_def_service_rec.attribute2 ,
1933         ATTRIBUTE3 = l_def_service_rec.attribute3 ,
1934         ATTRIBUTE4 = l_def_service_rec.attribute4 ,
1935         ATTRIBUTE5 = l_def_service_rec.attribute5 ,
1936         ATTRIBUTE6 = l_def_service_rec.attribute6 ,
1937         ATTRIBUTE7 = l_def_service_rec.attribute7 ,
1938         ATTRIBUTE8 = l_def_service_rec.attribute8 ,
1939         ATTRIBUTE9 = l_def_service_rec.attribute9 ,
1940         ATTRIBUTE10 = l_def_service_rec.attribute10 ,
1941         ATTRIBUTE11 = l_def_service_rec.attribute11 ,
1942         ATTRIBUTE12 = l_def_service_rec.attribute12 ,
1943         ATTRIBUTE13 = l_def_service_rec.attribute13 ,
1944         ATTRIBUTE14 = l_def_service_rec.attribute14 ,
1945         ATTRIBUTE15 = l_def_service_rec.attribute15 ,
1946         CONTEXT = l_def_service_rec.context ,
1947         LIST_PRICE = l_def_service_rec.list_price ,
1948         ORG_ID = l_def_service_rec.org_id ,
1949         PRICE_PERCENT = l_def_service_rec.price_percent
1950         WHERE
1951           CP_SERVICE_ID = l_def_service_rec.cp_service_id
1952           ;
1953     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
1954   EXCEPTION
1955     WHEN FND_API.G_EXC_ERROR THEN
1956       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1957       (
1958         l_api_name,
1959         G_PKG_NAME,
1960         'FND_API.G_RET_STS_ERROR',
1961         x_msg_count,
1962         x_msg_data,
1963         '_Pvt'
1964       );
1965     APP_EXCEPTION.RAISE_EXCEPTION;
1966     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1967       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1968       (
1969         l_api_name,
1970         G_PKG_NAME,
1971         'FND_API.G_RET_STS_UNEXP_ERROR',
1972         x_msg_count,
1973         x_msg_data,
1974         '_Pvt'
1975       );
1976     APP_EXCEPTION.RAISE_EXCEPTION;
1977     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
1978       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
1979       (
1980         l_api_name,
1981         G_PKG_NAME,
1982         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
1983         x_msg_count,
1984         x_msg_data,
1985         '_Pvt'
1986       );
1987     APP_EXCEPTION.RAISE_EXCEPTION;
1988   END update_row;
1989   Procedure update_row
1990   (
1991     p_api_version                  IN NUMBER,
1992     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1993     p_validation_level             IN NUMBER,
1994     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
1995     x_return_status                OUT VARCHAR2,
1996     x_msg_count                    OUT NUMBER,
1997     x_msg_data                     OUT VARCHAR2,
1998     p_cp_service_id                IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
1999     p_customer_product_id          IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2000     p_contract_line_status_id      IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2004     p_service_manufacturing_org_id  IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2001     p_contract_line_template_id    IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2002     p_contract_id                  IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2003     p_service_inventory_item_id    IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2005     p_status_code                  IN CS_CP_SERVICES.STATUS_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2006     p_lst_cp_srvic_trnsctin_id     IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2007     p_invoice_flag                 IN CS_CP_SERVICES.INVOICE_FLAG%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2008     p_coverage_schedule_id         IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2009     p_prorate_flag                 IN CS_CP_SERVICES.PRORATE_FLAG%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2010     p_duration_quantity            IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2011     p_unit_of_measure_code         IN CS_CP_SERVICES.UNIT_OF_MEASURE_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2012     p_starting_delay               IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2013     p_bill_to_site_use_id          IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2014     p_bill_to_contact_id           IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2015     p_srvic_txn_vilbility_cd       IN CS_CP_SERVICES.SERVICE_TXN_AVAILABILITY_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2016     p_next_pm_visit_date           IN CS_CP_SERVICES.NEXT_PM_VISIT_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2017     p_pm_visits_completed          IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2018     p_last_pm_visit_date           IN CS_CP_SERVICES.LAST_PM_VISIT_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2019     p_pm_schedule_id               IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2020     p_pm_schedule_flag             IN CS_CP_SERVICES.PM_SCHEDULE_FLAG%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2021     p_current_max_schedule_date    IN CS_CP_SERVICES.CURRENT_MAX_SCHEDULE_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2022     p_price_list_id                IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2023     p_service_order_type           IN CS_CP_SERVICES.SERVICE_ORDER_TYPE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2024     p_invoice_count                IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2025     p_currency_code                IN CS_CP_SERVICES.CURRENCY_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2026     p_conversion_type              IN CS_CP_SERVICES.CONVERSION_TYPE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2027     p_conversion_rate              IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2028     p_conversion_date              IN CS_CP_SERVICES.CONVERSION_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2029     p_original_service_line_id     IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2030     p_warranty_flag                IN CS_CP_SERVICES.WARRANTY_FLAG%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2031     p_original_start_date          IN CS_CP_SERVICES.ORIGINAL_START_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2032     p_original_end_date            IN CS_CP_SERVICES.ORIGINAL_END_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2033     p_service_date_change          IN CS_CP_SERVICES.SERVICE_DATE_CHANGE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2034     p_workflow                     IN CS_CP_SERVICES.WORKFLOW%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2035     p_ship_to_site_use_id          IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2036     p_riginl_systm_lin_rfrnc       IN CS_CP_SERVICES.ORIGINAL_SYSTEM_LINE_REFERENCE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2037     p_extended_price               IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2038     p_discount_id                  IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2039     p_tax_code                     IN CS_CP_SERVICES.TAX_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2040     p_billing_frequency_period     IN CS_CP_SERVICES.BILLING_FREQUENCY_PERIOD%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2041     p_first_bill_date              IN CS_CP_SERVICES.FIRST_BILL_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2042     p_next_bill_date               IN CS_CP_SERVICES.NEXT_BILL_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2043     p_creation_date                IN CS_CP_SERVICES.CREATION_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2044     p_bill_on                      IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2045     p_created_by                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2046     p_last_update_date             IN CS_CP_SERVICES.LAST_UPDATE_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2047     p_last_updated_by              IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2048     p_last_update_login            IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2049     p_start_date_active            IN CS_CP_SERVICES.START_DATE_ACTIVE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2050     p_end_date_active              IN CS_CP_SERVICES.END_DATE_ACTIVE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2051     p_pricing_attribute1           IN CS_CP_SERVICES.PRICING_ATTRIBUTE1%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2052     p_pricing_attribute2           IN CS_CP_SERVICES.PRICING_ATTRIBUTE2%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2053     p_pricing_attribute3           IN CS_CP_SERVICES.PRICING_ATTRIBUTE3%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2054     p_pricing_attribute4           IN CS_CP_SERVICES.PRICING_ATTRIBUTE4%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2055     p_pricing_attribute5           IN CS_CP_SERVICES.PRICING_ATTRIBUTE5%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2056     p_pricing_attribute6           IN CS_CP_SERVICES.PRICING_ATTRIBUTE6%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2057     p_pricing_attribute7           IN CS_CP_SERVICES.PRICING_ATTRIBUTE7%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2058     p_pricing_attribute8           IN CS_CP_SERVICES.PRICING_ATTRIBUTE8%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2059     p_pricing_attribute9           IN CS_CP_SERVICES.PRICING_ATTRIBUTE9%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2060     p_pricing_attribute10          IN CS_CP_SERVICES.PRICING_ATTRIBUTE10%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2061     p_pricing_attribute11          IN CS_CP_SERVICES.PRICING_ATTRIBUTE11%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2062     p_pricing_attribute12          IN CS_CP_SERVICES.PRICING_ATTRIBUTE12%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2063     p_pricing_attribute13          IN CS_CP_SERVICES.PRICING_ATTRIBUTE13%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2064     p_pricing_attribute14          IN CS_CP_SERVICES.PRICING_ATTRIBUTE14%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2065     p_pricing_attribute15          IN CS_CP_SERVICES.PRICING_ATTRIBUTE15%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2066     p_pricing_context              IN CS_CP_SERVICES.PRICING_CONTEXT%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2070     p_attribute4                   IN CS_CP_SERVICES.ATTRIBUTE4%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2067     p_attribute1                   IN CS_CP_SERVICES.ATTRIBUTE1%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2068     p_attribute2                   IN CS_CP_SERVICES.ATTRIBUTE2%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2069     p_attribute3                   IN CS_CP_SERVICES.ATTRIBUTE3%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2071     p_attribute5                   IN CS_CP_SERVICES.ATTRIBUTE5%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2072     p_attribute6                   IN CS_CP_SERVICES.ATTRIBUTE6%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2073     p_attribute7                   IN CS_CP_SERVICES.ATTRIBUTE7%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2074     p_attribute8                   IN CS_CP_SERVICES.ATTRIBUTE8%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2075     p_attribute9                   IN CS_CP_SERVICES.ATTRIBUTE9%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2076     p_attribute10                  IN CS_CP_SERVICES.ATTRIBUTE10%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2077     p_attribute11                  IN CS_CP_SERVICES.ATTRIBUTE11%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2078     p_attribute12                  IN CS_CP_SERVICES.ATTRIBUTE12%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2079     p_attribute13                  IN CS_CP_SERVICES.ATTRIBUTE13%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2080     p_attribute14                  IN CS_CP_SERVICES.ATTRIBUTE14%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2081     p_attribute15                  IN CS_CP_SERVICES.ATTRIBUTE15%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2082     p_context                      IN CS_CP_SERVICES.CONTEXT%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2083     p_list_price                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2084     p_org_id                       IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2085     p_price_percent                IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM) IS
2086     l_api_name                     CONSTANT VARCHAR2(30) := 'update_row';
2087     l_api_version                  CONSTANT NUMBER := 1;
2088     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
2089     l_service_rec                  Service_Val_Rec_Type;
2090   BEGIN
2091     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
2092                                               G_PKG_NAME,
2093                                               l_api_version,
2094                                               p_api_version,
2095                                               p_init_msg_list,
2096                                               '_Pvt',
2097                                               x_return_status);
2098     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2099       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2100     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2101       RAISE FND_API.G_EXC_ERROR;
2102     END IF;
2103     l_service_rec.CP_SERVICE_ID := p_cp_service_id;
2104     l_service_rec.CUSTOMER_PRODUCT_ID := p_customer_product_id;
2105     l_service_rec.CONTRACT_LINE_STATUS_ID := p_contract_line_status_id;
2106     l_service_rec.CONTRACT_LINE_TEMPLATE_ID := p_contract_line_template_id;
2107     l_service_rec.CONTRACT_ID := p_contract_id;
2108     l_service_rec.SERVICE_INVENTORY_ITEM_ID := p_service_inventory_item_id;
2109     l_service_rec.SERVICE_MANUFACTURING_ORG_ID := p_service_manufacturing_org_id;
2110     l_service_rec.STATUS_CODE := p_status_code;
2111     l_service_rec.LAST_CP_SERVICE_TRANSACTION_ID := p_lst_cp_srvic_trnsctin_id;
2112     l_service_rec.INVOICE_FLAG := p_invoice_flag;
2113     l_service_rec.COVERAGE_SCHEDULE_ID := p_coverage_schedule_id;
2114     l_service_rec.PRORATE_FLAG := p_prorate_flag;
2115     l_service_rec.DURATION_QUANTITY := p_duration_quantity;
2116     l_service_rec.UNIT_OF_MEASURE_CODE := p_unit_of_measure_code;
2117     l_service_rec.STARTING_DELAY := p_starting_delay;
2118     l_service_rec.BILL_TO_SITE_USE_ID := p_bill_to_site_use_id;
2119     l_service_rec.BILL_TO_CONTACT_ID := p_bill_to_contact_id;
2120     l_service_rec.SERVICE_TXN_AVAILABILITY_CODE := p_srvic_txn_vilbility_cd;
2121     l_service_rec.NEXT_PM_VISIT_DATE := p_next_pm_visit_date;
2122     l_service_rec.PM_VISITS_COMPLETED := p_pm_visits_completed;
2123     l_service_rec.LAST_PM_VISIT_DATE := p_last_pm_visit_date;
2124     l_service_rec.PM_SCHEDULE_ID := p_pm_schedule_id;
2125     l_service_rec.PM_SCHEDULE_FLAG := p_pm_schedule_flag;
2126     l_service_rec.CURRENT_MAX_SCHEDULE_DATE := p_current_max_schedule_date;
2127     l_service_rec.PRICE_LIST_ID := p_price_list_id;
2128     l_service_rec.SERVICE_ORDER_TYPE := p_service_order_type;
2129     l_service_rec.INVOICE_COUNT := p_invoice_count;
2130     l_service_rec.CURRENCY_CODE := p_currency_code;
2131     l_service_rec.CONVERSION_TYPE := p_conversion_type;
2132     l_service_rec.CONVERSION_RATE := p_conversion_rate;
2133     l_service_rec.CONVERSION_DATE := p_conversion_date;
2134     l_service_rec.ORIGINAL_SERVICE_LINE_ID := p_original_service_line_id;
2135     l_service_rec.WARRANTY_FLAG := p_warranty_flag;
2136     l_service_rec.ORIGINAL_START_DATE := p_original_start_date;
2137     l_service_rec.ORIGINAL_END_DATE := p_original_end_date;
2138     l_service_rec.SERVICE_DATE_CHANGE := p_service_date_change;
2139     l_service_rec.WORKFLOW := p_workflow;
2140     l_service_rec.SHIP_TO_SITE_USE_ID := p_ship_to_site_use_id;
2141     l_service_rec.ORIGINAL_SYSTEM_LINE_REFERENCE := p_riginl_systm_lin_rfrnc;
2142     l_service_rec.EXTENDED_PRICE := p_extended_price;
2143     l_service_rec.DISCOUNT_ID := p_discount_id;
2144     l_service_rec.TAX_CODE := p_tax_code;
2145     l_service_rec.BILLING_FREQUENCY_PERIOD := p_billing_frequency_period;
2146     l_service_rec.FIRST_BILL_DATE := p_first_bill_date;
2147     l_service_rec.NEXT_BILL_DATE := p_next_bill_date;
2148     l_service_rec.CREATION_DATE := p_creation_date;
2149     l_service_rec.BILL_ON := p_bill_on;
2150     l_service_rec.CREATED_BY := p_created_by;
2151     l_service_rec.LAST_UPDATE_DATE := p_last_update_date;
2152     l_service_rec.LAST_UPDATED_BY := p_last_updated_by;
2153     l_service_rec.LAST_UPDATE_LOGIN := p_last_update_login;
2154     l_service_rec.START_DATE_ACTIVE := p_start_date_active;
2155     l_service_rec.END_DATE_ACTIVE := p_end_date_active;
2156     l_service_rec.PRICING_ATTRIBUTE1 := p_pricing_attribute1;
2160     l_service_rec.PRICING_ATTRIBUTE5 := p_pricing_attribute5;
2157     l_service_rec.PRICING_ATTRIBUTE2 := p_pricing_attribute2;
2158     l_service_rec.PRICING_ATTRIBUTE3 := p_pricing_attribute3;
2159     l_service_rec.PRICING_ATTRIBUTE4 := p_pricing_attribute4;
2161     l_service_rec.PRICING_ATTRIBUTE6 := p_pricing_attribute6;
2162     l_service_rec.PRICING_ATTRIBUTE7 := p_pricing_attribute7;
2163     l_service_rec.PRICING_ATTRIBUTE8 := p_pricing_attribute8;
2164     l_service_rec.PRICING_ATTRIBUTE9 := p_pricing_attribute9;
2165     l_service_rec.PRICING_ATTRIBUTE10 := p_pricing_attribute10;
2166     l_service_rec.PRICING_ATTRIBUTE11 := p_pricing_attribute11;
2167     l_service_rec.PRICING_ATTRIBUTE12 := p_pricing_attribute12;
2168     l_service_rec.PRICING_ATTRIBUTE13 := p_pricing_attribute13;
2169     l_service_rec.PRICING_ATTRIBUTE14 := p_pricing_attribute14;
2170     l_service_rec.PRICING_ATTRIBUTE15 := p_pricing_attribute15;
2171     l_service_rec.PRICING_CONTEXT := p_pricing_context;
2172     l_service_rec.ATTRIBUTE1 := p_attribute1;
2173     l_service_rec.ATTRIBUTE2 := p_attribute2;
2174     l_service_rec.ATTRIBUTE3 := p_attribute3;
2175     l_service_rec.ATTRIBUTE4 := p_attribute4;
2176     l_service_rec.ATTRIBUTE5 := p_attribute5;
2177     l_service_rec.ATTRIBUTE6 := p_attribute6;
2178     l_service_rec.ATTRIBUTE7 := p_attribute7;
2179     l_service_rec.ATTRIBUTE8 := p_attribute8;
2180     l_service_rec.ATTRIBUTE9 := p_attribute9;
2181     l_service_rec.ATTRIBUTE10 := p_attribute10;
2182     l_service_rec.ATTRIBUTE11 := p_attribute11;
2183     l_service_rec.ATTRIBUTE12 := p_attribute12;
2184     l_service_rec.ATTRIBUTE13 := p_attribute13;
2185     l_service_rec.ATTRIBUTE14 := p_attribute14;
2186     l_service_rec.ATTRIBUTE15 := p_attribute15;
2187     l_service_rec.CONTEXT := p_context;
2188     l_service_rec.LIST_PRICE := p_list_price;
2189     l_service_rec.ORG_ID := p_org_id;
2190     l_service_rec.PRICE_PERCENT := p_price_percent;
2191     update_row(
2192       p_api_version,
2193       p_init_msg_list,
2194       p_validation_level,
2195       p_commit,
2196       x_return_status,
2197       x_msg_count,
2198       x_msg_data,
2199       l_service_rec
2200     );
2201     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
2202   EXCEPTION
2203     WHEN FND_API.G_EXC_ERROR THEN
2204       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
2205       (
2206         l_api_name,
2207         G_PKG_NAME,
2208         'FND_API.G_RET_STS_ERROR',
2209         x_msg_count,
2210         x_msg_data,
2211         '_Pvt'
2212       );
2213     APP_EXCEPTION.RAISE_EXCEPTION;
2214     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2215       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
2216       (
2217         l_api_name,
2218         G_PKG_NAME,
2219         'FND_API.G_RET_STS_UNEXP_ERROR',
2220         x_msg_count,
2221         x_msg_data,
2222         '_Pvt'
2223       );
2224     APP_EXCEPTION.RAISE_EXCEPTION;
2225     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
2226       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
2227       (
2228         l_api_name,
2229         G_PKG_NAME,
2230         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
2231         x_msg_count,
2232         x_msg_data,
2233         '_Pvt'
2234       );
2235     APP_EXCEPTION.RAISE_EXCEPTION;
2236   END update_row;
2237   Procedure delete_row
2238   (
2239     p_api_version                  IN NUMBER,
2240     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
2241     p_validation_level             IN NUMBER,
2242     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
2243     x_return_status                OUT VARCHAR2,
2244     x_msg_count                    OUT NUMBER,
2245     x_msg_data                     OUT VARCHAR2,
2246     p_cp_service_id                IN NUMBER) IS
2247     l_api_name                     CONSTANT VARCHAR2(30) := 'delete_row';
2248     l_api_version                  CONSTANT NUMBER := 1;
2249     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
2250   BEGIN
2251     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
2252                                               G_PKG_NAME,
2253                                               l_api_version,
2254                                               p_api_version,
2255                                               p_init_msg_list,
2256                                               '_Pvt',
2257                                               x_return_status);
2258     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2259       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2260     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2261       RAISE FND_API.G_EXC_ERROR;
2262     END IF;
2263     DELETE  FROM CS_CP_SERVICES
2264     WHERE
2265       CP_SERVICE_ID = p_cp_service_id
2266       ;
2267     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
2268   EXCEPTION
2269     WHEN FND_API.G_EXC_ERROR THEN
2270       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
2271       (
2272         l_api_name,
2273         G_PKG_NAME,
2274         'FND_API.G_RET_STS_ERROR',
2275         x_msg_count,
2276         x_msg_data,
2277         '_Pvt'
2278       );
2279     APP_EXCEPTION.RAISE_EXCEPTION;
2280     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2281       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
2282       (
2283         l_api_name,
2284         G_PKG_NAME,
2285         'FND_API.G_RET_STS_UNEXP_ERROR',
2286         x_msg_count,
2287         x_msg_data,
2288         '_Pvt'
2289       );
2290     APP_EXCEPTION.RAISE_EXCEPTION;
2291     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
2292       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
2293       (
2294         l_api_name,
2295         G_PKG_NAME,
2299         '_Pvt'
2296         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
2297         x_msg_count,
2298         x_msg_data,
2300       );
2301     APP_EXCEPTION.RAISE_EXCEPTION;
2302   END delete_row;
2303   PROCEDURE validate_row
2304   (
2305     p_api_version                  IN NUMBER,
2306     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
2307     p_validation_level             IN NUMBER,
2308     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
2309     x_return_status                OUT VARCHAR2,
2310     x_msg_count                    OUT NUMBER,
2311     x_msg_data                     OUT VARCHAR2,
2312     p_service_val_rec              IN Service_Val_Rec_Type := G_MISS_SERVICE_VAL_REC) IS
2313     l_api_name                     CONSTANT VARCHAR2(30) := 'validate_row';
2314     l_api_version                  CONSTANT NUMBER := 1;
2315     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
2316     l_service_rec                  Service_Rec_Type;
2317     l_def_service_rec              Service_Rec_Type;
2318   BEGIN
2319     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
2320                                               G_PKG_NAME,
2321                                               l_api_version,
2322                                               p_api_version,
2323                                               p_init_msg_list,
2324                                               '_Pvt',
2325                                               x_return_status);
2326     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2327       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2328     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2329       RAISE FND_API.G_EXC_ERROR;
2330     END IF;
2331     migrate(p_service_val_rec, l_service_rec);
2332     --- Validate all non-missing attributes (Item Level Validation)
2333     IF p_validation_level >= FND_API.G_VALID_LEVEL_FULL THEN
2334       l_return_status := Validate_Item_Attributes
2335       (
2336         l_service_rec    ---- IN
2337       );
2338       --- If any errors happen abort API
2339       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2340         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2341       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2342         RAISE FND_API.G_EXC_ERROR;
2343       END IF;
2344     END IF;
2345     IF (p_validation_level >= FND_API.G_VALID_LEVEL_FULL) THEN
2346       l_return_status := Validate_Item_Record(l_def_service_rec);
2347       IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2348         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2349       ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2350         RAISE FND_API.G_EXC_ERROR;
2351       END IF;
2352     END IF;
2353     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
2354   EXCEPTION
2355     WHEN FND_API.G_EXC_ERROR THEN
2356       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
2357       (
2358         l_api_name,
2359         G_PKG_NAME,
2360         'FND_API.G_RET_STS_ERROR',
2361         x_msg_count,
2362         x_msg_data,
2363         '_Pvt'
2364       );
2365     APP_EXCEPTION.RAISE_EXCEPTION;
2366     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2367       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
2368       (
2369         l_api_name,
2370         G_PKG_NAME,
2371         'FND_API.G_RET_STS_UNEXP_ERROR',
2372         x_msg_count,
2373         x_msg_data,
2374         '_Pvt'
2375       );
2376     APP_EXCEPTION.RAISE_EXCEPTION;
2377     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
2378       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
2379       (
2380         l_api_name,
2381         G_PKG_NAME,
2382         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
2383         x_msg_count,
2384         x_msg_data,
2385         '_Pvt'
2386       );
2387     APP_EXCEPTION.RAISE_EXCEPTION;
2388   END validate_row;
2389   PROCEDURE validate_row
2390   (
2391     p_api_version                  IN NUMBER,
2392     p_init_msg_list                IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
2393     p_validation_level             IN NUMBER,
2394     p_commit                       IN VARCHAR2 := TAPI_DEV_KIT.G_FALSE,
2395     x_return_status                OUT VARCHAR2,
2396     x_msg_count                    OUT NUMBER,
2397     x_msg_data                     OUT VARCHAR2,
2398     p_cp_service_id                IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2399     p_customer_product_id          IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2400     p_contract_line_status_id      IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2401     p_contract_line_template_id    IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2402     p_contract_id                  IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2403     p_service_inventory_item_id    IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2404     p_service_manufacturing_org_id  IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2405     p_status_code                  IN CS_CP_SERVICES.STATUS_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2406     p_lst_cp_srvic_trnsctin_id     IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2407     p_invoice_flag                 IN CS_CP_SERVICES.INVOICE_FLAG%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2408     p_coverage_schedule_id         IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2409     p_prorate_flag                 IN CS_CP_SERVICES.PRORATE_FLAG%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2410     p_duration_quantity            IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2411     p_unit_of_measure_code         IN CS_CP_SERVICES.UNIT_OF_MEASURE_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2412     p_starting_delay               IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2413     p_bill_to_site_use_id          IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2414     p_bill_to_contact_id           IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2415     p_srvic_txn_vilbility_cd       IN CS_CP_SERVICES.SERVICE_TXN_AVAILABILITY_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2419     p_pm_schedule_id               IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2416     p_next_pm_visit_date           IN CS_CP_SERVICES.NEXT_PM_VISIT_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2417     p_pm_visits_completed          IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2418     p_last_pm_visit_date           IN CS_CP_SERVICES.LAST_PM_VISIT_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2420     p_pm_schedule_flag             IN CS_CP_SERVICES.PM_SCHEDULE_FLAG%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2421     p_current_max_schedule_date    IN CS_CP_SERVICES.CURRENT_MAX_SCHEDULE_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2422     p_price_list_id                IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2423     p_service_order_type           IN CS_CP_SERVICES.SERVICE_ORDER_TYPE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2424     p_invoice_count                IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2425     p_currency_code                IN CS_CP_SERVICES.CURRENCY_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2426     p_conversion_type              IN CS_CP_SERVICES.CONVERSION_TYPE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2427     p_conversion_rate              IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2428     p_conversion_date              IN CS_CP_SERVICES.CONVERSION_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2429     p_original_service_line_id     IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2430     p_warranty_flag                IN CS_CP_SERVICES.WARRANTY_FLAG%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2431     p_original_start_date          IN CS_CP_SERVICES.ORIGINAL_START_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2432     p_original_end_date            IN CS_CP_SERVICES.ORIGINAL_END_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2433     p_service_date_change          IN CS_CP_SERVICES.SERVICE_DATE_CHANGE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2434     p_workflow                     IN CS_CP_SERVICES.WORKFLOW%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2435     p_ship_to_site_use_id          IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2436     p_riginl_systm_lin_rfrnc       IN CS_CP_SERVICES.ORIGINAL_SYSTEM_LINE_REFERENCE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2437     p_extended_price               IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2438     p_discount_id                  IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2439     p_tax_code                     IN CS_CP_SERVICES.TAX_CODE%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2440     p_billing_frequency_period     IN CS_CP_SERVICES.BILLING_FREQUENCY_PERIOD%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2441     p_first_bill_date              IN CS_CP_SERVICES.FIRST_BILL_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2442     p_next_bill_date               IN CS_CP_SERVICES.NEXT_BILL_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2443     p_creation_date                IN CS_CP_SERVICES.CREATION_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2444     p_bill_on                      IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2445     p_created_by                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2446     p_last_update_date             IN CS_CP_SERVICES.LAST_UPDATE_DATE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2447     p_last_updated_by              IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2448     p_last_update_login            IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2449     p_start_date_active            IN CS_CP_SERVICES.START_DATE_ACTIVE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2450     p_end_date_active              IN CS_CP_SERVICES.END_DATE_ACTIVE%TYPE := TAPI_DEV_KIT.G_MISS_DATE,
2451     p_pricing_attribute1           IN CS_CP_SERVICES.PRICING_ATTRIBUTE1%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2452     p_pricing_attribute2           IN CS_CP_SERVICES.PRICING_ATTRIBUTE2%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2453     p_pricing_attribute3           IN CS_CP_SERVICES.PRICING_ATTRIBUTE3%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2454     p_pricing_attribute4           IN CS_CP_SERVICES.PRICING_ATTRIBUTE4%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2455     p_pricing_attribute5           IN CS_CP_SERVICES.PRICING_ATTRIBUTE5%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2456     p_pricing_attribute6           IN CS_CP_SERVICES.PRICING_ATTRIBUTE6%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2457     p_pricing_attribute7           IN CS_CP_SERVICES.PRICING_ATTRIBUTE7%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2458     p_pricing_attribute8           IN CS_CP_SERVICES.PRICING_ATTRIBUTE8%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2459     p_pricing_attribute9           IN CS_CP_SERVICES.PRICING_ATTRIBUTE9%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2460     p_pricing_attribute10          IN CS_CP_SERVICES.PRICING_ATTRIBUTE10%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2461     p_pricing_attribute11          IN CS_CP_SERVICES.PRICING_ATTRIBUTE11%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2462     p_pricing_attribute12          IN CS_CP_SERVICES.PRICING_ATTRIBUTE12%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2463     p_pricing_attribute13          IN CS_CP_SERVICES.PRICING_ATTRIBUTE13%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2464     p_pricing_attribute14          IN CS_CP_SERVICES.PRICING_ATTRIBUTE14%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2465     p_pricing_attribute15          IN CS_CP_SERVICES.PRICING_ATTRIBUTE15%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2466     p_pricing_context              IN CS_CP_SERVICES.PRICING_CONTEXT%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2467     p_attribute1                   IN CS_CP_SERVICES.ATTRIBUTE1%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2468     p_attribute2                   IN CS_CP_SERVICES.ATTRIBUTE2%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2469     p_attribute3                   IN CS_CP_SERVICES.ATTRIBUTE3%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2470     p_attribute4                   IN CS_CP_SERVICES.ATTRIBUTE4%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2471     p_attribute5                   IN CS_CP_SERVICES.ATTRIBUTE5%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2472     p_attribute6                   IN CS_CP_SERVICES.ATTRIBUTE6%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2473     p_attribute7                   IN CS_CP_SERVICES.ATTRIBUTE7%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2474     p_attribute8                   IN CS_CP_SERVICES.ATTRIBUTE8%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2475     p_attribute9                   IN CS_CP_SERVICES.ATTRIBUTE9%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2476     p_attribute10                  IN CS_CP_SERVICES.ATTRIBUTE10%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2477     p_attribute11                  IN CS_CP_SERVICES.ATTRIBUTE11%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2478     p_attribute12                  IN CS_CP_SERVICES.ATTRIBUTE12%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2479     p_attribute13                  IN CS_CP_SERVICES.ATTRIBUTE13%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2483     p_list_price                   IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2480     p_attribute14                  IN CS_CP_SERVICES.ATTRIBUTE14%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2481     p_attribute15                  IN CS_CP_SERVICES.ATTRIBUTE15%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2482     p_context                      IN CS_CP_SERVICES.CONTEXT%TYPE := TAPI_DEV_KIT.G_MISS_CHAR,
2484     p_org_id                       IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM,
2485     p_price_percent                IN NUMBER := TAPI_DEV_KIT.G_MISS_NUM) IS
2486     l_api_name                     CONSTANT VARCHAR2(30) := 'validate_row';
2487     l_api_version                  CONSTANT NUMBER := 1;
2488     l_return_status                VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
2489     l_service_rec                  Service_Val_Rec_Type;
2490   BEGIN
2491     l_return_status := TAPI_DEV_KIT.START_ACTIVITY(l_api_name,
2492                                               G_PKG_NAME,
2493                                               l_api_version,
2494                                               p_api_version,
2495                                               p_init_msg_list,
2496                                               '_Pvt',
2497                                               x_return_status);
2498     IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
2499       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2500     ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
2501       RAISE FND_API.G_EXC_ERROR;
2502     END IF;
2503     l_service_rec.CP_SERVICE_ID := p_cp_service_id;
2504     l_service_rec.CUSTOMER_PRODUCT_ID := p_customer_product_id;
2505     l_service_rec.CONTRACT_LINE_STATUS_ID := p_contract_line_status_id;
2506     l_service_rec.CONTRACT_LINE_TEMPLATE_ID := p_contract_line_template_id;
2507     l_service_rec.CONTRACT_ID := p_contract_id;
2508     l_service_rec.SERVICE_INVENTORY_ITEM_ID := p_service_inventory_item_id;
2509     l_service_rec.SERVICE_MANUFACTURING_ORG_ID := p_service_manufacturing_org_id;
2510     l_service_rec.STATUS_CODE := p_status_code;
2511     l_service_rec.LAST_CP_SERVICE_TRANSACTION_ID := p_lst_cp_srvic_trnsctin_id;
2512     l_service_rec.INVOICE_FLAG := p_invoice_flag;
2513     l_service_rec.COVERAGE_SCHEDULE_ID := p_coverage_schedule_id;
2514     l_service_rec.PRORATE_FLAG := p_prorate_flag;
2515     l_service_rec.DURATION_QUANTITY := p_duration_quantity;
2516     l_service_rec.UNIT_OF_MEASURE_CODE := p_unit_of_measure_code;
2517     l_service_rec.STARTING_DELAY := p_starting_delay;
2518     l_service_rec.BILL_TO_SITE_USE_ID := p_bill_to_site_use_id;
2519     l_service_rec.BILL_TO_CONTACT_ID := p_bill_to_contact_id;
2520     l_service_rec.SERVICE_TXN_AVAILABILITY_CODE := p_srvic_txn_vilbility_cd;
2521     l_service_rec.NEXT_PM_VISIT_DATE := p_next_pm_visit_date;
2522     l_service_rec.PM_VISITS_COMPLETED := p_pm_visits_completed;
2523     l_service_rec.LAST_PM_VISIT_DATE := p_last_pm_visit_date;
2524     l_service_rec.PM_SCHEDULE_ID := p_pm_schedule_id;
2525     l_service_rec.PM_SCHEDULE_FLAG := p_pm_schedule_flag;
2526     l_service_rec.CURRENT_MAX_SCHEDULE_DATE := p_current_max_schedule_date;
2527     l_service_rec.PRICE_LIST_ID := p_price_list_id;
2528     l_service_rec.SERVICE_ORDER_TYPE := p_service_order_type;
2529     l_service_rec.INVOICE_COUNT := p_invoice_count;
2530     l_service_rec.CURRENCY_CODE := p_currency_code;
2531     l_service_rec.CONVERSION_TYPE := p_conversion_type;
2532     l_service_rec.CONVERSION_RATE := p_conversion_rate;
2533     l_service_rec.CONVERSION_DATE := p_conversion_date;
2534     l_service_rec.ORIGINAL_SERVICE_LINE_ID := p_original_service_line_id;
2535     l_service_rec.WARRANTY_FLAG := p_warranty_flag;
2536     l_service_rec.ORIGINAL_START_DATE := p_original_start_date;
2537     l_service_rec.ORIGINAL_END_DATE := p_original_end_date;
2538     l_service_rec.SERVICE_DATE_CHANGE := p_service_date_change;
2539     l_service_rec.WORKFLOW := p_workflow;
2540     l_service_rec.SHIP_TO_SITE_USE_ID := p_ship_to_site_use_id;
2541     l_service_rec.ORIGINAL_SYSTEM_LINE_REFERENCE := p_riginl_systm_lin_rfrnc;
2542     l_service_rec.EXTENDED_PRICE := p_extended_price;
2543     l_service_rec.DISCOUNT_ID := p_discount_id;
2544     l_service_rec.TAX_CODE := p_tax_code;
2545     l_service_rec.BILLING_FREQUENCY_PERIOD := p_billing_frequency_period;
2546     l_service_rec.FIRST_BILL_DATE := p_first_bill_date;
2547     l_service_rec.NEXT_BILL_DATE := p_next_bill_date;
2548     l_service_rec.CREATION_DATE := p_creation_date;
2549     l_service_rec.BILL_ON := p_bill_on;
2550     l_service_rec.CREATED_BY := p_created_by;
2551     l_service_rec.LAST_UPDATE_DATE := p_last_update_date;
2552     l_service_rec.LAST_UPDATED_BY := p_last_updated_by;
2553     l_service_rec.LAST_UPDATE_LOGIN := p_last_update_login;
2554     l_service_rec.START_DATE_ACTIVE := p_start_date_active;
2555     l_service_rec.END_DATE_ACTIVE := p_end_date_active;
2556     l_service_rec.PRICING_ATTRIBUTE1 := p_pricing_attribute1;
2557     l_service_rec.PRICING_ATTRIBUTE2 := p_pricing_attribute2;
2558     l_service_rec.PRICING_ATTRIBUTE3 := p_pricing_attribute3;
2559     l_service_rec.PRICING_ATTRIBUTE4 := p_pricing_attribute4;
2560     l_service_rec.PRICING_ATTRIBUTE5 := p_pricing_attribute5;
2561     l_service_rec.PRICING_ATTRIBUTE6 := p_pricing_attribute6;
2562     l_service_rec.PRICING_ATTRIBUTE7 := p_pricing_attribute7;
2563     l_service_rec.PRICING_ATTRIBUTE8 := p_pricing_attribute8;
2564     l_service_rec.PRICING_ATTRIBUTE9 := p_pricing_attribute9;
2565     l_service_rec.PRICING_ATTRIBUTE10 := p_pricing_attribute10;
2566     l_service_rec.PRICING_ATTRIBUTE11 := p_pricing_attribute11;
2567     l_service_rec.PRICING_ATTRIBUTE12 := p_pricing_attribute12;
2568     l_service_rec.PRICING_ATTRIBUTE13 := p_pricing_attribute13;
2569     l_service_rec.PRICING_ATTRIBUTE14 := p_pricing_attribute14;
2570     l_service_rec.PRICING_ATTRIBUTE15 := p_pricing_attribute15;
2571     l_service_rec.PRICING_CONTEXT := p_pricing_context;
2572     l_service_rec.ATTRIBUTE1 := p_attribute1;
2573     l_service_rec.ATTRIBUTE2 := p_attribute2;
2574     l_service_rec.ATTRIBUTE3 := p_attribute3;
2575     l_service_rec.ATTRIBUTE4 := p_attribute4;
2576     l_service_rec.ATTRIBUTE5 := p_attribute5;
2580     l_service_rec.ATTRIBUTE9 := p_attribute9;
2577     l_service_rec.ATTRIBUTE6 := p_attribute6;
2578     l_service_rec.ATTRIBUTE7 := p_attribute7;
2579     l_service_rec.ATTRIBUTE8 := p_attribute8;
2581     l_service_rec.ATTRIBUTE10 := p_attribute10;
2582     l_service_rec.ATTRIBUTE11 := p_attribute11;
2583     l_service_rec.ATTRIBUTE12 := p_attribute12;
2584     l_service_rec.ATTRIBUTE13 := p_attribute13;
2585     l_service_rec.ATTRIBUTE14 := p_attribute14;
2586     l_service_rec.ATTRIBUTE15 := p_attribute15;
2587     l_service_rec.CONTEXT := p_context;
2588     l_service_rec.LIST_PRICE := p_list_price;
2589     l_service_rec.ORG_ID := p_org_id;
2590     l_service_rec.PRICE_PERCENT := p_price_percent;
2591     validate_row(
2592       p_api_version,
2593       p_init_msg_list,
2594       p_validation_level,
2595       p_commit,
2596       x_return_status,
2597       x_msg_count,
2598       x_msg_data,
2599       l_service_rec
2600     );
2601     TAPI_DEV_KIT.END_ACTIVITY(p_commit, x_msg_count, x_msg_data);
2602   EXCEPTION
2603     WHEN FND_API.G_EXC_ERROR THEN
2604       x_return_status := TAPI_DEV_KIT.HANDLE_EXCEPTIONS
2605       (
2606         l_api_name,
2607         G_PKG_NAME,
2608         'FND_API.G_RET_STS_ERROR',
2609         x_msg_count,
2610         x_msg_data,
2611         '_Pvt'
2612       );
2613     APP_EXCEPTION.RAISE_EXCEPTION;
2614     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2615       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
2616       (
2617         l_api_name,
2618         G_PKG_NAME,
2619         'FND_API.G_RET_STS_UNEXP_ERROR',
2620         x_msg_count,
2621         x_msg_data,
2622         '_Pvt'
2623       );
2624     APP_EXCEPTION.RAISE_EXCEPTION;
2625     WHEN TAPI_DEV_KIT.G_EXC_DUP_VAL_ON_INDEX THEN
2626       x_return_status :=TAPI_DEV_KIT.HANDLE_EXCEPTIONS
2627       (
2628         l_api_name,
2629         G_PKG_NAME,
2630         'TAPI_DEV_KIT.G_RET_STS_DUP_VAL_ON_INDEX',
2631         x_msg_count,
2632         x_msg_data,
2633         '_Pvt'
2634       );
2635     APP_EXCEPTION.RAISE_EXCEPTION;
2636   END validate_row;
2637 END CS_SERVICE_PVT;