[Home] [Help]
PACKAGE BODY: APPS.HRKPI
Source
1 package body hrkpi as
2 /* $Header: hrkpi01.pkb 115.10 2002/12/03 13:22:50 apholt noship $ */
3
4
5 procedure generic_error(routine in varchar2,
6 errcode in number,
7 errmsg in varchar2) is
8 l_msg varchar2(2000);
9 begin
10 fnd_message.set_name('FND', 'SQL_PLSQL_ERROR');
11 fnd_message.set_token('ROUTINE', routine);
12 fnd_message.set_token('ERRNO', errcode);
13 fnd_message.set_token('REASON', errmsg);
14 fnd_message.raise_error;
15 end;
16
17 function request_pvt (context in varchar2, cookie in out nocopy varchar2)
18 return varchar2 as language java name
19 'oracle.apps.per.proxy.client.forms.Client.callServer(java.lang.String, java.lang.String[]) return String' ;
20
21 --
22 -- We make request() an autonmous tranaction so that it can be called
23 -- from sql. In particular in the getadapters() routine
24 --
25 function request (context in varchar2, cookie in out nocopy varchar2)
26 return varchar2 is
27 pragma autonomous_transaction ;
28 l_dbc varchar2(100);
29 l_ctx varchar2(100);
30 begin
31 -- find the dbc filename
32 select fnd_web_config.database_id
33 into l_dbc
34 from dual;
35
36 l_ctx := context || ':-:' || l_dbc;
37 hr_utility.trace('--> ' || l_ctx);
38
39 return(request_pvt(l_ctx, cookie));
40 end ;
41
42 procedure parseResponse_pvt (response in varchar2,
43 cmd in out nocopy varchar2,
44 action in out nocopy varchar2)
45 as language java name
46 'oracle.apps.per.proxy.client.forms.FormsMessage.parseResponse(java.lang.String, java.lang.String[],java.lang.String[])' ;
47
48 procedure parseResponse (response in varchar2,
49 cmd in out nocopy varchar2,
50 action in out nocopy varchar2) is
51 begin
52
53 parseResponse_pvt(response,cmd,action);
54
55 exception when others
56 then
57 generic_error(routine=>'HRKPI' ,
58 errcode=>null,
59 errmsg=> sqlerrm ) ;
60 end parseResponse;
61
62
63 --
64 -- For M1 return a list of numbers
65 --
66
67
68 function getadapters return hr_nvpair_tab_t is
69
70 l_response varchar2(2000);
71 l_cmd varchar2(255);
72 l_action varchar2(2000);
73 l_entry number := 1;
74 l_position_l number := 1;
75 l_position_m number;
76 l_position_r number;
77 l_cmdsep varchar2(10) := ':';
78 l_cmdsep_len number;
79 l_name varchar2(40);
80 l_value varchar2(240);
81 l_done boolean := false;
82 l_retval hr_nvpair_tab_t := hr_nvpair_tab_t();
83 l_store hr_nvpair_t;
84 l_cookie varchar2(100) := '';
85 e_fatal_error exception;
86
87 begin
88
89 -- get list of adapters
90 -- use a null cookie
91 l_response := request('GETADAPTERS',l_cookie);
92 --l_response := 'SETADAPTERS:1:ONE:2:TWO:3:THREE';
93
94 -- parse response
95 parseResponse(l_response,
96 l_cmd,
97 l_action);
98
99 if l_cmd='CLIENTERROR' then
100 raise e_fatal_error;
101 end if;
102
103
104 -- build up hr_nvpair_tab_t table
105 l_cmdsep_len := length(l_cmdsep);
106
107 while (not l_done) loop
108
109 -- find name / value
110 l_position_m := instr(l_action, l_cmdsep, l_position_l);
111 l_position_r := instr(l_action, l_cmdsep, l_position_l, 2);
112 if l_position_r = 0 then
113 l_position_r := length(l_action) + l_cmdsep_len;
114 l_done := true;
115 end if;
116
117 -- store values into table
118 l_name := substr(l_action, l_position_l,
119 l_position_m - l_position_l);
120
121 l_value := substr(l_action, l_position_m + l_cmdsep_len,
122 l_position_r - l_position_m - l_cmdsep_len);
123
124 l_store := hr_nvpair_t(l_name, l_value);
125
126 l_retval.EXTEND;
127 l_retval(l_entry) := l_store;
128
129 l_position_l := l_position_r + l_cmdsep_len;
130 l_entry := l_entry + 1;
131
132 end loop;
133
134
135 return(l_retval);
136
137 exception
138 when e_fatal_error then
139 generic_error(routine => 'hrkpi.getadapters',
140 errcode => null,
141 errmsg => l_action);
142
143
144 end getadapters;
145
146 --
147 -- For M1 return a list of numbers
148 --
149 function getevents return hr_extlib_evt_tab_t is
150 retval hr_extlib_evt_tab_t ;
151 begin
152
153 retval := hr_extlib_evt_tab_t( hr_extlib_evt_t('1','1','2'),
154 hr_extlib_evt_t('2','2','3'),
155 hr_extlib_evt_t('3','3','4') ) ;
156 return(retval);
157
158 end getevents;
159
160
161 --
162 -- Test routine
163 --
164 -- This starts dialog from Forms assuming current form
165 -- is PAYUSETW
166 --
167 procedure test is
168
169 cmd varchar2(50) ;
170 action varchar2(50) ;
171 l_numext number ;
172
173 procedure send(p_request in varchar2) is
174 l_cookie varchar2(100) := '' ;
175 l_response varchar2(1000) ;
176 l_promptrx constant varchar2(40) := '<<<' ;
177 l_prompttx constant varchar2(40) := '>>>' ;
178 begin
179 l_response := request(p_request,l_cookie);
180 hr_utility.trace('SENT');
181 hr_utility.trace(l_prompttx||p_request);
182 hr_utility.trace('RECEIVED');
183 hr_utility.trace(l_promptrx||l_response);
184 end send;
185
186 begin
187
188 dbms_java.set_output(100000);
189 hr_utility.set_trace_options('TRACE_DEST:DBMS_OUTPUT');
190 hr_utility.trace_on;
191
192 -- comment out before checking in unless we can assume fnd.b
193 -- is always installed
194 /*
195 fnd_aolj_util.getclassversionfromdb(
196 'oracle.apps.per.proxy.client.forms.Client');
197 fnd_aolj_util.getclassversionfromdb(
198 'oracle.apps.per.proxy.client.forms.FormsMessage');
199 fnd_aolj_util.getclassversionfromdb(
200 'oracle.apps.per.proxy.client.forms.UrlThread');
201 fnd_aolj_util.getclassversionfromdb(
202 'oracle.apps.per.proxy.client.forms.TimerThread');
203
204 */
205
206 send('INIT:DEV');
207 send('SETPRF:APPLWRK:/home/smcmilla/public_html/class2/');
208 send('SETCTXDEV:SYSTEM.CURRENT_FORM:PAYUSEET');
209 send('SETCTX:$PROFILES$:HR_KPI_USE_FIELD_CONTEXT:Y');
210 -- send('SETCTX:CTL.CONTEXT:STATE');
211
212 -- send('GETADAPTERS');
213
214 end ;
215
216
217 -- qqq Move to java side ??
218 procedure save_user_preference ( p_name in varchar2,
219 p_value in varchar2 ) is
220 pragma autonomous_transaction;
221 begin
222
223 if fnd_profile.save_user(p_name,p_value)
224 then
225 commit;
226 else
227 -- qqq should raise an error ?
228 null;
229 end if;
230
231 end ;
232
233 end hrkpi;