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