[Home] [Help]
PACKAGE BODY: APPS.OKL_PXL_PVT
Source
1 PACKAGE BODY OKL_PXL_PVT AS
2 /* $Header: OKLSPXLB.pls 120.4 2007/12/21 12:54:52 rajnisku noship $ */
3 ---------------------------------------------------------------------------
4 -- PROCEDURE load_error_tbl
5 ---------------------------------------------------------------------------
6 PROCEDURE load_error_tbl (
7 px_error_rec IN OUT NOCOPY OKL_API.ERROR_REC_TYPE,
8 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
9
10 j INTEGER := NVL(px_error_tbl.LAST, 0) + 1;
11 last_msg_idx INTEGER := FND_MSG_PUB.COUNT_MSG;
12 l_msg_idx INTEGER := FND_MSG_PUB.G_NEXT;
13 BEGIN
14 -- FND_MSG_PUB has a small error in it. If we call FND_MSG_PUB.COUNT_AND_GET before
15 -- we call FND_MSG_PUB.GET, the variable FND_MSG_PUB uses to control the index of the
16 -- message stack gets set to 1. This makes sense until we call FND_MSG_PUB.GET which
17 -- automatically increments the index by 1, (making it 2), however, when the GET function
18 -- attempts to pull message 2, we get a NO_DATA_FOUND exception because there isn't any
19 -- message 2. To circumvent this problem, check the amount of messages and compensate.
20 -- Again, this error only occurs when 1 message is on the stack because COUNT_AND_GET
21 -- will only update the index variable when 1 and only 1 message is on the stack.
22 IF (last_msg_idx = 1) THEN
23 l_msg_idx := FND_MSG_PUB.G_FIRST;
24 END IF;
25 LOOP
26 fnd_msg_pub.get(
27 p_msg_index => l_msg_idx,
28 p_encoded => fnd_api.g_false,
29 p_data => px_error_rec.msg_data,
30 p_msg_index_out => px_error_rec.msg_count);
31 px_error_tbl(j) := px_error_rec;
32 j := j + 1;
33 EXIT WHEN (px_error_rec.msg_count = last_msg_idx);
34 END LOOP;
35 END load_error_tbl;
36 ---------------------------------------------------------------------------
37 -- FUNCTION find_highest_exception
38 ---------------------------------------------------------------------------
39 -- Finds the highest exception (G_RET_STS_UNEXP_ERROR)
40 -- in a OKL_API.ERROR_TBL_TYPE, and returns it.
41 FUNCTION find_highest_exception(
42 p_error_tbl IN OKL_API.ERROR_TBL_TYPE
43 ) RETURN VARCHAR2 IS
44 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
45 i INTEGER := 1;
46 BEGIN
47 IF (p_error_tbl.COUNT > 0) THEN
48 i := p_error_tbl.FIRST;
49 LOOP
50 IF (p_error_tbl(i).error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
51 IF (l_return_status <> OKL_API.G_RET_STS_UNEXP_ERROR) THEN
52 l_return_status := p_error_tbl(i).error_type;
53 END IF;
54 END IF;
55 EXIT WHEN (i = p_error_tbl.LAST);
56 i := p_error_tbl.NEXT(i);
57 END LOOP;
58 END IF;
59 RETURN(l_return_status);
60 END find_highest_exception;
61 ---------------------------------------------------------------------------
62 -- FUNCTION get_seq_id
63 ---------------------------------------------------------------------------
64 FUNCTION get_seq_id RETURN NUMBER IS
65 l_pk_value NUMBER;
66 CURSOR c_pk_csr IS SELECT okl_ext_ap_line_sources_s.NEXTVAL FROM DUAL;
67 BEGIN
68 /* Fetch the pk value from the sequence */
69 OPEN c_pk_csr;
70 FETCH c_pk_csr INTO l_pk_value;
71 CLOSE c_pk_csr;
72 RETURN l_pk_value;
73 END get_seq_id;
74
75 ---------------------------------------------------------------------------
76 -- PROCEDURE qc
77 ---------------------------------------------------------------------------
78 PROCEDURE qc IS
79 BEGIN
80 null;
81 END qc;
82
83 ---------------------------------------------------------------------------
84 -- PROCEDURE change_version
85 ---------------------------------------------------------------------------
86 PROCEDURE change_version IS
87 BEGIN
88 null;
89 END change_version;
90
91 ---------------------------------------------------------------------------
92 -- PROCEDURE api_copy
93 ---------------------------------------------------------------------------
94 PROCEDURE api_copy IS
95 BEGIN
96 null;
97 END api_copy;
98
99 ---------------------------------------------------------------------------
100 -- PROCEDURE add_language
101 ---------------------------------------------------------------------------
102 PROCEDURE add_language IS
103 BEGIN
104 DELETE FROM OKL_EXT_AP_LINE_SOURCES_TL T
105 WHERE NOT EXISTS (
106 SELECT NULL
107 FROM OKL_EXT_AP_LINE_SOURCES_B B
108 WHERE B.LINE_EXTENSION_ID =T.LINE_EXTENSION_ID
109 );
110
111 UPDATE OKL_EXT_AP_LINE_SOURCES_TL T SET(
112 INVENTORY_ORG_NAME,
113 STREAM_TYPE_NAME,
114 TRANS_LINE_DESCRIPTION,
115 INVENTORY_ITEM_NAME) = (SELECT
116 B.INVENTORY_ORG_NAME,
117 B.STREAM_TYPE_NAME,
118 B.TRANS_LINE_DESCRIPTION,
119 B.INVENTORY_ITEM_NAME
120 FROM OKL_EXT_AP_LINE_SOURCES_TL B
121 WHERE B.LINE_EXTENSION_ID = T.LINE_EXTENSION_ID
122 AND B.LANGUAGE = T.SOURCE_LANG)
123 WHERE ( T.LINE_EXTENSION_ID,
124 T.LANGUAGE)
125 IN (SELECT
126 SUBT.LINE_EXTENSION_ID,
127 SUBT.LANGUAGE
128 FROM OKL_EXT_AP_LINE_SOURCES_TL SUBB, OKL_EXT_AP_LINE_SOURCES_TL SUBT
129 WHERE SUBB.LINE_EXTENSION_ID = SUBT.LINE_EXTENSION_ID
130 AND SUBB.LANGUAGE = SUBT.SOURCE_LANG
131 AND (SUBB.INVENTORY_ORG_NAME <> SUBT.INVENTORY_ORG_NAME
132 OR SUBB.STREAM_TYPE_NAME <> SUBT.STREAM_TYPE_NAME
133 OR SUBB.TRANS_LINE_DESCRIPTION <> SUBT.TRANS_LINE_DESCRIPTION
134 OR SUBB.INVENTORY_ITEM_NAME <> SUBT.INVENTORY_ITEM_NAME
135 OR (SUBB.INVENTORY_ORG_NAME IS NULL AND SUBT.INVENTORY_ORG_NAME IS NOT NULL)
136 OR (SUBB.STREAM_TYPE_NAME IS NULL AND SUBT.STREAM_TYPE_NAME IS NOT NULL)
137 OR (SUBB.TRANS_LINE_DESCRIPTION IS NULL AND SUBT.TRANS_LINE_DESCRIPTION IS NOT NULL)
138 OR (SUBB.INVENTORY_ITEM_NAME IS NULL AND SUBT.INVENTORY_ITEM_NAME IS NOT NULL)
139 ));
140
141 INSERT INTO OKL_EXT_AP_LINE_SOURCES_TL (
142 LINE_EXTENSION_ID,
143 LANGUAGE,
144 SOURCE_LANG,
145 SFWT_FLAG,
146 INVENTORY_ORG_NAME,
147 STREAM_TYPE_NAME,
148 TRANS_LINE_DESCRIPTION,
149 CREATED_BY,
150 CREATION_DATE,
151 LAST_UPDATED_BY,
152 LAST_UPDATE_DATE,
153 LAST_UPDATE_LOGIN,
154 INVENTORY_ITEM_NAME)
155 SELECT
156 B.LINE_EXTENSION_ID,
157 L.LANGUAGE_CODE,
158 B.SOURCE_LANG,
159 B.SFWT_FLAG,
160 B.INVENTORY_ORG_NAME,
161 B.STREAM_TYPE_NAME,
162 B.TRANS_LINE_DESCRIPTION,
163 B.CREATED_BY,
164 B.CREATION_DATE,
165 B.LAST_UPDATED_BY,
166 B.LAST_UPDATE_DATE,
167 B.LAST_UPDATE_LOGIN,
168 B.INVENTORY_ITEM_NAME
169 FROM OKL_EXT_AP_LINE_SOURCES_TL B, FND_LANGUAGES L
170 WHERE L.INSTALLED_FLAG IN ('I', 'B')
171 AND B.LANGUAGE = USERENV('LANG')
172 AND NOT EXISTS (
173 SELECT NULL
174 FROM OKL_EXT_AP_LINE_SOURCES_TL T
175 WHERE T.LINE_EXTENSION_ID = B.LINE_EXTENSION_ID
176 AND T.LANGUAGE = L.LANGUAGE_CODE
177 );
178 END add_language;
179
180 ---------------------------------------------------------------------------
181 -- FUNCTION get_rec for: OKL_EXT_AP_LINE_SOURCES_V
182 ---------------------------------------------------------------------------
183 FUNCTION get_rec (
184 p_pxlv_rec IN pxlv_rec_type,
185 x_no_data_found OUT NOCOPY BOOLEAN
186 ) RETURN pxlv_rec_type IS
187 CURSOR okl_ext_ap_line_sou7 (p_line_extension_id IN NUMBER) IS
188 SELECT
189 LINE_EXTENSION_ID,
190 HEADER_EXTENSION_ID,
191 SOURCE_ID,
192 SOURCE_TABLE,
193 OBJECT_VERSION_NUMBER,
194 KLE_ID,
195 STY_ID,
196 ASSET_NUMBER,
197 CONTRACT_LINE_NUMBER,
198 ASSET_VENDOR_NAME,
199 INSTALLED_SITE_ID,
200 FIXED_ASSET_LOCATION_NAME,
201 ACCOUNTING_TEMPLATE_NAME,
202 FEE_TYPE_CODE,
203 MEMO_FLAG,
204 CONTRACT_LINE_TYPE,
205 LINE_ATTRIBUTE_CATEGORY,
206 LINE_ATTRIBUTE1,
207 LINE_ATTRIBUTE2,
208 LINE_ATTRIBUTE3,
209 LINE_ATTRIBUTE4,
210 LINE_ATTRIBUTE5,
211 LINE_ATTRIBUTE6,
212 LINE_ATTRIBUTE7,
213 LINE_ATTRIBUTE8,
214 LINE_ATTRIBUTE9,
215 LINE_ATTRIBUTE10,
216 LINE_ATTRIBUTE11,
217 LINE_ATTRIBUTE12,
218 LINE_ATTRIBUTE13,
219 LINE_ATTRIBUTE14,
220 LINE_ATTRIBUTE15,
221 STREAM_TYPE_CODE,
222 STREAM_TYPE_PURPOSE_CODE,
223 INVENTORY_ORG_CODE,
224 LANGUAGE,
225 INVENTORY_ORG_NAME,
226 STREAM_TYPE_NAME,
227 TRANS_LINE_DESCRIPTION,
228 CREATED_BY,
229 CREATION_DATE,
230 LAST_UPDATED_BY,
231 LAST_UPDATE_DATE,
232 LAST_UPDATE_LOGIN,
233 ASSET_CATEGORY_NAME,
234 INVENTORY_ITEM_NAME_CODE,
235 INVENTORY_ITEM_NAME,
236 ASSET_VENDOR_ID
237 FROM Okl_Ext_Ap_Line_Sources_V
238 WHERE okl_ext_ap_line_sources_v.line_extension_id = p_line_extension_id;
239 l_okl_ext_ap_line_sources_v_pk okl_ext_ap_line_sou7%ROWTYPE;
240 l_pxlv_rec pxlv_rec_type;
241 BEGIN
242 x_no_data_found := TRUE;
243 -- Get current database values
244 OPEN okl_ext_ap_line_sou7 (p_pxlv_rec.line_extension_id);
245 FETCH okl_ext_ap_line_sou7 INTO
246 l_pxlv_rec.line_extension_id,
247 l_pxlv_rec.header_extension_id,
248 l_pxlv_rec.source_id,
249 l_pxlv_rec.source_table,
250 l_pxlv_rec.object_version_number,
251 l_pxlv_rec.kle_id,
252 l_pxlv_rec.sty_id,
253 l_pxlv_rec.asset_number,
254 l_pxlv_rec.contract_line_number,
255 l_pxlv_rec.asset_vendor_name,
256 l_pxlv_rec.installed_site_id,
257 l_pxlv_rec.fixed_asset_location_name,
258 l_pxlv_rec.accounting_template_name,
259 l_pxlv_rec.fee_type_code,
260 l_pxlv_rec.memo_flag,
261 l_pxlv_rec.contract_line_type,
262 l_pxlv_rec.line_attribute_category,
263 l_pxlv_rec.line_attribute1,
264 l_pxlv_rec.line_attribute2,
265 l_pxlv_rec.line_attribute3,
266 l_pxlv_rec.line_attribute4,
267 l_pxlv_rec.line_attribute5,
268 l_pxlv_rec.line_attribute6,
269 l_pxlv_rec.line_attribute7,
270 l_pxlv_rec.line_attribute8,
271 l_pxlv_rec.line_attribute9,
272 l_pxlv_rec.line_attribute10,
273 l_pxlv_rec.line_attribute11,
274 l_pxlv_rec.line_attribute12,
275 l_pxlv_rec.line_attribute13,
276 l_pxlv_rec.line_attribute14,
277 l_pxlv_rec.line_attribute15,
278 l_pxlv_rec.stream_type_code,
279 l_pxlv_rec.stream_type_purpose_code,
280 l_pxlv_rec.inventory_org_code,
281 l_pxlv_rec.language,
282 l_pxlv_rec.inventory_org_name,
283 l_pxlv_rec.stream_type_name,
284 l_pxlv_rec.trans_line_description,
285 l_pxlv_rec.created_by,
286 l_pxlv_rec.creation_date,
287 l_pxlv_rec.last_updated_by,
288 l_pxlv_rec.last_update_date,
289 l_pxlv_rec.last_update_login,
290 l_pxlv_rec.asset_category_name,
291 l_pxlv_rec.inventory_item_name_code,
292 l_pxlv_rec.inventory_item_name,
293 l_pxlv_rec.asset_vendor_id;
294 x_no_data_found := okl_ext_ap_line_sou7%NOTFOUND;
295 CLOSE okl_ext_ap_line_sou7;
296 RETURN(l_pxlv_rec);
297 END get_rec;
298
299 ------------------------------------------------------------------
300 -- This version of get_rec sets error messages if no data found --
301 ------------------------------------------------------------------
302 FUNCTION get_rec (
303 p_pxlv_rec IN pxlv_rec_type,
304 x_return_status OUT NOCOPY VARCHAR2
305 ) RETURN pxlv_rec_type IS
306 l_pxlv_rec pxlv_rec_type;
307 l_row_notfound BOOLEAN := TRUE;
308 BEGIN
309 x_return_status := OKL_API.G_RET_STS_SUCCESS;
310 l_pxlv_rec := get_rec(p_pxlv_rec, l_row_notfound);
311 IF (l_row_notfound) THEN
312 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'LINE_EXTENSION_ID');
313 x_return_status := OKL_API.G_RET_STS_ERROR;
314 END IF;
315 RETURN(l_pxlv_rec);
316 END get_rec;
317 -----------------------------------------------------------
318 -- So we don't have to pass an "l_row_notfound" variable --
319 -----------------------------------------------------------
320 FUNCTION get_rec (
321 p_pxlv_rec IN pxlv_rec_type
322 ) RETURN pxlv_rec_type IS
323 l_row_not_found BOOLEAN := TRUE;
324 BEGIN
325 RETURN(get_rec(p_pxlv_rec, l_row_not_found));
326 END get_rec;
327 ---------------------------------------------------------------------------
328 -- FUNCTION get_rec for: OKL_EXT_AP_LINE_SOURCES_B
329 ---------------------------------------------------------------------------
330 FUNCTION get_rec (
331 p_pxl_rec IN pxl_rec_type,
332 x_no_data_found OUT NOCOPY BOOLEAN
333 ) RETURN pxl_rec_type IS
334 CURSOR okl_ext_ap_line_sou8 (p_line_extension_id IN NUMBER) IS
335 SELECT
336 LINE_EXTENSION_ID,
337 HEADER_EXTENSION_ID,
338 SOURCE_ID,
339 SOURCE_TABLE,
340 OBJECT_VERSION_NUMBER,
341 KLE_ID,
342 STY_ID,
343 ASSET_NUMBER,
344 CONTRACT_LINE_NUMBER,
345 ASSET_VENDOR_NAME,
346 INSTALLED_SITE_ID,
347 FIXED_ASSET_LOCATION_NAME,
348 ACCOUNTING_TEMPLATE_NAME,
349 FEE_TYPE_CODE,
350 MEMO_FLAG,
351 CONTRACT_LINE_TYPE,
352 LINE_ATTRIBUTE_CATEGORY,
353 LINE_ATTRIBUTE1,
354 LINE_ATTRIBUTE2,
355 LINE_ATTRIBUTE3,
356 LINE_ATTRIBUTE4,
357 LINE_ATTRIBUTE5,
358 LINE_ATTRIBUTE6,
359 LINE_ATTRIBUTE7,
360 LINE_ATTRIBUTE8,
361 LINE_ATTRIBUTE9,
362 LINE_ATTRIBUTE10,
363 LINE_ATTRIBUTE11,
364 LINE_ATTRIBUTE12,
365 LINE_ATTRIBUTE13,
366 LINE_ATTRIBUTE14,
367 LINE_ATTRIBUTE15,
368 STREAM_TYPE_CODE,
369 STREAM_TYPE_PURPOSE_CODE,
370 INVENTORY_ORG_CODE,
371 CREATED_BY,
372 CREATION_DATE,
373 LAST_UPDATED_BY,
374 LAST_UPDATE_DATE,
375 LAST_UPDATE_LOGIN,
376 ASSET_CATEGORY_NAME,
377 INVENTORY_ITEM_NAME_CODE,
378 ASSET_VENDOR_ID
379 FROM Okl_Ext_Ap_Line_Sources_B
380 WHERE okl_ext_ap_line_sources_b.line_extension_id = p_line_extension_id;
381 l_okl_ext_ap_line_sources_b_pk okl_ext_ap_line_sou8%ROWTYPE;
382 l_pxl_rec pxl_rec_type;
383 BEGIN
384 x_no_data_found := TRUE;
385 -- Get current database values
386 OPEN okl_ext_ap_line_sou8 (p_pxl_rec.line_extension_id);
387 FETCH okl_ext_ap_line_sou8 INTO
388 l_pxl_rec.line_extension_id,
389 l_pxl_rec.header_extension_id,
390 l_pxl_rec.source_id,
391 l_pxl_rec.source_table,
392 l_pxl_rec.object_version_number,
393 l_pxl_rec.kle_id,
394 l_pxl_rec.sty_id,
395 l_pxl_rec.asset_number,
396 l_pxl_rec.contract_line_number,
397 l_pxl_rec.asset_vendor_name,
398 l_pxl_rec.installed_site_id,
399 l_pxl_rec.fixed_asset_location_name,
400 l_pxl_rec.accounting_template_name,
401 l_pxl_rec.fee_type_code,
402 l_pxl_rec.memo_flag,
403 l_pxl_rec.contract_line_type,
404 l_pxl_rec.line_attribute_category,
405 l_pxl_rec.line_attribute1,
406 l_pxl_rec.line_attribute2,
407 l_pxl_rec.line_attribute3,
408 l_pxl_rec.line_attribute4,
409 l_pxl_rec.line_attribute5,
410 l_pxl_rec.line_attribute6,
411 l_pxl_rec.line_attribute7,
412 l_pxl_rec.line_attribute8,
413 l_pxl_rec.line_attribute9,
414 l_pxl_rec.line_attribute10,
415 l_pxl_rec.line_attribute11,
416 l_pxl_rec.line_attribute12,
417 l_pxl_rec.line_attribute13,
418 l_pxl_rec.line_attribute14,
419 l_pxl_rec.line_attribute15,
420 l_pxl_rec.stream_type_code,
421 l_pxl_rec.stream_type_purpose_code,
422 l_pxl_rec.inventory_org_code,
423 l_pxl_rec.created_by,
424 l_pxl_rec.creation_date,
425 l_pxl_rec.last_updated_by,
426 l_pxl_rec.last_update_date,
427 l_pxl_rec.last_update_login,
428 l_pxl_rec.asset_category_name,
429 l_pxl_rec.inventory_item_name_code,
430 l_pxl_rec.asset_vendor_id;
431 x_no_data_found := okl_ext_ap_line_sou8%NOTFOUND;
432 CLOSE okl_ext_ap_line_sou8;
433 RETURN(l_pxl_rec);
434 END get_rec;
435
436 ------------------------------------------------------------------
437 -- This version of get_rec sets error messages if no data found --
438 ------------------------------------------------------------------
439 FUNCTION get_rec (
440 p_pxl_rec IN pxl_rec_type,
441 x_return_status OUT NOCOPY VARCHAR2
442 ) RETURN pxl_rec_type IS
443 l_pxl_rec pxl_rec_type;
444 l_row_notfound BOOLEAN := TRUE;
445 BEGIN
446 x_return_status := OKL_API.G_RET_STS_SUCCESS;
447 l_pxl_rec := get_rec(p_pxl_rec, l_row_notfound);
448 IF (l_row_notfound) THEN
449 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'LINE_EXTENSION_ID');
450 x_return_status := OKL_API.G_RET_STS_ERROR;
451 END IF;
452 RETURN(l_pxl_rec);
453 END get_rec;
454 -----------------------------------------------------------
455 -- So we don't have to pass an "l_row_notfound" variable --
456 -----------------------------------------------------------
457 FUNCTION get_rec (
458 p_pxl_rec IN pxl_rec_type
459 ) RETURN pxl_rec_type IS
460 l_row_not_found BOOLEAN := TRUE;
461 BEGIN
462 RETURN(get_rec(p_pxl_rec, l_row_not_found));
463 END get_rec;
464 ---------------------------------------------------------------------------
465 -- FUNCTION get_rec for: OKL_EXT_AP_LINE_SOURCES_TL
466 ---------------------------------------------------------------------------
467 FUNCTION get_rec (
468 p_pxll_rec IN pxll_rec_type,
469 x_no_data_found OUT NOCOPY BOOLEAN
470 ) RETURN pxll_rec_type IS
471 CURSOR okl_ext_ap_line_sou9 (p_line_extension_id IN NUMBER,
472 p_language IN VARCHAR2) IS
473 SELECT
474 LINE_EXTENSION_ID,
475 LANGUAGE,
476 SOURCE_LANG,
477 SFWT_FLAG,
478 INVENTORY_ORG_NAME,
479 STREAM_TYPE_NAME,
480 TRANS_LINE_DESCRIPTION,
481 CREATED_BY,
482 CREATION_DATE,
483 LAST_UPDATED_BY,
484 LAST_UPDATE_DATE,
485 LAST_UPDATE_LOGIN,
486 INVENTORY_ITEM_NAME
487 FROM Okl_Ext_Ap_Line_Sources_Tl
488 WHERE okl_ext_ap_line_sources_tl.line_extension_id = p_line_extension_id
489 AND okl_ext_ap_line_sources_tl.language = p_language;
490 l_okl_ext_ap_line_s10 okl_ext_ap_line_sou9%ROWTYPE;
491 l_pxll_rec pxll_rec_type;
492 BEGIN
493 x_no_data_found := TRUE;
494 -- Get current database values
495 OPEN okl_ext_ap_line_sou9 (p_pxll_rec.line_extension_id,
496 p_pxll_rec.language);
497 FETCH okl_ext_ap_line_sou9 INTO
498 l_pxll_rec.line_extension_id,
499 l_pxll_rec.language,
500 l_pxll_rec.source_lang,
501 l_pxll_rec.sfwt_flag,
502 l_pxll_rec.inventory_org_name,
503 l_pxll_rec.stream_type_name,
504 l_pxll_rec.trans_line_description,
505 l_pxll_rec.created_by,
506 l_pxll_rec.creation_date,
507 l_pxll_rec.last_updated_by,
508 l_pxll_rec.last_update_date,
509 l_pxll_rec.last_update_login,
510 l_pxll_rec.inventory_item_name;
511 x_no_data_found := okl_ext_ap_line_sou9%NOTFOUND;
512 CLOSE okl_ext_ap_line_sou9;
513 RETURN(l_pxll_rec);
514 END get_rec;
515
516 ------------------------------------------------------------------
517 -- This version of get_rec sets error messages if no data found --
518 ------------------------------------------------------------------
519 FUNCTION get_rec (
520 p_pxll_rec IN pxll_rec_type,
521 x_return_status OUT NOCOPY VARCHAR2
522 ) RETURN pxll_rec_type IS
523 l_pxll_rec pxll_rec_type;
524 l_row_notfound BOOLEAN := TRUE;
525 BEGIN
526 x_return_status := OKL_API.G_RET_STS_SUCCESS;
527 l_pxll_rec := get_rec(p_pxll_rec, l_row_notfound);
528 IF (l_row_notfound) THEN
529 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'LINE_EXTENSION_ID');
530 OKL_API.set_message(G_APP_NAME,G_INVALID_VALUE,G_COL_NAME_TOKEN,'LANGUAGE');
531 x_return_status := OKL_API.G_RET_STS_ERROR;
532 END IF;
533 RETURN(l_pxll_rec);
534 END get_rec;
535 -----------------------------------------------------------
536 -- So we don't have to pass an "l_row_notfound" variable --
537 -----------------------------------------------------------
538 FUNCTION get_rec (
539 p_pxll_rec IN pxll_rec_type
540 ) RETURN pxll_rec_type IS
541 l_row_not_found BOOLEAN := TRUE;
542 BEGIN
543 RETURN(get_rec(p_pxll_rec, l_row_not_found));
544 END get_rec;
545 ---------------------------------------------------------------------------
546 -- FUNCTION null_out_defaults for: OKL_EXT_AP_LINE_SOURCES_V
547 ---------------------------------------------------------------------------
548 FUNCTION null_out_defaults (
549 p_pxlv_rec IN pxlv_rec_type
550 ) RETURN pxlv_rec_type IS
551 l_pxlv_rec pxlv_rec_type := p_pxlv_rec;
552 BEGIN
553 IF (l_pxlv_rec.line_extension_id = OKL_API.G_MISS_NUM ) THEN
554 l_pxlv_rec.line_extension_id := NULL;
555 END IF;
556 IF (l_pxlv_rec.header_extension_id = OKL_API.G_MISS_NUM ) THEN
557 l_pxlv_rec.header_extension_id := NULL;
558 END IF;
559 IF (l_pxlv_rec.source_id = OKL_API.G_MISS_NUM ) THEN
560 l_pxlv_rec.source_id := NULL;
561 END IF;
562 IF (l_pxlv_rec.source_table = OKL_API.G_MISS_CHAR ) THEN
563 l_pxlv_rec.source_table := NULL;
564 END IF;
565 IF (l_pxlv_rec.object_version_number = OKL_API.G_MISS_NUM ) THEN
566 l_pxlv_rec.object_version_number := NULL;
567 END IF;
568 IF (l_pxlv_rec.kle_id = OKL_API.G_MISS_NUM ) THEN
569 l_pxlv_rec.kle_id := NULL;
570 END IF;
571 IF (l_pxlv_rec.sty_id = OKL_API.G_MISS_NUM ) THEN
572 l_pxlv_rec.sty_id := NULL;
573 END IF;
574 IF (l_pxlv_rec.asset_number = OKL_API.G_MISS_CHAR ) THEN
575 l_pxlv_rec.asset_number := NULL;
576 END IF;
577 IF (l_pxlv_rec.contract_line_number = OKL_API.G_MISS_CHAR ) THEN
578 l_pxlv_rec.contract_line_number := NULL;
579 END IF;
580 IF (l_pxlv_rec.asset_vendor_name = OKL_API.G_MISS_CHAR ) THEN
581 l_pxlv_rec.asset_vendor_name := NULL;
582 END IF;
583 IF (l_pxlv_rec.installed_site_id = OKL_API.G_MISS_NUM ) THEN
584 l_pxlv_rec.installed_site_id := NULL;
585 END IF;
586 IF (l_pxlv_rec.fixed_asset_location_name = OKL_API.G_MISS_CHAR ) THEN
587 l_pxlv_rec.fixed_asset_location_name := NULL;
588 END IF;
589 IF (l_pxlv_rec.accounting_template_name = OKL_API.G_MISS_CHAR ) THEN
590 l_pxlv_rec.accounting_template_name := NULL;
591 END IF;
592 IF (l_pxlv_rec.fee_type_code = OKL_API.G_MISS_CHAR ) THEN
593 l_pxlv_rec.fee_type_code := NULL;
594 END IF;
595 IF (l_pxlv_rec.memo_flag = OKL_API.G_MISS_CHAR ) THEN
596 l_pxlv_rec.memo_flag := NULL;
597 END IF;
598 IF (l_pxlv_rec.contract_line_type = OKL_API.G_MISS_CHAR ) THEN
599 l_pxlv_rec.contract_line_type := NULL;
600 END IF;
601 IF (l_pxlv_rec.line_attribute_category = OKL_API.G_MISS_CHAR ) THEN
602 l_pxlv_rec.line_attribute_category := NULL;
603 END IF;
604 IF (l_pxlv_rec.line_attribute1 = OKL_API.G_MISS_CHAR ) THEN
605 l_pxlv_rec.line_attribute1 := NULL;
606 END IF;
607 IF (l_pxlv_rec.line_attribute2 = OKL_API.G_MISS_CHAR ) THEN
608 l_pxlv_rec.line_attribute2 := NULL;
609 END IF;
610 IF (l_pxlv_rec.line_attribute3 = OKL_API.G_MISS_CHAR ) THEN
611 l_pxlv_rec.line_attribute3 := NULL;
612 END IF;
613 IF (l_pxlv_rec.line_attribute4 = OKL_API.G_MISS_CHAR ) THEN
614 l_pxlv_rec.line_attribute4 := NULL;
615 END IF;
616 IF (l_pxlv_rec.line_attribute5 = OKL_API.G_MISS_CHAR ) THEN
617 l_pxlv_rec.line_attribute5 := NULL;
618 END IF;
619 IF (l_pxlv_rec.line_attribute6 = OKL_API.G_MISS_CHAR ) THEN
620 l_pxlv_rec.line_attribute6 := NULL;
621 END IF;
622 IF (l_pxlv_rec.line_attribute7 = OKL_API.G_MISS_CHAR ) THEN
623 l_pxlv_rec.line_attribute7 := NULL;
624 END IF;
625 IF (l_pxlv_rec.line_attribute8 = OKL_API.G_MISS_CHAR ) THEN
626 l_pxlv_rec.line_attribute8 := NULL;
627 END IF;
628 IF (l_pxlv_rec.line_attribute9 = OKL_API.G_MISS_CHAR ) THEN
629 l_pxlv_rec.line_attribute9 := NULL;
630 END IF;
631 IF (l_pxlv_rec.line_attribute10 = OKL_API.G_MISS_CHAR ) THEN
632 l_pxlv_rec.line_attribute10 := NULL;
633 END IF;
634 IF (l_pxlv_rec.line_attribute11 = OKL_API.G_MISS_CHAR ) THEN
635 l_pxlv_rec.line_attribute11 := NULL;
636 END IF;
637 IF (l_pxlv_rec.line_attribute12 = OKL_API.G_MISS_CHAR ) THEN
638 l_pxlv_rec.line_attribute12 := NULL;
639 END IF;
640 IF (l_pxlv_rec.line_attribute13 = OKL_API.G_MISS_CHAR ) THEN
641 l_pxlv_rec.line_attribute13 := NULL;
642 END IF;
643 IF (l_pxlv_rec.line_attribute14 = OKL_API.G_MISS_CHAR ) THEN
644 l_pxlv_rec.line_attribute14 := NULL;
645 END IF;
646 IF (l_pxlv_rec.line_attribute15 = OKL_API.G_MISS_CHAR ) THEN
647 l_pxlv_rec.line_attribute15 := NULL;
648 END IF;
649 IF (l_pxlv_rec.stream_type_code = OKL_API.G_MISS_CHAR ) THEN
650 l_pxlv_rec.stream_type_code := NULL;
651 END IF;
652 IF (l_pxlv_rec.stream_type_purpose_code = OKL_API.G_MISS_CHAR ) THEN
653 l_pxlv_rec.stream_type_purpose_code := NULL;
654 END IF;
655 IF (l_pxlv_rec.inventory_org_code = OKL_API.G_MISS_CHAR ) THEN
656 l_pxlv_rec.inventory_org_code := NULL;
657 END IF;
658 IF (l_pxlv_rec.language = OKL_API.G_MISS_CHAR ) THEN
659 l_pxlv_rec.language := NULL;
660 END IF;
661 IF (l_pxlv_rec.inventory_org_name = OKL_API.G_MISS_CHAR ) THEN
662 l_pxlv_rec.inventory_org_name := NULL;
663 END IF;
664 IF (l_pxlv_rec.stream_type_name = OKL_API.G_MISS_CHAR ) THEN
665 l_pxlv_rec.stream_type_name := NULL;
666 END IF;
667 IF (l_pxlv_rec.trans_line_description = OKL_API.G_MISS_CHAR ) THEN
668 l_pxlv_rec.trans_line_description := NULL;
669 END IF;
670 IF (l_pxlv_rec.created_by = OKL_API.G_MISS_NUM ) THEN
671 l_pxlv_rec.created_by := NULL;
672 END IF;
673 IF (l_pxlv_rec.creation_date = OKL_API.G_MISS_DATE ) THEN
674 l_pxlv_rec.creation_date := NULL;
675 END IF;
676 IF (l_pxlv_rec.last_updated_by = OKL_API.G_MISS_NUM ) THEN
677 l_pxlv_rec.last_updated_by := NULL;
678 END IF;
679 IF (l_pxlv_rec.last_update_date = OKL_API.G_MISS_DATE ) THEN
680 l_pxlv_rec.last_update_date := NULL;
681 END IF;
682 IF (l_pxlv_rec.last_update_login = OKL_API.G_MISS_NUM ) THEN
683 l_pxlv_rec.last_update_login := NULL;
684 END IF;
685 IF (l_pxlv_rec.asset_category_name = OKL_API.G_MISS_NUM ) THEN
686 l_pxlv_rec.asset_category_name := NULL;
687 END IF;
688 IF (l_pxlv_rec.inventory_item_name_code = OKL_API.G_MISS_NUM ) THEN
689 l_pxlv_rec.inventory_item_name_code := NULL;
690 END IF;
691 IF (l_pxlv_rec.inventory_item_name = OKL_API.G_MISS_NUM ) THEN
692 l_pxlv_rec.inventory_item_name := NULL;
693 END IF;
694 IF (l_pxlv_rec.asset_vendor_id = OKL_API.G_MISS_NUM ) THEN
695 l_pxlv_rec.asset_vendor_id := NULL;
696 END IF;
697 RETURN(l_pxlv_rec);
698 END null_out_defaults;
699 ------------------------------------------------
700 -- Validate_Attributes for: LINE_EXTENSION_ID --
701 ------------------------------------------------
702 PROCEDURE validate_line_extension_id(
703 x_return_status OUT NOCOPY VARCHAR2,
704 p_line_extension_id IN NUMBER) IS
705 BEGIN
706 x_return_status := OKL_API.G_RET_STS_SUCCESS;
707 IF (p_line_extension_id IS NULL) THEN
708 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'line_extension_id');
709 x_return_status := OKL_API.G_RET_STS_ERROR;
710 RAISE G_EXCEPTION_HALT_VALIDATION;
711 END IF;
712 EXCEPTION
713 WHEN G_EXCEPTION_HALT_VALIDATION THEN
714 null;
715 WHEN OTHERS THEN
716 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
717 ,p_msg_name => G_UNEXPECTED_ERROR
718 ,p_token1 => G_SQLCODE_TOKEN
719 ,p_token1_value => SQLCODE
720 ,p_token2 => G_SQLERRM_TOKEN
721 ,p_token2_value => SQLERRM);
722 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
723 END validate_line_extension_id;
724 --------------------------------------------------
725 -- Validate_Attributes for: HEADER_EXTENSION_ID --
726 --------------------------------------------------
727 PROCEDURE validate_header_extension_id(
728 x_return_status OUT NOCOPY VARCHAR2,
729 p_header_extension_id IN NUMBER) IS
730 BEGIN
731 x_return_status := OKL_API.G_RET_STS_SUCCESS;
732 IF (p_header_extension_id IS NULL) THEN
733 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'header_extension_id');
734 x_return_status := OKL_API.G_RET_STS_ERROR;
735 RAISE G_EXCEPTION_HALT_VALIDATION;
736 END IF;
737 EXCEPTION
738 WHEN G_EXCEPTION_HALT_VALIDATION THEN
739 null;
740 WHEN OTHERS THEN
741 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
742 ,p_msg_name => G_UNEXPECTED_ERROR
743 ,p_token1 => G_SQLCODE_TOKEN
744 ,p_token1_value => SQLCODE
745 ,p_token2 => G_SQLERRM_TOKEN
746 ,p_token2_value => SQLERRM);
747 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
748 END validate_header_extension_id;
749 ----------------------------------------
750 -- Validate_Attributes for: SOURCE_ID --
751 ----------------------------------------
752 PROCEDURE validate_source_id(
753 x_return_status OUT NOCOPY VARCHAR2,
754 p_source_id IN NUMBER) IS
755 BEGIN
756 x_return_status := OKL_API.G_RET_STS_SUCCESS;
757 IF (p_source_id IS NULL) THEN
758 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'source_id');
759 x_return_status := OKL_API.G_RET_STS_ERROR;
760 RAISE G_EXCEPTION_HALT_VALIDATION;
761 END IF;
762 EXCEPTION
763 WHEN G_EXCEPTION_HALT_VALIDATION THEN
764 null;
765 WHEN OTHERS THEN
766 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
767 ,p_msg_name => G_UNEXPECTED_ERROR
768 ,p_token1 => G_SQLCODE_TOKEN
769 ,p_token1_value => SQLCODE
770 ,p_token2 => G_SQLERRM_TOKEN
771 ,p_token2_value => SQLERRM);
772 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
773 END validate_source_id;
774 -------------------------------------------
775 -- Validate_Attributes for: SOURCE_TABLE --
776 -------------------------------------------
777 PROCEDURE validate_source_table(
778 x_return_status OUT NOCOPY VARCHAR2,
779 p_source_table IN VARCHAR2) IS
780 BEGIN
781 x_return_status := OKL_API.G_RET_STS_SUCCESS;
782 IF (p_source_table IS NULL) THEN
783 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'source_table');
784 x_return_status := OKL_API.G_RET_STS_ERROR;
785 RAISE G_EXCEPTION_HALT_VALIDATION;
786 END IF;
787 EXCEPTION
788 WHEN G_EXCEPTION_HALT_VALIDATION THEN
789 null;
790 WHEN OTHERS THEN
791 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
792 ,p_msg_name => G_UNEXPECTED_ERROR
793 ,p_token1 => G_SQLCODE_TOKEN
794 ,p_token1_value => SQLCODE
795 ,p_token2 => G_SQLERRM_TOKEN
796 ,p_token2_value => SQLERRM);
797 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
798 END validate_source_table;
799 ----------------------------------------------------
800 -- Validate_Attributes for: OBJECT_VERSION_NUMBER --
801 ----------------------------------------------------
802 PROCEDURE validate_object_version_number(
803 x_return_status OUT NOCOPY VARCHAR2,
804 p_object_version_number IN NUMBER) IS
805 BEGIN
806 x_return_status := OKL_API.G_RET_STS_SUCCESS;
807 IF (p_object_version_number IS NULL) THEN
808 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'object_version_number');
809 x_return_status := OKL_API.G_RET_STS_ERROR;
810 RAISE G_EXCEPTION_HALT_VALIDATION;
811 END IF;
812 EXCEPTION
813 WHEN G_EXCEPTION_HALT_VALIDATION THEN
814 null;
815 WHEN OTHERS THEN
816 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
817 ,p_msg_name => G_UNEXPECTED_ERROR
818 ,p_token1 => G_SQLCODE_TOKEN
819 ,p_token1_value => SQLCODE
820 ,p_token2 => G_SQLERRM_TOKEN
821 ,p_token2_value => SQLERRM);
822 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
823 END validate_object_version_number;
824 -------------------------------------
825 -- Validate_Attributes for: KLE_ID --
826 -------------------------------------
827 PROCEDURE validate_kle_id(
828 x_return_status OUT NOCOPY VARCHAR2,
829 p_kle_id IN NUMBER) IS
830 BEGIN
831 x_return_status := OKL_API.G_RET_STS_SUCCESS;
832 -- Bug 6195289 -- Start
833 /*
834 IF (p_kle_id IS NULL) THEN
835 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'kle_id');
836 x_return_status := OKL_API.G_RET_STS_ERROR;
837 RAISE G_EXCEPTION_HALT_VALIDATION;
838 END IF;
839 */
840 -- Bug 6195289 -- End
841 EXCEPTION
842 WHEN G_EXCEPTION_HALT_VALIDATION THEN
843 null;
844 WHEN OTHERS THEN
845 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
846 ,p_msg_name => G_UNEXPECTED_ERROR
847 ,p_token1 => G_SQLCODE_TOKEN
848 ,p_token1_value => SQLCODE
849 ,p_token2 => G_SQLERRM_TOKEN
850 ,p_token2_value => SQLERRM);
851 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
852 END validate_kle_id;
853 ---------------------------------------
854 -- Validate_Attributes for: LANGUAGE --
855 ---------------------------------------
856 PROCEDURE validate_language(
857 x_return_status OUT NOCOPY VARCHAR2,
858 p_language IN VARCHAR2) IS
859 BEGIN
860 x_return_status := OKL_API.G_RET_STS_SUCCESS;
861 IF (p_language IS NULL) THEN
862 OKL_API.set_message(G_APP_NAME, G_REQUIRED_VALUE, G_COL_NAME_TOKEN, 'language');
863 x_return_status := OKL_API.G_RET_STS_ERROR;
864 RAISE G_EXCEPTION_HALT_VALIDATION;
865 END IF;
866 EXCEPTION
867 WHEN G_EXCEPTION_HALT_VALIDATION THEN
868 null;
869 WHEN OTHERS THEN
870 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
871 ,p_msg_name => G_UNEXPECTED_ERROR
872 ,p_token1 => G_SQLCODE_TOKEN
873 ,p_token1_value => SQLCODE
874 ,p_token2 => G_SQLERRM_TOKEN
875 ,p_token2_value => SQLERRM);
876 x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
877 END validate_language;
878 ----------------------------------------------------
879 -- Validate_Attributes for: asset_vendor_id --
880 ----------------------------------------------------
881 PROCEDURE validate_supplier(
882 x_return_status OUT NOCOPY VARCHAR2,
883 p_asset_vendor_id IN NUMBER) IS
884 l_return_status VARCHAR2(1) := OKC_API.G_RET_STS_SUCCESS;
885 l_asset_vendor_id VARCHAR2(1);
886 l_row_not_found BOOLEAN := FALSE;
887 CURSOR c1(p_asset_vendor_id NUMBER) IS
888 SELECT '1'
889 FROM ap_suppliers
890 WHERE vendor_id = p_asset_vendor_id ;
891 BEGIN
892 IF ( p_asset_vendor_id IS NOT NULL) THEN
893 -- initialize return status
894 x_return_status := OKC_API.G_RET_STS_SUCCESS;
895 OPEN c1(p_asset_vendor_id );
896 FETCH c1 INTO l_asset_vendor_id;
897 l_row_not_found := c1%NOTFOUND;
898 CLOSE c1;
899 IF l_row_not_found THEN
900 OKC_API.set_message('OKL',G_INVALID_VALUE , G_COL_NAME_TOKEN, 'asset_vendor_id');
901 x_return_status := OKC_API.G_RET_STS_ERROR;
902 END IF;
903 END IF;
904 EXCEPTION
905 WHEN G_EXCEPTION_HALT_VALIDATION THEN
906 -- no processing necessary; validation can continue
907 -- with the next column
908 NULL;
909
910 WHEN OTHERS THEN
911 -- store SQL error message on message stack for caller
912 OKC_API.SET_MESSAGE(p_app_name => g_app_name,
913
914 p_msg_name => g_unexpected_error,
915 p_token1 => g_sqlcode_token,
916 p_token1_value => SQLCODE,
917 p_token2 => g_sqlerrm_token,
918 p_token2_value => SQLERRM);
919
920 -- notify caller of an UNEXPECTED error
921 x_return_status := OKC_API.G_RET_STS_UNEXP_ERROR;
922 END validate_supplier;
923 ---------------------------------------------------------------------------
924 -- FUNCTION Validate_Attributes
925 ---------------------------------------------------------------------------
926 -------------------------------------------------------
927 -- Validate_Attributes for:OKL_EXT_AP_LINE_SOURCES_V --
928 -------------------------------------------------------
929 FUNCTION Validate_Attributes (
930 p_pxlv_rec IN pxlv_rec_type
931 ) RETURN VARCHAR2 IS
932 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
933 x_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
934 BEGIN
935 -----------------------------
936 -- Column Level Validation --
937 -----------------------------
938 -- ***
939 -- line_extension_id
940 -- ***
941 validate_line_extension_id(x_return_status, p_pxlv_rec.line_extension_id);
942 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
943 l_return_status := x_return_status;
944 RAISE G_EXCEPTION_HALT_VALIDATION;
945 END IF;
946
947 -- ***
948 -- header_extension_id
949 -- ***
950 validate_header_extension_id(x_return_status, p_pxlv_rec.header_extension_id);
951 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
952 l_return_status := x_return_status;
953 RAISE G_EXCEPTION_HALT_VALIDATION;
954 END IF;
955
956 -- ***
957 -- source_id
958 -- ***
959 validate_source_id(x_return_status, p_pxlv_rec.source_id);
960 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
961 l_return_status := x_return_status;
962 RAISE G_EXCEPTION_HALT_VALIDATION;
963 END IF;
964
965 -- ***
966 -- source_table
967 -- ***
968 validate_source_table(x_return_status, p_pxlv_rec.source_table);
969 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
970 l_return_status := x_return_status;
971 RAISE G_EXCEPTION_HALT_VALIDATION;
972 END IF;
973
974 -- ***
975 -- object_version_number
976 -- ***
977 validate_object_version_number(x_return_status, p_pxlv_rec.object_version_number);
978 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
979 l_return_status := x_return_status;
980 RAISE G_EXCEPTION_HALT_VALIDATION;
981 END IF;
982
983 -- ***
984 -- kle_id
985 -- ***
986 validate_kle_id(x_return_status, p_pxlv_rec.kle_id);
987 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
988 l_return_status := x_return_status;
989 RAISE G_EXCEPTION_HALT_VALIDATION;
990 END IF;
991
992 -- ***
993 -- language
994 -- ***
995 validate_language(x_return_status, p_pxlv_rec.language);
996 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
997 l_return_status := x_return_status;
998 RAISE G_EXCEPTION_HALT_VALIDATION;
999 END IF;
1000 validate_supplier(x_return_status, p_pxlv_rec.asset_vendor_id);
1001 IF (x_return_status <> OKL_API.G_RET_STS_SUCCESS) THEN
1002 l_return_status := x_return_status;
1003 RAISE G_EXCEPTION_HALT_VALIDATION;
1004 END IF;
1005
1006 RETURN(l_return_status);
1007 EXCEPTION
1008 WHEN G_EXCEPTION_HALT_VALIDATION THEN
1009 RETURN(l_return_status);
1010 WHEN OTHERS THEN
1011 OKL_API.SET_MESSAGE( p_app_name => G_APP_NAME
1012 ,p_msg_name => G_UNEXPECTED_ERROR
1013 ,p_token1 => G_SQLCODE_TOKEN
1014 ,p_token1_value => SQLCODE
1015 ,p_token2 => G_SQLERRM_TOKEN
1016 ,p_token2_value => SQLERRM);
1017 l_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1018 RETURN(l_return_status);
1019 END Validate_Attributes;
1020 ---------------------------------------------------------------------------
1021 -- PROCEDURE Validate_Record
1022 ---------------------------------------------------------------------------
1023 ---------------------------------------------------
1024 -- Validate Record for:OKL_EXT_AP_LINE_SOURCES_V --
1025 ---------------------------------------------------
1026 FUNCTION Validate_Record (
1027 p_pxlv_rec IN pxlv_rec_type,
1028 p_db_pxlv_rec IN pxlv_rec_type
1029 ) RETURN VARCHAR2 IS
1030 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1031 BEGIN
1032 RETURN (l_return_status);
1033 END Validate_Record;
1034 FUNCTION Validate_Record (
1035 p_pxlv_rec IN pxlv_rec_type
1036 ) RETURN VARCHAR2 IS
1037 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1038 l_db_pxlv_rec pxlv_rec_type := get_rec(p_pxlv_rec);
1039 BEGIN
1040 l_return_status := Validate_Record(p_pxlv_rec => p_pxlv_rec,
1041 p_db_pxlv_rec => l_db_pxlv_rec);
1042 RETURN (l_return_status);
1043 END Validate_Record;
1044
1045 ---------------------------------------------------------------------------
1046 -- PROCEDURE Migrate
1047 ---------------------------------------------------------------------------
1048 PROCEDURE migrate (
1049 p_from IN pxlv_rec_type,
1050 p_to IN OUT NOCOPY pxl_rec_type
1051 ) IS
1052 BEGIN
1053 p_to.line_extension_id := p_from.line_extension_id;
1054 p_to.header_extension_id := p_from.header_extension_id;
1055 p_to.source_id := p_from.source_id;
1056 p_to.source_table := p_from.source_table;
1057 p_to.object_version_number := p_from.object_version_number;
1058 p_to.kle_id := p_from.kle_id;
1059 p_to.sty_id := p_from.sty_id;
1060 p_to.asset_number := p_from.asset_number;
1061 p_to.contract_line_number := p_from.contract_line_number;
1062 p_to.asset_vendor_name := p_from.asset_vendor_name;
1063 p_to.installed_site_id := p_from.installed_site_id;
1064 p_to.fixed_asset_location_name := p_from.fixed_asset_location_name;
1065 p_to.accounting_template_name := p_from.accounting_template_name;
1066 p_to.fee_type_code := p_from.fee_type_code;
1067 p_to.memo_flag := p_from.memo_flag;
1068 p_to.contract_line_type := p_from.contract_line_type;
1069 p_to.line_attribute_category := p_from.line_attribute_category;
1070 p_to.line_attribute1 := p_from.line_attribute1;
1071 p_to.line_attribute2 := p_from.line_attribute2;
1072 p_to.line_attribute3 := p_from.line_attribute3;
1073 p_to.line_attribute4 := p_from.line_attribute4;
1074 p_to.line_attribute5 := p_from.line_attribute5;
1075 p_to.line_attribute6 := p_from.line_attribute6;
1076 p_to.line_attribute7 := p_from.line_attribute7;
1077 p_to.line_attribute8 := p_from.line_attribute8;
1078 p_to.line_attribute9 := p_from.line_attribute9;
1079 p_to.line_attribute10 := p_from.line_attribute10;
1080 p_to.line_attribute11 := p_from.line_attribute11;
1081 p_to.line_attribute12 := p_from.line_attribute12;
1082 p_to.line_attribute13 := p_from.line_attribute13;
1083 p_to.line_attribute14 := p_from.line_attribute14;
1084 p_to.line_attribute15 := p_from.line_attribute15;
1085 p_to.stream_type_code := p_from.stream_type_code;
1086 p_to.stream_type_purpose_code := p_from.stream_type_purpose_code;
1087 p_to.inventory_org_code := p_from.inventory_org_code;
1088 p_to.created_by := p_from.created_by;
1089 p_to.creation_date := p_from.creation_date;
1090 p_to.last_updated_by := p_from.last_updated_by;
1091 p_to.last_update_date := p_from.last_update_date;
1092 p_to.last_update_login := p_from.last_update_login;
1093 p_to.asset_category_name := p_from.asset_category_name;
1094 p_to.inventory_item_name_code := p_from.inventory_item_name_code;
1095 p_to.asset_vendor_id := p_from.asset_vendor_id;
1096 END migrate;
1097 PROCEDURE migrate (
1098 p_from IN pxl_rec_type,
1099 p_to IN OUT NOCOPY pxlv_rec_type
1100 ) IS
1101 BEGIN
1102 p_to.line_extension_id := p_from.line_extension_id;
1103 p_to.header_extension_id := p_from.header_extension_id;
1104 p_to.source_id := p_from.source_id;
1105 p_to.source_table := p_from.source_table;
1106 p_to.object_version_number := p_from.object_version_number;
1107 p_to.kle_id := p_from.kle_id;
1108 p_to.sty_id := p_from.sty_id;
1109 p_to.asset_number := p_from.asset_number;
1110 p_to.contract_line_number := p_from.contract_line_number;
1111 p_to.asset_vendor_name := p_from.asset_vendor_name;
1112 p_to.installed_site_id := p_from.installed_site_id;
1113 p_to.fixed_asset_location_name := p_from.fixed_asset_location_name;
1114 p_to.accounting_template_name := p_from.accounting_template_name;
1115 p_to.fee_type_code := p_from.fee_type_code;
1116 p_to.memo_flag := p_from.memo_flag;
1117 p_to.contract_line_type := p_from.contract_line_type;
1118 p_to.line_attribute_category := p_from.line_attribute_category;
1119 p_to.line_attribute1 := p_from.line_attribute1;
1120 p_to.line_attribute2 := p_from.line_attribute2;
1121 p_to.line_attribute3 := p_from.line_attribute3;
1122 p_to.line_attribute4 := p_from.line_attribute4;
1123 p_to.line_attribute5 := p_from.line_attribute5;
1124 p_to.line_attribute6 := p_from.line_attribute6;
1125 p_to.line_attribute7 := p_from.line_attribute7;
1126 p_to.line_attribute8 := p_from.line_attribute8;
1127 p_to.line_attribute9 := p_from.line_attribute9;
1128 p_to.line_attribute10 := p_from.line_attribute10;
1129 p_to.line_attribute11 := p_from.line_attribute11;
1130 p_to.line_attribute12 := p_from.line_attribute12;
1131 p_to.line_attribute13 := p_from.line_attribute13;
1132 p_to.line_attribute14 := p_from.line_attribute14;
1133 p_to.line_attribute15 := p_from.line_attribute15;
1134 p_to.stream_type_code := p_from.stream_type_code;
1135 p_to.stream_type_purpose_code := p_from.stream_type_purpose_code;
1136 p_to.inventory_org_code := p_from.inventory_org_code;
1137 p_to.created_by := p_from.created_by;
1138 p_to.creation_date := p_from.creation_date;
1139 p_to.last_updated_by := p_from.last_updated_by;
1140 p_to.last_update_date := p_from.last_update_date;
1141 p_to.last_update_login := p_from.last_update_login;
1142 p_to.asset_category_name := p_from.asset_category_name;
1143 p_to.inventory_item_name_code := p_from.inventory_item_name_code;
1144 p_to.asset_vendor_id := p_from.asset_vendor_id;
1145 END migrate;
1146 PROCEDURE migrate (
1147 p_from IN pxlv_rec_type,
1148 p_to IN OUT NOCOPY pxll_rec_type
1149 ) IS
1150 BEGIN
1151 p_to.line_extension_id := p_from.line_extension_id;
1152 p_to.language := p_from.language;
1153 p_to.inventory_org_name := p_from.inventory_org_name;
1154 p_to.stream_type_name := p_from.stream_type_name;
1155 p_to.trans_line_description := p_from.trans_line_description;
1156 p_to.created_by := p_from.created_by;
1157 p_to.creation_date := p_from.creation_date;
1158 p_to.last_updated_by := p_from.last_updated_by;
1159 p_to.last_update_date := p_from.last_update_date;
1160 p_to.last_update_login := p_from.last_update_login;
1161 p_to.inventory_item_name := p_from.inventory_item_name;
1162 END migrate;
1163 PROCEDURE migrate (
1164 p_from IN pxll_rec_type,
1165 p_to IN OUT NOCOPY pxlv_rec_type
1166 ) IS
1167 BEGIN
1168 p_to.line_extension_id := p_from.line_extension_id;
1169 p_to.language := p_from.language;
1170 p_to.inventory_org_name := p_from.inventory_org_name;
1171 p_to.stream_type_name := p_from.stream_type_name;
1172 p_to.trans_line_description := p_from.trans_line_description;
1173 p_to.created_by := p_from.created_by;
1174 p_to.creation_date := p_from.creation_date;
1175 p_to.last_updated_by := p_from.last_updated_by;
1176 p_to.last_update_date := p_from.last_update_date;
1177 p_to.last_update_login := p_from.last_update_login;
1178 p_to.inventory_item_name := p_from.inventory_item_name;
1179 END migrate;
1180 ---------------------------------------------------------------------------
1181 -- PROCEDURE validate_row
1182 ---------------------------------------------------------------------------
1183 ------------------------------------------------
1184 -- validate_row for:OKL_EXT_AP_LINE_SOURCES_V --
1185 ------------------------------------------------
1186 PROCEDURE validate_row(
1187 p_api_version IN NUMBER,
1188 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1189 x_return_status OUT NOCOPY VARCHAR2,
1190 x_msg_count OUT NOCOPY NUMBER,
1191 x_msg_data OUT NOCOPY VARCHAR2,
1192 p_pxlv_rec IN pxlv_rec_type) IS
1193
1194 l_api_version CONSTANT NUMBER := 1;
1195 l_api_name CONSTANT VARCHAR2(30) := 'V_validate_row';
1196 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1197 l_pxlv_rec pxlv_rec_type := p_pxlv_rec;
1198 l_pxl_rec pxl_rec_type;
1199 l_pxll_rec pxll_rec_type;
1200 BEGIN
1201 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1202 G_PKG_NAME,
1203 p_init_msg_list,
1204 l_api_version,
1205 p_api_version,
1206 '_PVT',
1207 x_return_status);
1208 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1209 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1210 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1211 RAISE OKL_API.G_EXCEPTION_ERROR;
1212 END IF;
1213 --- Validate all non-missing attributes (Item Level Validation)
1214 l_return_status := Validate_Attributes(l_pxlv_rec);
1215 --- If any errors happen abort API
1216 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1217 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1218 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1219 RAISE OKL_API.G_EXCEPTION_ERROR;
1220 END IF;
1221 l_return_status := Validate_Record(l_pxlv_rec);
1222 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1223 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1224 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1225 RAISE OKL_API.G_EXCEPTION_ERROR;
1226 END IF;
1227 x_return_status := l_return_status;
1228 EXCEPTION
1229 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1230 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1231 (
1232 l_api_name,
1233 G_PKG_NAME,
1234 'OKL_API.G_RET_STS_ERROR',
1235 x_msg_count,
1236 x_msg_data,
1237 '_PVT'
1238 );
1239 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1240 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1241 (
1242 l_api_name,
1243 G_PKG_NAME,
1244 'OKL_API.G_RET_STS_UNEXP_ERROR',
1245 x_msg_count,
1246 x_msg_data,
1247 '_PVT'
1248 );
1249 WHEN OTHERS THEN
1250 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1251 (
1252 l_api_name,
1253 G_PKG_NAME,
1254 'OTHERS',
1255 x_msg_count,
1256 x_msg_data,
1257 '_PVT'
1258 );
1259 END validate_row;
1260 -----------------------------------------------------------
1261 -- PL/SQL TBL validate_row for:OKL_EXT_AP_LINE_SOURCES_V --
1262 -----------------------------------------------------------
1263 PROCEDURE validate_row(
1264 p_api_version IN NUMBER,
1265 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1266 x_return_status OUT NOCOPY VARCHAR2,
1267 x_msg_count OUT NOCOPY NUMBER,
1268 x_msg_data OUT NOCOPY VARCHAR2,
1269 p_pxlv_tbl IN pxlv_tbl_type,
1270 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
1271
1272 l_api_version CONSTANT NUMBER := 1;
1273 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_validate_row';
1274 i NUMBER := 0;
1275 BEGIN
1276 OKL_API.init_msg_list(p_init_msg_list);
1277 -- Make sure PL/SQL table has records in it before passing
1278 IF (p_pxlv_tbl.COUNT > 0) THEN
1279 i := p_pxlv_tbl.FIRST;
1280 LOOP
1281 DECLARE
1282 l_error_rec OKL_API.ERROR_REC_TYPE;
1283 BEGIN
1284 l_error_rec.api_name := l_api_name;
1285 l_error_rec.api_package := G_PKG_NAME;
1286 l_error_rec.idx := i;
1287 validate_row (
1288 p_api_version => p_api_version,
1289 p_init_msg_list => OKL_API.G_FALSE,
1290 x_return_status => l_error_rec.error_type,
1291 x_msg_count => l_error_rec.msg_count,
1292 x_msg_data => l_error_rec.msg_data,
1293 p_pxlv_rec => p_pxlv_tbl(i));
1294 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
1295 l_error_rec.sqlcode := SQLCODE;
1296 load_error_tbl(l_error_rec, px_error_tbl);
1297 ELSE
1298 x_msg_count := l_error_rec.msg_count;
1299 x_msg_data := l_error_rec.msg_data;
1300 END IF;
1301 EXCEPTION
1302 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1303 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
1304 l_error_rec.sqlcode := SQLCODE;
1305 load_error_tbl(l_error_rec, px_error_tbl);
1306 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1307 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
1308 l_error_rec.sqlcode := SQLCODE;
1309 load_error_tbl(l_error_rec, px_error_tbl);
1310 WHEN OTHERS THEN
1311 l_error_rec.error_type := 'OTHERS';
1312 l_error_rec.sqlcode := SQLCODE;
1313 load_error_tbl(l_error_rec, px_error_tbl);
1314 END;
1315 EXIT WHEN (i = p_pxlv_tbl.LAST);
1316 i := p_pxlv_tbl.NEXT(i);
1317 END LOOP;
1318 END IF;
1319 -- Loop through the error_tbl to find the error with the highest severity
1320 -- and return it.
1321 x_return_status := find_highest_exception(px_error_tbl);
1322 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1323 EXCEPTION
1324 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1325 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1326 (
1327 l_api_name,
1328 G_PKG_NAME,
1329 'OKL_API.G_RET_STS_ERROR',
1330 x_msg_count,
1331 x_msg_data,
1332 '_PVT'
1333 );
1334 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1335 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1336 (
1337 l_api_name,
1338 G_PKG_NAME,
1339 'OKL_API.G_RET_STS_UNEXP_ERROR',
1340 x_msg_count,
1341 x_msg_data,
1342 '_PVT'
1343 );
1344 WHEN OTHERS THEN
1345 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1346 (
1347 l_api_name,
1348 G_PKG_NAME,
1349 'OTHERS',
1350 x_msg_count,
1351 x_msg_data,
1352 '_PVT'
1353 );
1354 END validate_row;
1355
1356 -----------------------------------------------------------
1357 -- PL/SQL TBL validate_row for:OKL_EXT_AP_LINE_SOURCES_V --
1358 -----------------------------------------------------------
1359 PROCEDURE validate_row(
1360 p_api_version IN NUMBER,
1361 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1362 x_return_status OUT NOCOPY VARCHAR2,
1363 x_msg_count OUT NOCOPY NUMBER,
1364 x_msg_data OUT NOCOPY VARCHAR2,
1365 p_pxlv_tbl IN pxlv_tbl_type) IS
1366
1367 l_api_version CONSTANT NUMBER := 1;
1368 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_validate_row';
1369 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1370 l_error_tbl OKL_API.ERROR_TBL_TYPE;
1371 BEGIN
1372 OKL_API.init_msg_list(p_init_msg_list);
1373 -- Make sure PL/SQL table has records in it before passing
1374 IF (p_pxlv_tbl.COUNT > 0) THEN
1375 validate_row (
1376 p_api_version => p_api_version,
1377 p_init_msg_list => OKL_API.G_FALSE,
1378 x_return_status => x_return_status,
1379 x_msg_count => x_msg_count,
1380 x_msg_data => x_msg_data,
1381 p_pxlv_tbl => p_pxlv_tbl,
1382 px_error_tbl => l_error_tbl);
1383 END IF;
1384 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1385 EXCEPTION
1386 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1387 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1388 (
1389 l_api_name,
1390 G_PKG_NAME,
1391 'OKL_API.G_RET_STS_ERROR',
1392 x_msg_count,
1393 x_msg_data,
1394 '_PVT'
1395 );
1396 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1397 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1398 (
1399 l_api_name,
1400 G_PKG_NAME,
1401 'OKL_API.G_RET_STS_UNEXP_ERROR',
1402 x_msg_count,
1403 x_msg_data,
1404 '_PVT'
1405 );
1406 WHEN OTHERS THEN
1407 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1408 (
1409 l_api_name,
1410 G_PKG_NAME,
1411 'OTHERS',
1412 x_msg_count,
1413 x_msg_data,
1414 '_PVT'
1415 );
1416 END validate_row;
1417
1418 ---------------------------------------------------------------------------
1419 -- PROCEDURE insert_row
1420 ---------------------------------------------------------------------------
1421 ----------------------------------------------
1422 -- insert_row for:OKL_EXT_AP_LINE_SOURCES_B --
1423 ----------------------------------------------
1424 PROCEDURE insert_row(
1425 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1426 x_return_status OUT NOCOPY VARCHAR2,
1427 x_msg_count OUT NOCOPY NUMBER,
1428 x_msg_data OUT NOCOPY VARCHAR2,
1429 p_pxl_rec IN pxl_rec_type,
1430 x_pxl_rec OUT NOCOPY pxl_rec_type) IS
1431
1432 l_api_version CONSTANT NUMBER := 1;
1433 l_api_name CONSTANT VARCHAR2(30) := 'B_insert_row';
1434 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1435 l_pxl_rec pxl_rec_type := p_pxl_rec;
1436 l_def_pxl_rec pxl_rec_type;
1437 --------------------------------------------------
1438 -- Set_Attributes for:OKL_EXT_AP_LINE_SOURCES_B --
1439 --------------------------------------------------
1440 FUNCTION Set_Attributes (
1441 p_pxl_rec IN pxl_rec_type,
1442 x_pxl_rec OUT NOCOPY pxl_rec_type
1443 ) RETURN VARCHAR2 IS
1444 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1445 BEGIN
1446 x_pxl_rec := p_pxl_rec;
1447 RETURN(l_return_status);
1448 END Set_Attributes;
1449 BEGIN
1450 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1451 p_init_msg_list,
1452 '_PVT',
1453 x_return_status);
1454 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1455 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1456 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1457 RAISE OKL_API.G_EXCEPTION_ERROR;
1458 END IF;
1459 --- Setting item atributes
1460 l_return_status := Set_Attributes(
1461 l_pxl_rec, -- IN
1462 l_def_pxl_rec); -- OUT
1463 --- If any errors happen abort API
1464 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1465 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1466 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1467 RAISE OKL_API.G_EXCEPTION_ERROR;
1468 END IF;
1469 INSERT INTO OKL_EXT_AP_LINE_SOURCES_B(
1470 line_extension_id,
1471 header_extension_id,
1472 source_id,
1473 source_table,
1474 object_version_number,
1475 kle_id,
1476 sty_id,
1477 asset_number,
1478 contract_line_number,
1479 asset_vendor_name,
1480 installed_site_id,
1481 fixed_asset_location_name,
1482 accounting_template_name,
1483 fee_type_code,
1484 memo_flag,
1485 contract_line_type,
1486 line_attribute_category,
1487 line_attribute1,
1488 line_attribute2,
1489 line_attribute3,
1490 line_attribute4,
1491 line_attribute5,
1492 line_attribute6,
1493 line_attribute7,
1494 line_attribute8,
1495 line_attribute9,
1496 line_attribute10,
1497 line_attribute11,
1498 line_attribute12,
1499 line_attribute13,
1500 line_attribute14,
1501 line_attribute15,
1502 stream_type_code,
1503 stream_type_purpose_code,
1504 inventory_org_code,
1505 created_by,
1506 creation_date,
1507 last_updated_by,
1508 last_update_date,
1509 last_update_login,
1510 asset_category_name,
1511 inventory_item_name_code,
1512 asset_vendor_id)
1513 VALUES (
1514 l_def_pxl_rec.line_extension_id,
1515 l_def_pxl_rec.header_extension_id,
1516 l_def_pxl_rec.source_id,
1517 l_def_pxl_rec.source_table,
1518 l_def_pxl_rec.object_version_number,
1519 l_def_pxl_rec.kle_id,
1520 l_def_pxl_rec.sty_id,
1521 l_def_pxl_rec.asset_number,
1522 l_def_pxl_rec.contract_line_number,
1523 l_def_pxl_rec.asset_vendor_name,
1524 l_def_pxl_rec.installed_site_id,
1525 l_def_pxl_rec.fixed_asset_location_name,
1526 l_def_pxl_rec.accounting_template_name,
1527 l_def_pxl_rec.fee_type_code,
1528 l_def_pxl_rec.memo_flag,
1529 l_def_pxl_rec.contract_line_type,
1530 l_def_pxl_rec.line_attribute_category,
1531 l_def_pxl_rec.line_attribute1,
1532 l_def_pxl_rec.line_attribute2,
1533 l_def_pxl_rec.line_attribute3,
1534 l_def_pxl_rec.line_attribute4,
1535 l_def_pxl_rec.line_attribute5,
1536 l_def_pxl_rec.line_attribute6,
1537 l_def_pxl_rec.line_attribute7,
1538 l_def_pxl_rec.line_attribute8,
1539 l_def_pxl_rec.line_attribute9,
1540 l_def_pxl_rec.line_attribute10,
1541 l_def_pxl_rec.line_attribute11,
1542 l_def_pxl_rec.line_attribute12,
1543 l_def_pxl_rec.line_attribute13,
1544 l_def_pxl_rec.line_attribute14,
1545 l_def_pxl_rec.line_attribute15,
1546 l_def_pxl_rec.stream_type_code,
1547 l_def_pxl_rec.stream_type_purpose_code,
1548 l_def_pxl_rec.inventory_org_code,
1549 l_def_pxl_rec.created_by,
1550 l_def_pxl_rec.creation_date,
1551 l_def_pxl_rec.last_updated_by,
1552 l_def_pxl_rec.last_update_date,
1553 l_def_pxl_rec.last_update_login,
1554 l_def_pxl_rec.asset_category_name,
1555 l_def_pxl_rec.inventory_item_name_code,
1556 l_def_pxl_rec.asset_vendor_id);
1557 -- Set OUT values
1558 x_pxl_rec := l_def_pxl_rec;
1559 x_return_status := l_return_status;
1560 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1561 EXCEPTION
1562 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1563 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1564 (
1565 l_api_name,
1566 G_PKG_NAME,
1567 'OKL_API.G_RET_STS_ERROR',
1568 x_msg_count,
1569 x_msg_data,
1570 '_PVT'
1571 );
1572 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1573 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1574 (
1575 l_api_name,
1576 G_PKG_NAME,
1577 'OKL_API.G_RET_STS_UNEXP_ERROR',
1578 x_msg_count,
1579 x_msg_data,
1580 '_PVT'
1581 );
1582 WHEN OTHERS THEN
1583 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1584 (
1585 l_api_name,
1586 G_PKG_NAME,
1587 'OTHERS',
1588 x_msg_count,
1589 x_msg_data,
1590 '_PVT'
1591 );
1592 END insert_row;
1593 -----------------------------------------------
1594 -- insert_row for:OKL_EXT_AP_LINE_SOURCES_TL --
1595 -----------------------------------------------
1596 PROCEDURE insert_row(
1597 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1598 x_return_status OUT NOCOPY VARCHAR2,
1599 x_msg_count OUT NOCOPY NUMBER,
1600 x_msg_data OUT NOCOPY VARCHAR2,
1601 p_pxll_rec IN pxll_rec_type,
1602 x_pxll_rec OUT NOCOPY pxll_rec_type) IS
1603
1604 l_api_version CONSTANT NUMBER := 1;
1605 l_api_name CONSTANT VARCHAR2(30) := 'TL_insert_row';
1606 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1607 l_pxll_rec pxll_rec_type := p_pxll_rec;
1608 l_def_pxll_rec pxll_rec_type;
1609 CURSOR get_languages IS
1610 SELECT *
1611 FROM FND_LANGUAGES
1612 WHERE INSTALLED_FLAG IN ('I', 'B');
1613 ---------------------------------------------------
1614 -- Set_Attributes for:OKL_EXT_AP_LINE_SOURCES_TL --
1615 ---------------------------------------------------
1616 FUNCTION Set_Attributes (
1617 p_pxll_rec IN pxll_rec_type,
1618 x_pxll_rec OUT NOCOPY pxll_rec_type
1619 ) RETURN VARCHAR2 IS
1620 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1621 BEGIN
1622 x_pxll_rec := p_pxll_rec;
1623 x_pxll_rec.SFWT_FLAG := 'N';
1624 x_pxll_rec.SOURCE_LANG := USERENV('LANG');
1625 RETURN(l_return_status);
1626 END Set_Attributes;
1627 BEGIN
1628 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1629 p_init_msg_list,
1630 '_PVT',
1631 x_return_status);
1632 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1633 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1634 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1635 RAISE OKL_API.G_EXCEPTION_ERROR;
1636 END IF;
1637 --- Setting item attributes
1638 l_return_status := Set_Attributes(
1639 p_pxll_rec, -- IN
1640 l_pxll_rec); -- OUT
1641 --- If any errors happen abort API
1642 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1643 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1644 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1645 RAISE OKL_API.G_EXCEPTION_ERROR;
1646 END IF;
1647 INSERT INTO OKL_EXT_AP_LINE_SOURCES_TL(
1648 line_extension_id,
1649 language,
1650 source_lang,
1651 sfwt_flag,
1652 inventory_org_name,
1653 stream_type_name,
1654 trans_line_description,
1655 created_by,
1656 creation_date,
1657 last_updated_by,
1658 last_update_date,
1659 last_update_login,
1660 inventory_item_name)
1661 VALUES (
1662 l_pxll_rec.line_extension_id,
1663 l_pxll_rec.language,
1664 l_pxll_rec.source_lang,
1665 l_pxll_rec.sfwt_flag,
1666 l_pxll_rec.inventory_org_name,
1667 l_pxll_rec.stream_type_name,
1668 l_pxll_rec.trans_line_description,
1669 l_pxll_rec.created_by,
1670 l_pxll_rec.creation_date,
1671 l_pxll_rec.last_updated_by,
1672 l_pxll_rec.last_update_date,
1673 l_pxll_rec.last_update_login,
1674 l_pxll_rec.inventory_item_name);
1675 -- Set OUT values
1676 x_pxll_rec := l_pxll_rec;
1677 x_return_status := l_return_status;
1678 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1679 EXCEPTION
1680 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1681 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1682 (
1683 l_api_name,
1684 G_PKG_NAME,
1685 'OKL_API.G_RET_STS_ERROR',
1686 x_msg_count,
1687 x_msg_data,
1688 '_PVT'
1689 );
1690 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1691 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1692 (
1693 l_api_name,
1694 G_PKG_NAME,
1695 'OKL_API.G_RET_STS_UNEXP_ERROR',
1696 x_msg_count,
1697 x_msg_data,
1698 '_PVT'
1699 );
1700 WHEN OTHERS THEN
1701 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1702 (
1703 l_api_name,
1704 G_PKG_NAME,
1705 'OTHERS',
1706 x_msg_count,
1707 x_msg_data,
1708 '_PVT'
1709 );
1710 END insert_row;
1711 -----------------------------------------------
1712 -- insert_row for :OKL_EXT_AP_LINE_SOURCES_B --
1713 -----------------------------------------------
1714 PROCEDURE insert_row(
1715 p_api_version IN NUMBER,
1716 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1717 x_return_status OUT NOCOPY VARCHAR2,
1718 x_msg_count OUT NOCOPY NUMBER,
1719 x_msg_data OUT NOCOPY VARCHAR2,
1720 p_pxlv_rec IN pxlv_rec_type,
1721 x_pxlv_rec OUT NOCOPY pxlv_rec_type) IS
1722
1723 l_api_version CONSTANT NUMBER := 1;
1724 l_api_name CONSTANT VARCHAR2(30) := 'V_insert_row';
1725 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1726 l_pxlv_rec pxlv_rec_type := p_pxlv_rec;
1727 l_def_pxlv_rec pxlv_rec_type;
1728 l_pxl_rec pxl_rec_type;
1729 lx_pxl_rec pxl_rec_type;
1730 l_pxll_rec pxll_rec_type;
1731 lx_pxll_rec pxll_rec_type;
1732 -------------------------------
1733 -- FUNCTION fill_who_columns --
1734 -------------------------------
1735 FUNCTION fill_who_columns (
1736 p_pxlv_rec IN pxlv_rec_type
1737 ) RETURN pxlv_rec_type IS
1738 l_pxlv_rec pxlv_rec_type := p_pxlv_rec;
1739 BEGIN
1740 l_pxlv_rec.CREATION_DATE := SYSDATE;
1741 l_pxlv_rec.CREATED_BY := FND_GLOBAL.USER_ID;
1742 l_pxlv_rec.LAST_UPDATE_DATE := l_pxlv_rec.CREATION_DATE;
1743 l_pxlv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1744 l_pxlv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
1745 RETURN(l_pxlv_rec);
1746 END fill_who_columns;
1747 --------------------------------------------------
1748 -- Set_Attributes for:OKL_EXT_AP_LINE_SOURCES_B --
1749 --------------------------------------------------
1750 FUNCTION Set_Attributes (
1751 p_pxlv_rec IN pxlv_rec_type,
1752 x_pxlv_rec OUT NOCOPY pxlv_rec_type
1753 ) RETURN VARCHAR2 IS
1754 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1755 BEGIN
1756 x_pxlv_rec := p_pxlv_rec;
1757 x_pxlv_rec.OBJECT_VERSION_NUMBER := 1;
1758 RETURN(l_return_status);
1759 END Set_Attributes;
1760 BEGIN
1761 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
1762 G_PKG_NAME,
1763 p_init_msg_list,
1764 l_api_version,
1765 p_api_version,
1766 '_PVT',
1767 x_return_status);
1768 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1769 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1770 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1771 RAISE OKL_API.G_EXCEPTION_ERROR;
1772 END IF;
1773 l_pxlv_rec := null_out_defaults(p_pxlv_rec);
1774 -- Set primary key value
1775 l_pxlv_rec.LINE_EXTENSION_ID := get_seq_id;
1776 -- Setting item attributes
1777 l_return_Status := Set_Attributes(
1778 l_pxlv_rec, -- IN
1779 l_def_pxlv_rec); -- OUT
1780 --- If any errors happen abort API
1781 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1782 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1783 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1784 RAISE OKL_API.G_EXCEPTION_ERROR;
1785 END IF;
1786 l_def_pxlv_rec := fill_who_columns(l_def_pxlv_rec);
1787 --- Validate all non-missing attributes (Item Level Validation)
1788 l_return_status := Validate_Attributes(l_def_pxlv_rec);
1789 --- If any errors happen abort API
1790 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1791 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1792 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1793 RAISE OKL_API.G_EXCEPTION_ERROR;
1794 END IF;
1795 l_return_status := Validate_Record(l_def_pxlv_rec);
1796 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1797 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1798 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1799 RAISE OKL_API.G_EXCEPTION_ERROR;
1800 END IF;
1801 -----------------------------------------
1802 -- Move VIEW record to "Child" records --
1803 -----------------------------------------
1804 migrate(l_def_pxlv_rec, l_pxl_rec);
1805 migrate(l_def_pxlv_rec, l_pxll_rec);
1806 -----------------------------------------------
1807 -- Call the INSERT_ROW for each child record --
1808 -----------------------------------------------
1809 insert_row(
1810 p_init_msg_list,
1811 l_return_status,
1812 x_msg_count,
1813 x_msg_data,
1814 l_pxl_rec,
1815 lx_pxl_rec
1816 );
1817 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1818 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1819 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1820 RAISE OKL_API.G_EXCEPTION_ERROR;
1821 END IF;
1822 migrate(lx_pxl_rec, l_def_pxlv_rec);
1823 insert_row(
1824 p_init_msg_list,
1825 l_return_status,
1826 x_msg_count,
1827 x_msg_data,
1828 l_pxll_rec,
1829 lx_pxll_rec
1830 );
1831 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1832 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1833 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1834 RAISE OKL_API.G_EXCEPTION_ERROR;
1835 END IF;
1836 migrate(lx_pxll_rec, l_def_pxlv_rec);
1837 -- Set OUT values
1838 x_pxlv_rec := l_def_pxlv_rec;
1839 x_return_status := l_return_status;
1840 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1841 EXCEPTION
1842 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1843 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1844 (
1845 l_api_name,
1846 G_PKG_NAME,
1847 'OKL_API.G_RET_STS_ERROR',
1848 x_msg_count,
1849 x_msg_data,
1850 '_PVT'
1851 );
1852 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1853 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1854 (
1855 l_api_name,
1856 G_PKG_NAME,
1857 'OKL_API.G_RET_STS_UNEXP_ERROR',
1858 x_msg_count,
1859 x_msg_data,
1860 '_PVT'
1861 );
1862 WHEN OTHERS THEN
1863 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1864 (
1865 l_api_name,
1866 G_PKG_NAME,
1867 'OTHERS',
1868 x_msg_count,
1869 x_msg_data,
1870 '_PVT'
1871 );
1872 END insert_row;
1873 ----------------------------------------
1874 -- PL/SQL TBL insert_row for:PXLV_TBL --
1875 ----------------------------------------
1876 PROCEDURE insert_row(
1877 p_api_version IN NUMBER,
1878 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1879 x_return_status OUT NOCOPY VARCHAR2,
1880 x_msg_count OUT NOCOPY NUMBER,
1881 x_msg_data OUT NOCOPY VARCHAR2,
1882 p_pxlv_tbl IN pxlv_tbl_type,
1883 x_pxlv_tbl OUT NOCOPY pxlv_tbl_type,
1884 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
1885
1886 l_api_version CONSTANT NUMBER := 1;
1887 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_insert_row';
1888 i NUMBER := 0;
1889 BEGIN
1890 OKL_API.init_msg_list(p_init_msg_list);
1891 -- Make sure PL/SQL table has records in it before passing
1892 IF (p_pxlv_tbl.COUNT > 0) THEN
1893 i := p_pxlv_tbl.FIRST;
1894 LOOP
1895 DECLARE
1896 l_error_rec OKL_API.ERROR_REC_TYPE;
1897 BEGIN
1898 l_error_rec.api_name := l_api_name;
1899 l_error_rec.api_package := G_PKG_NAME;
1900 l_error_rec.idx := i;
1901 insert_row (
1902 p_api_version => p_api_version,
1903 p_init_msg_list => OKL_API.G_FALSE,
1904 x_return_status => l_error_rec.error_type,
1905 x_msg_count => l_error_rec.msg_count,
1906 x_msg_data => l_error_rec.msg_data,
1907 p_pxlv_rec => p_pxlv_tbl(i),
1908 x_pxlv_rec => x_pxlv_tbl(i));
1909 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
1910 l_error_rec.sqlcode := SQLCODE;
1911 load_error_tbl(l_error_rec, px_error_tbl);
1912 ELSE
1913 x_msg_count := l_error_rec.msg_count;
1914 x_msg_data := l_error_rec.msg_data;
1915 END IF;
1916 EXCEPTION
1917 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1918 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
1919 l_error_rec.sqlcode := SQLCODE;
1920 load_error_tbl(l_error_rec, px_error_tbl);
1921 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1922 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
1923 l_error_rec.sqlcode := SQLCODE;
1924 load_error_tbl(l_error_rec, px_error_tbl);
1925 WHEN OTHERS THEN
1926 l_error_rec.error_type := 'OTHERS';
1927 l_error_rec.sqlcode := SQLCODE;
1928 load_error_tbl(l_error_rec, px_error_tbl);
1929 END;
1930 EXIT WHEN (i = p_pxlv_tbl.LAST);
1931 i := p_pxlv_tbl.NEXT(i);
1932 END LOOP;
1933 END IF;
1934 -- Loop through the error_tbl to find the error with the highest severity
1935 -- and return it.
1936 x_return_status := find_highest_exception(px_error_tbl);
1937 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
1938 EXCEPTION
1939 WHEN OKL_API.G_EXCEPTION_ERROR THEN
1940 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1941 (
1942 l_api_name,
1943 G_PKG_NAME,
1944 'OKL_API.G_RET_STS_ERROR',
1945 x_msg_count,
1946 x_msg_data,
1947 '_PVT'
1948 );
1949 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1950 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1951 (
1952 l_api_name,
1953 G_PKG_NAME,
1954 'OKL_API.G_RET_STS_UNEXP_ERROR',
1955 x_msg_count,
1956 x_msg_data,
1957 '_PVT'
1958 );
1959 WHEN OTHERS THEN
1960 x_return_status := OKL_API.HANDLE_EXCEPTIONS
1961 (
1962 l_api_name,
1963 G_PKG_NAME,
1964 'OTHERS',
1965 x_msg_count,
1966 x_msg_data,
1967 '_PVT'
1968 );
1969 END insert_row;
1970
1971 ----------------------------------------
1972 -- PL/SQL TBL insert_row for:PXLV_TBL --
1973 ----------------------------------------
1974 PROCEDURE insert_row(
1975 p_api_version IN NUMBER,
1976 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1977 x_return_status OUT NOCOPY VARCHAR2,
1978 x_msg_count OUT NOCOPY NUMBER,
1979 x_msg_data OUT NOCOPY VARCHAR2,
1980 p_pxlv_tbl IN pxlv_tbl_type,
1981 x_pxlv_tbl OUT NOCOPY pxlv_tbl_type) IS
1982
1983 l_api_version CONSTANT NUMBER := 1;
1984 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_insert_row';
1985 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1986 l_error_tbl OKL_API.ERROR_TBL_TYPE;
1987 BEGIN
1988 OKL_API.init_msg_list(p_init_msg_list);
1989 -- Make sure PL/SQL table has records in it before passing
1990 IF (p_pxlv_tbl.COUNT > 0) THEN
1991 insert_row (
1992 p_api_version => p_api_version,
1993 p_init_msg_list => OKL_API.G_FALSE,
1994 x_return_status => x_return_status,
1995 x_msg_count => x_msg_count,
1996 x_msg_data => x_msg_data,
1997 p_pxlv_tbl => p_pxlv_tbl,
1998 x_pxlv_tbl => x_pxlv_tbl,
1999 px_error_tbl => l_error_tbl);
2000 END IF;
2001 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2002 EXCEPTION
2003 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2004 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2005 (
2006 l_api_name,
2007 G_PKG_NAME,
2008 'OKL_API.G_RET_STS_ERROR',
2009 x_msg_count,
2010 x_msg_data,
2011 '_PVT'
2012 );
2013 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2014 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2015 (
2016 l_api_name,
2017 G_PKG_NAME,
2018 'OKL_API.G_RET_STS_UNEXP_ERROR',
2019 x_msg_count,
2020 x_msg_data,
2021 '_PVT'
2022 );
2023 WHEN OTHERS THEN
2024 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2025 (
2026 l_api_name,
2027 G_PKG_NAME,
2028 'OTHERS',
2029 x_msg_count,
2030 x_msg_data,
2031 '_PVT'
2032 );
2033 END insert_row;
2034
2035 ---------------------------------------------------------------------------
2036 -- PROCEDURE lock_row
2037 ---------------------------------------------------------------------------
2038 --------------------------------------------
2039 -- lock_row for:OKL_EXT_AP_LINE_SOURCES_B --
2040 --------------------------------------------
2041 PROCEDURE lock_row(
2042 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2043 x_return_status OUT NOCOPY VARCHAR2,
2044 x_msg_count OUT NOCOPY NUMBER,
2045 x_msg_data OUT NOCOPY VARCHAR2,
2046 p_pxl_rec IN pxl_rec_type) IS
2047
2048 E_Resource_Busy EXCEPTION;
2049 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2050 CURSOR lock_csr (p_pxl_rec IN pxl_rec_type) IS
2051 SELECT OBJECT_VERSION_NUMBER
2052 FROM OKL_EXT_AP_LINE_SOURCES_B
2053 WHERE LINE_EXTENSION_ID = p_pxl_rec.line_extension_id
2054 AND OBJECT_VERSION_NUMBER = p_pxl_rec.object_version_number
2055 FOR UPDATE OF OBJECT_VERSION_NUMBER NOWAIT;
2056
2057 CURSOR lchk_csr (p_pxl_rec IN pxl_rec_type) IS
2058 SELECT OBJECT_VERSION_NUMBER
2059 FROM OKL_EXT_AP_LINE_SOURCES_B
2060 WHERE LINE_EXTENSION_ID = p_pxl_rec.line_extension_id;
2061 l_api_version CONSTANT NUMBER := 1;
2062 l_api_name CONSTANT VARCHAR2(30) := 'B_lock_row';
2063 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2064 l_object_version_number OKL_EXT_AP_LINE_SOURCES_B.OBJECT_VERSION_NUMBER%TYPE;
2065 lc_object_version_number OKL_EXT_AP_LINE_SOURCES_B.OBJECT_VERSION_NUMBER%TYPE;
2066 l_row_notfound BOOLEAN := FALSE;
2067 lc_row_notfound BOOLEAN := FALSE;
2068 BEGIN
2069 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2070 p_init_msg_list,
2071 '_PVT',
2072 x_return_status);
2073 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2074 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2075 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2076 RAISE OKL_API.G_EXCEPTION_ERROR;
2077 END IF;
2078 BEGIN
2079 OPEN lock_csr(p_pxl_rec);
2080 FETCH lock_csr INTO l_object_version_number;
2081 l_row_notfound := lock_csr%NOTFOUND;
2082 CLOSE lock_csr;
2083 EXCEPTION
2084 WHEN E_Resource_Busy THEN
2085 IF (lock_csr%ISOPEN) THEN
2086 CLOSE lock_csr;
2087 END IF;
2088 OKL_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2089 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2090 END;
2091
2092 IF ( l_row_notfound ) THEN
2093 OPEN lchk_csr(p_pxl_rec);
2094 FETCH lchk_csr INTO lc_object_version_number;
2095 lc_row_notfound := lchk_csr%NOTFOUND;
2096 CLOSE lchk_csr;
2097 END IF;
2098 IF (lc_row_notfound) THEN
2099 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2100 RAISE OKL_API.G_EXCEPTION_ERROR;
2101 ELSIF lc_object_version_number > p_pxl_rec.object_version_number THEN
2102 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2103 RAISE OKL_API.G_EXCEPTION_ERROR;
2104 ELSIF lc_object_version_number <> p_pxl_rec.object_version_number THEN
2105 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_CHANGED);
2106 RAISE OKL_API.G_EXCEPTION_ERROR;
2107 ELSIF lc_object_version_number = -1 THEN
2108 OKL_API.set_message(G_APP_NAME,G_RECORD_LOGICALLY_DELETED);
2109 RAISE OKL_API.G_EXCEPTION_ERROR;
2110 END IF;
2111 x_return_status := l_return_status;
2112 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2113 EXCEPTION
2114 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2115 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2116 (
2117 l_api_name,
2118 G_PKG_NAME,
2119 'OKL_API.G_RET_STS_ERROR',
2120 x_msg_count,
2121 x_msg_data,
2122 '_PVT'
2123 );
2124 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2125 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2126 (
2127 l_api_name,
2128 G_PKG_NAME,
2129 'OKL_API.G_RET_STS_UNEXP_ERROR',
2130 x_msg_count,
2131 x_msg_data,
2132 '_PVT'
2133 );
2134 WHEN OTHERS THEN
2135 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2136 (
2137 l_api_name,
2138 G_PKG_NAME,
2139 'OTHERS',
2140 x_msg_count,
2141 x_msg_data,
2142 '_PVT'
2143 );
2144 END lock_row;
2145 ---------------------------------------------
2146 -- lock_row for:OKL_EXT_AP_LINE_SOURCES_TL --
2147 ---------------------------------------------
2148 PROCEDURE lock_row(
2149 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2150 x_return_status OUT NOCOPY VARCHAR2,
2151 x_msg_count OUT NOCOPY NUMBER,
2152 x_msg_data OUT NOCOPY VARCHAR2,
2153 p_pxll_rec IN pxll_rec_type) IS
2154
2155 E_Resource_Busy EXCEPTION;
2156 PRAGMA EXCEPTION_INIT(E_Resource_Busy, -00054);
2157 CURSOR lock_csr (p_pxll_rec IN pxll_rec_type) IS
2158 SELECT *
2159 FROM OKL_EXT_AP_LINE_SOURCES_TL
2160 WHERE LINE_EXTENSION_ID = p_pxll_rec.line_extension_id
2161 FOR UPDATE NOWAIT;
2162
2163 l_api_version CONSTANT NUMBER := 1;
2164 l_api_name CONSTANT VARCHAR2(30) := 'TL_lock_row';
2165 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2166 l_lock_var lock_csr%ROWTYPE;
2167 l_row_notfound BOOLEAN := FALSE;
2168 lc_row_notfound BOOLEAN := FALSE;
2169 BEGIN
2170 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2171 p_init_msg_list,
2172 '_PVT',
2173 x_return_status);
2174 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2175 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2176 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2177 RAISE OKL_API.G_EXCEPTION_ERROR;
2178 END IF;
2179 BEGIN
2180 OPEN lock_csr(p_pxll_rec);
2181 FETCH lock_csr INTO l_lock_var;
2182 l_row_notfound := lock_csr%NOTFOUND;
2183 CLOSE lock_csr;
2184 EXCEPTION
2185 WHEN E_Resource_Busy THEN
2186 IF (lock_csr%ISOPEN) THEN
2187 CLOSE lock_csr;
2188 END IF;
2189 OKL_API.set_message(G_FND_APP,G_FORM_UNABLE_TO_RESERVE_REC);
2190 RAISE APP_EXCEPTIONS.RECORD_LOCK_EXCEPTION;
2191 END;
2192
2193 IF ( l_row_notfound ) THEN
2194 OKL_API.set_message(G_FND_APP,G_FORM_RECORD_DELETED);
2195 RAISE OKL_API.G_EXCEPTION_ERROR;
2196 END IF;
2197 x_return_status := l_return_status;
2198 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2199 EXCEPTION
2200 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2201 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2202 (
2203 l_api_name,
2204 G_PKG_NAME,
2205 'OKL_API.G_RET_STS_ERROR',
2206 x_msg_count,
2207 x_msg_data,
2208 '_PVT'
2209 );
2210 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2211 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2212 (
2213 l_api_name,
2214 G_PKG_NAME,
2215 'OKL_API.G_RET_STS_UNEXP_ERROR',
2216 x_msg_count,
2217 x_msg_data,
2218 '_PVT'
2219 );
2220 WHEN OTHERS THEN
2221 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2222 (
2223 l_api_name,
2224 G_PKG_NAME,
2225 'OTHERS',
2226 x_msg_count,
2227 x_msg_data,
2228 '_PVT'
2229 );
2230 END lock_row;
2231 ---------------------------------------------
2232 -- lock_row for: OKL_EXT_AP_LINE_SOURCES_V --
2233 ---------------------------------------------
2234 PROCEDURE lock_row(
2235 p_api_version IN NUMBER,
2236 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2237 x_return_status OUT NOCOPY VARCHAR2,
2238 x_msg_count OUT NOCOPY NUMBER,
2239 x_msg_data OUT NOCOPY VARCHAR2,
2240 p_pxlv_rec IN pxlv_rec_type) IS
2241
2242 l_api_version CONSTANT NUMBER := 1;
2243 l_api_name CONSTANT VARCHAR2(30) := 'V_lock_row';
2244 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2245 l_pxl_rec pxl_rec_type;
2246 l_pxll_rec pxll_rec_type;
2247 BEGIN
2248 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2249 G_PKG_NAME,
2250 p_init_msg_list,
2251 l_api_version,
2252 p_api_version,
2253 '_PVT',
2254 x_return_status);
2255 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2256 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2257 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2258 RAISE OKL_API.G_EXCEPTION_ERROR;
2259 END IF;
2260 -----------------------------------------
2261 -- Move VIEW record to "Child" records --
2262 -----------------------------------------
2263 migrate(p_pxlv_rec, l_pxl_rec);
2264 migrate(p_pxlv_rec, l_pxll_rec);
2265 ---------------------------------------------
2266 -- Call the LOCK_ROW for each child record --
2267 ---------------------------------------------
2268 lock_row(
2269 p_init_msg_list,
2270 l_return_status,
2271 x_msg_count,
2272 x_msg_data,
2273 l_pxl_rec
2274 );
2275 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2276 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2277 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2278 RAISE OKL_API.G_EXCEPTION_ERROR;
2279 END IF;
2280 lock_row(
2281 p_init_msg_list,
2282 l_return_status,
2283 x_msg_count,
2284 x_msg_data,
2285 l_pxll_rec
2286 );
2287 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2288 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2289 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2290 RAISE OKL_API.G_EXCEPTION_ERROR;
2291 END IF;
2292 x_return_status := l_return_status;
2293 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2294 EXCEPTION
2295 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2296 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2297 (
2298 l_api_name,
2299 G_PKG_NAME,
2300 'OKL_API.G_RET_STS_ERROR',
2301 x_msg_count,
2302 x_msg_data,
2303 '_PVT'
2304 );
2305 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2306 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2307 (
2308 l_api_name,
2309 G_PKG_NAME,
2310 'OKL_API.G_RET_STS_UNEXP_ERROR',
2311 x_msg_count,
2312 x_msg_data,
2313 '_PVT'
2314 );
2315 WHEN OTHERS THEN
2316 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2317 (
2318 l_api_name,
2319 G_PKG_NAME,
2320 'OTHERS',
2321 x_msg_count,
2322 x_msg_data,
2323 '_PVT'
2324 );
2325 END lock_row;
2326 --------------------------------------
2327 -- PL/SQL TBL lock_row for:PXLV_TBL --
2328 --------------------------------------
2329 PROCEDURE lock_row(
2330 p_api_version IN NUMBER,
2331 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2332 x_return_status OUT NOCOPY VARCHAR2,
2333 x_msg_count OUT NOCOPY NUMBER,
2334 x_msg_data OUT NOCOPY VARCHAR2,
2335 p_pxlv_tbl IN pxlv_tbl_type,
2336 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
2337
2338 l_api_version CONSTANT NUMBER := 1;
2339 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_lock_row';
2340 i NUMBER := 0;
2341 BEGIN
2342 OKL_API.init_msg_list(p_init_msg_list);
2343 -- Make sure PL/SQL table has recrods in it before passing
2344 IF (p_pxlv_tbl.COUNT > 0) THEN
2345 i := p_pxlv_tbl.FIRST;
2346 LOOP
2347 DECLARE
2348 l_error_rec OKL_API.ERROR_REC_TYPE;
2349 BEGIN
2350 l_error_rec.api_name := l_api_name;
2351 l_error_rec.api_package := G_PKG_NAME;
2352 l_error_rec.idx := i;
2353 lock_row(
2354 p_api_version => p_api_version,
2355 p_init_msg_list => OKL_API.G_FALSE,
2356 x_return_status => l_error_rec.error_type,
2357 x_msg_count => l_error_rec.msg_count,
2358 x_msg_data => l_error_rec.msg_data,
2359 p_pxlv_rec => p_pxlv_tbl(i));
2360 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
2361 l_error_rec.sqlcode := SQLCODE;
2362 load_error_tbl(l_error_rec, px_error_tbl);
2363 ELSE
2364 x_msg_count := l_error_rec.msg_count;
2365 x_msg_data := l_error_rec.msg_data;
2366 END IF;
2367 EXCEPTION
2368 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2369 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
2370 l_error_rec.sqlcode := SQLCODE;
2371 load_error_tbl(l_error_rec, px_error_tbl);
2372 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2373 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
2374 l_error_rec.sqlcode := SQLCODE;
2375 load_error_tbl(l_error_rec, px_error_tbl);
2376 WHEN OTHERS THEN
2377 l_error_rec.error_type := 'OTHERS';
2378 l_error_rec.sqlcode := SQLCODE;
2379 load_error_tbl(l_error_rec, px_error_tbl);
2380 END;
2381 EXIT WHEN (i = p_pxlv_tbl.LAST);
2382 i := p_pxlv_tbl.NEXT(i);
2383 END LOOP;
2384 END IF;
2385 -- Loop through the error_tbl to find the error with the highest severity
2386 -- and return it.
2387 x_return_status := find_highest_exception(px_error_tbl);
2388 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2389 EXCEPTION
2390 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2391 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2392 (
2393 l_api_name,
2394 G_PKG_NAME,
2395 'OKL_API.G_RET_STS_ERROR',
2396 x_msg_count,
2397 x_msg_data,
2398 '_PVT'
2399 );
2400 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2401 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2402 (
2403 l_api_name,
2404 G_PKG_NAME,
2405 'OKL_API.G_RET_STS_UNEXP_ERROR',
2406 x_msg_count,
2407 x_msg_data,
2408 '_PVT'
2409 );
2410 WHEN OTHERS THEN
2411 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2412 (
2413 l_api_name,
2414 G_PKG_NAME,
2415 'OTHERS',
2416 x_msg_count,
2417 x_msg_data,
2418 '_PVT'
2419 );
2420 END lock_row;
2421 --------------------------------------
2422 -- PL/SQL TBL lock_row for:PXLV_TBL --
2423 --------------------------------------
2424 PROCEDURE lock_row(
2425 p_api_version IN NUMBER,
2426 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2427 x_return_status OUT NOCOPY VARCHAR2,
2428 x_msg_count OUT NOCOPY NUMBER,
2429 x_msg_data OUT NOCOPY VARCHAR2,
2430 p_pxlv_tbl IN pxlv_tbl_type) IS
2431
2432 l_api_version CONSTANT NUMBER := 1;
2433 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_lock_row';
2434 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2435 l_error_tbl OKL_API.ERROR_TBL_TYPE;
2436 BEGIN
2437 OKL_API.init_msg_list(p_init_msg_list);
2438 -- Make sure PL/SQL table has recrods in it before passing
2439 IF (p_pxlv_tbl.COUNT > 0) THEN
2440 lock_row(
2441 p_api_version => p_api_version,
2442 p_init_msg_list => OKL_API.G_FALSE,
2443 x_return_status => x_return_status,
2444 x_msg_count => x_msg_count,
2445 x_msg_data => x_msg_data,
2446 p_pxlv_tbl => p_pxlv_tbl,
2447 px_error_tbl => l_error_tbl);
2448 END IF;
2449 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2450 EXCEPTION
2451 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2452 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2453 (
2454 l_api_name,
2455 G_PKG_NAME,
2456 'OKL_API.G_RET_STS_ERROR',
2457 x_msg_count,
2458 x_msg_data,
2459 '_PVT'
2460 );
2461 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2462 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2463 (
2464 l_api_name,
2465 G_PKG_NAME,
2466 'OKL_API.G_RET_STS_UNEXP_ERROR',
2467 x_msg_count,
2468 x_msg_data,
2469 '_PVT'
2470 );
2471 WHEN OTHERS THEN
2472 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2473 (
2474 l_api_name,
2475 G_PKG_NAME,
2476 'OTHERS',
2477 x_msg_count,
2478 x_msg_data,
2479 '_PVT'
2480 );
2481 END lock_row;
2482 ---------------------------------------------------------------------------
2483 -- PROCEDURE update_row
2484 ---------------------------------------------------------------------------
2485 ----------------------------------------------
2486 -- update_row for:OKL_EXT_AP_LINE_SOURCES_B --
2487 ----------------------------------------------
2488 PROCEDURE update_row(
2489 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2490 x_return_status OUT NOCOPY VARCHAR2,
2491 x_msg_count OUT NOCOPY NUMBER,
2492 x_msg_data OUT NOCOPY VARCHAR2,
2493 p_pxl_rec IN pxl_rec_type,
2494 x_pxl_rec OUT NOCOPY pxl_rec_type) IS
2495
2496 l_api_version CONSTANT NUMBER := 1;
2497 l_api_name CONSTANT VARCHAR2(30) := 'B_update_row';
2498 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2499 l_pxl_rec pxl_rec_type := p_pxl_rec;
2500 l_def_pxl_rec pxl_rec_type;
2501 l_row_notfound BOOLEAN := TRUE;
2502 ----------------------------------
2503 -- FUNCTION populate_new_record --
2504 ----------------------------------
2505 FUNCTION populate_new_record (
2506 p_pxl_rec IN pxl_rec_type,
2507 x_pxl_rec OUT NOCOPY pxl_rec_type
2508 ) RETURN VARCHAR2 IS
2509 l_pxl_rec pxl_rec_type;
2510 l_row_notfound BOOLEAN := TRUE;
2511 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2512 BEGIN
2513 x_pxl_rec := p_pxl_rec;
2514 -- Get current database values
2515 l_pxl_rec := get_rec(p_pxl_rec, l_return_status);
2516 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
2517 IF x_pxl_rec.line_extension_id IS NULL THEN
2518 x_pxl_rec.line_extension_id := l_pxl_rec.line_extension_id;
2519 END IF;
2520 IF x_pxl_rec.header_extension_id IS NULL THEN
2521 x_pxl_rec.header_extension_id := l_pxl_rec.header_extension_id;
2522 END IF;
2523 IF x_pxl_rec.source_id IS NULL THEN
2524 x_pxl_rec.source_id := l_pxl_rec.source_id;
2525 END IF;
2526 IF x_pxl_rec.source_table IS NULL THEN
2527 x_pxl_rec.source_table := l_pxl_rec.source_table;
2528 END IF;
2529 IF x_pxl_rec.object_version_number IS NULL THEN
2530 x_pxl_rec.object_version_number := l_pxl_rec.object_version_number;
2531 END IF;
2532 IF x_pxl_rec.kle_id IS NULL THEN
2533 x_pxl_rec.kle_id := l_pxl_rec.kle_id;
2534 END IF;
2535 IF x_pxl_rec.sty_id IS NULL THEN
2536 x_pxl_rec.sty_id := l_pxl_rec.sty_id;
2537 END IF;
2538 IF x_pxl_rec.asset_number IS NULL THEN
2539 x_pxl_rec.asset_number := l_pxl_rec.asset_number;
2540 END IF;
2541 IF x_pxl_rec.contract_line_number IS NULL THEN
2542 x_pxl_rec.contract_line_number := l_pxl_rec.contract_line_number;
2543 END IF;
2544 IF x_pxl_rec.asset_vendor_name IS NULL THEN
2545 x_pxl_rec.asset_vendor_name := l_pxl_rec.asset_vendor_name;
2546 END IF;
2547 IF x_pxl_rec.installed_site_id IS NULL THEN
2548 x_pxl_rec.installed_site_id := l_pxl_rec.installed_site_id;
2549 END IF;
2550 IF x_pxl_rec.fixed_asset_location_name IS NULL THEN
2551 x_pxl_rec.fixed_asset_location_name := l_pxl_rec.fixed_asset_location_name;
2552 END IF;
2553 IF x_pxl_rec.accounting_template_name IS NULL THEN
2554 x_pxl_rec.accounting_template_name := l_pxl_rec.accounting_template_name;
2555 END IF;
2556 IF x_pxl_rec.fee_type_code IS NULL THEN
2557 x_pxl_rec.fee_type_code := l_pxl_rec.fee_type_code;
2558 END IF;
2559 IF x_pxl_rec.memo_flag IS NULL THEN
2560 x_pxl_rec.memo_flag := l_pxl_rec.memo_flag;
2561 END IF;
2562 IF x_pxl_rec.contract_line_type IS NULL THEN
2563 x_pxl_rec.contract_line_type := l_pxl_rec.contract_line_type;
2564 END IF;
2565 IF x_pxl_rec.line_attribute_category IS NULL THEN
2566 x_pxl_rec.line_attribute_category := l_pxl_rec.line_attribute_category;
2567 END IF;
2568 IF x_pxl_rec.line_attribute1 IS NULL THEN
2569 x_pxl_rec.line_attribute1 := l_pxl_rec.line_attribute1;
2570 END IF;
2571 IF x_pxl_rec.line_attribute2 IS NULL THEN
2572 x_pxl_rec.line_attribute2 := l_pxl_rec.line_attribute2;
2573 END IF;
2574 IF x_pxl_rec.line_attribute3 IS NULL THEN
2575 x_pxl_rec.line_attribute3 := l_pxl_rec.line_attribute3;
2576 END IF;
2577 IF x_pxl_rec.line_attribute4 IS NULL THEN
2578 x_pxl_rec.line_attribute4 := l_pxl_rec.line_attribute4;
2579 END IF;
2580 IF x_pxl_rec.line_attribute5 IS NULL THEN
2581 x_pxl_rec.line_attribute5 := l_pxl_rec.line_attribute5;
2582 END IF;
2583 IF x_pxl_rec.line_attribute6 IS NULL THEN
2584 x_pxl_rec.line_attribute6 := l_pxl_rec.line_attribute6;
2585 END IF;
2586 IF x_pxl_rec.line_attribute7 IS NULL THEN
2587 x_pxl_rec.line_attribute7 := l_pxl_rec.line_attribute7;
2588 END IF;
2589 IF x_pxl_rec.line_attribute8 IS NULL THEN
2590 x_pxl_rec.line_attribute8 := l_pxl_rec.line_attribute8;
2591 END IF;
2592 IF x_pxl_rec.line_attribute9 IS NULL THEN
2593 x_pxl_rec.line_attribute9 := l_pxl_rec.line_attribute9;
2594 END IF;
2595 IF x_pxl_rec.line_attribute10 IS NULL THEN
2596 x_pxl_rec.line_attribute10 := l_pxl_rec.line_attribute10;
2597 END IF;
2598 IF x_pxl_rec.line_attribute11 IS NULL THEN
2599 x_pxl_rec.line_attribute11 := l_pxl_rec.line_attribute11;
2600 END IF;
2601 IF x_pxl_rec.line_attribute12 IS NULL THEN
2602 x_pxl_rec.line_attribute12 := l_pxl_rec.line_attribute12;
2603 END IF;
2604 IF x_pxl_rec.line_attribute13 IS NULL THEN
2605 x_pxl_rec.line_attribute13 := l_pxl_rec.line_attribute13;
2606 END IF;
2607 IF x_pxl_rec.line_attribute14 IS NULL THEN
2608 x_pxl_rec.line_attribute14 := l_pxl_rec.line_attribute14;
2609 END IF;
2610 IF x_pxl_rec.line_attribute15 IS NULL THEN
2611 x_pxl_rec.line_attribute15 := l_pxl_rec.line_attribute15;
2612 END IF;
2613 IF x_pxl_rec.stream_type_code IS NULL THEN
2614 x_pxl_rec.stream_type_code := l_pxl_rec.stream_type_code;
2615 END IF;
2616 IF x_pxl_rec.stream_type_purpose_code IS NULL THEN
2617 x_pxl_rec.stream_type_purpose_code := l_pxl_rec.stream_type_purpose_code;
2618 END IF;
2619 IF x_pxl_rec.inventory_org_code IS NULL THEN
2620 x_pxl_rec.inventory_org_code := l_pxl_rec.inventory_org_code;
2621 END IF;
2622 IF x_pxl_rec.created_by IS NULL THEN
2623 x_pxl_rec.created_by := l_pxl_rec.created_by;
2624 END IF;
2625 IF x_pxl_rec.creation_date IS NULL THEN
2626 x_pxl_rec.creation_date := l_pxl_rec.creation_date;
2627 END IF;
2628 IF x_pxl_rec.last_updated_by IS NULL THEN
2629 x_pxl_rec.last_updated_by := l_pxl_rec.last_updated_by;
2630 END IF;
2631 IF x_pxl_rec.last_update_date IS NULL THEN
2632 x_pxl_rec.last_update_date := l_pxl_rec.last_update_date;
2633 END IF;
2634 IF x_pxl_rec.last_update_login IS NULL THEN
2635 x_pxl_rec.last_update_login := l_pxl_rec.last_update_login;
2636 END IF;
2637 IF x_pxl_rec.asset_category_name IS NULL THEN
2638 x_pxl_rec.asset_category_name := l_pxl_rec.asset_category_name;
2639 END IF;
2640 IF x_pxl_rec.inventory_item_name_code IS NULL THEN
2641 x_pxl_rec.inventory_item_name_code := l_pxl_rec.inventory_item_name_code;
2642 END IF;
2643 IF x_pxl_rec.asset_vendor_id IS NULL THEN
2644 x_pxl_rec.asset_vendor_id := l_pxl_rec.asset_vendor_id;
2645 END IF;
2646 END IF;
2647 RETURN(l_return_status);
2648 END populate_new_record;
2649 --------------------------------------------------
2650 -- Set_Attributes for:OKL_EXT_AP_LINE_SOURCES_B --
2651 --------------------------------------------------
2652 FUNCTION Set_Attributes (
2653 p_pxl_rec IN pxl_rec_type,
2654 x_pxl_rec OUT NOCOPY pxl_rec_type
2655 ) RETURN VARCHAR2 IS
2656 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2657 BEGIN
2658 x_pxl_rec := p_pxl_rec;
2659 x_pxl_rec.OBJECT_VERSION_NUMBER := p_pxl_rec.OBJECT_VERSION_NUMBER + 1;
2660 RETURN(l_return_status);
2661 END Set_Attributes;
2662 BEGIN
2663 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2664 p_init_msg_list,
2665 '_PVT',
2666 x_return_status);
2667 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2668 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2669 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2670 RAISE OKL_API.G_EXCEPTION_ERROR;
2671 END IF;
2672 --- Setting item attributes
2673 l_return_status := Set_Attributes(
2674 p_pxl_rec, -- IN
2675 l_pxl_rec); -- OUT
2676 --- If any errors happen abort API
2677 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2678 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2679 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2680 RAISE OKL_API.G_EXCEPTION_ERROR;
2681 END IF;
2682 l_return_status := populate_new_record(l_pxl_rec, l_def_pxl_rec);
2683 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2684 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2685 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2686 RAISE OKL_API.G_EXCEPTION_ERROR;
2687 END IF;
2688 UPDATE OKL_EXT_AP_LINE_SOURCES_B
2689 SET HEADER_EXTENSION_ID = l_def_pxl_rec.header_extension_id,
2690 SOURCE_ID = l_def_pxl_rec.source_id,
2691 SOURCE_TABLE = l_def_pxl_rec.source_table,
2692 OBJECT_VERSION_NUMBER = l_def_pxl_rec.object_version_number,
2693 KLE_ID = l_def_pxl_rec.kle_id,
2694 STY_ID = l_def_pxl_rec.sty_id,
2695 ASSET_NUMBER = l_def_pxl_rec.asset_number,
2696 CONTRACT_LINE_NUMBER = l_def_pxl_rec.contract_line_number,
2697 ASSET_VENDOR_NAME = l_def_pxl_rec.asset_vendor_name,
2698 INSTALLED_SITE_ID = l_def_pxl_rec.installed_site_id,
2699 FIXED_ASSET_LOCATION_NAME = l_def_pxl_rec.fixed_asset_location_name,
2700 ACCOUNTING_TEMPLATE_NAME = l_def_pxl_rec.accounting_template_name,
2701 FEE_TYPE_CODE = l_def_pxl_rec.fee_type_code,
2702 MEMO_FLAG = l_def_pxl_rec.memo_flag,
2703 CONTRACT_LINE_TYPE = l_def_pxl_rec.contract_line_type,
2704 LINE_ATTRIBUTE_CATEGORY = l_def_pxl_rec.line_attribute_category,
2705 LINE_ATTRIBUTE1 = l_def_pxl_rec.line_attribute1,
2706 LINE_ATTRIBUTE2 = l_def_pxl_rec.line_attribute2,
2707 LINE_ATTRIBUTE3 = l_def_pxl_rec.line_attribute3,
2708 LINE_ATTRIBUTE4 = l_def_pxl_rec.line_attribute4,
2709 LINE_ATTRIBUTE5 = l_def_pxl_rec.line_attribute5,
2710 LINE_ATTRIBUTE6 = l_def_pxl_rec.line_attribute6,
2711 LINE_ATTRIBUTE7 = l_def_pxl_rec.line_attribute7,
2712 LINE_ATTRIBUTE8 = l_def_pxl_rec.line_attribute8,
2713 LINE_ATTRIBUTE9 = l_def_pxl_rec.line_attribute9,
2714 LINE_ATTRIBUTE10 = l_def_pxl_rec.line_attribute10,
2715 LINE_ATTRIBUTE11 = l_def_pxl_rec.line_attribute11,
2716 LINE_ATTRIBUTE12 = l_def_pxl_rec.line_attribute12,
2717 LINE_ATTRIBUTE13 = l_def_pxl_rec.line_attribute13,
2718 LINE_ATTRIBUTE14 = l_def_pxl_rec.line_attribute14,
2719 LINE_ATTRIBUTE15 = l_def_pxl_rec.line_attribute15,
2720 STREAM_TYPE_CODE = l_def_pxl_rec.stream_type_code,
2721 STREAM_TYPE_PURPOSE_CODE = l_def_pxl_rec.stream_type_purpose_code,
2722 INVENTORY_ORG_CODE = l_def_pxl_rec.inventory_org_code,
2723 CREATED_BY = l_def_pxl_rec.created_by,
2724 CREATION_DATE = l_def_pxl_rec.creation_date,
2725 LAST_UPDATED_BY = l_def_pxl_rec.last_updated_by,
2726 LAST_UPDATE_DATE = l_def_pxl_rec.last_update_date,
2727 LAST_UPDATE_LOGIN = l_def_pxl_rec.last_update_login,
2728 ASSET_CATEGORY_NAME = l_def_pxl_rec.asset_category_name,
2729 INVENTORY_ITEM_NAME_CODE = l_def_pxl_rec.inventory_item_name_code,
2730 ASSET_VENDOR_ID = l_def_pxl_rec.asset_vendor_id
2731 WHERE LINE_EXTENSION_ID = l_def_pxl_rec.line_extension_id;
2732
2733 x_pxl_rec := l_pxl_rec;
2734 x_return_status := l_return_status;
2735 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2736 EXCEPTION
2737 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2738 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2739 (
2740 l_api_name,
2741 G_PKG_NAME,
2742 'OKL_API.G_RET_STS_ERROR',
2743 x_msg_count,
2744 x_msg_data,
2745 '_PVT'
2746 );
2747 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2748 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2749 (
2750 l_api_name,
2751 G_PKG_NAME,
2752 'OKL_API.G_RET_STS_UNEXP_ERROR',
2753 x_msg_count,
2754 x_msg_data,
2755 '_PVT'
2756 );
2757 WHEN OTHERS THEN
2758 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2759 (
2760 l_api_name,
2761 G_PKG_NAME,
2762 'OTHERS',
2763 x_msg_count,
2764 x_msg_data,
2765 '_PVT'
2766 );
2767 END update_row;
2768 -----------------------------------------------
2769 -- update_row for:OKL_EXT_AP_LINE_SOURCES_TL --
2770 -----------------------------------------------
2771 PROCEDURE update_row(
2772 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2773 x_return_status OUT NOCOPY VARCHAR2,
2774 x_msg_count OUT NOCOPY NUMBER,
2775 x_msg_data OUT NOCOPY VARCHAR2,
2776 p_pxll_rec IN pxll_rec_type,
2777 x_pxll_rec OUT NOCOPY pxll_rec_type) IS
2778
2779 l_api_version CONSTANT NUMBER := 1;
2780 l_api_name CONSTANT VARCHAR2(30) := 'TL_update_row';
2781 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2782 l_pxll_rec pxll_rec_type := p_pxll_rec;
2783 l_def_pxll_rec pxll_rec_type;
2784 l_row_notfound BOOLEAN := TRUE;
2785 ----------------------------------
2786 -- FUNCTION populate_new_record --
2787 ----------------------------------
2788 FUNCTION populate_new_record (
2789 p_pxll_rec IN pxll_rec_type,
2790 x_pxll_rec OUT NOCOPY pxll_rec_type
2791 ) RETURN VARCHAR2 IS
2792 l_pxll_rec pxll_rec_type;
2793 l_row_notfound BOOLEAN := TRUE;
2794 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2795 BEGIN
2796 x_pxll_rec := p_pxll_rec;
2797 -- Get current database values
2798 l_pxll_rec := get_rec(p_pxll_rec, l_return_status);
2799 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
2800 IF x_pxll_rec.line_extension_id IS NULL THEN
2801 x_pxll_rec.line_extension_id := l_pxll_rec.line_extension_id;
2802 END IF;
2803 IF x_pxll_rec.language IS NULL THEN
2804 x_pxll_rec.language := l_pxll_rec.language;
2805 END IF;
2806 IF x_pxll_rec.source_lang IS NULL THEN
2807 x_pxll_rec.source_lang := l_pxll_rec.source_lang;
2808 END IF;
2809 IF x_pxll_rec.sfwt_flag IS NULL THEN
2810 x_pxll_rec.sfwt_flag := l_pxll_rec.sfwt_flag;
2811 END IF;
2812 IF x_pxll_rec.inventory_org_name IS NULL THEN
2813 x_pxll_rec.inventory_org_name := l_pxll_rec.inventory_org_name;
2814 END IF;
2815 IF x_pxll_rec.stream_type_name IS NULL THEN
2816 x_pxll_rec.stream_type_name := l_pxll_rec.stream_type_name;
2817 END IF;
2818 IF x_pxll_rec.trans_line_description IS NULL THEN
2819 x_pxll_rec.trans_line_description := l_pxll_rec.trans_line_description;
2820 END IF;
2821 IF x_pxll_rec.created_by IS NULL THEN
2822 x_pxll_rec.created_by := l_pxll_rec.created_by;
2823 END IF;
2824 IF x_pxll_rec.creation_date IS NULL THEN
2825 x_pxll_rec.creation_date := l_pxll_rec.creation_date;
2826 END IF;
2827 IF x_pxll_rec.last_updated_by IS NULL THEN
2828 x_pxll_rec.last_updated_by := l_pxll_rec.last_updated_by;
2829 END IF;
2830 IF x_pxll_rec.last_update_date IS NULL THEN
2831 x_pxll_rec.last_update_date := l_pxll_rec.last_update_date;
2832 END IF;
2833 IF x_pxll_rec.last_update_login IS NULL THEN
2834 x_pxll_rec.last_update_login := l_pxll_rec.last_update_login;
2835 END IF;
2836 IF x_pxll_rec.inventory_item_name IS NULL THEN
2837 x_pxll_rec.inventory_item_name := l_pxll_rec.inventory_item_name;
2838 END IF;
2839 END IF;
2840 RETURN(l_return_status);
2841 END populate_new_record;
2842 ---------------------------------------------------
2843 -- Set_Attributes for:OKL_EXT_AP_LINE_SOURCES_TL --
2844 ---------------------------------------------------
2845 FUNCTION Set_Attributes (
2846 p_pxll_rec IN pxll_rec_type,
2847 x_pxll_rec OUT NOCOPY pxll_rec_type
2848 ) RETURN VARCHAR2 IS
2849 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2850 BEGIN
2851 x_pxll_rec := p_pxll_rec;
2852 x_pxll_rec.LANGUAGE := USERENV('LANG');
2853 x_pxll_rec.LANGUAGE := USERENV('LANG');
2854 RETURN(l_return_status);
2855 END Set_Attributes;
2856 BEGIN
2857 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
2858 p_init_msg_list,
2859 '_PVT',
2860 x_return_status);
2861 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2862 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2863 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2864 RAISE OKL_API.G_EXCEPTION_ERROR;
2865 END IF;
2866 --- Setting item attributes
2867 l_return_status := Set_Attributes(
2868 p_pxll_rec, -- IN
2869 l_pxll_rec); -- OUT
2870 --- If any errors happen abort API
2871 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2872 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2873 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2874 RAISE OKL_API.G_EXCEPTION_ERROR;
2875 END IF;
2876 l_return_status := populate_new_record(l_pxll_rec, l_def_pxll_rec);
2877 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
2878 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
2879 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
2880 RAISE OKL_API.G_EXCEPTION_ERROR;
2881 END IF;
2882 UPDATE OKL_EXT_AP_LINE_SOURCES_TL
2883 SET INVENTORY_ORG_NAME = l_def_pxll_rec.inventory_org_name,
2884 STREAM_TYPE_NAME = l_def_pxll_rec.stream_type_name,
2885 TRANS_LINE_DESCRIPTION = l_def_pxll_rec.trans_line_description,
2886 CREATED_BY = l_def_pxll_rec.created_by,
2887 CREATION_DATE = l_def_pxll_rec.creation_date,
2888 LAST_UPDATED_BY = l_def_pxll_rec.last_updated_by,
2889 LAST_UPDATE_DATE = l_def_pxll_rec.last_update_date,
2890 LAST_UPDATE_LOGIN = l_def_pxll_rec.last_update_login,
2891 INVENTORY_ITEM_NAME = l_def_pxll_rec.inventory_item_name
2892 WHERE LINE_EXTENSION_ID = l_def_pxll_rec.line_extension_id
2893 AND SOURCE_LANG = USERENV('LANG');
2894
2895 UPDATE OKL_EXT_AP_LINE_SOURCES_TL
2896 SET SFWT_FLAG = 'Y'
2897 WHERE LINE_EXTENSION_ID = l_def_pxll_rec.line_extension_id
2898 AND SOURCE_LANG <> USERENV('LANG');
2899
2900 x_pxll_rec := l_pxll_rec;
2901 x_return_status := l_return_status;
2902 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
2903 EXCEPTION
2904 WHEN OKL_API.G_EXCEPTION_ERROR THEN
2905 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2906 (
2907 l_api_name,
2908 G_PKG_NAME,
2909 'OKL_API.G_RET_STS_ERROR',
2910 x_msg_count,
2911 x_msg_data,
2912 '_PVT'
2913 );
2914 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
2915 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2916 (
2917 l_api_name,
2918 G_PKG_NAME,
2919 'OKL_API.G_RET_STS_UNEXP_ERROR',
2920 x_msg_count,
2921 x_msg_data,
2922 '_PVT'
2923 );
2924 WHEN OTHERS THEN
2925 x_return_status := OKL_API.HANDLE_EXCEPTIONS
2926 (
2927 l_api_name,
2928 G_PKG_NAME,
2929 'OTHERS',
2930 x_msg_count,
2931 x_msg_data,
2932 '_PVT'
2933 );
2934 END update_row;
2935 ----------------------------------------------
2936 -- update_row for:OKL_EXT_AP_LINE_SOURCES_V --
2937 ----------------------------------------------
2938 PROCEDURE update_row(
2939 p_api_version IN NUMBER,
2940 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
2941 x_return_status OUT NOCOPY VARCHAR2,
2942 x_msg_count OUT NOCOPY NUMBER,
2943 x_msg_data OUT NOCOPY VARCHAR2,
2944 p_pxlv_rec IN pxlv_rec_type,
2945 x_pxlv_rec OUT NOCOPY pxlv_rec_type) IS
2946
2947 l_api_version CONSTANT NUMBER := 1;
2948 l_api_name CONSTANT VARCHAR2(30) := 'V_update_row';
2949 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2950 l_pxlv_rec pxlv_rec_type := p_pxlv_rec;
2951 l_def_pxlv_rec pxlv_rec_type;
2952 l_db_pxlv_rec pxlv_rec_type;
2953 l_pxl_rec pxl_rec_type;
2954 lx_pxl_rec pxl_rec_type;
2955 l_pxll_rec pxll_rec_type;
2956 lx_pxll_rec pxll_rec_type;
2957 -------------------------------
2958 -- FUNCTION fill_who_columns --
2959 -------------------------------
2960 FUNCTION fill_who_columns (
2961 p_pxlv_rec IN pxlv_rec_type
2962 ) RETURN pxlv_rec_type IS
2963 l_pxlv_rec pxlv_rec_type := p_pxlv_rec;
2964 BEGIN
2965 l_pxlv_rec.LAST_UPDATE_DATE := SYSDATE;
2966 l_pxlv_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
2967 l_pxlv_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
2968 RETURN(l_pxlv_rec);
2969 END fill_who_columns;
2970 ----------------------------------
2971 -- FUNCTION populate_new_record --
2972 ----------------------------------
2973 FUNCTION populate_new_record (
2974 p_pxlv_rec IN pxlv_rec_type,
2975 x_pxlv_rec OUT NOCOPY pxlv_rec_type
2976 ) RETURN VARCHAR2 IS
2977 l_row_notfound BOOLEAN := TRUE;
2978 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
2979 BEGIN
2980 x_pxlv_rec := p_pxlv_rec;
2981 -- Get current database values
2982 -- NOTE: Never assign the OBJECT_VERSION_NUMBER. Force the user to pass it
2983 -- so it may be verified through LOCK_ROW.
2984 l_db_pxlv_rec := get_rec(p_pxlv_rec, l_return_status);
2985 IF (l_return_status = OKL_API.G_RET_STS_SUCCESS) THEN
2986 IF x_pxlv_rec.line_extension_id IS NULL THEN
2987 x_pxlv_rec.line_extension_id := l_db_pxlv_rec.line_extension_id;
2988 END IF;
2989 IF x_pxlv_rec.header_extension_id IS NULL THEN
2990 x_pxlv_rec.header_extension_id := l_db_pxlv_rec.header_extension_id;
2991 END IF;
2992 IF x_pxlv_rec.source_id IS NULL THEN
2993 x_pxlv_rec.source_id := l_db_pxlv_rec.source_id;
2994 END IF;
2995 IF x_pxlv_rec.source_table IS NULL THEN
2996 x_pxlv_rec.source_table := l_db_pxlv_rec.source_table;
2997 END IF;
2998 IF x_pxlv_rec.kle_id IS NULL THEN
2999 x_pxlv_rec.kle_id := l_db_pxlv_rec.kle_id;
3000 END IF;
3001 IF x_pxlv_rec.sty_id IS NULL THEN
3002 x_pxlv_rec.sty_id := l_db_pxlv_rec.sty_id;
3003 END IF;
3004 IF x_pxlv_rec.asset_number IS NULL THEN
3005 x_pxlv_rec.asset_number := l_db_pxlv_rec.asset_number;
3006 END IF;
3007 IF x_pxlv_rec.contract_line_number IS NULL THEN
3008 x_pxlv_rec.contract_line_number := l_db_pxlv_rec.contract_line_number;
3009 END IF;
3010 IF x_pxlv_rec.asset_vendor_name IS NULL THEN
3011 x_pxlv_rec.asset_vendor_name := l_db_pxlv_rec.asset_vendor_name;
3012 END IF;
3013 IF x_pxlv_rec.installed_site_id IS NULL THEN
3014 x_pxlv_rec.installed_site_id := l_db_pxlv_rec.installed_site_id;
3015 END IF;
3016 IF x_pxlv_rec.fixed_asset_location_name IS NULL THEN
3017 x_pxlv_rec.fixed_asset_location_name := l_db_pxlv_rec.fixed_asset_location_name;
3018 END IF;
3019 IF x_pxlv_rec.accounting_template_name IS NULL THEN
3020 x_pxlv_rec.accounting_template_name := l_db_pxlv_rec.accounting_template_name;
3021 END IF;
3022 IF x_pxlv_rec.fee_type_code IS NULL THEN
3023 x_pxlv_rec.fee_type_code := l_db_pxlv_rec.fee_type_code;
3024 END IF;
3025 IF x_pxlv_rec.memo_flag IS NULL THEN
3026 x_pxlv_rec.memo_flag := l_db_pxlv_rec.memo_flag;
3027 END IF;
3028 IF x_pxlv_rec.contract_line_type IS NULL THEN
3029 x_pxlv_rec.contract_line_type := l_db_pxlv_rec.contract_line_type;
3030 END IF;
3031 IF x_pxlv_rec.line_attribute_category IS NULL THEN
3032 x_pxlv_rec.line_attribute_category := l_db_pxlv_rec.line_attribute_category;
3033 END IF;
3034 IF x_pxlv_rec.line_attribute1 IS NULL THEN
3035 x_pxlv_rec.line_attribute1 := l_db_pxlv_rec.line_attribute1;
3036 END IF;
3037 IF x_pxlv_rec.line_attribute2 IS NULL THEN
3038 x_pxlv_rec.line_attribute2 := l_db_pxlv_rec.line_attribute2;
3039 END IF;
3040 IF x_pxlv_rec.line_attribute3 IS NULL THEN
3041 x_pxlv_rec.line_attribute3 := l_db_pxlv_rec.line_attribute3;
3042 END IF;
3043 IF x_pxlv_rec.line_attribute4 IS NULL THEN
3044 x_pxlv_rec.line_attribute4 := l_db_pxlv_rec.line_attribute4;
3045 END IF;
3046 IF x_pxlv_rec.line_attribute5 IS NULL THEN
3047 x_pxlv_rec.line_attribute5 := l_db_pxlv_rec.line_attribute5;
3048 END IF;
3049 IF x_pxlv_rec.line_attribute6 IS NULL THEN
3050 x_pxlv_rec.line_attribute6 := l_db_pxlv_rec.line_attribute6;
3051 END IF;
3052 IF x_pxlv_rec.line_attribute7 IS NULL THEN
3053 x_pxlv_rec.line_attribute7 := l_db_pxlv_rec.line_attribute7;
3054 END IF;
3055 IF x_pxlv_rec.line_attribute8 IS NULL THEN
3056 x_pxlv_rec.line_attribute8 := l_db_pxlv_rec.line_attribute8;
3057 END IF;
3058 IF x_pxlv_rec.line_attribute9 IS NULL THEN
3059 x_pxlv_rec.line_attribute9 := l_db_pxlv_rec.line_attribute9;
3060 END IF;
3061 IF x_pxlv_rec.line_attribute10 IS NULL THEN
3062 x_pxlv_rec.line_attribute10 := l_db_pxlv_rec.line_attribute10;
3063 END IF;
3064 IF x_pxlv_rec.line_attribute11 IS NULL THEN
3065 x_pxlv_rec.line_attribute11 := l_db_pxlv_rec.line_attribute11;
3066 END IF;
3067 IF x_pxlv_rec.line_attribute12 IS NULL THEN
3068 x_pxlv_rec.line_attribute12 := l_db_pxlv_rec.line_attribute12;
3069 END IF;
3070 IF x_pxlv_rec.line_attribute13 IS NULL THEN
3071 x_pxlv_rec.line_attribute13 := l_db_pxlv_rec.line_attribute13;
3072 END IF;
3073 IF x_pxlv_rec.line_attribute14 IS NULL THEN
3074 x_pxlv_rec.line_attribute14 := l_db_pxlv_rec.line_attribute14;
3075 END IF;
3076 IF x_pxlv_rec.line_attribute15 IS NULL THEN
3077 x_pxlv_rec.line_attribute15 := l_db_pxlv_rec.line_attribute15;
3078 END IF;
3079 IF x_pxlv_rec.stream_type_code IS NULL THEN
3080 x_pxlv_rec.stream_type_code := l_db_pxlv_rec.stream_type_code;
3081 END IF;
3082 IF x_pxlv_rec.stream_type_purpose_code IS NULL THEN
3083 x_pxlv_rec.stream_type_purpose_code := l_db_pxlv_rec.stream_type_purpose_code;
3084 END IF;
3085 IF x_pxlv_rec.inventory_org_code IS NULL THEN
3086 x_pxlv_rec.inventory_org_code := l_db_pxlv_rec.inventory_org_code;
3087 END IF;
3088 IF x_pxlv_rec.language IS NULL THEN
3089 x_pxlv_rec.language := l_db_pxlv_rec.language;
3090 END IF;
3091 IF x_pxlv_rec.inventory_org_name IS NULL THEN
3092 x_pxlv_rec.inventory_org_name := l_db_pxlv_rec.inventory_org_name;
3093 END IF;
3094 IF x_pxlv_rec.stream_type_name IS NULL THEN
3095 x_pxlv_rec.stream_type_name := l_db_pxlv_rec.stream_type_name;
3096 END IF;
3097 IF x_pxlv_rec.trans_line_description IS NULL THEN
3098 x_pxlv_rec.trans_line_description := l_db_pxlv_rec.trans_line_description;
3099 END IF;
3100 IF x_pxlv_rec.created_by IS NULL THEN
3101 x_pxlv_rec.created_by := l_db_pxlv_rec.created_by;
3102 END IF;
3103 IF x_pxlv_rec.creation_date IS NULL THEN
3104 x_pxlv_rec.creation_date := l_db_pxlv_rec.creation_date;
3105 END IF;
3106 IF x_pxlv_rec.last_updated_by IS NULL THEN
3107 x_pxlv_rec.last_updated_by := l_db_pxlv_rec.last_updated_by;
3108 END IF;
3109 IF x_pxlv_rec.last_update_date IS NULL THEN
3110 x_pxlv_rec.last_update_date := l_db_pxlv_rec.last_update_date;
3111 END IF;
3112 IF x_pxlv_rec.last_update_login IS NULL THEN
3113 x_pxlv_rec.last_update_login := l_db_pxlv_rec.last_update_login;
3114 END IF;
3115 IF x_pxlv_rec.asset_category_name IS NULL THEN
3116 x_pxlv_rec.asset_category_name := l_db_pxlv_rec.asset_category_name;
3117 END IF;
3118 IF x_pxlv_rec.inventory_item_name_code IS NULL THEN
3119 x_pxlv_rec.inventory_item_name_code := l_db_pxlv_rec.inventory_item_name_code;
3120 END IF;
3121 IF x_pxlv_rec.inventory_item_name IS NULL THEN
3122 x_pxlv_rec.inventory_item_name := l_db_pxlv_rec.inventory_item_name;
3123 END IF;
3124 IF x_pxlv_rec.asset_vendor_id IS NULL THEN
3125 x_pxlv_rec.asset_vendor_id := l_db_pxlv_rec.asset_vendor_id;
3126 END IF;
3127 END IF;
3128 RETURN(l_return_status);
3129 END populate_new_record;
3130 --------------------------------------------------
3131 -- Set_Attributes for:OKL_EXT_AP_LINE_SOURCES_V --
3132 --------------------------------------------------
3133 FUNCTION Set_Attributes (
3134 p_pxlv_rec IN pxlv_rec_type,
3135 x_pxlv_rec OUT NOCOPY pxlv_rec_type
3136 ) RETURN VARCHAR2 IS
3137 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3138 BEGIN
3139 x_pxlv_rec := p_pxlv_rec;
3140 RETURN(l_return_status);
3141 END Set_Attributes;
3142 BEGIN
3143 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3144 G_PKG_NAME,
3145 p_init_msg_list,
3146 l_api_version,
3147 p_api_version,
3148 '_PVT',
3149 x_return_status);
3150 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3151 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3152 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3153 RAISE OKL_API.G_EXCEPTION_ERROR;
3154 END IF;
3155 --- Setting item attributes
3156 l_return_status := Set_Attributes(
3157 p_pxlv_rec, -- IN
3158 x_pxlv_rec); -- OUT
3159 --- If any errors happen abort API
3160 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3161 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3162 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3163 RAISE OKL_API.G_EXCEPTION_ERROR;
3164 END IF;
3165 l_return_status := populate_new_record(l_pxlv_rec, l_def_pxlv_rec);
3166 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3167 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3168 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3169 RAISE OKL_API.G_EXCEPTION_ERROR;
3170 END IF;
3171 l_def_pxlv_rec := null_out_defaults(l_def_pxlv_rec);
3172 l_def_pxlv_rec := fill_who_columns(l_def_pxlv_rec);
3173 --- Validate all non-missing attributes (Item Level Validation)
3174 l_return_status := Validate_Attributes(l_def_pxlv_rec);
3175 --- If any errors happen abort API
3176 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3177 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3178 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3179 RAISE OKL_API.G_EXCEPTION_ERROR;
3180 END IF;
3181 l_return_status := Validate_Record(l_def_pxlv_rec, l_db_pxlv_rec);
3182 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3183 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3184 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3185 RAISE OKL_API.G_EXCEPTION_ERROR;
3186 END IF;
3187
3188 -- Lock the Record
3189 lock_row(
3190 p_api_version => p_api_version,
3191 p_init_msg_list => p_init_msg_list,
3192 x_return_status => l_return_status,
3193 x_msg_count => x_msg_count,
3194 x_msg_data => x_msg_data,
3195 p_pxlv_rec => p_pxlv_rec);
3196 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3197 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3198 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3199 RAISE OKL_API.G_EXCEPTION_ERROR;
3200 END IF;
3201
3202 -----------------------------------------
3203 -- Move VIEW record to "Child" records --
3204 -----------------------------------------
3205 migrate(l_def_pxlv_rec, l_pxl_rec);
3206 migrate(l_def_pxlv_rec, l_pxll_rec);
3207 -----------------------------------------------
3208 -- Call the UPDATE_ROW for each child record --
3209 -----------------------------------------------
3210 update_row(
3211 p_init_msg_list,
3212 l_return_status,
3213 x_msg_count,
3214 x_msg_data,
3215 l_pxl_rec,
3216 lx_pxl_rec
3217 );
3218 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3219 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3220 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3221 RAISE OKL_API.G_EXCEPTION_ERROR;
3222 END IF;
3223 migrate(lx_pxl_rec, l_def_pxlv_rec);
3224 update_row(
3225 p_init_msg_list,
3226 l_return_status,
3227 x_msg_count,
3228 x_msg_data,
3229 l_pxll_rec,
3230 lx_pxll_rec
3231 );
3232 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3233 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3234 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3235 RAISE OKL_API.G_EXCEPTION_ERROR;
3236 END IF;
3237 migrate(lx_pxll_rec, l_def_pxlv_rec);
3238 x_pxlv_rec := l_def_pxlv_rec;
3239 x_return_status := l_return_status;
3240 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3241 EXCEPTION
3242 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3243 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3244 (
3245 l_api_name,
3246 G_PKG_NAME,
3247 'OKL_API.G_RET_STS_ERROR',
3248 x_msg_count,
3249 x_msg_data,
3250 '_PVT'
3251 );
3252 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3253 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3254 (
3255 l_api_name,
3256 G_PKG_NAME,
3257 'OKL_API.G_RET_STS_UNEXP_ERROR',
3258 x_msg_count,
3259 x_msg_data,
3260 '_PVT'
3261 );
3262 WHEN OTHERS THEN
3263 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3264 (
3265 l_api_name,
3266 G_PKG_NAME,
3267 'OTHERS',
3268 x_msg_count,
3269 x_msg_data,
3270 '_PVT'
3271 );
3272 END update_row;
3273 ----------------------------------------
3274 -- PL/SQL TBL update_row for:pxlv_tbl --
3275 ----------------------------------------
3276 PROCEDURE update_row(
3277 p_api_version IN NUMBER,
3278 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3279 x_return_status OUT NOCOPY VARCHAR2,
3280 x_msg_count OUT NOCOPY NUMBER,
3281 x_msg_data OUT NOCOPY VARCHAR2,
3282 p_pxlv_tbl IN pxlv_tbl_type,
3283 x_pxlv_tbl OUT NOCOPY pxlv_tbl_type,
3284 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
3285
3286 l_api_version CONSTANT NUMBER := 1;
3287 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_update_row';
3288 i NUMBER := 0;
3289 BEGIN
3290 OKL_API.init_msg_list(p_init_msg_list);
3291 -- Make sure PL/SQL table has records in it before passing
3292 IF (p_pxlv_tbl.COUNT > 0) THEN
3293 i := p_pxlv_tbl.FIRST;
3294 LOOP
3295 DECLARE
3296 l_error_rec OKL_API.ERROR_REC_TYPE;
3297 BEGIN
3298 l_error_rec.api_name := l_api_name;
3299 l_error_rec.api_package := G_PKG_NAME;
3300 l_error_rec.idx := i;
3301 update_row (
3302 p_api_version => p_api_version,
3303 p_init_msg_list => OKL_API.G_FALSE,
3304 x_return_status => l_error_rec.error_type,
3305 x_msg_count => l_error_rec.msg_count,
3306 x_msg_data => l_error_rec.msg_data,
3307 p_pxlv_rec => p_pxlv_tbl(i),
3308 x_pxlv_rec => x_pxlv_tbl(i));
3309 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
3310 l_error_rec.sqlcode := SQLCODE;
3311 load_error_tbl(l_error_rec, px_error_tbl);
3312 ELSE
3313 x_msg_count := l_error_rec.msg_count;
3314 x_msg_data := l_error_rec.msg_data;
3315 END IF;
3316 EXCEPTION
3317 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3318 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
3319 l_error_rec.sqlcode := SQLCODE;
3320 load_error_tbl(l_error_rec, px_error_tbl);
3321 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3322 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
3323 l_error_rec.sqlcode := SQLCODE;
3324 load_error_tbl(l_error_rec, px_error_tbl);
3325 WHEN OTHERS THEN
3326 l_error_rec.error_type := 'OTHERS';
3327 l_error_rec.sqlcode := SQLCODE;
3328 load_error_tbl(l_error_rec, px_error_tbl);
3329 END;
3330 EXIT WHEN (i = p_pxlv_tbl.LAST);
3331 i := p_pxlv_tbl.NEXT(i);
3332 END LOOP;
3333 END IF;
3334 -- Loop through the error_tbl to find the error with the highest severity
3335 -- and return it.
3336 x_return_status := find_highest_exception(px_error_tbl);
3337 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3338 EXCEPTION
3339 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3340 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3341 (
3342 l_api_name,
3343 G_PKG_NAME,
3344 'OKL_API.G_RET_STS_ERROR',
3345 x_msg_count,
3346 x_msg_data,
3347 '_PVT'
3348 );
3349 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3350 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3351 (
3352 l_api_name,
3353 G_PKG_NAME,
3354 'OKL_API.G_RET_STS_UNEXP_ERROR',
3355 x_msg_count,
3356 x_msg_data,
3357 '_PVT'
3358 );
3359 WHEN OTHERS THEN
3360 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3361 (
3362 l_api_name,
3363 G_PKG_NAME,
3364 'OTHERS',
3365 x_msg_count,
3366 x_msg_data,
3367 '_PVT'
3368 );
3369 END update_row;
3370
3371 ----------------------------------------
3372 -- PL/SQL TBL update_row for:PXLV_TBL --
3373 ----------------------------------------
3374 PROCEDURE update_row(
3375 p_api_version IN NUMBER,
3376 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3377 x_return_status OUT NOCOPY VARCHAR2,
3378 x_msg_count OUT NOCOPY NUMBER,
3379 x_msg_data OUT NOCOPY VARCHAR2,
3380 p_pxlv_tbl IN pxlv_tbl_type,
3381 x_pxlv_tbl OUT NOCOPY pxlv_tbl_type) IS
3382
3383 l_api_version CONSTANT NUMBER := 1;
3384 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_update_row';
3385 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3386 l_error_tbl OKL_API.ERROR_TBL_TYPE;
3387 BEGIN
3388 OKL_API.init_msg_list(p_init_msg_list);
3389 -- Make sure PL/SQL table has records in it before passing
3390 IF (p_pxlv_tbl.COUNT > 0) THEN
3391 update_row (
3392 p_api_version => p_api_version,
3393 p_init_msg_list => OKL_API.G_FALSE,
3394 x_return_status => x_return_status,
3395 x_msg_count => x_msg_count,
3396 x_msg_data => x_msg_data,
3397 p_pxlv_tbl => p_pxlv_tbl,
3398 x_pxlv_tbl => x_pxlv_tbl,
3399 px_error_tbl => l_error_tbl);
3400 END IF;
3401 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3402 EXCEPTION
3403 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3404 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3405 (
3406 l_api_name,
3407 G_PKG_NAME,
3408 'OKL_API.G_RET_STS_ERROR',
3409 x_msg_count,
3410 x_msg_data,
3411 '_PVT'
3412 );
3413 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3414 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3415 (
3416 l_api_name,
3417 G_PKG_NAME,
3418 'OKL_API.G_RET_STS_UNEXP_ERROR',
3419 x_msg_count,
3420 x_msg_data,
3421 '_PVT'
3422 );
3423 WHEN OTHERS THEN
3424 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3425 (
3426 l_api_name,
3427 G_PKG_NAME,
3428 'OTHERS',
3429 x_msg_count,
3430 x_msg_data,
3431 '_PVT'
3432 );
3433 END update_row;
3434
3435 ---------------------------------------------------------------------------
3436 -- PROCEDURE delete_row
3437 ---------------------------------------------------------------------------
3438 ----------------------------------------------
3439 -- delete_row for:OKL_EXT_AP_LINE_SOURCES_B --
3440 ----------------------------------------------
3441 PROCEDURE delete_row(
3442 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3443 x_return_status OUT NOCOPY VARCHAR2,
3444 x_msg_count OUT NOCOPY NUMBER,
3445 x_msg_data OUT NOCOPY VARCHAR2,
3446 p_pxl_rec IN pxl_rec_type) IS
3447
3448 l_api_version CONSTANT NUMBER := 1;
3449 l_api_name CONSTANT VARCHAR2(30) := 'B_delete_row';
3450 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3451 l_pxl_rec pxl_rec_type := p_pxl_rec;
3452 l_row_notfound BOOLEAN := TRUE;
3453 BEGIN
3454 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3455 p_init_msg_list,
3456 '_PVT',
3457 x_return_status);
3458 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3459 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3460 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3461 RAISE OKL_API.G_EXCEPTION_ERROR;
3462 END IF;
3463
3464 DELETE FROM OKL_EXT_AP_LINE_SOURCES_B
3465 WHERE LINE_EXTENSION_ID = p_pxl_rec.line_extension_id;
3466
3467 x_return_status := l_return_status;
3468 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3469 EXCEPTION
3470 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3471 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3472 (
3473 l_api_name,
3474 G_PKG_NAME,
3475 'OKL_API.G_RET_STS_ERROR',
3476 x_msg_count,
3477 x_msg_data,
3478 '_PVT'
3479 );
3480 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3481 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3482 (
3483 l_api_name,
3484 G_PKG_NAME,
3485 'OKL_API.G_RET_STS_UNEXP_ERROR',
3486 x_msg_count,
3487 x_msg_data,
3488 '_PVT'
3489 );
3490 WHEN OTHERS THEN
3491 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3492 (
3493 l_api_name,
3494 G_PKG_NAME,
3495 'OTHERS',
3496 x_msg_count,
3497 x_msg_data,
3498 '_PVT'
3499 );
3500 END delete_row;
3501 -----------------------------------------------
3502 -- delete_row for:OKL_EXT_AP_LINE_SOURCES_TL --
3503 -----------------------------------------------
3504 PROCEDURE delete_row(
3505 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3506 x_return_status OUT NOCOPY VARCHAR2,
3507 x_msg_count OUT NOCOPY NUMBER,
3508 x_msg_data OUT NOCOPY VARCHAR2,
3509 p_pxll_rec IN pxll_rec_type) IS
3510
3511 l_api_version CONSTANT NUMBER := 1;
3512 l_api_name CONSTANT VARCHAR2(30) := 'TL_delete_row';
3513 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3514 l_pxll_rec pxll_rec_type := p_pxll_rec;
3515 l_row_notfound BOOLEAN := TRUE;
3516 BEGIN
3517 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3518 p_init_msg_list,
3519 '_PVT',
3520 x_return_status);
3521 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3522 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3523 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3524 RAISE OKL_API.G_EXCEPTION_ERROR;
3525 END IF;
3526
3527 DELETE FROM OKL_EXT_AP_LINE_SOURCES_TL
3528 WHERE LINE_EXTENSION_ID = p_pxll_rec.line_extension_id;
3529
3530 x_return_status := l_return_status;
3531 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3532 EXCEPTION
3533 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3534 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3535 (
3536 l_api_name,
3537 G_PKG_NAME,
3538 'OKL_API.G_RET_STS_ERROR',
3539 x_msg_count,
3540 x_msg_data,
3541 '_PVT'
3542 );
3543 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3544 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3545 (
3546 l_api_name,
3547 G_PKG_NAME,
3548 'OKL_API.G_RET_STS_UNEXP_ERROR',
3549 x_msg_count,
3550 x_msg_data,
3551 '_PVT'
3552 );
3553 WHEN OTHERS THEN
3554 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3555 (
3556 l_api_name,
3557 G_PKG_NAME,
3558 'OTHERS',
3559 x_msg_count,
3560 x_msg_data,
3561 '_PVT'
3562 );
3563 END delete_row;
3564 ----------------------------------------------
3565 -- delete_row for:OKL_EXT_AP_LINE_SOURCES_V --
3566 ----------------------------------------------
3567 PROCEDURE delete_row(
3568 p_api_version IN NUMBER,
3569 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3570 x_return_status OUT NOCOPY VARCHAR2,
3571 x_msg_count OUT NOCOPY NUMBER,
3572 x_msg_data OUT NOCOPY VARCHAR2,
3573 p_pxlv_rec IN pxlv_rec_type) IS
3574
3575 l_api_version CONSTANT NUMBER := 1;
3576 l_api_name CONSTANT VARCHAR2(30) := 'V_delete_row';
3577 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3578 l_pxlv_rec pxlv_rec_type := p_pxlv_rec;
3579 l_pxll_rec pxll_rec_type;
3580 l_pxl_rec pxl_rec_type;
3581 BEGIN
3582 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3583 G_PKG_NAME,
3584 p_init_msg_list,
3585 l_api_version,
3586 p_api_version,
3587 '_PVT',
3588 x_return_status);
3589 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3590 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3591 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3592 RAISE OKL_API.G_EXCEPTION_ERROR;
3593 END IF;
3594 -----------------------------------------
3595 -- Move VIEW record to "Child" records --
3596 -----------------------------------------
3597 migrate(l_pxlv_rec, l_pxll_rec);
3598 migrate(l_pxlv_rec, l_pxl_rec);
3599 -----------------------------------------------
3600 -- Call the DELETE_ROW for each child record --
3601 -----------------------------------------------
3602 delete_row(
3603 p_init_msg_list,
3604 l_return_status,
3605 x_msg_count,
3606 x_msg_data,
3607 l_pxll_rec
3608 );
3609 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3610 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3611 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3612 RAISE OKL_API.G_EXCEPTION_ERROR;
3613 END IF;
3614 delete_row(
3615 p_init_msg_list,
3616 l_return_status,
3617 x_msg_count,
3618 x_msg_data,
3619 l_pxl_rec
3620 );
3621 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3622 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3623 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3624 RAISE OKL_API.G_EXCEPTION_ERROR;
3625 END IF;
3626 x_return_status := l_return_status;
3627 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3628 EXCEPTION
3629 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3630 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3631 (
3632 l_api_name,
3633 G_PKG_NAME,
3634 'OKL_API.G_RET_STS_ERROR',
3635 x_msg_count,
3636 x_msg_data,
3637 '_PVT'
3638 );
3639 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3640 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3641 (
3642 l_api_name,
3643 G_PKG_NAME,
3644 'OKL_API.G_RET_STS_UNEXP_ERROR',
3645 x_msg_count,
3646 x_msg_data,
3647 '_PVT'
3648 );
3649 WHEN OTHERS THEN
3650 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3651 (
3652 l_api_name,
3653 G_PKG_NAME,
3654 'OTHERS',
3655 x_msg_count,
3656 x_msg_data,
3657 '_PVT'
3658 );
3659 END delete_row;
3660 ---------------------------------------------------------
3661 -- PL/SQL TBL delete_row for:OKL_EXT_AP_LINE_SOURCES_V --
3662 ---------------------------------------------------------
3663 PROCEDURE delete_row(
3664 p_api_version IN NUMBER,
3665 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3666 x_return_status OUT NOCOPY VARCHAR2,
3667 x_msg_count OUT NOCOPY NUMBER,
3668 x_msg_data OUT NOCOPY VARCHAR2,
3669 p_pxlv_tbl IN pxlv_tbl_type,
3670 px_error_tbl IN OUT NOCOPY OKL_API.ERROR_TBL_TYPE) IS
3671
3672 l_api_version CONSTANT NUMBER := 1;
3673 l_api_name CONSTANT VARCHAR2(30) := 'V_error_tbl_delete_row';
3674 i NUMBER := 0;
3675 BEGIN
3676 OKL_API.init_msg_list(p_init_msg_list);
3677 -- Make sure PL/SQL table has records in it before passing
3678 IF (p_pxlv_tbl.COUNT > 0) THEN
3679 i := p_pxlv_tbl.FIRST;
3680 LOOP
3681 DECLARE
3682 l_error_rec OKL_API.ERROR_REC_TYPE;
3683 BEGIN
3684 l_error_rec.api_name := l_api_name;
3685 l_error_rec.api_package := G_PKG_NAME;
3686 l_error_rec.idx := i;
3687 delete_row (
3688 p_api_version => p_api_version,
3689 p_init_msg_list => OKL_API.G_FALSE,
3690 x_return_status => l_error_rec.error_type,
3691 x_msg_count => l_error_rec.msg_count,
3692 x_msg_data => l_error_rec.msg_data,
3693 p_pxlv_rec => p_pxlv_tbl(i));
3694 IF (l_error_rec.error_type <> OKL_API.G_RET_STS_SUCCESS) THEN
3695 l_error_rec.sqlcode := SQLCODE;
3696 load_error_tbl(l_error_rec, px_error_tbl);
3697 ELSE
3698 x_msg_count := l_error_rec.msg_count;
3699 x_msg_data := l_error_rec.msg_data;
3700 END IF;
3701 EXCEPTION
3702 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3703 l_error_rec.error_type := OKL_API.G_RET_STS_ERROR;
3704 l_error_rec.sqlcode := SQLCODE;
3705 load_error_tbl(l_error_rec, px_error_tbl);
3706 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3707 l_error_rec.error_type := OKL_API.G_RET_STS_UNEXP_ERROR;
3708 l_error_rec.sqlcode := SQLCODE;
3709 load_error_tbl(l_error_rec, px_error_tbl);
3710 WHEN OTHERS THEN
3711 l_error_rec.error_type := 'OTHERS';
3712 l_error_rec.sqlcode := SQLCODE;
3713 load_error_tbl(l_error_rec, px_error_tbl);
3714 END;
3715 EXIT WHEN (i = p_pxlv_tbl.LAST);
3716 i := p_pxlv_tbl.NEXT(i);
3717 END LOOP;
3718 END IF;
3719 -- Loop through the error_tbl to find the error with the highest severity
3720 -- and return it.
3721 x_return_status := find_highest_exception(px_error_tbl);
3722 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3723 EXCEPTION
3724 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3725 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3726 (
3727 l_api_name,
3728 G_PKG_NAME,
3729 'OKL_API.G_RET_STS_ERROR',
3730 x_msg_count,
3731 x_msg_data,
3732 '_PVT'
3733 );
3734 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3735 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3736 (
3737 l_api_name,
3738 G_PKG_NAME,
3739 'OKL_API.G_RET_STS_UNEXP_ERROR',
3740 x_msg_count,
3741 x_msg_data,
3742 '_PVT'
3743 );
3744 WHEN OTHERS THEN
3745 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3746 (
3747 l_api_name,
3748 G_PKG_NAME,
3749 'OTHERS',
3750 x_msg_count,
3751 x_msg_data,
3752 '_PVT'
3753 );
3754 END delete_row;
3755
3756 ---------------------------------------------------------
3757 -- PL/SQL TBL delete_row for:OKL_EXT_AP_LINE_SOURCES_V --
3758 ---------------------------------------------------------
3759 PROCEDURE delete_row(
3760 p_api_version IN NUMBER,
3761 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3762 x_return_status OUT NOCOPY VARCHAR2,
3763 x_msg_count OUT NOCOPY NUMBER,
3764 x_msg_data OUT NOCOPY VARCHAR2,
3765 p_pxlv_tbl IN pxlv_tbl_type) IS
3766
3767 l_api_version CONSTANT NUMBER := 1;
3768 l_api_name CONSTANT VARCHAR2(30) := 'V_tbl_delete_row';
3769 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3770 l_error_tbl OKL_API.ERROR_TBL_TYPE;
3771 BEGIN
3772 OKL_API.init_msg_list(p_init_msg_list);
3773 -- Make sure PL/SQL table has records in it before passing
3774 IF (p_pxlv_tbl.COUNT > 0) THEN
3775 delete_row (
3776 p_api_version => p_api_version,
3777 p_init_msg_list => OKL_API.G_FALSE,
3778 x_return_status => x_return_status,
3779 x_msg_count => x_msg_count,
3780 x_msg_data => x_msg_data,
3781 p_pxlv_tbl => p_pxlv_tbl,
3782 px_error_tbl => l_error_tbl);
3783 END IF;
3784 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3785 EXCEPTION
3786 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3787 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3788 (
3789 l_api_name,
3790 G_PKG_NAME,
3791 'OKL_API.G_RET_STS_ERROR',
3792 x_msg_count,
3793 x_msg_data,
3794 '_PVT'
3795 );
3796 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3797 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3798 (
3799 l_api_name,
3800 G_PKG_NAME,
3801 'OKL_API.G_RET_STS_UNEXP_ERROR',
3802 x_msg_count,
3803 x_msg_data,
3804 '_PVT'
3805 );
3806 WHEN OTHERS THEN
3807 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3808 (
3809 l_api_name,
3810 G_PKG_NAME,
3811 'OTHERS',
3812 x_msg_count,
3813 x_msg_data,
3814 '_PVT'
3815 );
3816 END delete_row;
3817
3818 ---------------------------------------------------------------------------
3819 -- PROCEDURE insert_row
3820 ---------------------------------------------------------------------------
3821 -- Added for Bug# 6268782 : PRASJAIN
3822 -------------------------------------------------
3823 -- insert_row for:OKL_EXT_AP_LINE_SOURCES_B --
3824 -- insert_row for:OKL_EXT_AP_LINE_SOURCES_TL --
3825 -------------------------------------------------
3826 PROCEDURE insert_row(
3827 p_api_version IN NUMBER,
3828 p_init_msg_list IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
3829 x_return_status OUT NOCOPY VARCHAR2,
3830 x_msg_count OUT NOCOPY NUMBER,
3831 x_msg_data OUT NOCOPY VARCHAR2,
3832 p_pxl_rec IN pxl_rec_type,
3833 p_pxll_tbl IN pxll_tbl_type,
3834 x_pxl_rec OUT NOCOPY pxl_rec_type,
3835 x_pxll_tbl OUT NOCOPY pxll_tbl_type) IS
3836
3837 l_api_version CONSTANT NUMBER := 1;
3838 l_api_name CONSTANT VARCHAR2(30) := 'B_TL_insert_row';
3839 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3840
3841 l_pxl_rec pxl_rec_type := p_pxl_rec;
3842 l_def_pxl_rec pxl_rec_type;
3843 lx_pxl_rec pxl_rec_type;
3844
3845 l_pxll_tbl pxll_tbl_type := p_pxll_tbl;
3846 lx_pxll_tbl pxll_tbl_type;
3847
3848 -------------------------------
3849 -- FUNCTION fill_who_columns --
3850 -------------------------------
3851 FUNCTION fill_who_columns (
3852 p_pxl_rec IN pxl_rec_type
3853 ) RETURN pxl_rec_type IS
3854 l_pxl_rec pxl_rec_type := p_pxl_rec;
3855 BEGIN
3856 l_pxl_rec.CREATION_DATE := SYSDATE;
3857 l_pxl_rec.CREATED_BY := FND_GLOBAL.USER_ID;
3858 l_pxl_rec.LAST_UPDATE_DATE := l_pxl_rec.CREATION_DATE;
3859 l_pxl_rec.LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
3860 l_pxl_rec.LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
3861 RETURN(l_pxl_rec);
3862 END fill_who_columns;
3863 ---------------------
3864 -- Set_Attributes --
3865 ---------------------
3866 FUNCTION Set_Attributes (
3867 p_pxl_rec IN pxl_rec_type,
3868 x_pxl_rec OUT NOCOPY pxl_rec_type
3869 ) RETURN VARCHAR2 IS
3870 l_return_status VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
3871 BEGIN
3872 x_pxl_rec := p_pxl_rec;
3873 x_pxl_rec.OBJECT_VERSION_NUMBER := 1;
3874 RETURN(l_return_status);
3875 END Set_Attributes;
3876 BEGIN
3877 l_return_status := OKL_API.START_ACTIVITY(l_api_name,
3878 G_PKG_NAME,
3879 p_init_msg_list,
3880 l_api_version,
3881 p_api_version,
3882 '_PVT',
3883 x_return_status);
3884 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3885 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3886 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3887 RAISE OKL_API.G_EXCEPTION_ERROR;
3888 END IF;
3889 -- Set primary key value
3890 l_pxl_rec.LINE_EXTENSION_ID := get_seq_id;
3891 -- Setting item attributes
3892 l_return_Status := Set_Attributes(
3893 l_pxl_rec, -- IN
3894 l_def_pxl_rec); -- OUT
3895 --- If any errors happen abort API
3896 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3897 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3898 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3899 RAISE OKL_API.G_EXCEPTION_ERROR;
3900 END IF;
3901 l_def_pxl_rec := fill_who_columns(l_def_pxl_rec);
3902 l_pxl_rec := l_def_pxl_rec;
3903 -----------------------------------------------
3904 -- Call the INSERT_ROW for each child record --
3905 -----------------------------------------------
3906 insert_row(
3907 p_init_msg_list,
3908 l_return_status,
3909 x_msg_count,
3910 x_msg_data,
3911 l_pxl_rec,
3912 lx_pxl_rec
3913 );
3914 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3915 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3916 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3917 RAISE OKL_API.G_EXCEPTION_ERROR;
3918 END IF;
3919 -- Looping line translatable sources for insert
3920 FOR idx IN p_pxll_tbl.FIRST .. p_pxll_tbl.LAST
3921 LOOP
3922 -- Set foreign key value
3923 l_pxll_tbl(idx).line_extension_id := lx_pxl_rec.line_extension_id;
3924 -- Filling who columns
3925 l_pxll_tbl(idx).CREATION_DATE := SYSDATE;
3926 l_pxll_tbl(idx).CREATED_BY := FND_GLOBAL.USER_ID;
3927 l_pxll_tbl(idx).LAST_UPDATE_DATE := l_pxll_tbl(idx).CREATION_DATE;
3928 l_pxll_tbl(idx).LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
3929 l_pxll_tbl(idx).LAST_UPDATE_LOGIN := FND_GLOBAL.LOGIN_ID;
3930 insert_row(
3931 p_init_msg_list,
3932 l_return_status,
3933 x_msg_count,
3934 x_msg_data,
3935 l_pxll_tbl(idx),
3936 lx_pxll_tbl(idx)
3937 );
3938 END LOOP;
3939 IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
3940 RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
3941 ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
3942 RAISE OKL_API.G_EXCEPTION_ERROR;
3943 END IF;
3944 -- Set OUT values
3945 x_pxl_rec := lx_pxl_rec;
3946 x_pxll_tbl := lx_pxll_tbl;
3947 x_return_status := l_return_status;
3948 OKL_API.END_ACTIVITY(x_msg_count, x_msg_data);
3949 EXCEPTION
3950 WHEN OKL_API.G_EXCEPTION_ERROR THEN
3951 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3952 (
3953 l_api_name,
3954 G_PKG_NAME,
3955 'OKL_API.G_RET_STS_ERROR',
3956 x_msg_count,
3957 x_msg_data,
3958 '_PVT'
3959 );
3960 WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
3961 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3962 (
3963 l_api_name,
3964 G_PKG_NAME,
3965 'OKL_API.G_RET_STS_UNEXP_ERROR',
3966 x_msg_count,
3967 x_msg_data,
3968 '_PVT'
3969 );
3970 WHEN OTHERS THEN
3971 x_return_status := OKL_API.HANDLE_EXCEPTIONS
3972 (
3973 l_api_name,
3974 G_PKG_NAME,
3975 'OTHERS',
3976 x_msg_count,
3977 x_msg_data,
3978 '_PVT'
3979 );
3980 END insert_row;
3981 END OKL_PXL_PVT;