DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_AET_PVT

Source


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