DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_CREATE_KLE_PUB

Source


1 Package body OKL_CREATE_KLE_PUB as
2 /* $Header: OKLPKLLB.pls 115.9 2004/04/13 10:51:16 rnaik noship $ */
3 
4 -------------------------------------------------------------------------------------------------
5 -- GLOBAL MESSAGE CONSTANTS
6 -------------------------------------------------------------------------------------------------
7   G_NO_PARENT_RECORD            CONSTANT  VARCHAR2(200) := 'OKC_NO_PARENT_RECORD';
8   G_FND_APP                     CONSTANT  VARCHAR2(200) := OKC_API.G_FND_APP;
9   G_FORM_UNABLE_TO_RESERVE_REC  CONSTANT  VARCHAR2(200) := OKC_API.G_FORM_UNABLE_TO_RESERVE_REC;
10   G_FORM_RECORD_DELETED	        CONSTANT  VARCHAR2(200) := OKC_API.G_FORM_RECORD_DELETED;
11   G_FORM_RECORD_CHANGED	        CONSTANT  VARCHAR2(200) := OKC_API.G_FORM_RECORD_CHANGED;
12   G_RECORD_LOGICALLY_DELETED    CONSTANT  VARCHAR2(200) := OKC_API.G_RECORD_LOGICALLY_DELETED;
13   G_REQUIRED_VALUE              CONSTANT  VARCHAR2(200) := OKC_API.G_REQUIRED_VALUE;
14   G_INVALID_VALUE               CONSTANT  VARCHAR2(200) := OKC_API.G_INVALID_VALUE;
15   G_COL_NAME_TOKEN              CONSTANT  VARCHAR2(200) := OKC_API.G_COL_NAME_TOKEN;
16   G_PARENT_TABLE_TOKEN	        CONSTANT  VARCHAR2(200) := OKC_API.G_PARENT_TABLE_TOKEN;
17   G_CHILD_TABLE_TOKEN	        CONSTANT  VARCHAR2(200) := OKC_API.G_CHILD_TABLE_TOKEN;
18   G_UNEXPECTED_ERROR            CONSTANT  VARCHAR2(200) := 'OKC_CONTRACTS_UNEXP_ERROR';
19   G_SQLERRM_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLerrm';
20   G_SQLCODE_TOKEN               CONSTANT  VARCHAR2(200) := 'SQLcode';
21   G_UPPERCASE_REQUIRED	        CONSTANT  VARCHAR2(200) := 'OKL_CONTRACTS_UPPERCASE_REQ';
22 ------------------------------------------------------------------------------------
23 -- GLOBAL EXCEPTION
24 ------------------------------------------------------------------------------------
25   G_EXCEPTION_HALT_VALIDATION             EXCEPTION;
26   G_EXCEPTION_STOP_VALIDATION             EXCEPTION;
27   G_API_TYPE                    CONSTANT  VARCHAR2(4) := '_PUB';
28   G_API_VERSION                 CONSTANT  NUMBER := 1.0;
29   G_SCOPE                       CONSTANT  VARCHAR2(4) := '_PUB';
30 
31  -- GLOBAL VARIABLES
32 -----------------------------------------------------------------------------------
33   G_FIN_LINE_LTY_CODE                     OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'FREE_FORM1';
34   G_MODEL_LINE_LTY_CODE                   OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'ITEM';
35   G_ADDON_LINE_LTY_CODE                   OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'ADD_ITEM';
36   G_FA_LINE_LTY_CODE                      OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'FIXED_ASSET';
37   G_INST_LINE_LTY_CODE                    OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'FREE_FORM2';
38   G_IB_LINE_LTY_CODE                      OKC_LINE_STYLES_V.LTY_CODE%TYPE := 'INST_ITEM';
39   G_ID2                         CONSTANT  VARCHAR2(200) := '#';
40   G_TLS_TYPE                              OKC_LINE_STYLES_V.LSE_TYPE%TYPE := 'TLS';
41   G_SLS_TYPE                              OKC_LINE_STYLES_V.LSE_TYPE%TYPE := 'SLS';
42 
43 -------------------------------------------------------------------------------------------------------
44 ---------------------- Main Process for Updating of Financial Asset Line ------------------------------
45 -------------------------------------------------------------------------------------------------------
46   PROCEDURE Update_fin_cap_cost(
47             p_api_version    IN  NUMBER,
48             p_init_msg_list  IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
49             x_return_status  OUT NOCOPY VARCHAR2,
50             x_msg_count      OUT NOCOPY NUMBER,
51             x_msg_data       OUT NOCOPY VARCHAR2,
52             P_new_yn         IN  OKL_TXL_ASSETS_V.USED_ASSET_YN%TYPE,
53             p_asset_number   IN  OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE,
54             p_clev_rec       IN  clev_rec_type,
55             p_klev_rec       IN  klev_rec_type,
56             x_clev_rec       OUT NOCOPY clev_rec_type,
57             x_klev_rec       OUT NOCOPY klev_rec_type) IS
58 
59     l_clev_fin_rec                clev_rec_type;
60     l_klev_fin_rec                klev_rec_type;
61 
62     l_api_name               CONSTANT VARCHAR2(30) := 'UPDATE_FIN_CAP_COST';
63     l_api_version            CONSTANT NUMBER := 1;
64   BEGIN
65     savepoint Update_fin_cap_cost_pub;
66     x_return_status     := FND_API.G_RET_STS_SUCCESS;
67     -- Standard call to check for call compatibility.
68     IF NOT (FND_API.Compatible_API_Call (l_api_version,
69 	                                 p_api_version,
70 			                 l_api_name,
71 		                         G_PKG_NAME)) THEN
72        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
73     END IF;
74     -- Initialize message list if p_init_msg_list is set to TRUE.
75     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
76        FND_MSG_PUB.initialize;
77     END IF;
78     l_klev_fin_rec := p_klev_rec;
79     l_clev_fin_rec := p_clev_rec;
80     g_klev_fin_rec := l_klev_fin_rec;
81     g_clev_fin_rec := l_clev_fin_rec;
82     --  Customer pre processing  section
83     -- 	Verticle industry pre- processing section
84     -- Business API call  section
85     OKL_CREATE_KLE_PVT.Update_fin_cap_cost(p_api_version   => p_api_version,
86                                        p_init_msg_list => p_init_msg_list,
87                                        x_return_status => x_return_status,
88                                        x_msg_count     => x_msg_count,
89                                        x_msg_data      => x_msg_data,
90                                        P_New_YN        => P_new_yn,
91                                        p_asset_number  => p_asset_number,
92                                        p_clev_rec      => l_clev_fin_rec,
93                                        p_klev_rec      => l_klev_fin_rec,
94                                        x_clev_rec      => x_clev_rec,
95                                        x_klev_rec      => x_klev_rec);
96     IF (x_return_status = FND_API.G_RET_STS_ERROR )  THEN
97        RAISE FND_API.G_EXC_ERROR;
98     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
99        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
100     END IF;
101     l_klev_fin_rec := x_klev_rec;
102     l_clev_fin_rec := x_clev_rec;
103     g_klev_fin_rec := l_klev_fin_rec;
104     g_clev_fin_rec := l_clev_fin_rec;
105     --	Verticle industry post- processing section
106     --  Customer post processing  section
107   EXCEPTION
108     When FND_API.G_EXC_ERROR then
109       ROLLBACK TO Update_fin_cap_cost_pub;
110       x_return_status := FND_API.G_RET_STS_ERROR;
111       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
112                                  p_data  => x_msg_data);
113     When FND_API.G_EXC_UNEXPECTED_ERROR  then
114       ROLLBACK TO Update_fin_cap_cost_pub;
115       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
116       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
117                                  p_data  => x_msg_data);
118     When OTHERS  then
119       ROLLBACK  TO Update_fin_cap_cost_pub;
120       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
121       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_CREATE_KLE_PUB');
122       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
123                                  p_count   => x_msg_count,
124                                  p_data    => x_msg_data);
125   END Update_fin_cap_cost;
126 
127 -------------------------------------------------------------------------------------------------------
128 ---------------------------- Main Process for Creation of Add on Line ---------------------------------
129 -------------------------------------------------------------------------------------------------------
130   PROCEDURE create_add_on_line(p_api_version   IN  NUMBER,
131                               p_init_msg_list  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
132                               x_return_status  OUT NOCOPY VARCHAR2,
133                               x_msg_count      OUT NOCOPY NUMBER,
134                               x_msg_data       OUT NOCOPY VARCHAR2,
135                               P_new_yn         IN  OKL_TXL_ASSETS_V.USED_ASSET_YN%TYPE,
136                               p_asset_number   IN  OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE,
137                               p_clev_tbl       IN  clev_tbl_type,
138                               p_klev_tbl       IN  klev_tbl_type,
139                               p_cimv_tbl       IN  cimv_tbl_type,
140                               x_clev_tbl       OUT NOCOPY clev_tbl_type,
141                               x_klev_tbl       OUT NOCOPY klev_tbl_type,
142                               x_fin_clev_rec   OUT NOCOPY clev_rec_type,
143                               x_fin_klev_rec   OUT NOCOPY klev_rec_type,
144                               x_cimv_tbl       OUT NOCOPY cimv_tbl_type) IS
145     l_klev_tbl                        klev_tbl_type;
146     l_clev_tbl                        clev_tbl_type;
147     l_cimv_tbl                        cimv_tbl_type;
148     l_api_name               CONSTANT VARCHAR2(30) := 'CREATE_ADD_ON_LINE';
149     l_api_version            CONSTANT NUMBER := 1;
150   BEGIN
151     savepoint Create_add_on_line_pub;
152     x_return_status     := FND_API.G_RET_STS_SUCCESS;
153     -- Standard call to check for call compatibility.
154     IF NOT (FND_API.Compatible_API_Call (l_api_version,
155 	                                 p_api_version,
156 			                 l_api_name,
157 		                         G_PKG_NAME)) THEN
158        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
159     END IF;
160     -- Initialize message list if p_init_msg_list is set to TRUE.
161     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
162        FND_MSG_PUB.initialize;
163     END IF;
164     l_klev_tbl := p_klev_tbl;
165     l_clev_tbl := p_clev_tbl;
166     l_cimv_tbl := p_cimv_tbl;
167     g_klev_tbl := l_klev_tbl;
168     g_clev_tbl := l_clev_tbl;
169     g_cimv_tbl := l_cimv_tbl;
170     --  Customer pre processing  section
171     -- 	Verticle industry pre- processing section
172     -- Business API call  section
173     OKL_CREATE_KLE_PVT.create_add_on_line(p_api_version   => p_api_version,
174                                           p_init_msg_list => p_init_msg_list,
175                                           x_return_status => x_return_status,
176                                           x_msg_count     => x_msg_count,
177                                           x_msg_data      => x_msg_data,
178                                           P_New_YN        => P_new_yn,
179                                           p_asset_number  => p_asset_number,
180                                           p_clev_tbl      => l_clev_tbl,
181                                           p_klev_tbl      => l_klev_tbl,
182                                           p_cimv_tbl      => l_cimv_tbl,
183                                           x_clev_tbl      => x_clev_tbl,
184                                           x_klev_tbl      => x_klev_tbl,
185                                           x_fin_clev_rec  => x_fin_clev_rec,
186                                           x_fin_klev_rec  => x_fin_klev_rec,
187                                           x_cimv_tbl      => x_cimv_tbl);
188     IF (x_return_status = FND_API.G_RET_STS_ERROR )  THEN
189        RAISE FND_API.G_EXC_ERROR;
190     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
191        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
192     END IF;
193     l_klev_tbl := x_klev_tbl;
194     l_clev_tbl := x_clev_tbl;
195     l_cimv_tbl := x_cimv_tbl;
196     g_klev_tbl := l_klev_tbl;
197     g_clev_tbl := l_clev_tbl;
198     g_cimv_tbl := l_cimv_tbl;
199     --	Verticle industry post- processing section
200     --  Customer post processing  section
201   EXCEPTION
202     When FND_API.G_EXC_ERROR then
203       ROLLBACK TO Create_add_on_line_pub;
204       x_return_status := FND_API.G_RET_STS_ERROR;
205       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
206                                  p_data  => x_msg_data);
207     When FND_API.G_EXC_UNEXPECTED_ERROR  then
208       ROLLBACK TO Create_add_on_line_pub;
209       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
210       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
211                                  p_data  => x_msg_data);
212     When OTHERS  then
213       ROLLBACK  TO Create_add_on_line_pub;
214       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
215       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_CREATE_KLE_PUB');
216       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
217                                  p_count   => x_msg_count,
218                                  p_data    => x_msg_data);
219   END create_add_on_line;
220 -------------------------------------------------------------------------------------------------------
221 ---------------------------- Main Process for Update of Add on Line ---------------------------------
222 -------------------------------------------------------------------------------------------------------
223   PROCEDURE update_add_on_line(p_api_version   IN NUMBER,
224                               p_init_msg_list  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
225                               x_return_status  OUT NOCOPY VARCHAR2,
226                               x_msg_count      OUT NOCOPY NUMBER,
227                               x_msg_data       OUT NOCOPY VARCHAR2,
228                               P_new_yn         IN  OKL_TXL_ASSETS_V.USED_ASSET_YN%TYPE,
229                               p_asset_number   IN  OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE,
230                               p_clev_tbl       IN  clev_tbl_type,
231                               p_klev_tbl       IN  klev_tbl_type,
232                               p_cimv_tbl       IN  cimv_tbl_type,
233                               x_clev_tbl       OUT NOCOPY clev_tbl_type,
234                               x_klev_tbl       OUT NOCOPY klev_tbl_type,
235                               x_cimv_tbl       OUT NOCOPY cimv_tbl_type,
236                               x_fin_clev_rec   OUT NOCOPY clev_rec_type,
237                               x_fin_klev_rec   OUT NOCOPY klev_rec_type) IS
238     i                        NUMBER := 0;
239     j                        NUMBER := 0;
240     k                        NUMBER := 0;
241     l_klev_tbl                        klev_tbl_type;
242     l_clev_tbl                        clev_tbl_type;
243     l_cimv_tbl                        cimv_tbl_type;
244     l_fin_clev_rec                    clev_rec_type;
245     l_fin_klev_rec                    klev_rec_type;
246     l_api_name               CONSTANT VARCHAR2(30) := 'UPDATE_ADD_ON_LINE';
247     l_api_version            CONSTANT NUMBER := 1;
248   BEGIN
249     savepoint Update_add_on_line_pub;
250     x_return_status     := FND_API.G_RET_STS_SUCCESS;
251     -- Standard call to check for call compatibility.
252     IF NOT (FND_API.Compatible_API_Call (l_api_version,
253 	                                 p_api_version,
254 			                 l_api_name,
255 		                         G_PKG_NAME)) THEN
256        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
257     END IF;
258     -- Initialize message list if p_init_msg_list is set to TRUE.
259     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
260        FND_MSG_PUB.initialize;
261     END IF;
262     l_klev_tbl := p_klev_tbl;
263     l_clev_tbl := p_clev_tbl;
264     l_cimv_tbl := p_cimv_tbl;
265     g_klev_tbl := l_klev_tbl;
266     g_clev_tbl := l_clev_tbl;
267     g_cimv_tbl := l_cimv_tbl;
268     --  Customer pre processing  section
269     -- 	Verticle industry pre- processing section
270     -- Business API call  section
271     IF p_clev_tbl.COUNT > 0 THEN
272        j := p_clev_tbl.FIRST;
273        LOOP
274          l_clev_tbl(j).id                     := p_clev_tbl(j).id;
275          l_clev_tbl(j).object_version_number  := p_clev_tbl(j).object_version_number;
276          EXIT WHEN (j = p_clev_tbl.LAST);
277          j := p_clev_tbl.NEXT(j);
278        END LOOP;
279     ELSE
280        RAISE FND_API.G_EXC_ERROR;
281     END IF;
282     IF p_klev_tbl.COUNT > 0 THEN
283        k := p_klev_tbl.FIRST;
284        LOOP
285          l_klev_tbl(k).id                     := p_klev_tbl(k).id;
286          l_klev_tbl(k).object_version_number  := p_klev_tbl(k).object_version_number;
287          EXIT WHEN (k = p_klev_tbl.LAST);
288          k := p_klev_tbl.NEXT(k);
289        END LOOP;
290     ELSE
291        RAISE FND_API.G_EXC_ERROR;
292     END IF;
293     IF p_cimv_tbl.COUNT > 0 THEN
294        i := p_cimv_tbl.FIRST;
295        LOOP
296          l_cimv_tbl(i).id                     := p_cimv_tbl(i).id;
297          l_cimv_tbl(i).object_version_number  := p_cimv_tbl(i).object_version_number;
298          EXIT WHEN (i = p_cimv_tbl.LAST);
299          i := p_cimv_tbl.NEXT(i);
300        END LOOP;
301     ELSE
302        RAISE FND_API.G_EXC_ERROR;
303     END IF;
304     OKL_CREATE_KLE_PVT.Update_add_on_line(p_api_version   => p_api_version,
305                                           p_init_msg_list => p_init_msg_list,
306                                           x_return_status => x_return_status,
307                                           x_msg_count     => x_msg_count,
308                                           x_msg_data      => x_msg_data,
309                                           P_New_YN        => P_new_yn,
310                                           p_asset_number  => p_asset_number,
311                                           p_clev_tbl      => l_clev_tbl,
312                                           p_klev_tbl      => l_klev_tbl,
313                                           p_cimv_tbl      => l_cimv_tbl,
314                                           x_clev_tbl      => x_clev_tbl,
315                                           x_klev_tbl      => x_klev_tbl,
316                                           x_cimv_tbl      => x_cimv_tbl,
317                                           x_fin_clev_rec  => x_fin_clev_rec,
318                                           x_fin_klev_rec  => x_fin_klev_rec);
319     IF (x_return_status = FND_API.G_RET_STS_ERROR )  THEN
320        RAISE FND_API.G_EXC_ERROR;
321     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
322        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
323     END IF;
324     l_klev_tbl := x_klev_tbl;
325     l_clev_tbl := x_clev_tbl;
326     l_cimv_tbl := x_cimv_tbl;
327     l_fin_clev_rec := x_fin_clev_rec;
328     l_fin_klev_rec := x_fin_klev_rec;
329     g_klev_tbl := l_klev_tbl;
330     g_clev_tbl := l_clev_tbl;
331     g_cimv_tbl := l_cimv_tbl;
332     --	Verticle industry post- processing section
333     --  Customer post processing  section
334   EXCEPTION
335     When FND_API.G_EXC_ERROR then
336       ROLLBACK  TO Update_add_on_line_pub;
337       x_return_status := FND_API.G_RET_STS_ERROR;
338       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
339                                  p_data  => x_msg_data);
340     When FND_API.G_EXC_UNEXPECTED_ERROR then
341       ROLLBACK  TO Update_add_on_line_pub;
342       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
343       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
344                                  p_data  => x_msg_data);
345     When OTHERS then
346       ROLLBACK TO Update_add_on_line_pub;
347       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
348       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_CREATE_KLE_PUB');
349       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
350                                  p_count   => x_msg_count,
351                                  p_data    => x_msg_data);
352 
353   END update_add_on_line;
354 -------------------------------------------------------------------------------------------------------
355 ---------------------------- Main Process for Delete of Add on Line ---------------------------------
356 -------------------------------------------------------------------------------------------------------
357   PROCEDURE delete_add_on_line(p_api_version   IN NUMBER,
358                               p_init_msg_list  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
359                               x_return_status  OUT NOCOPY VARCHAR2,
360                               x_msg_count      OUT NOCOPY NUMBER,
361                               x_msg_data       OUT NOCOPY VARCHAR2,
362                               P_new_yn         IN  OKL_TXL_ASSETS_V.USED_ASSET_YN%TYPE,
363                               p_asset_number   IN  OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE,
364                               p_clev_tbl       IN  clev_tbl_type,
365                               p_klev_tbl       IN  klev_tbl_type,
366                               x_fin_clev_rec   OUT NOCOPY clev_rec_type,
367                               x_fin_klev_rec   OUT NOCOPY klev_rec_type) IS
368     i                        NUMBER := 0;
369     j                        NUMBER := 0;
370     k                        NUMBER := 0;
371     l_klev_tbl                        klev_tbl_type;
372     l_clev_tbl                        clev_tbl_type;
373     l_fin_clev_rec                    clev_rec_type;
374     l_fin_klev_rec                    klev_rec_type;
375     l_api_name               CONSTANT VARCHAR2(30) := 'DELETE_ADD_ON_LINE';
376     l_api_version            CONSTANT NUMBER := 1;
377   BEGIN
378     savepoint delete_add_on_line_pub;
379     x_return_status     := FND_API.G_RET_STS_SUCCESS;
380     -- Standard call to check for call compatibility.
381     IF NOT (FND_API.Compatible_API_Call (l_api_version,
382 	                                 p_api_version,
383 			                 l_api_name,
384 		                         G_PKG_NAME)) THEN
385        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
386     END IF;
387     -- Initialize message list if p_init_msg_list is set to TRUE.
388     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
389        FND_MSG_PUB.initialize;
390     END IF;
391     l_klev_tbl := p_klev_tbl;
392     l_clev_tbl := p_clev_tbl;
393     g_klev_tbl := l_klev_tbl;
394     g_clev_tbl := l_clev_tbl;
395     --  Customer pre processing  section
396     -- 	Verticle industry pre- processing section
397     -- Business API call  section
398     IF p_clev_tbl.COUNT > 0 THEN
399        j := p_clev_tbl.FIRST;
400        LOOP
401          l_clev_tbl(j).id                     := p_clev_tbl(j).id;
402          l_clev_tbl(j).object_version_number  := p_clev_tbl(j).object_version_number;
403          EXIT WHEN (j = p_clev_tbl.LAST);
404          j := p_clev_tbl.NEXT(j);
405        END LOOP;
406     ELSE
407        RAISE FND_API.G_EXC_ERROR;
408     END IF;
409     IF p_klev_tbl.COUNT > 0 THEN
410        k := p_klev_tbl.FIRST;
411        LOOP
412          l_klev_tbl(k).id                     := p_klev_tbl(k).id;
413          l_klev_tbl(k).object_version_number  := p_klev_tbl(k).object_version_number;
414          EXIT WHEN (k = p_klev_tbl.LAST);
415          k := p_klev_tbl.NEXT(k);
416        END LOOP;
417     ELSE
418        RAISE FND_API.G_EXC_ERROR;
419     END IF;
420     OKL_CREATE_KLE_PVT.delete_add_on_line(p_api_version   => p_api_version,
421                                           p_init_msg_list => p_init_msg_list,
422                                           x_return_status => x_return_status,
423                                           x_msg_count     => x_msg_count,
424                                           x_msg_data      => x_msg_data,
425                                           P_New_YN        => P_new_yn,
426                                           p_asset_number  => p_asset_number,
427                                           p_clev_tbl      => l_clev_tbl,
428                                           p_klev_tbl      => l_klev_tbl,
429                                           x_fin_clev_rec  => x_fin_clev_rec,
430                                           x_fin_klev_rec  => x_fin_klev_rec);
431     IF (x_return_status = FND_API.G_RET_STS_ERROR )  THEN
432        RAISE FND_API.G_EXC_ERROR;
433     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
434        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
435     END IF;
436     l_fin_clev_rec := x_fin_clev_rec;
437     l_fin_klev_rec := x_fin_klev_rec;
438     g_klev_tbl := l_klev_tbl;
439     g_clev_tbl := l_clev_tbl;
440     --	Verticle industry post- processing section
441     --  Customer post processing  section
442   EXCEPTION
443     When FND_API.G_EXC_ERROR then
444       ROLLBACK  TO delete_add_on_line_pub;
445       x_return_status := FND_API.G_RET_STS_ERROR;
446       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
447                                  p_data  => x_msg_data);
448     When FND_API.G_EXC_UNEXPECTED_ERROR then
449       ROLLBACK  TO delete_add_on_line_pub;
450       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
451       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
452                                  p_data  => x_msg_data);
453     When OTHERS then
454       ROLLBACK TO delete_add_on_line_pub;
455       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
456       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_CREATE_KLE_PUB');
457       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
458                                  p_count   => x_msg_count,
459                                  p_data    => x_msg_data);
460 
461   END delete_add_on_line;
462 -----------------------------------------------------------------------------------------------
463 --------------------------- Main Process for All Line Creation---------------------------------
464 -----------------------------------------------------------------------------------------------
465   PROCEDURE Create_all_line(
466             p_api_version    IN  NUMBER,
467             p_init_msg_list  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
468             x_return_status  OUT NOCOPY VARCHAR2,
469             x_msg_count      OUT NOCOPY NUMBER,
470             x_msg_data       OUT NOCOPY VARCHAR2,
471             P_new_yn         IN  OKL_TXL_ASSETS_V.USED_ASSET_YN%TYPE,
472             p_asset_number   IN  OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE,
473             p_clev_fin_rec   IN  clev_rec_type,
474             p_klev_fin_rec   IN  klev_rec_type,
475             p_cimv_model_rec IN  cimv_rec_type,
476             p_clev_fa_rec    IN  clev_rec_type,
477             p_cimv_fa_rec    IN  cimv_rec_type,
478             p_talv_fa_rec    IN  talv_rec_type,
479             p_itiv_ib_tbl    IN  itiv_tbl_type,
480             x_clev_fin_rec   OUT NOCOPY clev_rec_type,
481             x_clev_model_rec OUT NOCOPY clev_rec_type,
482             x_clev_fa_rec    OUT NOCOPY clev_rec_type,
483             x_clev_ib_rec    OUT NOCOPY clev_rec_type) IS
484 
485     l_clev_fin_rec               clev_rec_type;
486     l_klev_fin_rec               klev_rec_type;
487     l_clev_model_rec             clev_rec_type;
488     l_cimv_model_rec             cimv_rec_type;
489     l_clev_fa_rec                clev_rec_type;
490     l_clev_ib_rec                clev_rec_type;
491     l_cimv_fa_rec                cimv_rec_type;
492     l_talv_fa_rec                talv_rec_type;
493     l_itiv_ib_tbl                itiv_tbl_type;
494     l_api_name               CONSTANT VARCHAR2(30) := 'CREATE_ALL_LINE';
495     l_api_version            CONSTANT NUMBER := 1;
496   BEGIN
497     savepoint Create_all_line_pub;
498     x_return_status     := FND_API.G_RET_STS_SUCCESS;
499     -- Standard call to check for call compatibility.
500     IF NOT (FND_API.Compatible_API_Call (l_api_version,
501 	                                 p_api_version,
502 			                 l_api_name,
503 		                         G_PKG_NAME)) THEN
504        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
505     END IF;
506     -- Initialize message list if p_init_msg_list is set to TRUE.
507     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
508        FND_MSG_PUB.initialize;
509     END IF;
510     l_clev_fin_rec    := p_clev_fin_rec;
511     l_klev_fin_rec    := p_klev_fin_rec;
512     l_cimv_model_rec  := p_cimv_model_rec;
513     l_clev_fa_rec     := p_clev_fa_rec;
514     l_cimv_fa_rec     := p_cimv_fa_rec;
515     l_talv_fa_rec     := p_talv_fa_rec;
516     l_itiv_ib_tbl     := p_itiv_ib_tbl;
517     g_clev_fin_rec    := l_clev_fin_rec;
518     g_klev_fin_rec    := l_klev_fin_rec;
519     g_cimv_model_rec  := l_cimv_model_rec;
520     g_clev_fa_rec     := l_clev_fa_rec;
521     g_cimv_fa_rec     := l_cimv_fa_rec;
522     g_talv_fa_rec     := l_talv_fa_rec;
523     g_itiv_ib_tbl     := l_itiv_ib_tbl;
524     --  Customer pre processing  section
525     -- 	Verticle industry pre- processing section
526     -- Business API call  section
527     OKL_CREATE_KLE_PVT.Create_all_line(p_api_version    => p_api_version,
528                                        p_init_msg_list  => p_init_msg_list,
529                                        x_return_status  => x_return_status,
530                                        x_msg_count      => x_msg_count,
531                                        x_msg_data       => x_msg_data,
532                                        P_new_yn         => P_new_yn,
533                                        p_asset_number   => p_asset_number,
534                                        p_clev_fin_rec   => l_clev_fin_rec,
535                                        p_klev_fin_rec   => l_klev_fin_rec,
536                                        p_cimv_model_rec => l_cimv_model_rec,
537                                        p_clev_fa_rec    => l_clev_fa_rec,
538                                        p_cimv_fa_rec    => l_cimv_fa_rec,
539                                        p_talv_fa_rec    => l_talv_fa_rec,
540                                        p_itiv_ib_tbl    => l_itiv_ib_tbl,
541                                        x_clev_fin_rec   => x_clev_fin_rec,
542                                        x_clev_model_rec => x_clev_model_rec,
543                                        x_clev_fa_rec    => x_clev_fa_rec,
544                                        x_clev_ib_rec    => x_clev_ib_rec);
545     IF (x_return_status = FND_API.G_RET_STS_ERROR)  THEN
546        RAISE FND_API.G_EXC_ERROR;
547     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
548        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
549     END IF;
550     l_clev_fin_rec   := x_clev_fin_rec;
551     l_clev_model_rec := x_clev_model_rec;
552     l_clev_fa_rec    := x_clev_fa_rec;
553     l_clev_ib_rec    := x_clev_ib_rec;
554 
555     g_clev_fin_rec   := l_clev_fin_rec;
556     g_clev_model_rec := l_clev_model_rec;
557     g_clev_fa_rec    := l_clev_fa_rec;
558     g_clev_ib_rec    := l_clev_ib_rec;
559     --	Verticle industry post- processing section
560     --  Customer post processing  section
561   EXCEPTION
562     When FND_API.G_EXC_ERROR then
563       ROLLBACK TO Create_all_line_pub;
564       x_return_status := FND_API.G_RET_STS_ERROR;
565       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
566                                  p_data  => x_msg_data);
567     When FND_API.G_EXC_UNEXPECTED_ERROR then
568       ROLLBACK TO Create_all_line_pub;
569       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
570       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
571                                  p_data  => x_msg_data);
572     When OTHERS then
573       ROLLBACK  TO Create_all_line_pub;
574       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
575       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_CREATE_KLE_PUB');
576       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
577                                  p_count   => x_msg_count,
578                                  p_data    => x_msg_data);
579   END Create_all_line;
580 -----------------------------------------------------------------------------------------------
581 --------------------------- Main Process for All Line Updating---------------------------------
582 -----------------------------------------------------------------------------------------------
583   PROCEDURE Update_all_line(
584             p_api_version    IN  NUMBER,
585             p_init_msg_list  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
586             x_return_status  OUT NOCOPY VARCHAR2,
587             x_msg_count      OUT NOCOPY NUMBER,
588             x_msg_data       OUT NOCOPY VARCHAR2,
589             P_new_yn         IN  OKL_TXL_ASSETS_V.USED_ASSET_YN%TYPE,
590             p_asset_number   IN  OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE,
591             p_clev_fin_rec   IN  clev_rec_type,
592             p_klev_fin_rec   IN  klev_rec_type,
593             p_clev_model_rec IN  clev_rec_type,
594             p_cimv_model_rec IN  cimv_rec_type,
595             p_clev_fa_rec    IN  clev_rec_type,
596             p_cimv_fa_rec    IN  cimv_rec_type,
597             p_talv_fa_rec    IN  talv_rec_type,
598             p_clev_ib_rec    IN  clev_rec_type,
599             p_itiv_ib_rec    IN  itiv_rec_type,
600             x_clev_fin_rec   OUT NOCOPY clev_rec_type,
601             x_clev_model_rec OUT NOCOPY clev_rec_type,
602             x_clev_fa_rec    OUT NOCOPY clev_rec_type,
603             x_clev_ib_rec    OUT NOCOPY clev_rec_type) IS
604 
605     l_clev_fin_rec               clev_rec_type;
606     l_klev_fin_rec               klev_rec_type;
607     l_clev_model_rec             clev_rec_type;
608     l_cimv_model_rec             cimv_rec_type;
609     l_clev_fa_rec                clev_rec_type;
610     l_clev_ib_rec                clev_rec_type;
611     l_cimv_fa_rec                cimv_rec_type;
612     l_talv_fa_rec                talv_rec_type;
613     l_itiv_ib_rec                itiv_rec_type;
614     l_api_name               CONSTANT VARCHAR2(30) := 'UPDATE_ALL_LINE';
615     l_api_version            CONSTANT NUMBER := 1;
616   BEGIN
617     savepoint update_all_line_pub;
618     x_return_status     := FND_API.G_RET_STS_SUCCESS;
619     -- Standard call to check for call compatibility.
620     IF NOT (FND_API.Compatible_API_Call (l_api_version,
621 	                                 p_api_version,
622 			                 l_api_name,
623 		                         G_PKG_NAME)) THEN
624        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
625     END IF;
626     -- Initialize message list if p_init_msg_list is set to TRUE.
627     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
628        FND_MSG_PUB.initialize;
629     END IF;
630     l_clev_fin_rec    := p_clev_fin_rec;
631     l_klev_fin_rec    := p_klev_fin_rec;
632     l_clev_model_rec  := p_clev_model_rec;
633     l_cimv_model_rec  := p_cimv_model_rec;
634     l_clev_fa_rec     := p_clev_fa_rec;
635     l_cimv_fa_rec     := p_cimv_fa_rec;
636     l_talv_fa_rec     := p_talv_fa_rec;
637     l_clev_ib_rec     := p_clev_ib_rec;
638     l_itiv_ib_rec     := p_itiv_ib_rec;
639 
640     g_clev_fin_rec    := l_clev_fin_rec;
641     g_klev_fin_rec    := l_klev_fin_rec;
642     g_clev_model_rec  := l_clev_model_rec;
643     g_cimv_model_rec  := l_cimv_model_rec;
644     g_clev_fa_rec     := l_clev_fa_rec;
645     g_cimv_fa_rec     := l_cimv_fa_rec;
646     g_talv_fa_rec     := l_talv_fa_rec;
647     g_clev_ib_rec     := l_clev_ib_rec;
648     g_itiv_ib_rec     := l_itiv_ib_rec;
649 
650     --  Customer pre processing  section
651     -- 	Verticle industry pre- processing section
652     -- Business API call  section
653     OKL_CREATE_KLE_PVT.update_all_line(p_api_version    => p_api_version,
654                                        p_init_msg_list  => p_init_msg_list,
655                                        x_return_status  => x_return_status,
656                                        x_msg_count      => x_msg_count,
657                                        x_msg_data       => x_msg_data,
658                                        P_new_yn         => P_new_yn,
659                                        p_asset_number   => p_asset_number,
660                                        p_clev_fin_rec   => l_clev_fin_rec,
661                                        p_klev_fin_rec   => l_klev_fin_rec,
662                                        p_clev_model_rec => l_clev_model_rec,
663                                        p_cimv_model_rec => l_cimv_model_rec,
664                                        p_clev_fa_rec    => l_clev_fa_rec,
665                                        p_cimv_fa_rec    => l_cimv_fa_rec,
666                                        p_talv_fa_rec    => l_talv_fa_rec,
667                                        p_clev_ib_rec    => l_clev_ib_rec,
668                                        p_itiv_ib_rec    => l_itiv_ib_rec,
669                                        x_clev_fin_rec   => x_clev_fin_rec,
670                                        x_clev_model_rec => x_clev_model_rec,
671                                        x_clev_fa_rec    => x_clev_fa_rec,
672                                        x_clev_ib_rec    => x_clev_ib_rec);
673     IF (x_return_status = FND_API.G_RET_STS_ERROR)  THEN
674        RAISE FND_API.G_EXC_ERROR;
675     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
676        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
677     END IF;
678     l_clev_fin_rec   := x_clev_fin_rec;
679     l_clev_model_rec := x_clev_model_rec;
680     l_clev_fa_rec    := x_clev_fa_rec;
681     l_clev_ib_rec    := x_clev_ib_rec;
682 
683     g_clev_fin_rec   := l_clev_fin_rec;
684     g_clev_model_rec := l_clev_model_rec;
685     g_clev_fa_rec    := l_clev_fa_rec;
686     g_clev_ib_rec    := l_clev_ib_rec;
687     --	Verticle industry post- processing section
688     --  Customer post processing  section
689   EXCEPTION
690     When FND_API.G_EXC_ERROR then
691       ROLLBACK TO update_all_line_pub;
692       x_return_status := FND_API.G_RET_STS_ERROR;
693       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
694                                  p_data  => x_msg_data);
695     When FND_API.G_EXC_UNEXPECTED_ERROR then
696       ROLLBACK TO update_all_line_pub;
697       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
698       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
699                                  p_data  => x_msg_data);
700     When OTHERS then
701       ROLLBACK  TO update_all_line_pub;
702       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
703       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_update_KLE_PUB');
704       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
705                                  p_count   => x_msg_count,
706                                  p_data    => x_msg_data);
707   END update_all_line;
708 -----------------------------------------------------------------------------------------------
709 --------------------- Main Process for Creating Instance and IB Line---------------------------
710 -----------------------------------------------------------------------------------------------
711   PROCEDURE create_ints_ib_line(
712             p_api_version    IN  NUMBER,
713             p_init_msg_list  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
714             x_return_status  OUT NOCOPY VARCHAR2,
715             x_msg_count      OUT NOCOPY NUMBER,
716             x_msg_data       OUT NOCOPY VARCHAR2,
717             P_new_yn         IN  OKL_TXL_ASSETS_V.USED_ASSET_YN%TYPE,
718             p_asset_number   IN  OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE,
719             p_current_units  IN  OKL_TXL_ASSETS_V.CURRENT_UNITS%TYPE,
720             p_clev_ib_rec    IN  clev_rec_type,
721             p_itiv_ib_tbl    IN  itiv_tbl_type,
722             x_clev_ib_tbl    OUT NOCOPY clev_tbl_type,
723             x_itiv_ib_tbl    OUT NOCOPY itiv_tbl_type,
724             x_clev_fin_rec   OUT NOCOPY clev_rec_type,
725             x_klev_fin_rec   OUT NOCOPY klev_rec_type,
726             x_cimv_model_rec OUT NOCOPY cimv_rec_type,
727             x_cimv_fa_rec    OUT NOCOPY cimv_rec_type,
728             x_talv_fa_rec    OUT NOCOPY talv_rec_type) IS
729 
730     l_clev_ib_rec                clev_rec_type;
731     l_itiv_ib_tbl                itiv_tbl_type;
732 
733     l_clev_ib_tbl                clev_tbl_type;
734     l_clev_fin_rec               clev_rec_type;
735     l_klev_fin_rec               klev_rec_type;
736     l_cimv_model_rec             cimv_rec_type;
737     l_cimv_fa_rec                cimv_rec_type;
738     l_talv_fa_rec                talv_rec_type;
739 
740     l_api_name               CONSTANT VARCHAR2(30) := 'CREATE_INST_IB_LINE';
741     l_api_version            CONSTANT NUMBER := 1;
742   BEGIN
743     savepoint create_inst_ib_line_pub;
744     x_return_status     := FND_API.G_RET_STS_SUCCESS;
745     -- Standard call to check for call compatibility.
746     IF NOT (FND_API.Compatible_API_Call (l_api_version,
747 	                                 p_api_version,
748 			                 l_api_name,
749 		                         G_PKG_NAME)) THEN
750        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
751     END IF;
752     -- Initialize message list if p_init_msg_list is set to TRUE.
753     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
754        FND_MSG_PUB.initialize;
755     END IF;
756     l_clev_ib_rec     := p_clev_ib_rec;
757     l_itiv_ib_tbl     := p_itiv_ib_tbl;
758 
759     g_clev_ib_rec     := l_clev_ib_rec;
760     g_itiv_ib_tbl     := l_itiv_ib_tbl;
761 
762     --  Customer pre processing  section
763     -- 	Verticle industry pre- processing section
764     -- Business API call  section
765     OKL_CREATE_KLE_PVT.create_ints_ib_line(p_api_version    => p_api_version,
766                                            p_init_msg_list  => p_init_msg_list,
767                                            x_return_status  => x_return_status,
768                                            x_msg_count      => x_msg_count,
769                                            x_msg_data       => x_msg_data,
770                                            P_new_yn         => P_new_yn,
771                                            p_asset_number   => p_asset_number,
772                                            p_current_units  => p_current_units,
773                                            p_clev_ib_rec    => l_clev_ib_rec,
774                                            p_itiv_ib_tbl    => l_itiv_ib_tbl,
775                                            x_clev_ib_tbl    => x_clev_ib_tbl,
776                                            x_itiv_ib_tbl    => x_itiv_ib_tbl,
777                                            x_clev_fin_rec   => x_clev_fin_rec,
778                                            x_klev_fin_rec   => x_klev_fin_rec,
779                                            x_cimv_model_rec => x_cimv_model_rec,
780                                            x_cimv_fa_rec    => x_cimv_fa_rec,
781                                            x_talv_fa_rec    => x_talv_fa_rec);
782     IF (x_return_status = FND_API.G_RET_STS_ERROR)  THEN
783        RAISE FND_API.G_EXC_ERROR;
784     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
785        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
786     END IF;
787     l_clev_ib_tbl    := x_clev_ib_tbl;
788     l_itiv_ib_tbl    := x_itiv_ib_tbl;
789     l_clev_fin_rec   := x_clev_fin_rec;
790     l_klev_fin_rec   := x_klev_fin_rec;
791     l_cimv_model_rec := x_cimv_model_rec;
792     l_cimv_fa_rec    := x_cimv_fa_rec;
793     l_talv_fa_rec    := x_talv_fa_rec;
794 
795     g_clev_ib_tbl    := l_clev_ib_tbl;
796     g_itiv_ib_tbl    := l_itiv_ib_tbl;
797     g_clev_fin_rec   := l_clev_fin_rec;
798     g_klev_fin_rec   := l_klev_fin_rec;
799     g_cimv_model_rec := l_cimv_model_rec;
800     g_cimv_fa_rec    := l_cimv_fa_rec;
801     g_talv_fa_rec    := l_talv_fa_rec;
802 
803     --	Verticle industry post- processing section
804     --  Customer post processing  section
805   EXCEPTION
806     When FND_API.G_EXC_ERROR then
807       ROLLBACK TO create_inst_ib_line_pub;
808       x_return_status := FND_API.G_RET_STS_ERROR;
809       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
810                                  p_data  => x_msg_data);
811     When FND_API.G_EXC_UNEXPECTED_ERROR then
812       ROLLBACK TO create_inst_ib_line_pub;
813       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
814       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
815                                  p_data  => x_msg_data);
816     When OTHERS then
817       ROLLBACK  TO create_inst_ib_line_pub;
818       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
819       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_update_KLE_PUB');
820       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
821                                  p_count   => x_msg_count,
822                                  p_data    => x_msg_data);
823   END create_ints_ib_line;
824 
825 -----------------------------------------------------------------------------------------------
826 --------------------- Main Process for Updating Instance and IB Line---------------------------
827 -----------------------------------------------------------------------------------------------
828   PROCEDURE update_ints_ib_line(
829             p_api_version    IN  NUMBER,
830             p_init_msg_list  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
831             x_return_status  OUT NOCOPY VARCHAR2,
832             x_msg_count      OUT NOCOPY NUMBER,
833             x_msg_data       OUT NOCOPY VARCHAR2,
834             P_new_yn         IN  OKL_TXL_ASSETS_V.USED_ASSET_YN%TYPE,
835             p_asset_number   IN  OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE,
836             p_top_line_id    IN  OKC_K_LINES_V.ID%TYPE,
837             p_dnz_chr_id     IN  OKC_K_HEADERS_V.ID%TYPE,
838             p_itiv_ib_tbl    IN  itiv_tbl_type,
839             x_clev_ib_tbl    OUT NOCOPY clev_tbl_type,
840             x_itiv_ib_tbl    OUT NOCOPY itiv_tbl_type) IS
841 
842     l_clev_ib_tbl                clev_tbl_type;
843     lx_clev_ib_tbl               clev_tbl_type;
844     l_itiv_ib_tbl                itiv_tbl_type;
845 
846     l_api_name               CONSTANT VARCHAR2(30) := 'UPDATE_INST_IB_LINE';
847     l_api_version            CONSTANT NUMBER := 1;
848   BEGIN
849     savepoint update_ints_ib_line_pub;
850     x_return_status     := FND_API.G_RET_STS_SUCCESS;
851     -- Standard call to check for call compatibility.
852     IF NOT (FND_API.Compatible_API_Call (l_api_version,
853 	                                 p_api_version,
854 			                 l_api_name,
855 		                         G_PKG_NAME)) THEN
856        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
857     END IF;
858     -- Initialize message list if p_init_msg_list is set to TRUE.
859     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
860        FND_MSG_PUB.initialize;
861     END IF;
862     l_itiv_ib_tbl     := p_itiv_ib_tbl;
863     g_itiv_ib_tbl     := l_itiv_ib_tbl;
864 
865     --  Customer pre processing  section
866     -- 	Verticle industry pre- processing section
867     -- Business API call  section
868     OKL_CREATE_KLE_PVT.update_ints_ib_line(p_api_version    => p_api_version,
869                                            p_init_msg_list  => p_init_msg_list,
870                                            x_return_status  => x_return_status,
871                                            x_msg_count      => x_msg_count,
872                                            x_msg_data       => x_msg_data,
873                                            P_new_yn         => P_new_yn,
874                                            p_asset_number   => p_asset_number,
875                                            p_top_line_id    => p_top_line_id,
876                                            p_dnz_chr_id     => p_dnz_chr_id,
877                                            p_itiv_ib_tbl    => l_itiv_ib_tbl,
878                                            x_clev_ib_tbl    => x_clev_ib_tbl,
879                                            x_itiv_ib_tbl    => x_itiv_ib_tbl);
880     IF (x_return_status = FND_API.G_RET_STS_ERROR)  THEN
881        RAISE FND_API.G_EXC_ERROR;
882     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
883        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
884     END IF;
885     l_clev_ib_tbl     := x_clev_ib_tbl;
886     l_itiv_ib_tbl     := x_itiv_ib_tbl;
887     g_clev_ib_tbl     := l_clev_ib_tbl;
888     g_itiv_ib_tbl     := l_itiv_ib_tbl;
889     --	Verticle industry post- processing section
890     --  Customer post processing  section
891   EXCEPTION
892     When FND_API.G_EXC_ERROR then
893       ROLLBACK TO update_ints_ib_line_pub;
894       x_return_status := FND_API.G_RET_STS_ERROR;
895       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
896                                  p_data  => x_msg_data);
897     When FND_API.G_EXC_UNEXPECTED_ERROR then
898       ROLLBACK TO update_ints_ib_line_pub;
899       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
900       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
901                                  p_data  => x_msg_data);
902     When OTHERS then
903       ROLLBACK  TO update_ints_ib_line_pub;
904       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
905       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_update_KLE_PUB');
906       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
907                                  p_count   => x_msg_count,
908                                  p_data    => x_msg_data);
909   END update_ints_ib_line;
910 -----------------------------------------------------------------------------------------------
911 --------------------- Main Process for Deleting Instance and IB Line---------------------------
912 -----------------------------------------------------------------------------------------------
913   PROCEDURE delete_ints_ib_line(
914             p_api_version         IN  NUMBER,
915             p_init_msg_list       IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
916             x_return_status       OUT NOCOPY VARCHAR2,
917             x_msg_count           OUT NOCOPY NUMBER,
918             x_msg_data            OUT NOCOPY VARCHAR2,
919             P_new_yn              IN  OKL_TXL_ASSETS_V.USED_ASSET_YN%TYPE,
920             p_asset_number        IN  OKL_TXL_ASSETS_V.ASSET_NUMBER%TYPE,
921             p_clev_ib_tbl         IN  clev_tbl_type,
922             x_clev_fin_rec        OUT NOCOPY clev_rec_type,
923             x_klev_fin_rec        OUT NOCOPY klev_rec_type,
924             x_cimv_model_rec      OUT NOCOPY cimv_rec_type,
925             x_cimv_fa_rec         OUT NOCOPY cimv_rec_type,
926             x_talv_fa_rec         OUT NOCOPY talv_rec_type) IS
927 
928     l_clev_ib_tbl                clev_tbl_type;
929 
930     l_clev_fin_rec               clev_rec_type;
931     l_klev_fin_rec               klev_rec_type;
932     l_cimv_model_rec             cimv_rec_type;
933     l_cimv_fa_rec                cimv_rec_type;
934     l_talv_fa_rec                talv_rec_type;
935 
936     l_api_name               CONSTANT VARCHAR2(30) := 'DELETE_INST_IB_LINE';
937     l_api_version            CONSTANT NUMBER := 1;
938   BEGIN
939     savepoint delete_inst_ib_line_pub;
940     x_return_status     := FND_API.G_RET_STS_SUCCESS;
941     -- Standard call to check for call compatibility.
942     IF NOT (FND_API.Compatible_API_Call (l_api_version,
943 	                                 p_api_version,
944 			                 l_api_name,
945 		                         G_PKG_NAME)) THEN
946        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
947     END IF;
948     -- Initialize message list if p_init_msg_list is set to TRUE.
949     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
950        FND_MSG_PUB.initialize;
951     END IF;
952     l_clev_ib_tbl     := p_clev_ib_tbl;
953     g_clev_ib_tbl     := l_clev_ib_tbl;
954 
955     --  Customer pre processing  section
956     -- 	Verticle industry pre- processing section
957     -- Business API call  section
958     OKL_CREATE_KLE_PVT.delete_ints_ib_line(p_api_version    => p_api_version,
959                                            p_init_msg_list  => p_init_msg_list,
960                                            x_return_status  => x_return_status,
961                                            x_msg_count      => x_msg_count,
962                                            x_msg_data       => x_msg_data,
963                                            P_new_yn         => P_new_yn,
964                                            p_asset_number   => p_asset_number,
965                                            p_clev_ib_tbl    => l_clev_ib_tbl,
966                                            x_clev_fin_rec   => x_clev_fin_rec,
967                                            x_klev_fin_rec   => x_klev_fin_rec,
968                                            x_cimv_model_rec => x_cimv_model_rec,
969                                            x_cimv_fa_rec    => x_cimv_fa_rec,
970                                            x_talv_fa_rec    => x_talv_fa_rec);
971     IF (x_return_status = FND_API.G_RET_STS_ERROR)  THEN
972        RAISE FND_API.G_EXC_ERROR;
973     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
974        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
975     END IF;
976     l_clev_fin_rec   := x_clev_fin_rec;
977     l_klev_fin_rec   := x_klev_fin_rec;
978     l_cimv_model_rec := x_cimv_model_rec;
979     l_cimv_fa_rec    := x_cimv_fa_rec;
980     l_talv_fa_rec    := x_talv_fa_rec;
981 
982     g_clev_fin_rec   := l_clev_fin_rec;
983     g_klev_fin_rec   := l_klev_fin_rec;
984     g_cimv_model_rec := l_cimv_model_rec;
985     g_cimv_fa_rec    := l_cimv_fa_rec;
986     g_talv_fa_rec    := l_talv_fa_rec;
987     --	Verticle industry post- processing section
988     --  Customer post processing  section
989   EXCEPTION
990     When FND_API.G_EXC_ERROR then
991       ROLLBACK TO delete_inst_ib_line_pub;
992       x_return_status := FND_API.G_RET_STS_ERROR;
993       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
994                                  p_data  => x_msg_data);
995     When FND_API.G_EXC_UNEXPECTED_ERROR then
996       ROLLBACK TO delete_inst_ib_line_pub;
997       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
998       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
999                                  p_data  => x_msg_data);
1000     When OTHERS then
1001       ROLLBACK  TO delete_inst_ib_line_pub;
1002       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1003       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_update_KLE_PUB');
1004       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
1005                                  p_count   => x_msg_count,
1006                                  p_data    => x_msg_data);
1007   END delete_ints_ib_line;
1008 -----------------------------------------------------------------------------------------------
1009 ------------------------ Main Process for Create Party Roles-----------------------------------
1010 -----------------------------------------------------------------------------------------------
1011   PROCEDURE Create_party_roles_rec(
1012             p_api_version    IN  NUMBER,
1013             p_init_msg_list  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
1014             x_return_status  OUT NOCOPY VARCHAR2,
1015             x_msg_count      OUT NOCOPY NUMBER,
1016             x_msg_data       OUT NOCOPY VARCHAR2,
1017             p_cplv_rec       IN  cplv_rec_type,
1018             x_cplv_rec       OUT NOCOPY cplv_rec_type) IS
1019 
1020     l_cplv_rec                      cplv_rec_type;
1021     l_api_name             CONSTANT VARCHAR2(30) := 'CREATE_PARTY_ROLE';
1022     l_api_version          CONSTANT NUMBER := 1;
1023   BEGIN
1024     savepoint Create_party_roles_pub;
1025     x_return_status     := FND_API.G_RET_STS_SUCCESS;
1026     -- Standard call to check for call compatibility.
1027     IF NOT (FND_API.Compatible_API_Call (l_api_version,
1028 	                                 p_api_version,
1029 			                 l_api_name,
1030 		                         G_PKG_NAME)) THEN
1031        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1032     END IF;
1033     -- Initialize message list if p_init_msg_list is set to TRUE.
1034     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
1035        FND_MSG_PUB.initialize;
1036     END IF;
1037     l_cplv_rec := p_cplv_rec;
1038     g_cplv_rec := l_cplv_rec;
1039     --  Customer pre processing  section
1040     -- 	Verticle industry pre- processing section
1041     -- Business API call  section
1042     OKL_CREATE_KLE_PVT.Create_party_roles_rec(p_api_version   => p_api_version,
1043                                               p_init_msg_list => p_init_msg_list,
1044                                               x_return_status => x_return_status,
1045                                               x_msg_count     => x_msg_count,
1046                                               x_msg_data      => x_msg_data,
1047                                               p_cplv_rec      => l_cplv_rec,
1048                                               x_cplv_rec      => x_cplv_rec);
1049     IF (x_return_status = FND_API.G_RET_STS_ERROR )  THEN
1050        RAISE FND_API.G_EXC_ERROR;
1051     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1052        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1053     END IF;
1054     l_cplv_rec := x_cplv_rec;
1055     g_cplv_rec := l_cplv_rec;
1056     --	Verticle industry post- processing section
1057     --  Customer post processing  section
1058   EXCEPTION
1059     When FND_API.G_EXC_ERROR  then
1060       ROLLBACK TO Create_party_roles_pub;
1061       x_return_status := FND_API.G_RET_STS_ERROR;
1062       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
1063                                  p_data  => x_msg_data);
1064     When FND_API.G_EXC_UNEXPECTED_ERROR  then
1065       ROLLBACK TO Create_party_roles_pub;
1066       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1067       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
1068                                  p_data  => x_msg_data);
1069     When OTHERS  then
1070       ROLLBACK  TO Create_party_roles_pub;
1071       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1072       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_CREATE_KLE_PUB');
1073       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
1074                                  p_count   => x_msg_count,
1075                                  p_data    => x_msg_data);
1076   END Create_party_roles_rec;
1077 -----------------------------------------------------------------------------------------------
1078 ------------------------ Main Process for Update Party Roles-----------------------------------
1079 -----------------------------------------------------------------------------------------------
1080   PROCEDURE Update_party_roles_rec(
1081             p_api_version    IN  NUMBER,
1082             p_init_msg_list  IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
1083             x_return_status  OUT NOCOPY VARCHAR2,
1084             x_msg_count      OUT NOCOPY NUMBER,
1085             x_msg_data       OUT NOCOPY VARCHAR2,
1086             p_cplv_rec       IN  cplv_rec_type,
1087             x_cplv_rec       OUT NOCOPY cplv_rec_type) IS
1088     l_cplv_rec                      cplv_rec_type;
1089     l_api_name             CONSTANT VARCHAR2(30) := 'UPDATE_PARTY_ROLE';
1090     l_api_version          CONSTANT NUMBER := 1;
1091   BEGIN
1092     savepoint Update_party_roles_pub;
1093     x_return_status     := FND_API.G_RET_STS_SUCCESS;
1094     -- Standard call to check for call compatibility.
1095     IF NOT (FND_API.Compatible_API_Call (l_api_version,
1096 	                                 p_api_version,
1097 			                 l_api_name,
1098 		                         G_PKG_NAME)) THEN
1099        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1100     END IF;
1101     -- Initialize message list if p_init_msg_list is set to TRUE.
1102     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
1103        FND_MSG_PUB.initialize;
1104     END IF;
1105     l_cplv_rec := p_cplv_rec;
1106     g_cplv_rec := l_cplv_rec;
1107     --  Customer pre processing  section
1108     -- 	Verticle industry pre- processing section
1109     -- Business API call  section
1110     l_cplv_rec.id                    := p_cplv_rec.id;
1111     l_cplv_rec.object_version_number := p_cplv_rec.object_version_number;
1112     OKL_CREATE_KLE_PVT.Update_party_roles_rec(p_api_version   => p_api_version,
1113                                               p_init_msg_list => p_init_msg_list,
1114                                               x_return_status => x_return_status,
1115                                               x_msg_count     => x_msg_count,
1116                                               x_msg_data      => x_msg_data,
1117                                               p_cplv_rec      => l_cplv_rec,
1118                                               x_cplv_rec      => x_cplv_rec);
1119     IF (x_return_status = FND_API.G_RET_STS_ERROR)  THEN
1120        RAISE FND_API.G_EXC_ERROR;
1121     ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
1122        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1123     END IF;
1124     l_cplv_rec := x_cplv_rec;
1125     g_cplv_rec := l_cplv_rec;
1126     --	Verticle industry post- processing section
1127     --  Customer post processing  section
1128   EXCEPTION
1129     When FND_API.G_EXC_ERROR  then
1130       ROLLBACK  TO Update_party_roles_pub;
1131       x_return_status := FND_API.G_RET_STS_ERROR;
1132       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
1133                                  p_data  => x_msg_data);
1134     When FND_API.G_EXC_UNEXPECTED_ERROR  then
1135       ROLLBACK  TO Update_party_roles_pub;
1136       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1137       FND_MSG_PUB.count_and_get (p_count => x_msg_count,
1138                                  p_data  => x_msg_data);
1139     When OTHERS  then
1140       ROLLBACK  TO Update_party_roles_pub;
1141       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1142       FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'OKL_CREATE_KLE_PUB');
1143       FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
1144                                  p_count   => x_msg_count,
1145                                  p_data    => x_msg_data);
1146   END update_party_roles_rec;
1147 -----------------------------------------------------------------------------------------------
1148 --------------------- Main Process for Create Transaction Asset Details------------------------
1149 -----------------------------------------------------------------------------------------------
1150 -- Procedure Name  : Create_asset_line_details
1151 -- Description     : creates Transaction Asset Line details
1152 -- Business Rules  :
1153 -- Parameters      :
1154 -- Version         : 1.0
1155 -- End of comments
1156   PROCEDURE Create_asset_line_details(
1157     p_api_version                  IN NUMBER,
1158     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1159     x_return_status                OUT NOCOPY VARCHAR2,
1160     x_msg_count                    OUT NOCOPY NUMBER,
1161     x_msg_data                     OUT NOCOPY VARCHAR2,
1162     p_txdv_tbl                     IN txdv_tbl_type,
1163     x_txdv_tbl                     OUT NOCOPY txdv_tbl_type) IS
1164 
1165     l_txdv_tbl                           txdv_tbl_type;
1166     l_return_status                      VARCHAR2(3)  := FND_API.G_RET_STS_SUCCESS;
1167     l_api_name                  CONSTANT VARCHAR2(30) := 'CREATE_TXD_ASSET_DEF';
1168     l_api_version	              CONSTANT NUMBER := 1;
1169   BEGIN
1170     savepoint Create_asset_line_details_pub;
1171     -- Standard call to check for call compatibility.
1172     IF NOT (FND_API.Compatible_API_Call (l_api_version,
1173 	                                 p_api_version,
1174 			                 l_api_name,
1175 		                         G_PKG_NAME)) THEN
1176        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1177     END IF;
1178     -- Initialize message list if p_init_msg_list is set to TRUE.
1179     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
1180        FND_MSG_PUB.initialize;
1181     END IF;
1182     l_txdv_tbl := p_txdv_tbl;
1183     g_txdv_tbl := l_txdv_tbl;
1184     --  Customer pre processing  section
1185     -- 	Verticle industry pre- processing section
1186     OKL_CREATE_KLE_PVT.Create_asset_line_details(p_api_version   => p_api_version,
1187                                             p_init_msg_list => p_init_msg_list,
1188                                             x_return_status => l_return_status,
1189                                             x_msg_count     => x_msg_count,
1190                                             x_msg_data      => x_msg_data,
1191                                             p_txdv_tbl      => l_txdv_tbl,
1192                                             x_txdv_tbl      => x_txdv_tbl);
1193     IF (l_return_status = FND_API.G_RET_STS_ERROR )  THEN
1194        RAISE FND_API.G_EXC_ERROR;
1195     ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1196        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1197     END IF;
1198     l_txdv_tbl := x_txdv_tbl;
1199     g_txdv_tbl := l_txdv_tbl;
1200     --	Verticle industry post- processing section
1201     --  Customer post processing  section
1202     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1203   EXCEPTION
1204 	When  FND_API.G_EXC_ERROR  then
1205 		ROLLBACK  TO Create_asset_line_details_pub;
1206 		x_return_status := FND_API.G_RET_STS_ERROR;
1207                              FND_MSG_PUB.count_and_get (p_count => x_msg_count,
1208                                                         p_data  => x_msg_data);
1209 	When  FND_API.G_EXC_UNEXPECTED_ERROR  then
1210 		ROLLBACK  TO Create_asset_line_details_pub;
1211 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1212                              FND_MSG_PUB.count_and_get (p_count => x_msg_count,
1213                                                         p_data  => x_msg_data);
1214 	When  OTHERS  then
1215 		ROLLBACK  TO Create_asset_line_details_pub;
1216 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1217 		FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'Create_asset_line_details_pub');
1218                              FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
1219                                                         p_count   => x_msg_count,
1220                                                         p_data    => x_msg_data);
1221   END Create_asset_line_details;
1222 
1223 -----------------------------------------------------------------------------------------------
1224 --------------------- Main Process for update Transaction Asset Details------------------------
1225 -----------------------------------------------------------------------------------------------
1226 -- Procedure Name  : update_asset_line_details
1227 -- Description     : update Transaction Asset Line details
1228 -- Business Rules  :
1229 -- Parameters      :
1230 -- Version         : 1.0
1231 -- End of comments
1232   PROCEDURE update_asset_line_details(
1233     p_api_version                  IN NUMBER,
1234     p_init_msg_list                IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1235     x_return_status                OUT NOCOPY VARCHAR2,
1236     x_msg_count                    OUT NOCOPY NUMBER,
1237     x_msg_data                     OUT NOCOPY VARCHAR2,
1238     p_txdv_tbl                     IN txdv_tbl_type,
1239     x_txdv_tbl                     OUT NOCOPY txdv_tbl_type) IS
1240 
1241     l_txdv_tbl                           txdv_tbl_type;
1242     l_return_status                      VARCHAR2(3)  := FND_API.G_RET_STS_SUCCESS;
1243     l_api_name                  CONSTANT VARCHAR2(30) := 'UPDATE_TXD_ASSET_DEF';
1244     l_api_version	              CONSTANT NUMBER := 1;
1245   BEGIN
1246     savepoint update_asset_line_details_pub;
1247     -- Standard call to check for call compatibility.
1248     IF NOT (FND_API.Compatible_API_Call (l_api_version,
1249 	                                 p_api_version,
1250 			                 l_api_name,
1251 		                         G_PKG_NAME)) THEN
1252        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1253     END IF;
1254     -- Initialize message list if p_init_msg_list is set to TRUE.
1255     IF (FND_API.to_Boolean( p_init_msg_list )) THEN
1256        FND_MSG_PUB.initialize;
1257     END IF;
1258     l_txdv_tbl := p_txdv_tbl;
1259     g_txdv_tbl := l_txdv_tbl;
1260     --  Customer pre processing  section
1261     -- 	Verticle industry pre- processing section
1262     OKL_CREATE_KLE_PVT.update_asset_line_details(p_api_version   => p_api_version,
1263                                             p_init_msg_list => p_init_msg_list,
1264                                             x_return_status => l_return_status,
1265                                             x_msg_count     => x_msg_count,
1266                                             x_msg_data      => x_msg_data,
1267                                             p_txdv_tbl      => l_txdv_tbl,
1268                                             x_txdv_tbl      => x_txdv_tbl);
1269     IF (l_return_status = FND_API.G_RET_STS_ERROR )  THEN
1270        RAISE FND_API.G_EXC_ERROR;
1271     ELSIF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
1272        RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1273     END IF;
1274     l_txdv_tbl := x_txdv_tbl;
1275     g_txdv_tbl := l_txdv_tbl;
1276     --	Verticle industry post- processing section
1277     --  Customer post processing  section
1278     x_return_status :=  FND_API.G_RET_STS_SUCCESS;
1279   EXCEPTION
1280 	When  FND_API.G_EXC_ERROR  then
1281 		ROLLBACK  TO update_asset_line_details_pub;
1282 		x_return_status := FND_API.G_RET_STS_ERROR;
1283                              FND_MSG_PUB.count_and_get (p_count => x_msg_count,
1284                                                         p_data  => x_msg_data);
1285 	When  FND_API.G_EXC_UNEXPECTED_ERROR  then
1286 		ROLLBACK  TO update_asset_line_details_pub;
1287 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1288                              FND_MSG_PUB.count_and_get (p_count => x_msg_count,
1289                                                         p_data  => x_msg_data);
1290 	When  OTHERS  then
1291 		ROLLBACK  TO update_asset_line_details_pub;
1292 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1293 		FND_MSG_PUB.ADD_EXC_MSG( G_PKG_NAME, 'update_asset_line_details_pub');
1294                              FND_MSG_PUB.count_and_get (p_encoded => FND_API.G_FALSE,
1295                                                         p_count   => x_msg_count,
1296                                                         p_data    => x_msg_data);
1297   END update_asset_line_details;
1298 
1299 
1300 
1301 End OKL_CREATE_KLE_PUB;