DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKS_ACT_PVT

Source


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