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