DBA Data[Home] [Help]

PACKAGE BODY: APPS.HR_METALINK_INT

Source


1 package body hr_metalink_int as
2 /* $Header: hrmtlint.pkb 120.0 2005/05/31 01:28:06 appldev noship $ */
3 
4 
5 -- Logging code data
6 g_module         CONSTANT VARCHAR2(80) :=
7                                          'per.pl_sql.hr_metalink_int';
8 
9 
10 
11 FUNCTION get_redirect_url
12 	(
13 	p_note_id IN VARCHAR2
14 	)
15 	RETURN VARCHAR2 IS
16 --
17 l_APP_NAME   varchar2(80);
18 l_APPTYPE    varchar2(80);
19 l_APPURL     varchar2(2000);
20 l_LOGOUT_URL varchar2(80);
21 l_USERFIELD  varchar2(80);
22 l_PWDFIELD   varchar2(80);
23 l_AUTHNEEDED varchar2(80);
24 l_APP_USER   varchar2(80);
25 l_APP_PWD    varchar2(80);
26 l_FNAME1     varchar2(80) := NULL;
27 l_FVAL1      varchar2(80) := NULL;
28 l_FNAME2     varchar2(80) := NULL;
29 l_FVAL2      varchar2(80) := NULL;
30 l_FNAME3     varchar2(80) := NULL;
31 l_FVAL3      varchar2(80) := NULL;
32 l_FNAME4     varchar2(80) := NULL;
33 l_FVAL4      varchar2(80) := NULL;
34 l_FNAME5     varchar2(80) := NULL;
35 l_FVAL5      varchar2(80) := NULL;
36 l_FNAME6     varchar2(80) := NULL;
37 l_FVAL6      varchar2(80) := NULL;
38 l_FNAME7     varchar2(80) := NULL;
39 l_FVAL7      varchar2(80) := NULL;
40 l_FNAME8     varchar2(80) := NULL;
41 l_FVAL8      varchar2(80) := NULL;
42 l_FNAME9     varchar2(80) := NULL;
43 l_FVAL9      varchar2(80) := NULL;
44 l_procedure  VARCHAR2(31) := 'get_redirect_url';
45 l_url        VARCHAR2(2000) :=
46   'http://metalink.oracle.com/' ||
47   'metalink/plsql/ml2_documents.showDocument' ||
48   '?p_database_id=NOT' ||
49   '&' || 'p_id=';
50 l_app_id     varchar2(80) := NULL;
51 l_error      varchar2(2000);
52 l_pos varchar2(30);
53 
54 --
55 BEGIN
56 --
57 
58 IF( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
59   FND_LOG.STRING (LOG_LEVEL => FND_LOG.LEVEL_PROCEDURE,
60                MODULE    => g_module || '.' || l_procedure,
61                MESSAGE   => 'Entering ' || l_procedure);
62 END IF;
63 BEGIN
64   l_app_id := hr_external_application.get_app_id('MetaLink');
65 
66   EXCEPTION
67     WHEN OTHERS THEN
68       IF( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
69         FND_LOG.STRING (LOG_LEVEL => FND_LOG.LEVEL_ERROR,
70                      MODULE    => g_module || '.' || l_procedure,
71                      MESSAGE   => 'Unable to determine SSO external ' ||
72                                   'application - ' || sqlerrm);
73       END IF;
74 END;
75 
76 IF l_app_id IS NULL THEN
77   -- qqq
78   -- really should be a message
79   l_error := 'Unable to determine the external application details ' ||
80                'via SSO for Metalink.';
81 END IF;
82 
83 
84 IF l_error IS NULL THEN
85 
86   BEGIN
87     l_pos := 'GET' || l_app_id;
88     -- get existing details
89     hr_sso_utl.PSTORE_GET_APP_INFO(
90 	l_app_id,
91 	l_APP_NAME,
92 	l_APPTYPE,
93 	l_APPURL,
94 	l_LOGOUT_URL,
95 	l_USERFIELD,
96 	l_PWDFIELD,
97 	l_AUTHNEEDED,
98 	l_FNAME1,	l_FVAL1,
99 	l_FNAME2,	l_FVAL2,
100 	l_FNAME3,	l_FVAL3,
101 	l_FNAME4,	l_FVAL4,
102 	l_FNAME5,	l_FVAL5,
103 	l_FNAME6,	l_FVAL6,
104 	l_FNAME7,	l_FVAL7,
105 	l_FNAME8,	l_FVAL8,
106 	l_FNAME9,	l_FVAL9);
107 
108     -- work out new url
109     l_url := l_url || p_note_id;
110 
111     -- update with new info, if required
112     l_pos := 'modify';
113     IF l_APPURL <> l_url THEN
114       hr_sso_utl.PSTORE_MODIFY_APP_INFO(
115 	l_app_id,
116 	l_APP_NAME,
117 	l_APPTYPE,
118 	l_url,
119 	l_LOGOUT_URL,
120 	l_USERFIELD,
121 	l_PWDFIELD,
122 	l_AUTHNEEDED,
123 	l_FNAME1,	l_FVAL1,
124 	l_FNAME2,	l_FVAL2,
125 	l_FNAME3,	l_FVAL3,
126 	l_FNAME4,	l_FVAL4,
127 	l_FNAME5,	l_FVAL5,
128 	l_FNAME6,	l_FVAL6,
129 	l_FNAME7,	l_FVAL7,
130 	l_FNAME8,	l_FVAL8,
131 	l_FNAME9,	l_FVAL9);
132      END IF;
133 
134      EXCEPTION
135       WHEN OTHERS THEN
136         IF( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
137           FND_LOG.STRING (LOG_LEVEL => FND_LOG.LEVEL_ERROR,
138                        MODULE    => g_module || '.' || l_procedure,
139                        MESSAGE   => 'Unable to modify SSO external ' ||
140                                     'application - ' || sqlerrm);
141         END IF;
142         l_error := 'Unable to modify SSO external ' ||
143                    'application - ' || l_pos || ' - ' || sqlerrm || '.';
144     END;
145 
146   COMMIT;
147 
148   -- build url
149   l_url :=
150     hr_sso_utl.get_sso_query_path('wwsso_app_admin.fapp_process_login')
151                || '?p_app_id=' || l_app_id;
152 
153 END IF;
154 
155 -- display errors
156 IF l_error IS NOT NULL THEN
157   l_url := 'ERROR: ' || l_error;
158 END IF;
159 
160 IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
161   FND_LOG.STRING (LOG_LEVEL => FND_LOG.LEVEL_STATEMENT,
162                MODULE    => g_module || '.' || l_procedure,
163                MESSAGE   => 'url is ' || l_url);
164 END IF;
165 
166 IF( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
167   FND_LOG.STRING (LOG_LEVEL => FND_LOG.LEVEL_PROCEDURE,
168                MODULE    => g_module || '.' || l_procedure,
169                MESSAGE   => 'Exiting ' || l_procedure);
170 END IF;
171 
172 
173 RETURN(l_url);
174 
175 EXCEPTION
176   WHEN OTHERS THEN
177     IF( FND_LOG.LEVEL_ERROR >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
178       FND_LOG.STRING (LOG_LEVEL => FND_LOG.LEVEL_ERROR,
179                    MODULE    => g_module || '.' || l_procedure,
180                    MESSAGE   => 'Error whilst determining redirection URL' ||
181                                 ' - ' || sqlerrm);
182     END IF;
183 
184 
185 --
186 END get_redirect_url;
187 --
188 
189 
190 
191 
192 FUNCTION get_url (p_note_id IN VARCHAR2)
193   RETURN VARCHAR2 IS
194 --
195 pragma autonomous_transaction;
196 --
197 
198 l_procedure VARCHAR2(31) := 'get_url';
199 l_url       VARCHAR2(2000);
200 
201 --
202 BEGIN
203 --
204 
205 IF( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
206   FND_LOG.STRING (LOG_LEVEL => FND_LOG.LEVEL_PROCEDURE,
207                MODULE    => g_module || '.' || l_procedure,
208                MESSAGE   => 'Entering ' || l_procedure);
209 END IF;
210 
211 IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
212   FND_LOG.STRING (LOG_LEVEL => FND_LOG.LEVEL_STATEMENT,
213                MODULE    => g_module || '.' || l_procedure,
214                MESSAGE   => 'p_note_id = ' || p_note_id);
215 END IF;
216 
217 
218 -- get redirection URL (or error text)
219 -- after adding 'set,,' to primary obj string
220 l_url := get_redirect_url(p_note_id);
221 
222 IF SUBSTR(l_url,5) = 'ERROR' THEN
223   l_url := 'ERROR : APPS-47368 : ' || l_url ||
224            ' Examine FND logging information for more details.';
225 END IF;
226 
227 
228 IF( FND_LOG.LEVEL_STATEMENT >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
229   FND_LOG.STRING (LOG_LEVEL => FND_LOG.LEVEL_STATEMENT,
230                MODULE    => g_module || '.' || l_procedure,
231                MESSAGE   => 'URL is ' || l_url);
232 END IF;
233 
234 
235 IF( FND_LOG.LEVEL_PROCEDURE >= FND_LOG.G_CURRENT_RUNTIME_LEVEL ) THEN
236   FND_LOG.STRING (LOG_LEVEL => FND_LOG.LEVEL_PROCEDURE,
237                MODULE    => g_module || '.' || l_procedure,
238                MESSAGE   => 'Exiting ' || l_procedure);
239 END IF;
240 
241 COMMIT;
242 
243 RETURN(l_url);
244 
245 --
246 END get_url;
247 --
248 
249 
250 
251 END hr_metalink_int;