[Home] [Help]
PACKAGE BODY: APPS.XLA_AAD_DOWNLOAD_PVT
Source
1 PACKAGE BODY xla_aad_download_pvt AS
2 /* $Header: xlaaldnl.pkb 120.7 2005/06/14 00:39:28 wychan ship $ */
3
4 --=============================================================================
5 -- **************** declaraions ********************
6 --=============================================================================
7 -------------------------------------------------------------------------------
8 -- declaring global types
9 -------------------------------------------------------------------------------
10 g_application_id NUMBER;
11 g_amb_context_code VARCHAR2(30);
12 g_destination_file VARCHAR2(240);
13 -------------------------------------------------------------------------------
14 -- declaring global constants
15 -------------------------------------------------------------------------------
16 ------------------------------------------------------------------------------
17 -- declaring global variables
18 ------------------------------------------------------------------------------
19 --=============================================================================
20 -- *********** Local Trace Routine **********
21 --=============================================================================
22 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
23 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
24 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
25 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
26 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
27 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
28
29 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
30 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.xla_aad_download_pvt';
31
32 g_log_level NUMBER;
33 g_log_enabled BOOLEAN;
34
35 PROCEDURE trace
36 (p_msg IN VARCHAR2
37 ,p_module IN VARCHAR2
38 ,p_level IN NUMBER) IS
39 BEGIN
40 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
41 fnd_log.message(p_level, p_module);
42 ELSIF p_level >= g_log_level THEN
43 fnd_log.string(p_level, p_module, p_msg);
44 END IF;
45 EXCEPTION
46 WHEN xla_exceptions_pkg.application_exception THEN
47 RAISE;
48
49 WHEN OTHERS THEN
50 xla_exceptions_pkg.raise_message
51 (p_location => 'xla_aad_download_pvt.trace');
52 END trace;
53
54
55 --=============================================================================
56 -- *********** private procedures and functions **********
57 --=============================================================================
58
59 --=============================================================================
60 --
61 -- Name: submit_request
62 -- Description: This API submits the Download Application Accounting Definitions
63 -- request
64 --
65 --=============================================================================
66 FUNCTION submit_request
67 RETURN INTEGER
68 IS
69 PRAGMA AUTONOMOUS_TRANSACTION;
70
71 l_req_id NUMBER;
72 l_log_module VARCHAR2(240);
73 BEGIN
74 IF g_log_enabled THEN
75 l_log_module := C_DEFAULT_MODULE||'.submit_request';
76 END IF;
77
78 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79 trace(p_msg => 'BEGIN of function submit_request',
80 p_module => l_log_module,
81 p_level => C_LEVEL_PROCEDURE);
82 END IF;
83
84 l_req_id := fnd_request.submit_request
85 (application => 'XLA'
86 ,program => 'XLAAADDL'
87 ,description => NULL
88 ,start_time => NULL
89 ,sub_request => FALSE
90 ,argument1 => 'DOWNLOAD'
91 ,argument2 => '@xla:/patch/115/import/xlaaadrule.lct'
92 ,argument3 => g_destination_file
93 ,argument4 => 'XLA_AAD'
94 ,argument5 => 'APPLICATION_ID='||g_application_id
95 ,argument6 => 'AMB_CONTEXT_CODE='||g_amb_context_code);
96
97 COMMIT;
98
99 IF (C_LEVEL_EVENT>= g_log_level) THEN
100 trace(p_msg => 'Submitted XLAAADDL request = '||l_req_id
101 ,p_level => C_LEVEL_EVENT
102 ,p_module => l_log_module);
103 END IF;
104
105 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
106 trace(p_msg => 'END of function submit_request : Return Code = '||l_req_id,
107 p_module => l_log_module,
108 p_level => C_LEVEL_PROCEDURE);
109 END IF;
110 return l_req_id;
111 EXCEPTION
112 WHEN OTHERS THEN
113 xla_aad_loader_util_pvt.stack_error
114 (p_appli_s_name => 'XLA'
115 ,p_msg_name => 'XLA_COMMON_ERROR'
116 ,p_token_1 => 'LOCATION'
117 ,p_value_1 => 'xla_aad_download_pkg.submit_request'
118 ,p_token_2 => 'ERROR'
119 ,p_value_2 => 'unhandled exception');
120 RAISE;
121
122 END submit_request;
123
124 --=============================================================================
125 --
126 --
127 --
128 --
129 --
130 -- *********** public procedures and functions **********
131 --
132 --
133 --
134 --
135 --
136 --=============================================================================
137
138 --=============================================================================
139 --
140 -- Name: download
141 -- Description: This API downloads the AADs and the components from an AMB
142 -- context to a data file
143 --
144 --=============================================================================
145 PROCEDURE download
146 (p_api_version IN NUMBER
147 ,x_return_status IN OUT NOCOPY VARCHAR2
148 ,p_application_id IN INTEGER
149 ,p_amb_context_code IN VARCHAR2
150 ,p_destination_file IN VARCHAR2
151 ,x_download_status IN OUT NOCOPY VARCHAR2)
152 IS
153 l_api_name CONSTANT VARCHAR2(30) := 'download';
154 l_api_version CONSTANT NUMBER := 1.0;
155 l_req_id INTEGER;
156 l_log_module VARCHAR2(240);
157 BEGIN
158 IF g_log_enabled THEN
159 l_log_module := C_DEFAULT_MODULE||'.download';
160 END IF;
161
162 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
163 trace(p_msg => 'BEGIN of function download',
164 p_module => l_log_module,
165 p_level => C_LEVEL_PROCEDURE);
166 END IF;
167
168 -- Commit is necessary for the XLAAADDL download program to read the
169 -- modified histories information in the spawn FNDLOAD program
170 COMMIT;
171
172 IF (NOT xla_aad_loader_util_pvt.compatible_api_call
173 (p_current_version_number => l_api_version
174 ,p_caller_version_number => p_api_version
175 ,p_api_name => l_api_name
176 ,p_pkg_name => C_DEFAULT_MODULE))
177 THEN
178
179 IF (C_LEVEL_UNEXPECTED >= g_log_level) THEN
180 trace(p_msg => 'RAISING FND_API.G_EXC_UNEXPECTED_ERROR',
181 p_module => l_log_module,
182 p_level => C_LEVEL_UNEXPECTED);
183 END IF;
184
185 RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
186
187 END IF;
188
189 -- Initialize global variables
190 x_return_status := FND_API.G_RET_STS_SUCCESS;
191
192 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
193 trace(p_msg => 'Value of x_return_status is' || x_return_status,
194 p_module => l_log_module,
195 p_level => C_LEVEL_STATEMENT);
196 END IF;
197
198 g_application_id := p_application_id;
199
200 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
201 trace(p_msg => 'Value of g_application_id is' || g_application_id,
202 p_module => l_log_module,
203 p_level => C_LEVEL_STATEMENT);
204 END IF;
205
206 g_amb_context_code := p_amb_context_code;
207
208 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
209 trace(p_msg => 'Value of g_amb_context_code is' || g_amb_context_code,
210 p_module => l_log_module,
211 p_level => C_LEVEL_STATEMENT);
212 END IF;
213
214 g_destination_file := p_destination_file;
215
216 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
217 trace(p_msg => 'Value of g_destination_file is' || g_destination_file,
218 p_module => l_log_module,
219 p_level => C_LEVEL_STATEMENT);
220 END IF;
221
222 -- API Logic
223 l_req_id := submit_request;
224
225 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
226 trace(p_msg => 'Value of l_req_id is' || l_req_id,
227 p_module => l_log_module,
228 p_level => C_LEVEL_STATEMENT);
229 END IF;
230
231 IF (l_req_id = 0) THEN
232
233 IF (C_LEVEL_ERROR >= g_log_level) THEN
234 trace(p_msg => 'Raise FND_API.G_EXC_ERROR',
235 p_module => l_log_module,
236 p_level => C_LEVEL_STATEMENT);
237 END IF;
238
239 RAISE FND_API.G_EXC_ERROR;
240 END IF;
241
242 x_download_status := xla_aad_loader_util_pvt.wait_for_request(p_req_id => l_req_id);
243 IF (x_download_status = 'ERROR' ) THEN
244 RAISE FND_API.G_EXC_ERROR;
245 END IF;
246
247 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
248 trace(p_msg => 'END of function download - Return value = '||x_download_status,
249 p_module => l_log_module,
250 p_level => C_LEVEL_PROCEDURE);
251 END IF;
252 EXCEPTION
253 WHEN FND_API.G_EXC_ERROR THEN
254 ROLLBACK;
255 x_return_status := 'ERROR';
256
257 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
258 trace(p_msg => 'Value of x_return_status is' || x_return_status,
259 p_module => l_log_module,
260 p_level => C_LEVEL_STATEMENT);
261 END IF;
262
263 x_download_status := 'ERROR';
264
265 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
266 trace(p_msg => 'Value of x_download_status is' || x_download_status,
267 p_module => l_log_module,
268 p_level => C_LEVEL_STATEMENT);
269 END IF;
270
271 xla_aad_loader_util_pvt.stack_error
272 (p_appli_s_name => 'XLA'
273 ,p_msg_name => 'XLA_AAD_DNL_FNDLOAD_FAIL'
274 ,p_token_1 => 'CONC_REQUEST_ID'
275 ,p_value_1 => l_req_id
276 ,p_token_2 => 'DATA_FILE'
277 ,p_value_2 => g_destination_file);
278
279 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
280 trace(p_msg => 'END of function download - Return value = '||x_download_status,
281 p_module => l_log_module,
282 p_level => C_LEVEL_PROCEDURE);
283 END IF;
284
285 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
286 ROLLBACK;
287
288 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
289
290 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
291 trace(p_msg => 'Value of x_return_status is' || x_return_status,
292 p_module => l_log_module,
293 p_level => C_LEVEL_STATEMENT);
294 END IF;
295
296 x_download_status := 'ERROR';
297
298 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
299 trace(p_msg => 'Value of x_download_status is' || x_download_status,
300 p_module => l_log_module,
301 p_level => C_LEVEL_STATEMENT);
302 END IF;
303
304 WHEN OTHERS THEN
305 ROLLBACK;
306 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
307
308 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
309 trace(p_msg => 'Value of x_return_status is' || x_return_status,
310 p_module => l_log_module,
311 p_level => C_LEVEL_STATEMENT);
312 END IF;
313
314 x_download_status := 'ERROR';
315
316 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
317 trace(p_msg => 'Value of x_download_status is' || x_download_status,
318 p_module => l_log_module,
319 p_level => C_LEVEL_STATEMENT);
320 END IF;
321
322 xla_aad_loader_util_pvt.stack_error
323 (p_appli_s_name => 'XLA'
324 ,p_msg_name => 'XLA_COMMON_ERROR'
325 ,p_token_1 => 'LOCATION'
326 ,p_value_1 => 'xla_aad_download_pvt.download'
327 ,p_token_2 => 'ERROR'
328 ,p_value_2 => 'unhandled exception');
329
330 END download;
331
332 --=============================================================================
333 --
334 -- Following code is executed when the package body is referenced for the first
335 -- time
336 --
337 --=============================================================================
338 BEGIN
339 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
340 g_log_enabled := fnd_log.test
341 (log_level => g_log_level
342 ,module => C_DEFAULT_MODULE);
343
344 IF NOT g_log_enabled THEN
345 g_log_level := C_LEVEL_LOG_DISABLED;
346 END IF;
347
348 END xla_aad_download_pvt;