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