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