DBA Data[Home] [Help]

PACKAGE BODY: APPS.UMX_REG_FLOW_PVT

Source


1 PACKAGE BODY UMX_REG_FLOW_PVT as
2 /* $Header: UMXPRFWB.pls 120.2 2005/07/02 04:24:13 appldev noship $ */
3 -- Start of Comments
4 -- Package name     : UMX_REG_FLOW_PVT
5 -- Purpose          : generate password and send email to user with the password.
6 -- History          :
7 
8 -- KCHERVEL  12/03/01  Created
9 -- NOTE             :
10 -- End of Comments
11 ---------------------------------------------------------------------------
12 /* returns a delimited string of the Html parameters. Returns null if no parameters are passed */
13 function getDelimitedHtmlParams(htmlParams in paramsTabType) return varchar2 is
14 i pls_integer;
15 begin
16   i := htmlParams.FIRST;
17   if i is null then
18     return null;
19   end if;
20 
21   jtf_dbstream_utils.clearOutputStream;
22   jtf_dbstream_utils.writeInt(htmlParams.count);
23   while i is not null loop
24     jtf_dbstream_utils.writeString(htmlParams(i).paramName);
25     jtf_dbstream_utils.writeString(htmlParams(i).paramValue);
26     i := htmlParams.next(i);
27   end loop;
28   return jtf_dbstream_utils.getOutputStream;
29 end getDelimitedHtmlParams;
30 -----------------------------------------------------------------------------
31 /* returns an encrypted delimited string of the regSrv and the reg parameters
32 */
33 function getDelimRegParams(regSrv in varchar2, regParams in paramsTabType) return varchar2 is
34 i pls_integer;
35 begin
36   jtf_dbstream_utils.clearOutputStream;
37   jtf_dbstream_utils.writeInt(regParams.count + 1);
38    -- add regSrv to the String
39   jtf_dbstream_utils.writeString('reg_service_code');
40   jtf_dbstream_utils.writeString(regSrv);
41   i := regParams.FIRST;
42   while i is not null loop
43     jtf_dbstream_utils.writeString(regParams(i).paramName);
44     jtf_dbstream_utils.writeString(regParams(i).paramValue);
45     i := regParams.next(i);
46   end loop;
47   return jtf_dbstream_utils.getOutputStream;
48 end getDelimRegParams;
49 
50 ----------------------------------------------------------------------------
51 function validate_reg_service_code(p_regSrv in varchar2) return boolean is
52 CURSOR isRegSrvValid IS
53  select UMX.reg_service_type, UMX.reg_function_id, UMX.end_date, f.function_id
54  from umx_reg_services_b umx, fnd_form_functions f
55  where UMX.reg_service_code = p_regSrv
56  and UMX.reg_function_id = f.function_id(+);
57 begin
58   if p_regSrv is null then
59     raise_application_error(-20001, FND_MESSAGE.get_string('FND', 'UMX_GENURL_REGSRV_PARAM_NULL'));
60   end if;
61 
62   for i in isRegSrvValid loop
63     if (i.reg_service_type <> 'SELF_SERVICE') then
64       raise_application_error(-20001, fnd_message.get_string('FND','UMX_GENURL_REGSRV_INVALID_TYPE'));
65     elsif (i.reg_function_id is null) then
66       raise_application_error(-20001, fnd_message.get_string('FND','UMX_GENURL_REGFUNC_NULL1'));
67    elsif (nvl(i.end_date, sysdate) < sysdate) then
68       raise_application_error(-20001, fnd_message.get_string('FND','UMX_GENURL_REGSRV_ENDDATED'));
69     elsif (i.function_id is null) then
70       /*FND_MESSAGE.SET_NAME('FND', 'UMX_GENURL_REGFUNC_INVALID');
71       FND_MESSAGE.SET_TOKEN('REG_SRV_CODE', p_regSrv, FALSE);
72       FND_MSG_PUB.ADD;
73       */
74       raise_application_error(-20001, fnd_message.get_string('FND','UMX_GENURL_REGFUNC_INVALID'));
75      end if;
76     end loop;
77   return true;
78 end;
79 
80 -------------------------------------------------------------------------------
81 
82 /**
83  * this API is the body of icx_portlet.createExecLink
84  * it is rewritten to avoid calls to icx_portlet -- bug 2959905
85  */
86 
87 function createExecLink(p_application_id         number,
88                           p_responsibility_id      number,
89                           p_security_group_id      number,
90                           p_function_id            number,
91                           p_parameters             VARCHAR2,
92                           p_target                 VARCHAR2,
93                           p_link_name              VARCHAR2,
94                           p_url_only               VARCHAR2)
95          return varchar2 is
96 
97 l_RFLink       varchar2(4000);
98 
99 begin
100 
101 if p_url_only = 'N'
102 then
103   l_RFLink := FND_RUN_FUNCTION.GET_RUN_FUNCTION_LINK
104               (P_TEXT =>p_link_name,
105                P_TARGET => p_target,
106                P_FUNCTION_ID => p_function_id,
107                P_RESP_APPL_ID => p_application_id,
108                P_RESP_ID => p_responsibility_id,
109                P_SECURITY_GROUP_ID => p_security_group_id,
110                P_PARAMETERS => p_parameters);
111 else
112   l_RFLink := FND_RUN_FUNCTION.GET_RUN_FUNCTION_URL
113               (P_FUNCTION_ID => p_function_id,
114                P_RESP_APPL_ID => p_application_id,
115                P_RESP_ID => p_responsibility_id,
116                P_SECURITY_GROUP_ID => p_security_group_id,
117                P_PARAMETERS => p_parameters);
118 end if;
119 
120 return l_RFlink;
121 
122 end createExecLink;
123 
124 
125 --------------------------------------------------------------------------
126 /* wrapper on createExecLink with app as FND, resp as -1 */
127 function  generateURL (p_function_name in varchar2,
128                   p_parameters    in varchar2,
129                   p_target           in varchar2,
130                   p_url_only         in varchar2 := 'Y' ,
131                   p_linkName in varchar2 := null)  return varchar2 is
132 l_application_id number;
133 l_function_id    number;
134 begin
135    begin
136       SELECT application_id
137       INTO l_application_id
138       FROM fnd_application
139       WHERE application_short_name = 'FND';
140 
141       SELECT function_id
142       INTO l_function_id
143       FROM fnd_form_functions
144       WHERE function_name = 'UMX_FLOW_LAUNCHER';
145   exception
146     when others then
147       return -1;
148   end;
149 
150  return  createExecLink(p_application_id =>null,
151                           p_responsibility_id      => null,
152                           p_security_group_id      => null,
153                           p_function_id            => l_function_id,
154                           p_parameters             => p_parameters,
155                           p_target                 => p_target,
156                           p_link_name              => p_linkName,
157                           p_url_only               => p_url_only);
158 end;
159 ---------------------------------------------------------------------------
160 function  generateRegistrationURL (p_delimHtmlParams  in varchar2,
161                                    p_delimRegParams   in varchar2,
162                                    p_target           in varchar2,
163                                    p_url_only         in varchar2 := 'Y' ,
164                                    p_linkName in varchar2 := null)  return varchar2 is
165 l_parameters varchar2(4000);
166 l_application_id number;
167 l_function_id    number;
168 begin
169   -- added a 1 before the encrypted parameters, otherwise pageContext.getParams
170   -- will return null
171   if p_delimHtmlParams is not null then
172     l_parameters := 'UMXHtmlParams='||p_delimHtmlParams
173                   ||'&'||'UMXRegParams=1'||icx_call.encrypt(p_delimRegParams);
174   else
175     l_parameters := 'UMXRegParams=1'||icx_call.encrypt(p_delimRegParams);
176   end if;
177 
178   begin
179       SELECT application_id
180       INTO l_application_id
181       FROM fnd_application
182       WHERE application_short_name = 'FND';
183 
184       SELECT function_id
185       INTO l_function_id
186       FROM fnd_form_functions
187       WHERE function_name = 'UMX_FLOW_LAUNCHER';
188   exception
189     when others then
190       return -1;
191   end;
192 
193  return  createExecLink(p_application_id => null,
194                           p_responsibility_id      => null,
195                           p_security_group_id      => null,
196                           p_function_id            => l_function_id,
197                           p_parameters             => l_parameters,
198                           p_target                 => p_target,
199                           p_link_name              => p_linkName,
200                           p_url_only               => p_url_only);
201  /*
202   return icx_portlet.createExecLink2(
203                            p_application_short_name => 'FND',
204                            p_responsibility_key     => 'UMX_ANONYMOUS_USER' ,
205                            p_security_group_key     => '',
206                            p_function_name          => 'UMX_FLOW_LAUNCHER' ,
207                            p_parameters             => l_parameters,
208                            p_target                 => p_target,
209                            p_link_name              => p_linkName,
210                            p_url_only               => p_url_only) ;
211 
212  return icx_portlet.createExecLink2(
213                            p_application_short_name => 'JTF',
214                            p_responsibility_key     =>'JTA_UMX_ANONYMOUS_USER',
215                            p_security_group_key     => '',
216                            p_function_name          => 'JTA_UMX_FORGOT_PWD' ,
217                            p_parameters             => l_parameters,
218                            p_target                 => p_target,
219                            p_link_name              => p_linkName,
220                            p_url_only               => p_url_only) ;
221 */
222 
223 end;
224 ---------------------------------------------------------------------------
225 /* see spec for description */
226 function  generateRegistrationURL (p_regSrv      in varchar2,
227                                    p_htmlParams  in paramsTabType := default_paramtab,
228                                    p_regParams   in paramsTabType := default_paramtab,
229                                    p_target      in varchar2,
230                                    p_url_only  in varchar2 := 'Y' ,
231                                    p_linkName in varchar2 := null)  return varchar2 is
232 l_delimHtmlParams varchar2(4000);
233 l_delimRegParams  varchar2(4000);
234 --l_parameters    varchar2(4000);
235 begin
236 /*  if p_regSrv is null then
237    -- raise exception
238     FND_MESSAGE.SET_NAME('FND', 'UMX_REQUIRED_FIELD');
239     FND_MESSAGE.SET_TOKEN('PROCEDURE', 'UMX_REG_FLOW_PVT.generateRegistrationURL', FALSE);
240     FND_MESSAGE.SET_TOKEN('FIELD', 'Registration Service', FALSE);
241     FND_MSG_PUB.ADD;
242     app_exception.raise_exception;
243   end if;
244 */
245   if validate_reg_service_code(p_regSrv) then
246    l_delimHtmlParams := getDelimitedHtmlParams(p_htmlParams);
247    l_delimRegParams  := getDelimRegParams(p_regSrv, p_regParams);
248    return generateRegistrationURL (p_delimHtmlParams  => l_delimHtmlParams,
249                            p_delimRegParams   => l_delimRegParams,
250                            p_target           => p_target,
251                            p_url_only         => p_url_only,
252                            p_linkName         => p_linkname);
253  end if;
254 end;
255 --------------------------------------------------------------------------
256 procedure getDelimitedString(p_string in varchar2,
257                   x_delimitedString out NOCOPY varchar2) is
258 begin
259   if substr(p_string,0,14) = 'UMX_NO_ENCRYPT' then
260      x_delimitedString := substr(p_string,15);
261   else
262      x_delimitedString := icx_call.decrypt(substr(p_string,2));
263   end if;
264 end;
265 ---------------------------------------------------------------------------
266 function  genRegistrationURL (p_regSrv      in varchar2,
267                                    p_target      in varchar2,
268                                    p_url_only  in varchar2 := 'Y' ,
269                                    p_linkName in varchar2 := null)  return varchar2 is
270 begin
271    return generateRegistrationURL (p_regSrv      => p_regSrv,
272                                    p_htmlParams  => default_paramtab,
273                                    p_regParams   => default_paramtab,
274                                    p_target      => p_target,
275                                    p_url_only    => p_url_only ,
276                                    p_linkName    => p_linkname);
277 end;
278 
279 
280 ---------------------------------------------------------------------------
281 function  generateRegistrationURL (p_regSrv           in varchar2,
282                                    p_delimHtmlParams  in varchar2,
283                                    p_delimRegParams   in varchar2,
284                                    p_target           in varchar2,
285                                    p_url_only         in varchar2 := 'Y' ,
286                                    p_linkName in varchar2 := null)  return varchar2 is
287 begin
288    if (validate_reg_service_code(p_regSrv)) then
289      return generateRegistrationURL (p_delimHtmlParams => p_delimHtmlParams,
290                                    p_delimRegParams  => p_delimRegParams,
291                                    p_target   => p_target        ,
292                                    p_url_only  => p_url_only        ,
293                                    p_linkName => p_linkName);
294    end if;
295 end;
296 
297 
298 End UMX_REG_FLOW_PVT;