[Home] [Help]
PACKAGE BODY: APPS.XLA_THIRD_PARTY_MERGE_PUB
Source
1 PACKAGE BODY xla_third_party_merge_pub AS
2 -- $Header: xlamergp.pkb 120.0 2005/10/28 22:27:31 weshen noship $
3 /*===========================================================================+
4 | Copyright (c) 2005 Oracle Corporation |
5 | Redwood Shores, CA, USA |
6 | All rights reserved. |
7 +============================================================================+
8 | FILENAME |
9 | xlamergp.pkb |
10 | |
11 | PACKAGE NAME |
12 | xla_third_party_merge_pub |
13 | |
14 | DESCRIPTION |
15 | This is a public package for product teams, which contains all the |
16 | APIs required for creating Third Party Merge events. |
17 | |
18 | These public APIs are wrapper over public routines of |
19 | xla_third_party_merge |
20 | |
21 | HISTORY |
22 | 08-Sep-05 L. Poon Created |
23 +===========================================================================*/
24
25 --=============================================================================
26 -- *********** Local Trace and Log Routines **********
27 --=============================================================================
28 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
29 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
30 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
31 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
32 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
33 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
34 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
35 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.xla_third_party_merge_pub';
36
37 g_log_level NUMBER;
38 g_log_enabled BOOLEAN;
39
40 PROCEDURE trace
41 ( p_msg IN VARCHAR2
42 , p_level IN NUMBER
43 , p_module IN VARCHAR2 DEFAULT C_DEFAULT_MODULE) IS
44 BEGIN
45 IF (p_msg IS NULL AND p_level >= g_log_level)
46 THEN
47 fnd_log.message(p_level, p_module);
48 ELSIF p_level >= g_log_level
49 THEN
50 fnd_log.string(p_level, p_module, p_msg);
51 END IF;
52 END trace;
53
54 PROCEDURE user_log
55 (p_msg IN VARCHAR2) IS
56 BEGIN
57 fnd_file.put_line(fnd_file.log, p_msg);
58 END user_log;
59
60 --=============================================================================
61 -- *********** public procedures and functions **********
62 --=============================================================================
63
64 -- ----------------------------------------------------------------------------
65 -- Third party merge event creation routine
66 -- ----------------------------------------------------------------------------
67 PROCEDURE third_party_merge
68 ( x_errbuf OUT NOCOPY VARCHAR2
69 , x_retcode OUT NOCOPY VARCHAR2
70 , x_event_ids OUT NOCOPY t_event_ids
71 , x_request_id OUT NOCOPY INTEGER
72 , p_source_application_id IN INTEGER DEFAULT NULL
73 , p_application_id IN INTEGER
74 , p_ledger_id IN INTEGER DEFAULT NULL
75 , p_third_party_merge_date IN DATE
76 , p_third_party_type IN VARCHAR2
77 , p_original_third_party_id IN INTEGER
78 , p_original_site_id IN INTEGER DEFAULT NULL
79 , p_new_third_party_id IN INTEGER
80 , p_new_site_id IN INTEGER DEFAULT NULL
81 , p_type_of_third_party_merge IN VARCHAR2
82 , p_mapping_flag IN VARCHAR2
83 , p_execution_mode IN VARCHAR2
84 , p_accounting_mode IN VARCHAR2
85 , p_transfer_to_gl_flag IN VARCHAR2
86 , p_post_in_gl_flag IN VARCHAR2) IS
87
88 v_function VARCHAR2(240);
89 v_module VARCHAR2(240);
90 v_message VARCHAR2(2000);
91
92 BEGIN
93 -- --------------------------
94 -- Initialize local variables
95 -- --------------------------
96 v_function := 'xla_third_party_merge_pub.third_party_merge';
97 v_module := C_DEFAULT_MODULE||'.third_party_merge';
98
99 -- Log the function entry, the passed parameters and their values
100 IF (C_LEVEL_PROCEDURE >= g_log_level)
101 THEN
102 trace( p_msg => 'BEGIN - ' || v_function
103 , p_level => C_LEVEL_PROCEDURE
104 , p_module => v_module);
105 trace( p_msg => 'p_source_application_id = ' || p_source_application_id
106 || ', p_applicaiton_id = ' || p_application_id
107 || ', p_ledger_id = ' || p_ledger_id
108 || ', p_third_party_merge_date = '
109 || p_third_party_merge_date
110 || ', p_third_party_type = ' || p_third_party_type
111 , p_level => C_LEVEL_PROCEDURE
112 , p_module => v_module);
113 trace( p_msg => 'p_original_third_party_id = '
114 || p_original_third_party_id
115 || ', p_original_site_id = ' || p_original_site_id
116 || ', p_new_third_party_id = ' || p_new_third_party_id
117 || ', p_new_site_id = ' || p_new_site_id
118 || ', p_type_of_third_party_merge = '
119 || p_type_of_third_party_merge
120 , p_level => C_LEVEL_PROCEDURE
121 , p_module => v_module);
122 trace( p_msg => 'p_mapping_flag = ' || p_mapping_flag
123 || ', p_execution_mode = ' || p_execution_mode
124 || ', p_accounting_mode = ' || p_accounting_mode
125 || ', p_transfer_to_gl_flag = '
126 || p_transfer_to_gl_flag
127 || ', p_post_in_gl_flag = ' || p_post_in_gl_flag
128 , p_level => C_LEVEL_PROCEDURE
129 , p_module => v_module);
130 END IF;
131
132 -- --------------------------------------------
133 -- Call the XLA API to set environment settings
134 -- --------------------------------------------
135 trace( p_msg => 'Call xla_environment_pkg.refresh()'
136 , p_level => C_LEVEL_STATEMENT
137 , p_module => v_module);
138 xla_environment_pkg.refresh();
139
140 -- ---------------------------------------------------
141 -- Call the XLA API to create Third Party Merge events
142 -- ---------------------------------------------------
143 trace( p_msg => 'Call xla_third_party_merge.third_party_merge()'
144 , p_level => C_LEVEL_STATEMENT
145 , p_module => v_module);
146 xla_third_party_merge.third_party_merge
147 ( x_errbuf => x_errbuf
148 , x_retcode => x_retcode
149 , x_event_ids => x_event_ids
150 , x_request_id => x_request_id
151 , p_source_application_id => p_source_application_id
152 , p_application_id => p_application_id
153 , p_ledger_id => p_ledger_id
154 , p_third_party_merge_date => p_third_party_merge_date
155 , p_third_party_type => p_third_party_type
156 , p_original_third_party_id => p_original_third_party_id
157 , p_original_site_id => p_original_site_id
158 , p_new_third_party_id => p_new_third_party_id
159 , p_new_site_id => p_new_site_id
160 , p_type_of_third_party_merge => p_type_of_third_party_merge
161 , p_mapping_flag => p_mapping_flag
162 , p_execution_mode => p_execution_mode
163 , p_accounting_mode => p_accounting_mode
164 , p_transfer_to_gl_flag => p_transfer_to_gl_flag
165 , p_post_in_gl_flag => p_post_in_gl_flag);
166
167 -- Log the out parameters, their returned values and the function exit
168 IF (C_LEVEL_PROCEDURE >= g_log_level)
169 THEN
170 trace( p_msg => 'x_retcode = ' || x_retcode
171 || ', x_errbuf = ' || x_errbuf
172 , p_level => C_LEVEL_PROCEDURE
173 , p_module => v_module);
174 trace( p_msg => 'x_request_id = ' || x_request_id
175 || ', x_event_ids.COUNT = ' || x_event_ids.COUNT
176 , p_level => C_LEVEL_PROCEDURE
177 , p_module => v_module);
178
179 -- Log the function exit
180 IF (x_retcode = G_RET_STS_ERROR OR x_retcode = G_RET_STS_UNEXP_ERROR)
181 THEN
182 trace( p_msg => 'EXIT with ERROR - ' || v_function
183 , p_level => C_LEVEL_PROCEDURE
184 , p_module => v_module);
185 ELSE
186 trace( p_msg => 'END - ' || v_function
187 , p_level => C_LEVEL_PROCEDURE
188 , p_module => v_module);
189 END IF; -- IF (x_retcode = G_RET_STS_ERROR OR ...
190
191 END IF; -- IF (C_LEVEL_PROCEDURE >= g_log_level)
192
193 EXCEPTION
194 WHEN OTHERS THEN
195 -- Get and log the SQL error message
196 v_message := SQLERRM;
197 trace( p_msg => v_message
198 , p_level => C_LEVEL_UNEXPECTED
199 , p_module => v_module);
200 -- Set the out parameters
201 x_errbuf := xla_messages_pkg.get_message
202 ( p_appli_s_name => 'XLA'
203 , p_msg_name => 'XLA_MERGE_FATAL_ERR'
204 , p_token_1 => 'FUNCTION'
205 , p_value_1 => v_function
206 , p_token_2 => 'ERROR'
207 , p_value_2 => v_message);
208 x_retcode := G_RET_STS_UNEXP_ERROR;
209 -- Log the out parameters, their returned values and the function exit
210 IF (C_LEVEL_PROCEDURE >= g_log_level)
211 THEN
212 trace( p_msg => 'x_retcode = ' || x_retcode
213 || ', x_errbuf = ' || x_errbuf
214 , p_level => C_LEVEL_PROCEDURE
215 , p_module => v_module);
216 trace( p_msg => 'x_request_id = ' || x_request_id
217 || ', x_event_ids.COUNT = ' || x_event_ids.COUNT
218 , p_level => C_LEVEL_PROCEDURE
219 , p_module => v_module);
220 -- Log the function exit
221 trace( p_msg => 'EXIT with ERROR - ' || v_function
222 , p_level => C_LEVEL_PROCEDURE
223 , p_module => v_module);
224 END IF;
225
226 END third_party_merge;
227
228 -- ----------------------------------------------------------------------------
229 -- Create third party merge accounting routine - called by SRS
230 -- ----------------------------------------------------------------------------
231 PROCEDURE create_accounting
232 ( x_errbuf OUT NOCOPY VARCHAR2
233 , x_retcode OUT NOCOPY VARCHAR2
234 , p_application_id IN INTEGER
235 , p_event_id IN INTEGER DEFAULT NULL
236 , p_accounting_mode IN VARCHAR2
237 , p_transfer_to_gl_flag IN VARCHAR2
238 , p_post_in_gl_flag IN VARCHAR2
239 , p_merge_event_set_id IN INTEGER DEFAULT NULL) IS
240
241 v_function VARCHAR2(240);
242 v_module VARCHAR2(240);
243 v_message VARCHAR2(2000);
244 v_cp_status VARCHAR2(30);
245 v_return_status BOOLEAN;
246
247 BEGIN
248
249 -- --------------------------
250 -- Initialize local variables
251 -- --------------------------
252 v_function := 'xla_third_party_merge_pub.create_accounting';
253 v_module := C_DEFAULT_MODULE||'.create_accounting';
254
255 -- Log the function entry, the passed parameters and their values
256 IF (C_LEVEL_PROCEDURE >= g_log_level)
257 THEN
258 trace( p_msg => 'BEGIN - ' || v_function
259 , p_level => C_LEVEL_PROCEDURE
260 , p_module => v_module);
261 trace( p_msg => 'p_applicaiton_id = ' || p_application_id
262 || ', p_event_id = ' || p_event_id
263 || ', p_accounting_mode = ' || p_accounting_mode
264 || ', p_transfer_to_gl_flag = ' || p_transfer_to_gl_flag
265 || ', p_post_in_gl_flag = ' || p_post_in_gl_flag
266 || ', p_merge_event_set_id = ' || p_merge_event_set_id
267 , p_level => C_LEVEL_PROCEDURE
268 , p_module => v_module);
269 END IF; -- IF (C_LEVEL_PROCEDURE >= g_log_level)
270
271 -- --------------------------------------------
272 -- Call the XLA API to set environment settings
273 -- --------------------------------------------
274 trace( p_msg => 'Call xla_environment_pkg.refresh()'
275 , p_level => C_LEVEL_STATEMENT
276 , p_module => v_module);
277 xla_environment_pkg.refresh();
278
279 -- ------------------------------------------------------------------
280 -- Call the XLA API to create accoutning for Third Party Merge events
281 -- ------------------------------------------------------------------
282 trace( p_msg => 'Call xla_third_party_merge.create_accounting()'
283 , p_level => C_LEVEL_STATEMENT
284 , p_module => v_module);
285 xla_third_party_merge.create_accounting
286 ( x_errbuf => x_errbuf
287 , x_retcode => x_retcode
288 , p_application_id => p_application_id
289 , p_event_id => p_event_id
290 , p_accounting_mode => p_accounting_mode
291 , p_transfer_to_gl_flag => p_transfer_to_gl_flag
292 , p_post_in_gl_flag => p_post_in_gl_flag
293 , p_merge_event_set_id => p_merge_event_set_id
294 , p_srs_flag => 'Y');
295
296 -- ------------------------------------------------------------------------
297 -- Write final message to the concurrent request log and set the concurrent
298 -- request completion status according to the return values
299 -- ------------------------------------------------------------------------
300 trace( p_msg => 'Write final log message'
301 , p_level => C_LEVEL_STATEMENT
302 , p_module => v_module);
303 IF (x_retcode = G_RET_STS_ERROR OR x_retcode = G_RET_STS_UNEXP_ERROR)
304 THEN
305 -- An error was raised, so write the returned error message to the
306 -- concurrent request log and set the completion status to 'ERROR'
307 user_log(x_errbuf);
308 v_cp_status := 'ERROR';
309 ELSIF (x_retcode = G_RET_STS_WARN)
310 THEN
311 -- A warning was raised, so get and write the message XLA_MERGE_ACCT_WARN to
312 -- the concurrent request log
313 v_message := xla_messages_pkg.get_message
314 ( p_appli_s_name => 'XLA'
315 , p_msg_name => 'XLA_MERGE_ACCT_WARN');
316 user_log(v_message);
317 v_cp_status := 'WARNING';
318 ELSE
319 -- It completed successfully, so write the message XLA_MERGE_ACCT_SUCCEEDED
320 -- to the concurrent request log
321 v_message := xla_messages_pkg.get_message
322 ( p_appli_s_name => 'XLA'
323 , p_msg_name => 'XLA_MERGE_ACCT_SUCCEEDED');
324 user_log(v_message);
325 v_cp_status := 'SUCCESS';
326 END IF;
327
328 -- Log the out parameters, their returned values and function exit
329 IF (C_LEVEL_PROCEDURE >= g_log_level)
330 THEN
331 trace( p_msg => 'x_retcode = ' || x_retcode
332 || ', x_errbuf = ' || x_errbuf
333 , p_level => C_LEVEL_PROCEDURE
334 , p_module => v_module);
335
336 -- Log the function exit
337 IF (v_cp_status = 'ERROR')
338 THEN
339 trace( p_msg => 'EXIT with ERROR - ' || v_function
340 , p_level => C_LEVEL_PROCEDURE
341 , p_module => v_module);
342 ELSE
343 trace( p_msg => 'END - ' || v_function
344 , p_level => C_LEVEL_PROCEDURE
345 , p_module => v_module);
346 END IF; -- IF (x_retcode = G_RET_STS_ERROR OR ...
347
348 END IF; -- IF (C_LEVEL_PROCEDURE >= g_log_level)
349
350 -- Set the concurrent request completion status
351 v_return_status := fnd_concurrent.set_completion_status
352 ( status => v_cp_status
353 , message => NULL);
354
355 -- Commit the changes made by this concurrent request and exit
356 COMMIT;
357
358 EXCEPTION
359 WHEN OTHERS THEN
360 -- Rollback all the changes made by this concurrent request
361 ROLLBACK;
362 -- Get and log the SQL error message
363 v_message := SQLERRM;
364 trace( p_msg => v_message
365 , p_level => C_LEVEL_UNEXPECTED
366 , p_module => v_module);
367 -- Set the out parameters
368 x_errbuf := xla_messages_pkg.get_message
369 ( p_appli_s_name => 'XLA'
370 , p_msg_name => 'XLA_MERGE_FATAL_ERR'
371 , p_token_1 => 'FUNCTION'
372 , p_value_1 => v_function
373 , p_token_2 => 'ERROR'
374 , p_value_2 => v_message);
375 x_retcode := G_RET_STS_UNEXP_ERROR;
376 -- Write the error message to the concurrent request log
377 user_log(x_errbuf);
378 -- Log the out parameters, their returned values and function exit
379 IF (C_LEVEL_PROCEDURE >= g_log_level)
380 THEN
381 trace( p_msg => 'x_retcode = ' || x_retcode
382 || ', x_errbuf = ' || x_errbuf
383 , p_level => C_LEVEL_PROCEDURE
384 , p_module => v_module);
385 trace( p_msg => 'EXIT with ERROR - ' || v_function
386 , p_level => C_LEVEL_PROCEDURE
387 , p_module => v_module);
388 END IF; -- IF (C_LEVEL_PROCEDURE >= g_log_level)
389 -- Set the concurrent request completion status as ERROR
390 v_return_status := fnd_concurrent.set_completion_status
391 ( status => 'ERROR'
392 , message => NULL);
393 -- Commit the above changes and exit
394 COMMIT;
395
396 END create_accounting;
397
398 --=============================================================================
399 -- ******************* Initialization *********************
400 --=============================================================================
401 BEGIN
402 g_log_level := fnd_log.G_CURRENT_RUNTIME_LEVEL;
403 g_log_enabled := fnd_log.test( log_level => g_log_level
404 , module => C_DEFAULT_MODULE);
405
406 IF NOT g_log_enabled
407 THEN
408 g_log_level := C_LEVEL_LOG_DISABLED;
409 END IF;
410
411 END xla_third_party_merge_pub;