DBA Data[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;