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