DBA Data[Home] [Help]

PACKAGE BODY: APPS.CS_CONTRACTLTMPL_PVT

Source


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