DBA Data[Home] [Help]

PACKAGE BODY: APPS.FND_LDAP_ERRM

Source


1 package body fnd_ldap_errm as
2 /* $Header: AFSCOLEB.pls 120.2 2011/05/10 20:41:25 ctilley noship $ */
3 --
4 -- Start of Package Globals
5 
6   G_MODULE_SOURCE  constant varchar2(80) := 'fnd.plsql.oid.fnd_ldap_errm.';
7 
8 -- End of Package Globals
9 -------------------------------------------------------------------------------
10 function translate_ldap_errors( errm in out nocopy varchar2) return varchar2
11 is
12 	l_module_source   varchar2(256);
13 	l_err_code   varchar2(256);
14         l_tmp_str varchar2(4000);
15 	l_string_index integer;
16 begin
17 	l_module_source := G_MODULE_SOURCE || 'translate_ldap_errors: ';
18 
19  if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
20     fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Begin');
21     fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'Error Msg : ' || errm);
22  end if;
23 
24  if (instr(errm, G_GSL_PWDEXPIRED_EXCP_9000 )>0 ) then
25 	l_err_code :=  FND_SSO_LDAP_APPSDN_PWD_EXPIRD;
26         errm := fnd_preference.get('#INTERNAL', 'LDAP_SYNCH', 'USERNAME');
27  elsif (instr(errm, G_GSL_PWDMINLENGTH_EXCP_9003)>0 OR
28         instr(errm, G_GSL_PWDNUMERIC_EXCP_9004)>0 OR
29         instr(errm, G_GSL_PWDNULL_EXCP_9005)>0 OR
30         instr(errm, G_GSL_PWDINHISTORY_EXCP_9006)>0 OR
31         instr(errm, G_GSL_PWDILLEGALVALUE_EXCP9007)>0 OR
32         instr(errm, G_GSL_PWDALPHA_EXCP_9012)>0 OR
33         instr(errm, G_GSL_PWDSPECIAL_EXCP_9013)>0 OR
34         instr(errm, G_GSL_PWDUPPER_EXCP_9014)>0 OR
35         instr(errm, G_GSL_PWDMAXCHAR_EXCP_9015)>0 OR
36         instr(errm, G_GSL_PWDLOWER_EXCP_9016)>0 OR
37         instr(errm, G_GSL_PWDMINAGE_EXCP_9020)>0) then
38 	l_err_code :=  FND_SSO_LDAP_PWD_POLICY_ERR;
39         /*
40          *  The following if block added for colon(":") is not present
41          * for error code 9007 in the LDAP error message. In general this colon
42          * should be present after the error code.
43          */
44         if (INSTR(errm, ':', 1, 6) > 0 ) then
45             l_tmp_str := substr (errm,  INSTR(errm, ':', 1, 4), (( INSTR(errm, ':', 1, 6) - INSTR(errm, ':', 1, 4) ) + 1) );
46         else
47             l_tmp_str := substr (errm,  INSTR(errm, ':', 1, 4), (( INSTR(errm, ':', 1, 5) - INSTR(errm, ':', 1, 4) ) + 1) );
48         end if;
49         l_tmp_str := substr(errm, ( instr(errm, l_tmp_str) + length(l_tmp_str) ) );
50         errm := l_tmp_str;
51 
52  elsif (instr(errm, LDAP_GENERIC_ERR)>0 ) then
53 
54         -- Adding this condition block - to catch any other generic LDAP errors
55         -- which are of the form - ORA-31202: DBMS_LDAP: LDAP client/server
56         -- error:string
57         -- setting l_err_code = FND_SSO_LDAP_PWD_POLICY_ERR to reuse
58         -- already existing err code instead of creating a new one.
59         l_err_code := FND_SSO_LDAP_PWD_POLICY_ERR;
60         l_string_index := INSTR(errm, ':',-1,1);
61         if( l_string_index > 0 ) then
62            l_tmp_str := substr (errm, (l_string_index + 1) );
63         else
64            l_tmp_str := errm;
65         end if;
66         errm := l_tmp_str;
67 
68  else
69 	l_err_code := FND_SSO_UNEXP_ERROR;
70  end if;
71 
72  if (fnd_log.LEVEL_STATEMENT >= fnd_log.G_CURRENT_RUNTIME_LEVEL) then
73     fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'l_err_code : ' || l_err_code);
74     fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'l_tmp_str: ' || l_tmp_str);
75     fnd_log.string(fnd_log.LEVEL_STATEMENT, l_module_source, 'End');
76  end if;
77 
78  return l_err_code;
79 
80 end translate_ldap_errors;
81 -------------------------------------------------------------------------------
82 end fnd_ldap_errm;