[Home] [Help]
PACKAGE BODY: APPS.JL_CO_FA_TA_LOAD_PKG
Source
1 PACKAGE BODY jl_co_fa_ta_load_pkg AS
2 /* $Header: jlcoftlb.pls 120.4 2006/09/20 17:53:50 abuissa ship $ */
3
4 /* ======================================================================*
5 | FND Logging infrastructure |
6 * ======================================================================*/
7 G_PKG_NAME CONSTANT VARCHAR2(30) := 'JL_CO_FA_TA_LOAD_PKG';
8 G_CURRENT_RUNTIME_LEVEL CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
9 G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
10 G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
11 G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
12 G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
13 G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
14 G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
15 G_MODULE_NAME CONSTANT VARCHAR2(80) := 'JL.PLSQL.JL_CO_FA_TA_LOAD_PKG.';
16
17
18 PROCEDURE rollback_process(p_appraisal_id NUMBER);
19
20
21 ----------------------------------------------------------------------------
22 -- PROCEDURE --
23 -- load --
24 -- --
25 -- DESCRIPTION --
26 -- Use this procedure to load technical appraisals information into --
27 -- system, validates loaded informatiom and generate a report on loaded --
28 -- information. --
29 -- --
30 -- PURPOSE: --
31 -- Oracle Applications Rel 11.5 --
32 -- --
33 -- PARAMETERS: --
34 -- p_file_name - Full path name of file that contains appraisal -- --
35 -- information. --
36 -- HISTORY: --
37 -- 05/18/99 Sujit Dalai Created --
38 ----------------------------------------------------------------------------
39 PROCEDURE load ( ERRBUF OUT NOCOPY VARCHAR2,
40 RETCODE OUT NOCOPY VARCHAR2,
41 p_file_name VARCHAR2) IS
42 x_request_id NUMBER;
43 x_count NUMBER;
44 x_appraisal_id NUMBER;
45
46 call_status BOOLEAN;
47 rphase VARCHAR2(80);
48 rstatus VARCHAR2(80);
49 dphase VARCHAR2(80);
50 dstatus VARCHAR2(80);
51 message VARCHAR2(240);
52 dbg_msg VARCHAR2(4000);
53
54 err_num NUMBER;
55 err_msg VARCHAR2(2000);
56 LOAD_ERROR EXCEPTION;
57 REPORT_ERROR EXCEPTION;
58 l_api_name CONSTANT VARCHAR2(30) := 'LOAD';
59
60
61 BEGIN
62
63 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
64 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
65 END IF;
66
67 x_appraisal_id := -1;
68
69 ---------------------------------------------------------
70 -- Submit request to load technical appraisal --
71 ---------------------------------------------------------
72
73 x_request_id := fnd_request.submit_request('JL',
74 'JLCOFAMP',
75 '',
76 '',
77 FALSE,
78 p_file_name);
79
80 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
81 fnd_file.put_line( 1, 'Request id for loader pgm : '||to_char(x_request_id));
82 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Request id for loader pgm : '||to_char(x_request_id));
83 END IF;
84
85 ---------------------------------------------------------
86 -- Rollback everything and complete the process with --
87 -- if concurrent request completes with error. --
88 ---------------------------------------------------------
89
90 IF x_request_id = 0 THEN
91
92 ROLLBACK_PROCESS(x_appraisal_id);
93 RAISE LOAD_ERROR;
94 ELSE
95 COMMIT;
96 END IF;
97
98 call_status := fnd_concurrent.wait_for_request(x_request_id,
99 120,
100 0,
101 rphase,
102 rstatus,
103 dphase,
104 dstatus,
105 message);
106
107 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
108 dbg_msg := fnd_message.get;
109 fnd_file.put_line(1, 'dbg_msg : '||dbg_msg);
110 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'dbg_msg : '||dbg_msg);
111 END IF;
112
113 IF dphase = 'COMPLETE' THEN
114 IF dstatus = 'NORMAL' THEN
115 fnd_file.put_line( 1, 'Loader pgm completed successfully. '||dphase||'-'||dstatus);
116 COMMIT;
117 ELSE
118 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
119 fnd_file.put_line( 1, 'Loader pgm completed. ');
120 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Loader pgm completed. ');
121 fnd_file.put_line( 1, 'Phase and Status '||dphase||'-'||dstatus);
122 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Phase and Status '||dphase||'-'||dstatus);
123 IF (call_status) THEN
124 fnd_file.put_line( 1, 'Call Status '||'TRUE');
125 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Call Status '||'TRUE');
126 ELSE
127 fnd_file.put_line( 1, 'Call Status '||'FALSE');
128 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Call Status '||'FALSE');
129 END IF;
130 END IF;
131 ROLLBACK_PROCESS(x_appraisal_id);
132 RAISE LOAD_ERROR;
133 END IF;
134 ELSE
135 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
136 fnd_file.put_line( 1, 'Loader pgm is not completed. ');
137 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Loader pgm is not completed. ');
138 fnd_file.put_line( 1, 'Phase and Status '||dphase||'-'||dstatus);
139 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Phase and Status '||dphase||'-'||dstatus);
140 IF (call_status) THEN
141 fnd_file.put_line( 1, 'Call Status '||'TRUE');
142 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Call Status '||'TRUE');
143 ELSE
144 fnd_file.put_line( 1, 'Call Status '||'FALSE');
145 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Call Status '||'FALSE');
146 END IF;
147 END IF;
148 ROLLBACK_PROCESS(x_appraisal_id);
149 RAISE LOAD_ERROR;
150 END IF;
151
152 ---------------------------------------------------------
153 -- Find value for appraisal_id --
154 ---------------------------------------------------------
155
156
157 SELECT jl_co_fa_appraisals_s.nextval
158 INTO x_appraisal_id
159 FROM DUAL;
160
161 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
162 fnd_file.put_line( 1, 'x_appraisal_id : '||to_char(x_appraisal_id));
163 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'x_appraisal_id : '||to_char(x_appraisal_id));
164 END IF;
165
166 INSERT INTO JL_CO_FA_APPRAISALS(
167 APPRAISAL_ID,
168 APPRAISAL_DATE,
169 CURRENCY_CODE,
170 FISCAL_YEAR,
171 APPRAISER_NAME,
172 APPRAISER_ADDRESS1,
173 APPRAISER_ADDRESS2,
174 APPRAISER_PHONE,
175 APPRAISER_CITY,
176 APPRAISAL_STATUS,
177 CREATED_BY,
178 CREATION_DATE,
179 LAST_UPDATED_BY,
180 LAST_UPDATE_DATE,
181 LAST_UPDATE_LOGIN,
182 REQUEST_ID,
183 PROGRAM_APPLICATION_ID,
184 PROGRAM_ID,
185 PROGRAM_UPDATE_DATE)
186 SELECT x_appraisal_id,
187 APPRAISAL_DATE,
188 CURRENCY_CODE,
189 FISCAL_YEAR,
190 APPRAISER_NAME,
191 APPRAISER_ADDRESS1,
192 APPRAISER_ADDRESS2,
193 APPRAISER_PHONE,
194 APPRAISER_CITY,
195 APPRAISAL_STATUS,
196 fnd_global.user_id,
197 sysdate,
198 fnd_global.user_id,
199 sysdate,
200 fnd_global.login_id,
201 fnd_global.conc_request_id,
202 fnd_global.prog_appl_id,
203 fnd_global.conc_program_id,
204 PROGRAM_UPDATE_DATE
205 FROM JL_CO_FA_APPRAISALS
206 WHERE appraisal_id = -1;
207
208 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
209 fnd_file.put_line( 1, 'Insert JL_CO_FA_APPRAISALS is complete.');
210 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Insert JL_CO_FA_APPRAISALS is complete.');
211 END IF;
212
213 INSERT INTO JL_CO_FA_ASSET_APPRS(
214 APPRAISAL_ID,
215 ASSET_NUMBER,
216 APPRAISAL_VALUE,
217 STATUS,
218 LAST_UPDATE_DATE,
219 LAST_UPDATED_BY,
220 CREATION_DATE,
221 CREATED_BY,
222 LAST_UPDATE_LOGIN,
223 REQUEST_ID,
224 PROGRAM_APPLICATION_ID,
225 PROGRAM_ID,
226 PROGRAM_UPDATE_DATE)
227 SELECT x_appraisal_id,
228 ASSET_NUMBER,
229 APPRAISAL_VALUE,
230 STATUS,
231 sysdate,
232 fnd_global.user_id,
233 sysdate,
234 fnd_global.user_id,
235 fnd_global.login_id,
236 fnd_global.conc_request_id,
237 fnd_global.prog_appl_id,
238 fnd_global.conc_program_id,
239 PROGRAM_UPDATE_DATE
240 FROM JL_CO_FA_ASSET_APPRS
241 WHERE appraisal_id = -1;
242
243 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
244 fnd_file.put_line( 1, 'Insert JL_CO_FA_ASSET_APPRS is complete.');
245 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Insert JL_CO_FA_ASSET_APPRS is complete.');
246 END IF;
247
248 DELETE FROM JL_CO_FA_APPRAISALS
249 WHERE appraisal_id = -1;
250
251 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
252 fnd_file.put_line( 1, 'Delete JL_CO_FA_APPRAISALS is complete.');
253 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Delete JL_CO_FA_APPRAISALS is complete.');
254 END IF;
255
256 DELETE FROM JL_CO_FA_ASSET_APPRS
257 WHERE appraisal_id = -1;
258
259 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
260 fnd_file.put_line( 1, 'Delete JL_CO_FA_ASSET_APPRS is complete.');
261 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Delete JL_CO_FA_ASSET_APPRS is complete.');
262 END IF;
263
264 ----------------------------------------------------------------------------
265 -- Submit validation request only when there is atleast one asset --
266 -- loaded in the JL_CO_FA_ASSSET_APPRS table. --
267 ----------------------------------------------------------------------------
268 BEGIN
269 x_count := 0;
270
271 SELECT 1
272 INTO x_count
273 FROM DUAL
274 WHERE EXISTS (SELECT * FROM JL_CO_FA_ASSET_APPRS
275 WHERE appraisal_id = x_appraisal_id);
276
277 EXCEPTION
278 WHEN OTHERS THEN
279 IF x_count = 0 THEN
280 ROLLBACK_PROCESS(x_appraisal_id);
281 ROLLBACK_PROCESS(-1);
282 RAISE LOAD_ERROR;
283 END IF;
284 END;
285
286 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
287 fnd_file.put_line( 1, 'x_count : '||to_char(x_count));
288 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'x_count : '||to_char(x_count));
289 END IF;
290
291 IF x_count <> 0 THEN
292
293 x_request_id := fnd_request.submit_request('JL',
294 'JLCOFAVP',
295 '',
296 '',
297 FALSE,
298 x_appraisal_id);
299
300 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
301 fnd_file.put_line( 1, 'Request id for Validation pgm : '||to_char(x_request_id));
302 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Request id for Validation pgm : '||to_char(x_request_id));
303 END IF;
304
305 ---------------------------------------------------------
306 -- Rollback everything and complte the process with --
307 -- if concurrent request completes with error. --
308 ---------------------------------------------------------
309
310 IF x_request_id = 0 THEN
311 ROLLBACK_PROCESS(x_appraisal_id);
312 ROLLBACK_PROCESS(-1);
313 RAISE LOAD_ERROR;
314 END IF;
315
316 COMMIT;
317
318 call_status := fnd_concurrent.wait_for_request(x_request_id,
319 120,
320 0,
321 rphase,
322 rstatus,
323 dphase,
324 dstatus,
325 message);
326
327 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
328 dbg_msg := fnd_message.get;
329 fnd_file.put_line(1, 'dbg_msg : '||dbg_msg);
330 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'dbg_msg : '||dbg_msg);
331 END IF;
332
333 IF dphase = 'COMPLETE' THEN
334 IF dstatus = 'NORMAL' THEN
335 fnd_file.put_line( 1, 'Validation pgm completed successfully. '||dphase||'-'||dstatus);
336 COMMIT;
337 ELSE
338 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
339 fnd_file.put_line( 1, 'Validation pgm completed. ');
340 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Validation pgm completed. ');
341 fnd_file.put_line( 1, 'Phase and Status '||dphase||'-'||dstatus);
342 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Phase and Status '||dphase||'-'||dstatus);
343 IF (call_status) THEN
344 fnd_file.put_line( 1, 'Call Status '||'TRUE');
345 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Call Status '||'TRUE');
346 ELSE
347 fnd_file.put_line( 1, 'Call Status '||'FALSE');
348 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Call Status '||'FALSE');
349 END IF;
350 END IF;
351 ROLLBACK_PROCESS(x_appraisal_id);
352 ROLLBACK_PROCESS(-1);
353 RAISE LOAD_ERROR;
354 END IF;
355 ELSE
356 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
357 fnd_file.put_line( 1, 'Validation pgm is not completed. ');
358 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Validation pgm is not completed. ');
359 fnd_file.put_line( 1, 'Phase and Status '||dphase||'-'||dstatus);
360 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Phase and Status '||dphase||'-'||dstatus);
361 IF (call_status) THEN
362 fnd_file.put_line( 1, 'Call Status '||'TRUE');
363 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Call Status '||'TRUE');
364 ELSE
365 fnd_file.put_line( 1, 'Call Status '||'FALSE');
366 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Call Status '||'FALSE');
367 END IF;
368 END IF;
369 ROLLBACK_PROCESS(x_appraisal_id);
370 ROLLBACK_PROCESS(-1);
371 RAISE LOAD_ERROR;
372 END IF;
373
374 x_request_id := fnd_request.submit_request('JL',
375 'JLCOFAAR',
376 '',
377 '',
378 FALSE,
379 x_appraisal_id,
380 'Y');
381
382 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
383 fnd_file.put_line( 1, 'Request id for Report pgm : '||to_char(x_request_id));
384 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Request id for Report pgm : '||to_char(x_request_id));
385 END IF;
386
387 IF x_request_id = 0 THEN
388 RAISE REPORT_ERROR;
389 END IF;
390
391 COMMIT;
392
393 call_status := fnd_concurrent.wait_for_request(x_request_id,
394 120,
395 0,
396 rphase,
397 rstatus,
398 dphase,
399 dstatus,
400 message);
401
402 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
403 dbg_msg := fnd_message.get;
404 fnd_file.put_line(1, 'dbg_msg : '||dbg_msg);
405 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'dbg_msg : '||dbg_msg);
406 END IF;
407
408 IF dphase = 'COMPLETE' THEN
409 IF dstatus = 'NORMAL' THEN
410 null;
411 ELSE
412 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
413 fnd_file.put_line( 1, 'Addition report completed. ');
414 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Addition report completed. ');
415 fnd_file.put_line( 1, 'Phase and Status '||dphase||'-'||dstatus);
416 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Phase and Status '||dphase||'-'||dstatus);
417 IF (call_status) THEN
418 fnd_file.put_line( 1, 'Call Status '||'TRUE');
419 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Call Status '||'TRUE');
420 ELSE
421 fnd_file.put_line( 1, 'Call Status '||'FALSE');
422 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Call Status '||'FALSE');
423 END IF;
424 END IF;
425 RAISE REPORT_ERROR;
426 END IF;
427 ELSE
428 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
429 fnd_file.put_line( 1, 'addition report is not completed. ');
430 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'addition report is not completed. ');
431 fnd_file.put_line( 1, 'Phase and Status '||dphase||'-'||dstatus);
432 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Phase and Status '||dphase||'-'||dstatus);
433 IF (call_status) THEN
434 fnd_file.put_line( 1, 'Call Status '||'TRUE');
435 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Call Status '||'TRUE');
436 ELSE
437 fnd_file.put_line( 1, 'Call Status '||'FALSE');
438 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Call Status '||'FALSE');
439 END IF;
440 END IF;
441 RAISE REPORT_ERROR;
442 END IF;
443
444 END IF;
445
446 IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
447 FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
448 END IF;
449
450 EXCEPTION
451
452 WHEN LOAD_ERROR THEN
453
454 fnd_message.set_name('JL', 'JL_CO_FA_LOAD_ERROR');
455 err_msg := fnd_message.get;
456 fnd_file.put_line(fnd_file.log, err_msg);
457 call_status := fnd_concurrent.set_completion_status('ERROR','');
458 /* fnd_message.raise_error;
459 */
460
461 WHEN REPORT_ERROR THEN
462
463 fnd_message.set_name('JL', 'JL_CO_FA_TA_ADD_REPORT_ERROR');
464 err_msg := fnd_message.get;
465 fnd_file.put_line(fnd_file.log, err_msg);
466 call_status := fnd_concurrent.set_completion_status('ERROR','');
467 /* fnd_message.raise_error;
468 */
469
470 WHEN OTHERS THEN
471 ROLLBACK;
472 ROLLBACK_PROCESS(-1);
473 fnd_message.set_name('JL', 'JL_CO_FA_GENERAL_ERROR');
474 fnd_file.put_line( 1, fnd_message.get);
475 err_num := SQLCODE;
476 err_msg := substr(SQLERRM, 1, 200);
477 RAISE_APPLICATION_ERROR( err_num, err_msg);
478 END;
479
480 ----------------------------------------------------------------------------
481 -- FUNCTION --
482 -- rollback_process --
483 -- --
484 -- DESCRIPTION --
485 -- Use this procedure to rollback all loaded information. --
486 -- --
487 -- --
488 -- PURPOSE: --
489 -- Oracle Applications Rel 11.5 --
490 -- --
491 -- PARAMETERS: --
492 -- --
493 -- --
494 -- HISTORY: --
495 -- 05-19-99 Sujit Dalai Created --
496 ----------------------------------------------------------------------------
497 PROCEDURE rollback_process(p_appraisal_id NUMBER) IS
498 BEGIN
499
500 DELETE FROM JL_CO_FA_ASSET_APPRS
501 WHERE appraisal_id = p_appraisal_id;
502
503 DELETE FROM JL_CO_FA_APPRAISALS
504 WHERE appraisal_id = p_appraisal_id;
505
506 COMMIT;
507 END;
508
509 END jl_co_fa_ta_load_pkg;