[Home] [Help]
PACKAGE BODY: APPS.GMF_TRANSACTION_ACCOUNTS_PUB
Source
1 PACKAGE BODY GMF_transaction_accounts_PUB AS
2 /* $Header: GMFXTABB.pls 120.3 2005/10/13 11:43:14 umoogala noship $ */
3
4 --===================================================================
5 --
6 -- global variables
7 --
8 --===================================================================
9
10 G_PACKAGE_NAME VARCHAR2(50) := 'GMF_transaction_accounts_PUB';
11
12 G_CURRENT_RUNTIME_LEVEL NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
13 G_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
14 G_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
15 G_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
16 G_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
17 G_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
18 G_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
19 G_MODULE_NAME CONSTANT VARCHAR2(50) :='GMF.PLSQL.GMF_transaction_accounts_PUB.';
20
21 g_log_msg FND_LOG_MESSAGES.message_text%TYPE;
22
23 --===================================================================
24 --
25 -- Private procedures
26 --
27 --===================================================================
28
29 Procedure get_accounts_po
30 (
31 x_return_status OUT NOCOPY VARCHAR2
32 , x_msg_data OUT NOCOPY VARCHAR2
33 , x_msg_count OUT NOCOPY NUMBER
34 );
35
36 Procedure get_accounts_cto
37 (
38 x_return_status OUT NOCOPY VARCHAR2
39 , x_msg_data OUT NOCOPY VARCHAR2
40 , x_msg_count OUT NOCOPY NUMBER
41 );
42
43 --===================================================================
44 --
45 -- Start of comments
46 -- API name : get_accounts
47 -- Type : Public
48 -- Pre-reqs : load g_gmf_accts_tab_PROD plsql table
49 -- Version : Current version 1.0
50 -- Initial version 1.0
51 -- PURPOSE : To get accounts for the calling application
52 -- using SLA TAB functionality
53 -- Parameters :
54 --
55 -- End of comments
56 --===================================================================
57
58 Procedure get_accounts
59 ( p_api_version IN NUMBER
60 , p_init_msg_list IN VARCHAR2
61 , p_source IN VARCHAR2
62
63 , x_return_status OUT NOCOPY VARCHAR2
64 , x_msg_data OUT NOCOPY VARCHAR2
65 , x_msg_count OUT NOCOPY NUMBER
66 )
67 IS
68
69 l_api_name VARCHAR2(80);
70 l_return_status VARCHAR2(1);
71
72 l_account_type_code VARCHAR2(80);
73 l_legal_entity_id NUMBER;
74 l_ledger_id NUMBER;
75 l_coa_id NUMBER;
76
77 BEGIN
78
79 l_api_name := 'get_accounts';
80 x_return_status := FND_API.G_RET_STS_SUCCESS;
81
82
83 g_log_msg := 'Begin of procedure '|| l_api_name;
84 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL )
85 THEN
86 FND_LOG.STRING(
87 log_level => g_level_procedure,
88 module => g_module_name || l_api_name,
89 message => g_log_msg
90 );
91 END IF;
92
93 g_log_msg := 'Running for Source '|| p_source;
94 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL )
95 THEN
96 FND_LOG.STRING(
97 log_level => g_level_procedure,
98 module => g_module_name || l_api_name,
99 message => g_log_msg
100 );
101 END IF;
102
103 IF p_source = 'PO'
104 THEN
105 get_accounts_po
106 (
107 x_return_status => x_return_status
108 , x_msg_data => x_msg_data
109 , x_msg_count => x_msg_count
110 );
111 ELSIF p_source = 'CTO'
112 THEN
113 get_accounts_cto
114 (
115 x_return_status => x_return_status
116 , x_msg_data => x_msg_data
117 , x_msg_count => x_msg_count
118 );
119 END IF;
120
121
122 g_log_msg := 'End of procedure '|| l_api_name;
123 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL )
124 THEN
125 FND_LOG.STRING(
126 log_level => g_level_procedure,
127 module => g_module_name || l_api_name,
128 message => g_log_msg
129 );
130 END IF;
131
132 END get_accounts;
133
134
135 --===================================================================
136 --
137 -- Start of comments
138 -- API name : get_accounts_po
139 -- Type : Public
140 -- Pre-reqs : load g_gmf_accts_tab_PUR plsql table
141 -- Version : Current version 1.0
142 -- Initial version 1.0
143 -- PURPOSE : To get Charge (INV/EXP) and Accrual (AAP) accounts
144 -- using SLA TAB functionality
145 -- Parameters :
146 --
147 -- End of comments
148 --===================================================================
149 Procedure get_accounts_po
150 (
151 x_return_status OUT NOCOPY VARCHAR2
152 , x_msg_data OUT NOCOPY VARCHAR2
153 , x_msg_count OUT NOCOPY NUMBER
154 )
155 IS
156
157 l_api_name VARCHAR2(80);
158 l_return_status VARCHAR2(1);
159
160 l_account_type_code VARCHAR2(80);
161 l_legal_entity_id NUMBER;
162 l_ledger_id NUMBER;
163 l_coa_id NUMBER;
164
165 BEGIN
166
167 l_api_name := 'get_accounts_po';
168 x_return_status := FND_API.G_RET_STS_SUCCESS;
169
170
171 g_log_msg := 'Begin of procedure '|| l_api_name;
172 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL )
173 THEN
174 FND_LOG.STRING(
175 log_level => g_level_procedure,
176 module => g_module_name || l_api_name,
177 message => g_log_msg
178 );
179 END IF;
180
181
182 /* Start INVCONV umoogala -- remove this once SLA TAB starts working */
183 FOR Idx IN g_gmf_accts_tab_PUR.FIRST .. g_gmf_accts_tab_PUR.LAST
184 LOOP
185
186 g_log_msg := 'Fetching account for ' || g_gmf_accts_tab_PUR(idx).account_type_code ||
187 ' for organization_id: ' || g_gmf_accts_tab_PUR(idx).organization_id;
188 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL )
189 THEN
190 FND_LOG.STRING(
191 log_level => g_level_statement,
192 module => g_module_name || l_api_name,
193 message => g_log_msg
194 );
195 END IF;
196
197 SELECT CASE WHEN g_gmf_accts_tab_PUR(idx).account_type_code = 'INV' THEN
198 material_account
199 WHEN g_gmf_accts_tab_PUR(idx).account_type_code = 'EXP' THEN
200 expense_account
201 WHEN g_gmf_accts_tab_PUR(idx).account_type_code = 'AAP' THEN
202 ap_accrual_account
203 WHEN g_gmf_accts_tab_PUR(idx).account_type_code = 'PPV' THEN
204 purchase_price_var_account
205 END CASE
206 INTO g_gmf_accts_tab_PUR(idx).target_ccid
207 FROM mtl_parameters mp
208 WHERE mp.organization_id = g_gmf_accts_tab_PUR(idx).organization_id
209 ;
210
211 SELECT CONCATENATED_SEGMENTS
212 INTO g_gmf_accts_tab_PUR(idx).concatenated_segments
213 FROM gl_code_combinations_kfv
214 WHERE CODE_COMBINATION_ID = g_gmf_accts_tab_PUR(idx).target_ccid
215 ;
216
217 g_log_msg := 'Concatenated account fetch: ' || g_gmf_accts_tab_PUR(idx).concatenated_segments;
218 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL )
219 THEN
220 FND_LOG.STRING(
221 log_level => g_level_statement,
222 module => g_module_name || l_api_name,
223 message => g_log_msg
224 );
225 END IF;
226
227 END LOOP;
228
229 /*
230 --===================================================================
231 -- reset package variables
235 p_api_version => 1.0
232 --===================================================================
233
234 GMF_XLA_TAB_PKG.reset_online_interface(
236 , x_return_status => l_return_status
237 , x_msg_count => x_msg_count
238 , x_msg_data => x_msg_data
239 );
240
241 --===================================================================
242 -- get Legal Entity, Ledger and Chart of accounts
243 --===================================================================
244
245 SELECT legal_entity, set_of_books_id, chart_of_accounts_id
246 INTO l_legal_entity_id, l_ledger_id, l_coa_id
247 FROM org_organization_definitions
248 WHERE organization_id = to_number(g_gmf_accts_tab_PUR(1).operating_unit);
249
250
251 --======================================================================
252 -- Insert Transaction data into PL/SQL table
253 --======================================================================
254
255 FOR Idx IN g_gmf_accts_tab_PUR.FIRST .. g_gmf_accts_tab_PUR.LAST
256 LOOP
257
258 IF g_gmf_accts_tab_PUR(idx).account_type_code = 'INV'
259 THEN
260 l_account_type_code := 'GMF_PUR_INV';
261 ELSIF g_gmf_accts_tab_PUR(idx).account_type_code = 'EXP'
262 THEN
263 l_account_type_code := 'GMF_PUR_EXP';
264 ELSIF g_gmf_accts_tab_PUR(idx).account_type_code = 'AAP'
265 THEN
266 l_account_type_code := 'GMF_PUR_AAP';
267 END IF;
268
269 GMF_XLA_TAB_PKG.write_online_tab_PUR(
270 p_api_version => 1.0
271 , p_source_distrib_id_num_1 => g_gmf_accts_tab_PUR(idx).source_distrib_id_num_1
272 , p_source_distrib_id_num_2 => g_gmf_accts_tab_PUR(idx).source_distrib_id_num_2
273 , p_source_distrib_id_num_3 => g_gmf_accts_tab_PUR(idx).source_distrib_id_num_3
274 , p_source_distrib_id_num_4 => g_gmf_accts_tab_PUR(idx).source_distrib_id_num_4
275 , p_source_distrib_id_num_5 => g_gmf_accts_tab_PUR(idx).source_distrib_id_num_5
276
277 , p_account_type_code => l_account_type_code
278 --Start of source list
279 , organization_code => g_gmf_accts_tab_PUR(idx).organization_id
280 , inventory_item_id => g_gmf_accts_tab_PUR(idx).inventory_item_id
281 , item_type => g_gmf_accts_tab_PUR(idx).item_type
282 , ledger_id => l_ledger_id
283 , legal_entity_id => l_legal_entity_id
284 , locator_id => g_gmf_accts_tab_PUR(idx).locator_id
285 -- , lot_number => g_gmf_accts_tab_PUR(idx).lot_number
286 , operating_unit => g_gmf_accts_tab_PUR(idx).operating_unit
287 , subinventory_code => g_gmf_accts_tab_PUR(idx).subinventory_code
288 , subinventory_type => g_gmf_accts_tab_PUR(idx).subinventory_type
289 , vendor_id => g_gmf_accts_tab_PUR(idx).vendor_id
290 , vendor_site_id => g_gmf_accts_tab_PUR(idx).vendor_site_id
291 --End of source list
292
293 , x_return_status => x_return_status
294 , x_msg_count => x_msg_count
295 , x_msg_data => x_msg_data
296 );
297
298 END LOOP ;
299
300
301 --======================================================================
302 -- Call Transaction Account Builder in online mode
303 --======================================================================
304
305 GMF_XLA_TAB_PKG.run (
306 p_api_version => 1.0
307 , p_account_definition_type_code => 'S' -- system
308 , p_account_definition_code => 'GMF_XLA_PUR_TAD'
309 , p_transaction_coa_id => l_coa_id
310 , p_mode => 'ONLINE'
311 , x_return_status => l_return_status
312 , x_msg_count => x_msg_count
313 , x_msg_data => x_msg_data
314 )
315 ;
316
317 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
318 THEN
319 x_return_status := l_return_status;
320 END IF;
321
322 --======================================================================
323 -- retieve the code combination identifiers
324 --======================================================================
325
326 FOR Idx IN g_gmf_accts_tab_PUR.FIRST .. g_gmf_accts_tab_PUR.LAST LOOP
327
328 GMF_XLA_TAB_PKG.read_online_tab_PUR(
329 p_api_version => 1.0
330 , p_source_distrib_id_num_1 => g_gmf_accts_tab_PUR(idx).source_distrib_id_num_1
331 , p_source_distrib_id_num_2 => g_gmf_accts_tab_PUR(idx).source_distrib_id_num_2
332 , p_source_distrib_id_num_3 => g_gmf_accts_tab_PUR(idx).source_distrib_id_num_3
333 , p_source_distrib_id_num_4 => g_gmf_accts_tab_PUR(idx).source_distrib_id_num_4
334 , p_source_distrib_id_num_5 => g_gmf_accts_tab_PUR(idx).source_distrib_id_num_5
335
336 , p_account_type_code => GMF_XLA_TAB_PKG.g_array_xla_tab_PUR(idx).account_type_code
337
338 , x_target_ccid => g_gmf_accts_tab_PUR(idx).target_ccid
339 , x_concatenated_segments => g_gmf_accts_tab_PUR(idx).concatenated_segments
340 , x_return_status => l_return_status
341 , x_msg_count => g_gmf_accts_tab_PUR(idx).msg_count
345 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
342 , x_msg_data => g_gmf_accts_tab_PUR(idx).msg_data
343 );
344
346 THEN
347 x_return_status := l_return_status;
348 END IF;
349
350 END LOOP ;
351 */
352
353 -- x_return_status is initialized to success at the beginning of the procedure
354
355
356 g_log_msg := 'End of procedure '|| l_api_name;
357 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL )
358 THEN
359 FND_LOG.STRING(
360 log_level => g_level_procedure,
361 module => g_module_name || l_api_name,
362 message => g_log_msg
363 );
364 END IF;
365
366 EXCEPTION
367 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
368 THEN
369 g_log_msg := 'Exc_Unexpected_Error in GMF_transaction_accounts_PUB.get_accounts_po';
370 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL )
371 THEN
372 FND_LOG.STRING(
373 log_level => g_level_procedure,
374 module => g_module_name || l_api_name,
375 message => g_log_msg
376 );
377 END IF;
378
379 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
380 fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
381 x_msg_data := fnd_msg_pub.get(p_msg_index => x_msg_count, p_encoded => fnd_api.g_false);
382
383 WHEN FND_API.G_EXC_ERROR
384 THEN
385 g_log_msg := 'EXC_ERROR in GMF_transaction_accounts_PUB.get_accounts_po: ' || x_msg_data;
386 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL )
387 THEN
388 FND_LOG.STRING(
389 log_level => g_level_procedure,
390 module => g_module_name || l_api_name,
391 message => g_log_msg
392 );
393 END IF;
394
395 x_return_status := FND_API.G_RET_STS_ERROR;
396 IF x_msg_data IS NULL
397 THEN
398 fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
399 x_msg_data := fnd_msg_pub.get(p_msg_index => x_msg_count, p_encoded => fnd_api.g_false);
400 END IF;
401
402 WHEN OTHERS THEN
403 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
404 FND_MSG_PUB.Count_And_Get( p_count => x_msg_count, p_data => x_msg_data);
405 x_msg_data := fnd_msg_pub.get(p_msg_index => x_msg_count, p_encoded => fnd_api.g_false);
406
407 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
408 FND_MSG_PUB.Add_Exc_Msg(G_PACKAGE_NAME, l_api_name);
409 end if;
410
411 g_log_msg := 'In when-others. error: ' || DBMS_UTILITY.FORMAT_ERROR_BACKTRACE;
412 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL )
413 THEN
414 FND_LOG.STRING(
415 log_level => g_level_procedure,
416 module => g_module_name || l_api_name,
417 message => g_log_msg
418 );
419 END IF;
420
421
422 END get_accounts_po;
423
424
425 --===================================================================
426 --
427 -- Start of comments
428 -- API name : get_accounts_cto
429 -- Type : Public
430 -- Pre-reqs : load g_gmf_accts_tab_CTO plsql table
431 -- Version : Current version 1.0
432 -- Initial version 1.0
433 -- PURPOSE :
434 -- Parameters :
435 --
436 -- End of comments
437 --===================================================================
438 Procedure get_accounts_cto
439 (
440 x_return_status OUT NOCOPY VARCHAR2
441 , x_msg_data OUT NOCOPY VARCHAR2
442 , x_msg_count OUT NOCOPY NUMBER
443 )
444 IS
445
446 l_api_name VARCHAR2(80);
447 l_return_status VARCHAR2(1);
448
449 l_account_type_code VARCHAR2(80);
450 l_legal_entity_id NUMBER;
451 l_ledger_id NUMBER;
452 l_coa_id NUMBER;
453
454 BEGIN
455
456 l_api_name := 'get_accounts_cto';
457 x_return_status := FND_API.G_RET_STS_SUCCESS;
458
459
460 g_log_msg := 'Begin of procedure '|| l_api_name;
461 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL )
462 THEN
463 FND_LOG.STRING(
464 log_level => g_level_procedure,
465 module => g_module_name || l_api_name,
466 message => g_log_msg
467 );
468 END IF;
469
470
471 /* Start INVCONV umoogala -- remove this once SLA TAB starts working */
472 FOR Idx IN g_gmf_accts_tab_CTO.FIRST .. g_gmf_accts_tab_CTO.LAST
473 LOOP
474
475 g_log_msg := 'Fetching account for ' || g_gmf_accts_tab_CTO(idx).account_type_code ||
476 ' for organization_id: ' || g_gmf_accts_tab_CTO(idx).organization_id;
477 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL )
478 THEN
479 FND_LOG.STRING(
480 log_level => g_level_statement,
481 module => g_module_name || l_api_name,
482 message => g_log_msg
483 );
484 END IF;
485
486 SELECT CASE WHEN g_gmf_accts_tab_CTO(idx).account_type_code = G_CHARGE_INV_ACCT THEN
487 material_account
488 WHEN g_gmf_accts_tab_CTO(idx).account_type_code = G_CHARGE_EXP_ACCT THEN
489 expense_account
490 WHEN g_gmf_accts_tab_CTO(idx).account_type_code = G_ACCRUAL_ACCT THEN
491 ap_accrual_account
492 WHEN g_gmf_accts_tab_CTO(idx).account_type_code = G_VARIANCE_PPV_ACCT THEN
493 purchase_price_var_account
494 END CASE
495 INTO g_gmf_accts_tab_CTO(idx).target_ccid
496 FROM mtl_parameters mp
497 WHERE mp.organization_id = g_gmf_accts_tab_CTO(idx).organization_id
498 ;
499
500 SELECT CONCATENATED_SEGMENTS
501 INTO g_gmf_accts_tab_CTO(idx).concatenated_segments
502 FROM gl_code_combinations_kfv
503 WHERE CODE_COMBINATION_ID = g_gmf_accts_tab_CTO(idx).target_ccid
504 ;
505
506 g_log_msg := 'concatenated Account fetched: ' || g_gmf_accts_tab_CTO(idx).concatenated_segments;
507 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL )
508 THEN
509 FND_LOG.STRING(
510 log_level => g_level_statement,
511 module => g_module_name || l_api_name,
512 message => g_log_msg
513 );
514 END IF;
515
516 END LOOP;
517
518 /*
519 -- Start INVCONV umoogala -- remove this once SLA TAB starts working
520
521 FOR Idx IN g_gmf_accts_tab_CTO.FIRST .. g_gmf_accts_tab_CTO.LAST
522 LOOP
523 SELECT CASE WHEN g_gmf_accts_tab_CTO(idx).account_type_code = 'INV' THEN
524 distribution_account_id
525 WHEN g_gmf_accts_tab_CTO(idx).account_type_code = 'EXP' THEN
526 expense_account
527 WHEN g_gmf_accts_tab_CTO(idx).account_type_code = 'AAP' THEN
528 ap_accrual_account
529 WHEN g_gmf_accts_tab_CTO(idx).account_type_code = 'PPV' THEN
530 purchase_price_var_account
531 END CASE
532 INTO g_gmf_accts_tab_CTO(idx).target_ccid
533 FROM mtl_parameters mp
534 WHERE mp.organization_id = g_gmf_accts_tab_CTO(idx).organization_id
535 ;
536
537 SELECT CONCATENATED_SEGMENTS
538 INTO g_gmf_accts_tab_CTO(idx).concatenated_segments
539 FROM gl_code_combinations_kfv
540 WHERE CODE_COMBINATION_ID = g_gmf_accts_tab_CTO(idx).target_ccid
541 ;
542 END LOOP;
543
544 RETURN;
545
546 --===================================================================
547 -- reset package variables
548 --===================================================================
549
550 GMF_XLA_TAB_PKG.reset_online_interface(
554 , x_msg_data => x_msg_data
551 p_api_version => 1.0
552 , x_return_status => l_return_status
553 , x_msg_count => x_msg_count
555 );
556
557 --===================================================================
558 -- get Legal Entity, Ledger and Chart of accounts
559 --===================================================================
560
561 SELECT legal_entity, set_of_books_id, chart_of_accounts_id
562 INTO l_legal_entity_id, l_ledger_id, l_coa_id
563 FROM org_organization_definitions
564 WHERE organization_id = g_gmf_accts_tab_CTO(1).operating_unit;
565
566
567 --======================================================================
568 -- Insert Transaction data into PL/SQL table
569 --======================================================================
570
571 FOR Idx IN g_gmf_accts_tab_CTO.FIRST .. g_gmf_accts_tab_CTO.LAST
572 LOOP
573
574 IF g_gmf_accts_tab_CTO(idx).account_type_code = 'INV'
575 THEN
576 l_account_type_code := 'GMF_PUR_INV';
577 ELSIF g_gmf_accts_tab_CTO(idx).account_type_code = 'EXP'
578 THEN
579 l_account_type_code := 'GMF_PUR_EXP';
580 ELSIF g_gmf_accts_tab_CTO(idx).account_type_code = 'AAP'
581 THEN
582 l_account_type_code := 'GMF_PUR_AAP';
583 END IF;
584
585 GMF_XLA_TAB_PKG.write_online_tab_CTO(
586 p_api_version => 1.0
587 , p_source_distrib_id_num_1 => g_gmf_accts_tab_CTO(idx).source_distrib_id_num_1
588 , p_source_distrib_id_num_2 => g_gmf_accts_tab_CTO(idx).source_distrib_id_num_2
589 , p_source_distrib_id_num_3 => g_gmf_accts_tab_CTO(idx).source_distrib_id_num_3
590 , p_source_distrib_id_num_4 => g_gmf_accts_tab_CTO(idx).source_distrib_id_num_4
591 , p_source_distrib_id_num_5 => g_gmf_accts_tab_CTO(idx).source_distrib_id_num_5
592
593 , p_account_type_code => l_account_type_code
594 --Start of source list
595 , organization_code => g_gmf_accts_tab_CTO(idx).organization_id
596 , inventory_item_id => g_gmf_accts_tab_CTO(idx).inventory_item_id
597 , ato_flag => g_gmf_accts_tab_CTO(idx).ato_flag
598 , ledger_id => l_ledger_id
599 , legal_entity_id => l_legal_entity_id
600 , operating_unit => g_gmf_accts_tab_CTO(idx).operating_unit
601 , vendor_id => g_gmf_accts_tab_CTO(idx).vendor_id
602 , vendor_site_id => g_gmf_accts_tab_CTO(idx).vendor_site_id
603 , customer_id => g_gmf_accts_tab_CTO(idx).customer_id
604 , customer_site_id => g_gmf_accts_tab_CTO(idx).customer_site_id
605 --End of source list
606
607 , x_return_status => x_return_status
608 , x_msg_count => x_msg_count
609 , x_msg_data => x_msg_data
610 );
611
612 END LOOP ;
613
614
615 --======================================================================
616 -- Call Transaction Account Builder in online mode
617 --======================================================================
618
619 GMF_XLA_TAB_PKG.run (
620 p_api_version => 1.0
621 , p_account_definition_type_code => 'S' -- system
622 , p_account_definition_code => 'GMF_XLA_TAD'
623 , p_transaction_coa_id => l_coa_id
624 , p_mode => 'ONLINE'
625 , x_return_status => l_return_status
626 , x_msg_count => x_msg_count
627 , x_msg_data => x_msg_data
628 )
629 ;
630
631 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
632 THEN
633 x_return_status := l_return_status;
634 END IF;
635
636 --======================================================================
637 -- retieve the code combination identifiers
638 --======================================================================
639
640 FOR Idx IN g_gmf_accts_tab_CTO.FIRST .. g_gmf_accts_tab_CTO.LAST LOOP
641
642 GMF_XLA_TAB_PKG.read_online_tab_CTO(
643 p_api_version => 1.0
644 , p_source_distrib_id_num_1 => g_gmf_accts_tab_CTO(idx).source_distrib_id_num_1
645 , p_source_distrib_id_num_2 => g_gmf_accts_tab_CTO(idx).source_distrib_id_num_2
646 , p_source_distrib_id_num_3 => g_gmf_accts_tab_CTO(idx).source_distrib_id_num_3
647 , p_source_distrib_id_num_4 => g_gmf_accts_tab_CTO(idx).source_distrib_id_num_4
648 , p_source_distrib_id_num_5 => g_gmf_accts_tab_CTO(idx).source_distrib_id_num_5
649
650 -- , p_account_type_code => GMF_XLA_TAB_PKG.g_array_xla_tab_CTO(idx).account_type_code
651
652 , x_target_ccid => g_gmf_accts_tab_CTO(idx).target_ccid
653 , x_concatenated_segments => g_gmf_accts_tab_CTO(idx).concatenated_segments
654 , x_return_status => l_return_status
655 , x_msg_count => g_gmf_accts_tab_CTO(idx).msg_count
656 , x_msg_data => g_gmf_accts_tab_CTO(idx).msg_data
657 );
658
659 IF l_return_status <> FND_API.G_RET_STS_SUCCESS
660 THEN
661 x_return_status := l_return_status;
662 END IF;
663
664 END LOOP ;
665 */
666
667 -- x_return_status is initialized to success at the beginning of the procedure
668
669 g_log_msg := 'End of procedure '|| l_api_name;
670 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL )
671 THEN
672 FND_LOG.STRING(
673 log_level => g_level_procedure,
674 module => g_module_name || l_api_name,
675 message => g_log_msg
676 );
677 END IF;
678
679
680 EXCEPTION
681 WHEN FND_API.G_EXC_UNEXPECTED_ERROR
682 THEN
683 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
684 fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
685 x_msg_data := fnd_msg_pub.get(p_msg_index => x_msg_count, p_encoded => fnd_api.g_false);
686
687 g_log_msg := 'Exc_Unexpected_Error. Error: ' || x_msg_data;
688 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL )
689 THEN
690 FND_LOG.STRING(
691 log_level => g_level_procedure,
692 module => g_module_name || l_api_name,
693 message => g_log_msg
694 );
695 END IF;
696
697
698 WHEN FND_API.G_EXC_ERROR
699 THEN
700 x_return_status := FND_API.G_RET_STS_ERROR;
701 IF x_msg_data IS NULL
702 THEN
703 fnd_msg_pub.count_and_get(p_count => x_msg_count, p_data => x_msg_data);
704 x_msg_data := fnd_msg_pub.get(p_msg_index => x_msg_count, p_encoded => fnd_api.g_false);
705 END IF;
706
707 g_log_msg := 'EXC_ERROR. Error: ' || x_msg_data;
708 IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL )
709 THEN
710 FND_LOG.STRING(
711 log_level => g_level_procedure,
712 module => g_module_name || l_api_name,
713 message => g_log_msg
714 );
715 END IF;
716
717
718 WHEN OTHERS THEN
719 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
720 FND_MSG_PUB.Count_And_Get( p_count => x_msg_count, p_data => x_msg_data);
721 x_msg_data := fnd_msg_pub.get(p_msg_index => x_msg_count, p_encoded => fnd_api.g_false);
722
723 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
724 FND_MSG_PUB.Add_Exc_Msg(G_PACKAGE_NAME, l_api_name);
725 end if;
726
727 g_log_msg := 'In when-others. Error: ' || DBMS_UTILITY.FORMAT_ERROR_BACKTRACE;
728 IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL )
729 THEN
730 FND_LOG.STRING(
731 log_level => g_level_statement,
732 module => g_module_name || l_api_name,
733 message => g_log_msg
734 );
735 END IF;
736
737
738 END get_accounts_cto;
739
740 END GMF_transaction_accounts_PUB;