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