DBA Data[Home] [Help]

PACKAGE BODY: APPS.IBY_FD_USER_API_PUB

Source


1 PACKAGE BODY IBY_FD_USER_API_PUB AS
2 /*$Header: ibyfduab.pls 120.11 2006/09/17 23:48:07 eliu noship $*/
3 
4 --
5 -- Declare Global variables
6 --
7 SRA_INVALID_INSTR EXCEPTION;
8 
9 --
10 -- Forward Declarations
11 --
12 PROCEDURE print_debuginfo(p_module IN VARCHAR2,
13                           p_debug_text IN VARCHAR2);
14 
15 PROCEDURE Validate_Method_and_Profile (
16      p_api_version              IN   NUMBER,
17      p_init_msg_list            IN   VARCHAR2 default FND_API.G_FALSE,
18      p_payment_method_code      IN   VARCHAR2,
19      p_ppp_id                   IN   NUMBER,
20      p_payment_document_id      IN   NUMBER,
21      p_crt_instr_flag           IN   VARCHAR2,
22      p_int_bank_acc_arr         IN   Int_Bank_Acc_Tab_Type,
23      p_le_arr                   IN   Legal_Entity_Tab_Type,
24      p_org_arr                  IN   Org_Tab_Type,
25      p_curr_arr                 IN   Currency_Tab_Type,
26      x_return_status            OUT  NOCOPY VARCHAR2,
27      x_msg_count                OUT  NOCOPY NUMBER,
28      x_msg_data                 OUT  NOCOPY VARCHAR2
29 )
30 IS
31   l_api_name           CONSTANT VARCHAR2(30)   := 'Validate_Method_and_Profile';
32   l_api_version        CONSTANT NUMBER         := 1.0;
33   l_module_name        CONSTANT VARCHAR2(200)  := G_PKG_NAME || '.Validate_Method_and_Profile';
34 
35   l_count              NUMBER;
36   l_le_name            VARCHAR2(240);
37   l_org_name           VARCHAR2(240);
38   l_acc_name           VARCHAR2(240);
39   l_profile_name       VARCHAR2(100);
40   l_method_name        VARCHAR2(100);
41   l_payment_document_id NUMBER;
42   l_proc_type          VARCHAR2(30);
43 
44   CURSOR method_appl_cur (p_method_code VARCHAR2,
45                           p_driver_type VARCHAR2,
46                           p_driver_value VARCHAR2)
47   IS
48     select count(APPLICABLE_PMT_MTHD_ID)
49       from iby_applicable_pmt_mthds
50      where payment_method_code = p_method_code
51        and applicable_type_code = p_driver_type
52        and (applicable_value_to is null or applicable_value_to = p_driver_value);
53 
54   CURSOR profile_appl_cur (p_profile_id NUMBER,
55                            p_driver_type VARCHAR2,
56                            p_driver_value VARCHAR2)
57   IS
58     select count(ap.applicable_pmt_prof_id)
59       from iby_applicable_pmt_profs ap,
60            iby_payment_profiles p
61      where ap.system_profile_code = p.system_profile_code
62        and p.payment_profile_id = p_profile_id
63        and ap.applicable_type_code = p_driver_type
64        and (ap.applicable_value_to is null OR ap.applicable_value_to = p_driver_value);
65 
66   CURSOR profile_org_appl_cur (p_profile_id NUMBER,
67                                p_driver_id_value VARCHAR2,
68                                p_driver_type_value VARCHAR2)
69   IS
70     select count(ap.applicable_pmt_prof_id)
71       from iby_applicable_pmt_profs ap,
72            iby_payment_profiles p
73      where ap.system_profile_code = p.system_profile_code
74        and p.payment_profile_id = p_profile_id
75        and ap.applicable_type_code = 'PAYER_ORG'
76        and ((ap.applicable_value_to is null AND ap.applicable_value_from is null) OR
77             (ap.applicable_value_to = p_driver_id_value AND
78              ap.applicable_value_from = p_driver_type_value));
79 
80 
81 BEGIN
82   -- Standard call to check for call compatibility.
83   IF NOT FND_API.Compatible_API_Call(l_api_version,
84                                      p_api_version,
85                                      l_api_name,
86                                      G_PKG_NAME) THEN
87     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
88   END IF;
89 
90   -- Initialize message list if p_init_msg_list is set to TRUE.
91   IF FND_API.to_Boolean(p_init_msg_list) THEN
92     FND_MSG_PUB.initialize;
93   END IF;
94 
95   --  Initialize API return status to success
96   x_return_status := FND_API.G_RET_STS_SUCCESS;
97 
98   IF p_payment_method_code is not null THEN
99     print_debuginfo(l_module_name,'Payment method ' || p_payment_method_code || ' is to be validated.');
100 
101     select payment_method_name
102       into l_method_name
103       from IBY_PAYMENT_METHODS_VL
104      where payment_method_code = p_payment_method_code;
105 
106     -- Validate legal entities for the payment method
107     IF (p_le_arr.COUNT > 0) THEN
108       FOR i in p_le_arr.FIRST..p_le_arr.LAST LOOP
109         OPEN method_appl_cur(p_payment_method_code, 'PAYER_LE', to_char(p_le_arr(i)));
110         FETCH method_appl_cur INTO l_count;
111         CLOSE method_appl_cur;
112 
113         IF l_count = 0 THEN
114           select name
115             into l_le_name
116             from XLE_FIRSTPARTY_INFORMATION_V
117            where legal_entity_id = p_le_arr(i);
118 
119           FND_MESSAGE.set_name('IBY', 'IBY_AP_VLDT_METHOD_LE');
120           FND_MESSAGE.SET_TOKEN('METHOD', l_method_name);
121           FND_MESSAGE.SET_TOKEN('OBJECT', l_le_name);
122           FND_MSG_PUB.Add;
123 
124           x_return_status := FND_API.G_RET_STS_ERROR;
125         END IF;
126       END LOOP;
127     END IF;
128 
129     -- Validate organizations for the payment method
130     IF (p_org_arr.COUNT > 0) THEN
131       FOR i in p_org_arr.FIRST..p_org_arr.LAST LOOP
132         OPEN method_appl_cur(p_payment_method_code, 'PAYER_ORG', to_char(p_org_arr(i).org_id));
133         FETCH method_appl_cur INTO l_count;
134         CLOSE method_appl_cur;
135 
136         IF l_count = 0 THEN
137           select name
138             into l_org_name
139             from HR_ALL_ORGANIZATION_UNITS_VL
140            where organization_id = p_org_arr(i).org_id;
141 
142           FND_MESSAGE.set_name('IBY', 'IBY_AP_VLDT_METHOD_ORG');
143           FND_MESSAGE.SET_TOKEN('METHOD', l_method_name);
144           FND_MESSAGE.SET_TOKEN('OBJECT', l_org_name);
145           FND_MSG_PUB.Add;
146 
147           x_return_status := FND_API.G_RET_STS_ERROR;
148         END IF;
149       END LOOP;
150     END IF;
151 
152   END IF; -- if payment method is not null
153 
154   IF p_ppp_id is not null THEN
155     print_debuginfo(l_module_name,'Payment profile ' || p_ppp_id || ' is to be validated.');
156 
157     select payment_profile_name
158       into l_profile_name
159       from IBY_PAYMENT_PROFILES
160      where payment_profile_id = p_ppp_id;
161 
162     -- Validate legal entities for the payment profile
163     IF (p_int_bank_acc_arr.COUNT > 0) THEN
164       FOR i in p_int_bank_acc_arr.FIRST..p_int_bank_acc_arr.LAST LOOP
165         OPEN profile_appl_cur(p_ppp_id, 'INTERNAL_BANK_ACCOUNT', to_char(p_int_bank_acc_arr(i)));
166         FETCH profile_appl_cur INTO l_count;
167         CLOSE profile_appl_cur;
168 
169         IF l_count = 0 THEN
170           select bank_account_name
171             into l_acc_name
172             from CE_INTERNAL_BANK_ACCOUNTS_V
173            where bank_account_id = p_int_bank_acc_arr(i);
174 
175           FND_MESSAGE.set_name('IBY', 'IBY_AP_VLDT_PROF_ACC');
176           FND_MESSAGE.SET_TOKEN('PROFILE', l_profile_name);
177           FND_MESSAGE.SET_TOKEN('OBJECT', l_acc_name);
178           FND_MSG_PUB.Add;
179 
180           x_return_status := FND_API.G_RET_STS_ERROR;
181         END IF;
182       END LOOP;
183     END IF;
184 
185     -- Validate organizations for the payment profile
186     IF (p_org_arr.COUNT > 0) THEN
187       FOR i in p_org_arr.FIRST..p_org_arr.LAST LOOP
188         OPEN profile_org_appl_cur(p_ppp_id, p_org_arr(i).org_id, p_org_arr(i).org_type);
189         FETCH profile_org_appl_cur INTO l_count;
190         CLOSE profile_org_appl_cur;
191 
192         IF l_count = 0 THEN
193           select name
194             into l_org_name
195             from HR_ALL_ORGANIZATION_UNITS_VL
196            where organization_id = p_org_arr(i).org_id;
197 
198           FND_MESSAGE.set_name('IBY', 'IBY_AP_VLDT_PROF_ORG');
199           FND_MESSAGE.SET_TOKEN('PROFILE', l_profile_name);
200           FND_MESSAGE.SET_TOKEN('OBJECT', l_org_name);
201           FND_MSG_PUB.Add;
202 
203           x_return_status := FND_API.G_RET_STS_ERROR;
204         END IF;
205       END LOOP;
206     END IF;
207 
208     -- Validate currencies for the payemnt profile
209     IF (p_curr_arr.COUNT > 0) THEN
210       FOR i in p_curr_arr.FIRST..p_curr_arr.LAST LOOP
211         OPEN profile_appl_cur(p_ppp_id, 'CURRENCY_CODE', p_curr_arr(i));
212         FETCH profile_appl_cur INTO l_count;
213         CLOSE profile_appl_cur;
214 
215         IF l_count = 0 THEN
216           FND_MESSAGE.set_name('IBY', 'IBY_AP_VLDT_PROF_CURR');
217           FND_MESSAGE.SET_TOKEN('PROFILE', l_profile_name);
218           FND_MESSAGE.SET_TOKEN('OBJECT', p_curr_arr(i));
219           FND_MSG_PUB.Add;
220 
221           x_return_status := FND_API.G_RET_STS_ERROR;
222         END IF;
223       END LOOP;
224     END IF;
225 
226     -- Validate payment method for the payemnt profile
227     IF p_payment_method_code is not null THEN
228       select count(ap.applicable_pmt_prof_id)
229         into l_count
230         from iby_applicable_pmt_profs ap,
231              iby_payment_profiles p
232        where ap.system_profile_code = p.system_profile_code
233          and p.payment_profile_id = p_ppp_id
234          and ap.applicable_type_code = 'PAYMENT_METHOD'
235          and (ap.applicable_value_to is null OR ap.applicable_value_to = p_payment_method_code);
236 
237       IF l_count = 0 THEN
238         FND_MESSAGE.set_name('IBY', 'IBY_AP_VLDT_PROF_METHOD');
239         FND_MESSAGE.SET_TOKEN('PROFILE', l_profile_name);
240         FND_MESSAGE.SET_TOKEN('OBJECT', l_method_name);
241         FND_MSG_PUB.Add;
242 
243         x_return_status := FND_API.G_RET_STS_ERROR;
244       END IF;
245     END IF;
246 
247   END IF; -- if payment profile is not null
248 
249   -- Validate Create Instruction Flag, etc.
250   IF p_crt_instr_flag = 'Y' THEN
251      IF p_ppp_id is null THEN
252         FND_MESSAGE.set_name('IBY', 'IBY_BUILD_INV_PARAMS');
253         FND_MSG_PUB.Add;
254 
255         x_return_status := FND_API.G_RET_STS_ERROR;
256      ELSE
257         IF p_payment_document_id is null THEN
258            select nvl(DEFAULT_PAYMENT_DOCUMENT_ID, -1),
259                   processing_type
260              into l_payment_document_id,
261                   l_proc_type
262              from iby_payment_profiles
263             where payment_profile_id = p_ppp_id;
264 
265            IF (l_payment_document_id = -1) and
266               (l_proc_type = 'PRINTED') THEN
267               FND_MESSAGE.set_name('IBY', 'IBY_APSUB_NO_DEFAULT_PMT_DOC');
268               FND_MSG_PUB.Add;
269 
270               x_return_status := FND_API.G_RET_STS_ERROR;
271            END IF;
272         END IF;
273      END IF;
274   END IF;
275 
276   IF p_payment_document_id is not null THEN
277      IF p_ppp_id is null OR p_int_bank_acc_arr.COUNT = 0 THEN
278         FND_MESSAGE.set_name('IBY', 'IBY_BUILD_MISS_PMT_DOC_REL_PAR');
279         FND_MSG_PUB.Add;
280 
281         x_return_status := FND_API.G_RET_STS_ERROR;
282      END IF;
283   END IF;
284 
285   -- End of API body.
286 
287   -- Standard call to get message count and if count is 1, get message info.
288   FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data  => x_msg_data);
289 
290   print_debuginfo(l_module_name, 'RETURN Validate_Method_Profile');
291 
292 EXCEPTION
293     WHEN FND_API.G_EXC_ERROR THEN
294       x_return_status := FND_API.G_RET_STS_ERROR;
295       FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data  => x_msg_data);
296       print_debuginfo(l_module_name,'ERROR: Exception occured during call to API ');
297       print_debuginfo(l_module_name,'SQLerr is :' || substr(SQLERRM, 1, 150));
298 
299     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
300       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
301       FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data  => x_msg_data);
302       print_debuginfo(l_module_name,'Unexpected ERROR: Exception occured during call to API ');
303       print_debuginfo(l_module_name,'SQLerr is :' || substr(SQLERRM, 1, 150));
304 
305     WHEN OTHERS THEN
306       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
307       IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)) THEN
308         FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
309       END IF;
310       FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data  => x_msg_data);
311       print_debuginfo(l_module_name,'Other ERROR: Exception occured during call to API ');
312       print_debuginfo(l_module_name,'SQLerr is :' || substr(SQLERRM, 1, 150));
313 
314 END Validate_Method_and_Profile;
315 
316 FUNCTION Payment_Instruction_Action (
317      p_instruction_status       IN   VARCHAR2
318 ) RETURN VARCHAR2 IS
319   l_action VARCHAR2(100);
320 BEGIN
321   if p_instruction_status = 'CREATION_ERROR' then
322     l_action := 'IBY_FD_INSTRUCTION_VALIDATE';
323   elsif p_instruction_status = 'FORMATTED_READY_TO_TRANSMIT' then
324     l_action := 'IBY_FD_INSTRUCTION_TRANSMIT';
325   elsif p_instruction_status = 'TRANSMISSION_FAILED' then
326     l_action := 'IBY_FD_INSTRUCTION_TRANS_ERR';
327   elsif p_instruction_status = 'FORMATTED_READY_FOR_PRINTING' then
328     l_action := 'IBY_FD_PAYMENT_PRINT';
329   elsif p_instruction_status = 'SUBMITTED_FOR_PRINTING' then
330     l_action := 'IBY_FD_INSTRUCTION_DETAIL';
331   elsif p_instruction_status = 'CREATED_READY_FOR_PRINTING' then
332     l_action := 'IBY_FD_PAYMENT_PRINT';
333   elsif p_instruction_status = 'CREATED_READY_FOR_FORMATTING' then
334     l_action := 'IBY_FD_PAYMENT_PRINT';
335   elsif p_instruction_status = 'FORMATTED' then
336     l_action := 'IBY_FD_PAYMENT_PRINT_RECORD';
337   elsif p_instruction_status = 'CREATED' then
338     l_action := 'FNDCPSRSSSWA';
339   else
340     l_action := 'Dummy';
341   end if;
342 
343   return l_action;
344 EXCEPTION
345   when others then
346     return 'Dummy';
347 END Payment_Instruction_Action;
348 
349 FUNCTION Pmt_Instr_Action_Enabled (
350      p_instruction_status       IN   VARCHAR2,
351      p_org_id                   IN   NUMBER,
352      p_instruction_id           IN   NUMBER,
353      p_request_id               IN   NUMBER DEFAULT NULL
354 ) RETURN VARCHAR2 IS
355 
356   l_action VARCHAR2(100);
357   l_access NUMBER;
358   l_request_status VARCHAR2(100);
359 
360 BEGIN
361   if p_org_id is null then
362     declare
363       d_access NUMBER;
364     begin
365       select 0
366       into   l_access
367       from   dual
368       where exists
369            (select null
370             from   iby_payments_all
371             where  payment_instruction_id = p_instruction_id
372             and    org_id <> -1
373             and    MO_GLOBAL.CHECK_ACCESS(org_id) = 'N');
374 
375       l_access := 0;
376 
377     exception
378       when no_data_found then
379         l_access := 1;
380       when others then
381         raise;
382     end;
383 
384   elsif MO_GLOBAL.CHECK_ACCESS(p_org_id) = 'Y' then
385     l_access := 1;
386   else
387     l_access := 0;
388   end if;
389 
390   IF NOT (l_access = 1) THEN
391     -- If not MOAC access to all payments
392     l_action := 'TakeActionDisabled';
393 
394   ELSE
395     IF (p_instruction_status IN ('CREATION_ERROR',
396                                  'FORMATTED_READY_TO_TRANSMIT',
397                                  'TRANSMISSION_FAILED',
398                                  'FORMATTED_READY_FOR_PRINTING',
399                                  'SUBMITTED_FOR_PRINTING',
400                                  'CREATED_READY_FOR_PRINTING',
401                                  'CREATED_READY_FOR_FORMATTING',
402                                  'FORMATTED',
403 				 'CREATED')) THEN
404 
405       l_request_status := iby_disburse_ui_api_pub_pkg.get_conc_request_status(p_request_id);
406 
407       IF (l_request_status = 'SUCCESS') THEN
408         l_action := 'TakeActionEnabled';
409       ELSIF (l_request_status = 'ERROR') THEN
410         l_action := 'WarningIndEvenActive';
411       ELSE
412         l_action := 'InProgressIndStatus';
413       END IF;
414 
415     ELSE
416       l_action := 'TakeActionDisabled';
417     END IF;
418   END IF;
419 
420   RETURN l_action;
421 EXCEPTION
422   when others then
423     return 'TakeActionDisabled';
424 
425 END Pmt_Instr_Action_Enabled;
426 
427 PROCEDURE retrieve_default_sra_format(
428      p_api_version              IN   NUMBER,
429      p_init_msg_list            IN   VARCHAR2 default FND_API.G_FALSE,
430      p_instr_id                 IN   NUMBER,
431      x_default_sra_format_code  OUT  NOCOPY VARCHAR2,
432      x_default_sra_format_name  OUT  NOCOPY VARCHAR2,
433      x_return_status            OUT  NOCOPY VARCHAR2,
434      x_msg_count                OUT  NOCOPY NUMBER,
435      x_msg_data                 OUT  NOCOPY VARCHAR2)
436 IS
437   l_api_name           CONSTANT VARCHAR2(30)   := 'Validate_Method_and_Profile';
438   l_api_version        CONSTANT NUMBER         := 1.0;
439   l_module_name        CONSTANT VARCHAR2(200)  := G_PKG_NAME || '.retrieve_default_sra_format';
440 
441   l_instr_sra_ok NUMBER;
442 BEGIN
443   -- Standard call to check for call compatibility.
444   IF NOT FND_API.Compatible_API_Call(l_api_version,
445                                      p_api_version,
446                                      l_api_name,
447                                      G_PKG_NAME) THEN
448     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
449   END IF;
450 
451   -- Initialize message list if p_init_msg_list is set to TRUE.
452   IF FND_API.to_Boolean(p_init_msg_list) THEN
453     FND_MSG_PUB.initialize;
454   END IF;
455 
456   --  Initialize API return status to success
457   x_return_status := FND_API.G_RET_STS_SUCCESS;
458 
459   IF p_instr_id is null THEN
460     FND_MESSAGE.set_name('IBY', 'IBY_SRA_SUBMIT_INVALID_INSTR');
461     FND_MESSAGE.SET_TOKEN('INSTR_ID', p_instr_id);
462     FND_MSG_PUB.Add;
463     raise SRA_INVALID_INSTR;
464   END IF;
465 
466   select count(*)
467     into l_instr_sra_ok
468     from IBY_PAY_INSTRUCTIONS_ALL
469    where generate_sep_remit_advice_flag = 'Y'
470      and (REMITTANCE_ADVICE_CREATED_FLAG = 'N' or
471           IBY_FD_POST_PICP_PROGS_PVT.get_allow_multiple_sra_flag(p_instr_id) = 'Y')
472      and payment_instruction_status not in ('CREATION_ERROR', 'RETRY_CREATION', 'TERMINATED')
473      and IBY_FD_POST_PICP_PROGS_PVT.val_instruction_accessible(p_instr_id) = 'Y';
474 
475   IF l_instr_sra_ok = 0 THEN
476     FND_MESSAGE.set_name('IBY', 'IBY_SRA_SUBMIT_INVALID_INSTR');
477     FND_MESSAGE.SET_TOKEN('INSTR_ID', p_instr_id);
478     FND_MSG_PUB.Add;
479     raise SRA_INVALID_INSTR;
480   ELSE
481     select sra_setup.remittance_advice_format_code,
482            f.format_name
483       into x_default_sra_format_code,
484            x_default_sra_format_name
485       from iby_pay_instructions_all ins,
486            iby_payment_profiles pp,
487            iby_remit_advice_setup sra_setup,
488            iby_formats_vl f
489      where ins.payment_instruction_id = p_instr_id
490        and pp.payment_profile_id = ins.payment_profile_id
491        and pp.system_profile_code = sra_setup.system_profile_code
492        and sra_setup.remittance_advice_format_code = f.FORMAT_CODE (+);
493   END IF;
494 
495   -- End of API body.
496 
497   -- Standard call to get message count and if count is 1, get message info.
498   FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data  => x_msg_data);
499 
500   print_debuginfo(l_module_name, 'RETURN retrieve_default_sra_format');
501 
502 EXCEPTION
503     WHEN FND_API.G_EXC_ERROR THEN
504       x_return_status := FND_API.G_RET_STS_ERROR;
505       FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data  => x_msg_data);
506       print_debuginfo(l_module_name,'ERROR: Exception occured during call to API ');
507       print_debuginfo(l_module_name,'SQLerr is :' || substr(SQLERRM, 1, 150));
508 
509     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
510       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
511       FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data  => x_msg_data);
512       print_debuginfo(l_module_name,'Unexpected ERROR: Exception occured during call to API ');
513       print_debuginfo(l_module_name,'SQLerr is :' || substr(SQLERRM, 1, 150));
514 
515     WHEN SRA_INVALID_INSTR THEN
516       x_return_status := FND_API.G_RET_STS_ERROR;
517       FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data  => x_msg_data);
518       print_debuginfo(l_module_name,'ERROR: The payment instruction is not available for SRA. ');
519 
520     WHEN OTHERS THEN
521       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
522       IF (FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)) THEN
523         FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME, l_api_name);
524       END IF;
525       FND_MSG_PUB.Count_And_Get(p_count => x_msg_count, p_data  => x_msg_data);
526       print_debuginfo(l_module_name,'Other ERROR: Exception occured during call to API ');
527       print_debuginfo(l_module_name,'SQLerr is :' || substr(SQLERRM, 1, 150));
528 
529 END retrieve_default_sra_format;
530 
531 
532 --
533 --
534 --
535 PROCEDURE print_debuginfo(p_module IN VARCHAR2,
536                           p_debug_text IN VARCHAR2)
537 IS
538 BEGIN
539   --
540   -- Writing debug text to the pl/sql debug file.
541   --
542   FND_FILE.PUT_LINE(FND_FILE.LOG, p_module||p_debug_text);
543 
544   IBY_DEBUG_PUB.add(substr(RPAD(p_module,55)||' : '|| p_debug_text, 0, 150),
545                     FND_LOG.G_CURRENT_RUNTIME_LEVEL,
546                     G_DEBUG_MODULE);
547 
548 END print_debuginfo;
549 
550 END IBY_FD_USER_API_PUB;