[Home] [Help]
PACKAGE BODY: APPS.XLA_CREATE_ACCT_RPT_PVT
Source
1 PACKAGE BODY XLA_CREATE_ACCT_RPT_PVT AS
2 -- $Header: xlaaprpt.pkb 120.16 2011/01/20 14:23:41 sgullape ship $
3 /*===========================================================================+
4 | Copyright (c) 2003 Oracle Corporation BelmFont, California, USA |
5 | ALL rights reserved. |
6 +============================================================================+
7 | FILENAME |
8 | |
9 | |
10 | PACKAGE NAME |
11 | XLA_CREATE_ACCT_RPT_PVT |
12 | |
13 | DESCRIPTION |
14 | Package body. This provides XML extract for Create Accounting Report. |
15 | |
16 | HISTORY |
17 | 01/27/2006 V. Swapna Created |
18 | 03/27/2006 V. Swapna Modify the filter for zero amount lines |
19 | and add the initialization routine for the |
20 | trace messages to appear in the fnd_log. |
21 | 08/24/2006 Ejaz Sayyed bug#5417847 change in condition to pick the|
22 | negative amt lines and drop zero amt lines |
23 | i.e.debit/credit <> 0 for p_zero_amt_filter|
24 | 02/16/2009 N. K. Surana Instead of function calling new PROCEDURE |
25 | xla_report_utility_pkg.get_transaction_id |
26 +===========================================================================*/
27
28 --=============================================================================
29 -- *********** Local Trace Routine **********
30 --=============================================================================
31 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
32 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
33 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
34 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
35 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
36 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
37
38 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
39 C_DEFAULT_MODULE CONSTANT VARCHAR2(240):= 'xla.plsql.XLA_CREATE_ACCT_RPT_PVT ';
40
41 g_log_level NUMBER;
42 g_log_enabled BOOLEAN;
43
44
45 PROCEDURE trace
46 (p_msg IN VARCHAR2
47 ,p_level IN NUMBER
48 ,p_module IN VARCHAR2) IS
49 BEGIN
50 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
51 fnd_log.message(p_level, NVL(p_module,C_DEFAULT_MODULE));
52 ELSIF p_level >= g_log_level THEN
53 fnd_log.string(p_level, NVL(p_module,C_DEFAULT_MODULE), p_msg);
54 END IF;
55
56 EXCEPTION
57 WHEN xla_exceptions_pkg.application_exception THEN
58 RAISE;
59 WHEN OTHERS THEN
60 xla_exceptions_pkg.raise_message
61 (p_location => 'XLA_CREATE_ACCT_RPT_PVT.trace');
62 END trace;
63
64 --=============================================================================
65 -- ******* Print Log File **********
66 --=============================================================================
67 PROCEDURE print_logfile(p_msg IN VARCHAR2) IS
68 BEGIN
69
70 fnd_file.put_line(fnd_file.log,p_msg);
71
72 EXCEPTION
73 WHEN xla_exceptions_pkg.application_exception THEN
74 RAISE;
75 WHEN OTHERS THEN
76 xla_exceptions_pkg.raise_message
77 (p_location => 'XLA_CREATE_ACCT_RPT_PVT.print_logfile');
78 END print_logfile;
79
80
81 --=============================================================================
82 -- *********** public procedures and functions **********
83 --=============================================================================
84 --=============================================================================
85 --
86 --
87 --
88 -- BeforeReport
89 --
90 --
91 --
92 --=============================================================================
93
94 FUNCTION BeforeReport RETURN BOOLEAN IS
95
96 l_errbuf VARCHAR2(2000);
97 l_accounting_batch_id NUMBER;
98 l_request_id NUMBER;
99 l_event_source_info xla_events_pub_pkg.t_event_source_info;
100 l_log_module VARCHAR2(240);
101 l_fnd_debug_status VARCHAR2(255);
102 BEGIN
103
104 -- Get the FND: Debug Log Status
105 -- Bug No : 11063454
106 SELECT decode(fnd_profile.value('AFLOG_ENABLED'), 'Y', 'Yes', 'No') INTO l_fnd_debug_status FROM dual;
107
108 print_logfile(to_char(sysdate,'DD-MON-YYYY HH24:MI:SS')||' - FND: Debug Log Enabled : '|| l_fnd_debug_status);
109
110 print_logfile(to_char(sysdate,'DD-MON-YYYY HH24:MI:SS')||
111 ' - Beginning of the Report');
112 -- Get the user id
113
114 SELECT fnd_profile.value('USER_ID') INTO p_user_id FROM dual;
115 --
116 -- Get the Request id of the concurrent program
117 --
118 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
119 trace('P_CONC_REQUEST_ID = '|| P_CONC_REQUEST_ID,C_LEVEL_STATEMENT,l_log_module);
120 trace('P_USER_ID = '|| p_user_id,C_LEVEL_STATEMENT,l_log_module);
121 END IF;
122
123 IF P_CONC_REQUEST_ID IS NOT NULL THEN
124 RETURN(TRUE);
125 END IF;
126
127 P_CONC_REQUEST_ID := fnd_global.conc_request_id();
128
129 P_REQUEST_ID := NVL(P_REQUEST_ID, P_CONC_REQUEST_ID);
130
131 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
132 trace('P_REQUEST_ID = '|| P_REQUEST_ID ,C_LEVEL_STATEMENT,l_log_module);
133 trace('P_CONC_REQUEST_ID = '|| P_CONC_REQUEST_ID ,C_LEVEL_STATEMENT,l_log_module);
134 trace('P_ENTITY_ID = '|| P_REQUEST_ID ,C_LEVEL_STATEMENT,l_log_module);
135 trace('P_END_DATE = '|| P_END_DATE ,C_LEVEL_STATEMENT,l_log_module);
136 END IF;
137
138 IF (P_REQUEST_ID = P_CONC_REQUEST_ID) THEN
139
140 IF P_ENTITY_ID IS NULL THEN
141 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
142 trace('Calling xla_accounting_pub_pkg.accounting_program_batch'
143 ,C_LEVEL_STATEMENT
144 ,l_log_module);
145 END IF;
146
147 xla_accounting_pub_pkg.accounting_program_batch
148 (p_source_application_id => P_SOURCE_APPLICATION_ID
149 ,p_application_id => P_APPLICATION_ID
150 ,p_ledger_id => P_LEDGER_ID
151 ,p_process_category => P_PROCESS_CATEGORY_CODE
152 ,p_end_date => P_END_DATE
153 ,p_accounting_flag => P_CREATE_ACCOUNTING_FLAG
154 ,p_accounting_mode => P_ACCOUNTING_MODE
155 ,p_error_only_flag => P_ERRORS_ONLY_FLAG
156 ,p_transfer_flag => P_TRANSFER_TO_GL_FLAG
157 ,p_gl_posting_flag => P_POST_IN_GL_FLAG
158 ,p_gl_batch_name => P_GL_BATCH_NAME
159 ,p_valuation_method => P_VALUATION_METHOD_CODE
160 ,p_security_id_int_1 => P_SECURITY_INT_1
161 ,p_security_id_int_2 => P_SECURITY_INT_2
162 ,p_security_id_int_3 => P_SECURITY_INT_3
163 ,p_security_id_char_1 => P_SECURITY_CHAR_1
164 ,p_security_id_char_2 => P_SECURITY_CHAR_2
165 ,p_security_id_char_3 => P_SECURITY_CHAR_3
166 ,p_accounting_batch_id => l_accounting_batch_id
167 ,p_errbuf => l_errbuf
168 ,p_retcode => C_ACCT_PROG_RETURN_CODE);
169
170 ELSE
171
172 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
173 trace('Calling xla_accounting_pub_pkg.accounting_program_document'
174 ,C_LEVEL_STATEMENT
175 ,l_log_module);
176 END IF;
177
178 l_event_source_info.application_id := P_APPLICATION_ID;
179 xla_accounting_pkg.accounting_program_document
180 (p_application_id => P_APPLICATION_ID
181 ,p_entity_id => P_ENTITY_ID
182 ,p_accounting_flag => P_CREATE_ACCOUNTING_FLAG
183 ,p_accounting_mode => P_ACCOUNTING_MODE
184 ,p_gl_posting_flag => P_POST_IN_GL_FLAG
185 ,p_offline_flag => 'Y'
186 ,p_accounting_batch_id => l_accounting_batch_id
187 ,p_errbuf => l_errbuf
188 ,p_retcode => C_ACCT_PROG_RETURN_CODE);
189
190 END IF;
191 END IF;
192
193 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
194 trace('l_accounting_batch_id = '||l_accounting_batch_id ,C_LEVEL_STATEMENT ,l_log_module);
195 trace('l_errbuf = '||l_errbuf ,C_LEVEL_STATEMENT ,l_log_module);
196 trace('C_ACCT_PROG_RETURN_CODE = '||C_ACCT_PROG_RETURN_CODE ,C_LEVEL_STATEMENT ,l_log_module);
197 END IF;
198
199
200 FOR j IN 1..xla_transfer_pkg.g_arr_group_id.COUNT
201 LOOP
202 IF j=1 THEN
203 p_group_id_str := TO_CHAR(xla_transfer_pkg.g_arr_group_id(j));
204 ELSE
205 p_group_id_str := p_group_id_str||','|| TO_CHAR(xla_transfer_pkg.g_arr_group_id(j));
206 END IF;
207 END LOOP;
208
209 --
210 -- Get The User Transaction identifiers
211 --
212 IF p_include_user_trx_id_flag ='Y' AND P_REPORT_STYLE in ('D','S') THEN --bug 9903723
213 /* p_trx_identifiers :=
214 xla_report_utility_pkg.get_transaction_id(p_application_id
215 ,p_ledger_id); */ --Removed for bug 7580995
216
217 xla_report_utility_pkg.get_transaction_id
218 (p_resp_application_id => p_application_id
219 ,p_ledger_id => p_ledger_id
220 ,p_trx_identifiers_1 => p_trx_identifiers_1
221 ,p_trx_identifiers_2 => p_trx_identifiers_2
222 ,p_trx_identifiers_3 => p_trx_identifiers_3
223 ,p_trx_identifiers_4 => p_trx_identifiers_4
224 ,p_trx_identifiers_5 => p_trx_identifiers_5); --Added for bug 7580995
225
226 ELSE
227 --p_trx_identifiers := ' , NULL '; --Removed for bug 7580995
228 p_trx_identifiers_1 := ',NULL USERIDS '; --Added for bug 7580995
229 END IF;
230 --
231 -- Event Filter for Summary mode
232 --
233
234 IF P_REPORT_STYLE = 'S' THEN
235 P_EVENT_FILTER := ' AND EVT.PROCESS_STATUS_CODE IN (''E'',''I'',''R'') ';
236 END IF;
237
238 --
239 -- Filter for Zero Amount lines and Entries. Bugs 4339457 and 5100304
240 --
241 IF p_include_zero_amount_lines = 'N' THEN
242 p_zero_amt_filter :=
243 p_zero_amt_filter
244 ||' AND (NVL(ael.accounted_dr,0) <> 0 OR NVL(ael.accounted_cr,0) <> 0)
245 AND NVL(aeh.zero_amount_flag,''N'') = ''N''';
246 END IF;
247
248 P_REQ_ID := P_REQUEST_ID;
249
250 IF p_application_id IS NOT NULL THEN
251 p_application_query := '
252 SELECT application_id application_id
253 ,application_name application_name
254 ,:p_req_id request_id
255 FROM fnd_application_tl
256 WHERE language = USERENV(''LANG'')
257 AND application_id = :p_application_id';
258 ELSE
259 p_application_query := '
260 SELECT fat.application_id application_id
261 ,fat.application_name application_name
262 ,:p_req_id request_id
263 FROM fnd_application_tl fat
264 WHERE fat.language = USERENV(''LANG'')
265 AND EXISTS
266 (SELECT 1
267 FROM xla_events
268 WHERE application_id = fat.application_id
269 AND request_id = :p_req_id)';
270 END IF;
271
272
273 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
274 trace('End of BeforeReport '
275 ,C_LEVEL_STATEMENT
276 ,l_log_module);
277 END IF;
278
279 RETURN(TRUE);
280
281 EXCEPTION
282 WHEN OTHERS THEN
283 xla_exceptions_pkg.raise_message
284 (p_location => 'xla_create_acct_rpt_pvt.BeforeReport ');
285 END;
286
287
288 --=============================================================================
289 --
290 --
291 --
292 -- AfterReport
293 --
294 --
295 --
296 --=============================================================================
297
298 FUNCTION AfterReport RETURN BOOLEAN IS
299 l_temp BOOLEAN;
300 l_log_module VARCHAR2(240);
301 BEGIN
302
303 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
304 trace('BEGIN of AfterReport' ,C_LEVEL_STATEMENT ,l_log_module);
305 trace('C_ACCT_PROG_RETURN_CODE = '||C_ACCT_PROG_RETURN_CODE,C_LEVEL_STATEMENT ,l_log_module);
306 END IF;
307
308 IF C_ACCT_PROG_RETURN_CODE = 0 THEN
309 NULL;
310 ELSIF C_ACCT_PROG_RETURN_CODE = 1 THEN
311 l_temp := fnd_concurrent.set_completion_status
312 (status => 'WARNING'
313 ,message => NULL);
314 ELSE
315 l_temp := fnd_concurrent.set_completion_status
316 (status => 'ERROR'
317 ,message => NULL);
318 END IF;
319
320
321 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
322 trace('END of AfterReport'
323 ,C_LEVEL_STATEMENT
324 ,l_log_module);
325 END IF;
326 print_logfile(to_char(sysdate,'DD-MON-YYYY HH24:MI:SS')|| ' - End of the Report');
327 RETURN (TRUE);
328
329 EXCEPTION
330 WHEN OTHERS THEN
331 xla_exceptions_pkg.raise_message
332 (p_location => 'xla_create_acct_rpt_pvt.AfterReport');
333
334 END;
335
336 --=============================================================================
337 -- *********** Initialization routine **********
338 --=============================================================================
339
340 --=============================================================================
341 --
342 --
343 --
344 --
345 --
346 -- Following code is executed when the package body is referenced for the first
347 -- time
348 --
349 --
350 --
351 --
352 --
353 --
354 --
355 --
356 --=============================================================================
357
358 BEGIN
359 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
360 g_log_enabled := fnd_log.test
361 (log_level => g_log_level
362 ,MODULE => C_DEFAULT_MODULE);
363
364 IF NOT g_log_enabled THEN
365 g_log_level := C_LEVEL_LOG_DISABLED;
366 END IF;
367
368
369 END XLA_CREATE_ACCT_RPT_PVT ;