[Home] [Help]
PACKAGE BODY: APPS.XNP_TIMERS$XNP_TIMER_REGISTRY
Source
1 package body xnp_timers$xnp_timer_registry as
2 /* $Header: XNPWE2TB.pls 120.1 2005/06/21 04:12:58 appldev ship $ */
3
4
5 procedure FormView(Z_FORM_STATUS in number);
6 function BuildSQL(
7 P_ORDER_ID in varchar2 default null,
8 U_ORDER_ID in varchar2 default null,
9 P_REFERENCE_ID in varchar2 default null,
10 P_TIMER_MESSAGE_CODE in varchar2 default null,
11 P_STATUS in varchar2 default null,
12 P_START_TIME in varchar2 default null,
13 U_START_TIME in varchar2 default null,
14 P_END_TIME in varchar2 default null,
15 U_END_TIME in varchar2 default null,
16 P_NEXT_TIMER in varchar2 default null) return boolean;
17 function PreQuery(
18 P_ORDER_ID in varchar2 default null,
19 U_ORDER_ID in varchar2 default null,
20 P_REFERENCE_ID in varchar2 default null,
21 P_TIMER_MESSAGE_CODE in varchar2 default null,
22 P_STATUS in varchar2 default null,
23 P_START_TIME in varchar2 default null,
24 U_START_TIME in varchar2 default null,
25 P_END_TIME in varchar2 default null,
26 U_END_TIME in varchar2 default null,
27 P_NEXT_TIMER in varchar2 default null) return boolean;
28 function PostQuery(Z_POST_DML in boolean) return boolean;
29 procedure CreateQueryJavaScript;
30 procedure CreateListJavaScript;
31 procedure InitialiseDomain(P_ALIAS in varchar2);
32 function TIMER_MESSAGE_CODE_TranslateFK(
33 P_TIMER_MESSAGE_CODE in varchar2 default null,
34 Z_MODE in varchar2 default 'D') return boolean;
35 function NEXT_TIMER_TranslateFK(
36 P_NEXT_TIMER in varchar2 default null,
37 Z_MODE in varchar2 default 'D') return boolean;
38
39 QF_BODY_ATTRIBUTES constant varchar2(500) := 'BGCOLOR="CCCCCC"';
40 QF_QUERY_BUT_CAPTION constant varchar2(100) := htf.escape_sc(fnd_message.get_string('XNP','WEB_FIND_BUTTON'));
41 QF_CLEAR_BUT_CAPTION constant varchar2(100) := htf.escape_sc(fnd_message.get_string('XNP','WEB_CLEAR_BUTTON'));
42 QF_QUERY_BUT_ACTION constant varchar2(10) := 'QUERY';
43 QF_CLEAR_BUT_ACTION constant varchar2(10) := 'CLEAR';
44 QF_NUMBER_OF_COLUMNS constant number(4) := 2;
45 VF_BODY_ATTRIBUTES constant varchar2(500) := 'BGCOLOR="CCCCCC"';
46 VF_UPDATE_BUT_CAPTION constant varchar2(100) := XNP_WSGL.MsgGetText(6,XNP_WSGLM.CAP006_VF_UPDATE);
47 VF_CLEAR_BUT_CAPTION constant varchar2(100) := XNP_WSGL.MsgGetText(8,XNP_WSGLM.CAP008_VF_REVERT);
48 VF_DELETE_BUT_CAPTION constant varchar2(100) := XNP_WSGL.MsgGetText(7,XNP_WSGLM.CAP007_VF_DELETE);
49 VF_UPDATE_BUT_ACTION constant varchar2(10) := 'UPDATE';
50 VF_CLEAR_BUT_ACTION constant varchar2(10) := 'CLEAR';
51 VF_DELETE_BUT_ACTION constant varchar2(10) := 'DELETE';
52 VF_VERIFIED_DELETE constant varchar2(100) := 'VerifiedDelete';
53 VF_NUMBER_OF_COLUMNS constant number(4) := 2;
54 RL_BODY_ATTRIBUTES constant varchar2(500) := 'BGCOLOR="CCCCCC"';
55 RL_NEXT_BUT_CAPTION constant varchar2(100) := htf.escape_sc(fnd_message.get_string('XNP','WEB_NEXT_BUTTON'));
56 RL_PREV_BUT_CAPTION constant varchar2(100) := htf.escape_sc(fnd_message.get_string('XNP','WEB_PREVIOUS_BUTTON'));
57 RL_FIRST_BUT_CAPTION constant varchar2(100) := htf.escape_sc(fnd_message.get_string('XNP','WEB_FIRST_BUTTON'));
58 RL_LAST_BUT_CAPTION constant varchar2(100) := htf.escape_sc(fnd_message.get_string('XNP','WEB_LAST_BUTTON'));
59 RL_COUNT_BUT_CAPTION constant varchar2(100) := htf.escape_sc(fnd_message.get_string('XNP','WEB_COUNT_BUTTON'));
60 RL_REQUERY_BUT_CAPTION constant varchar2(100) := htf.escape_sc(fnd_message.get_string('XNP','WEB_REFRESH_BUTTON'));
61 RL_QUERY_BUT_CAPTION constant varchar2(100) := htf.escape_sc(fnd_message.get_string('XNP','WEB_SEARCH_BUTTON'));
62 RL_QUERY_BUT_ACTION constant varchar2(10) := 'QUERY';
63 RL_NEXT_BUT_ACTION constant varchar2(10) := 'NEXT';
64 RL_PREV_BUT_ACTION constant varchar2(10) := 'PREV';
65 RL_FIRST_BUT_ACTION constant varchar2(10) := 'FIRST';
66 RL_LAST_BUT_ACTION constant varchar2(10) := 'LAST';
67 RL_COUNT_BUT_ACTION constant varchar2(10) := 'COUNT';
68 RL_REQUERY_BUT_ACTION constant varchar2(10) := 'REQUERY';
69 RL_RECORD_SET_SIZE constant number(4) := 12;
70 RL_TOTAL_COUNT_REQD constant boolean := TRUE;
71 RL_NUMBER_OF_COLUMNS constant number(4) := 1;
72 LOV_BODY_ATTRIBUTES constant varchar2(500) := 'BGCOLOR="CCCCCC"';
73 LOV_FIND_BUT_CAPTION constant varchar2(100) := htf.escape_sc(fnd_message.get_string('XNP','WEB_FIND_BUTTON'));
74 LOV_CLOSE_BUT_CAPTION constant varchar2(100) := htf.escape_sc(fnd_message.get_string('XNP','WEB_CLOSE_BUTTON'));
75 LOV_FIND_BUT_ACTION constant varchar2(10) := 'FIND';
76 LOV_CLOSE_BUT_ACTION constant varchar2(10) := 'CLOSE';
77 LOV_BUTTON_TEXT constant varchar2(100) := htf.italic(fnd_message.get_string('XNP','LIST_OF_VALUES'));
78 LOV_FRAME constant varchar2(20) := null;
79 TF_BODY_ATTRIBUTES constant varchar2(500) := 'BGCOLOR="CCCCCC"';
80 DEF_BODY_ATTRIBUTES constant varchar2(500) := 'BGCOLOR="CCCCCC"';
81
82 CURR_VAL XNP_TIMER_REGISTRY%ROWTYPE;
83
84 TYPE FORM_REC IS RECORD
85 (TIMER_ID VARCHAR2(8)
86 ,ORDER_ID VARCHAR2(8)
87 ,REFERENCE_ID VARCHAR2(80)
88 ,XML_PAYLOAD_LINK VARCHAR2(2000)
89 ,WI_INSTANCE_ID VARCHAR2(8)
90 ,FA_INSTANCE_ID VARCHAR2(8)
91 ,TIMER_MESSAGE_CODE VARCHAR2(20)
92 ,STATUS VARCHAR2(20)
93 ,START_TIME VARCHAR2(20)
94 ,END_TIME VARCHAR2(20)
95 ,NEXT_TIMER VARCHAR2(20)
96 );
97 FORM_VAL FORM_REC;
98
99 TYPE NBT_REC IS RECORD
100 (XML_PAYLOAD_LINK VARCHAR2(2000)
101 );
102 NBT_VAL NBT_REC;
103
104 ZONE_SQL VARCHAR2(2236) := null;
105
106 D_STATUS XNP_WSGL.typDVRecord;
107 --------------------------------------------------------------------------------
108 -- Name: xnp_timers$xnp_timer_registry.InitialiseDomain
109 --
110 -- Description: Initialises the Domain Record for the given Column Usage
111 --
112 -- Parameters: P_ALIAS The alias of the column usage
113 --
114 --------------------------------------------------------------------------------
115 procedure InitialiseDomain(P_ALIAS in varchar2) is
116 begin
117
118 if P_ALIAS = 'STATUS' and not D_STATUS.Initialised then
119 D_STATUS.ColAlias := 'STATUS';
120 D_STATUS.ControlType := XNP_WSGL.DV_TEXT;
121 D_STATUS.DispWidth := 20;
122 D_STATUS.DispHeight := 1;
123 D_STATUS.MaxWidth := 20;
124 D_STATUS.UseMeanings := False;
125 D_STATUS.ColOptional := False;
126 D_STATUS.Vals(1) := 'ACTIVE';
127 D_STATUS.Meanings(1) := 'ACTIVE';
128 D_STATUS.Abbreviations(1) := '';
129 D_STATUS.Vals(2) := 'EXPIRED';
130 D_STATUS.Meanings(2) := 'EXPIRED';
131 D_STATUS.Abbreviations(2) := '';
132 D_STATUS.Vals(3) := 'CLOSED';
133 D_STATUS.Meanings(3) := 'CLOSED';
134 D_STATUS.Abbreviations(3) := '';
135 D_STATUS.Vals(4) := 'REMOVED';
136 D_STATUS.Meanings(4) := 'REMOVED';
137 D_STATUS.Abbreviations(4) := '';
138 D_STATUS.Vals(5) := 'WAITING';
139 D_STATUS.Meanings(5) := 'WAITING';
140 D_STATUS.Abbreviations(5) := '';
141 D_STATUS.NumOfVV := 5;
142 D_STATUS.Initialised := True;
143 end if;
144
145 exception
146 when others then
147 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry'||' : '||'Timers',
148 DEF_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.InitialseDomain');
149 end;
150
151 --------------------------------------------------------------------------------
152 -- Name: xnp_timers$xnp_timer_registry.TIMER_MESSAGE_CODE_TranslateFK
153 --
154 -- Description:
155 --
156 -- Parameters:
157 --
158 --------------------------------------------------------------------------------
159 function TIMER_MESSAGE_CODE_TranslateFK(
160 P_TIMER_MESSAGE_CODE in varchar2,
161 Z_MODE in varchar2) return boolean is
162 begin
163 select MESSAGE_TYPES_2.MSG_CODE
164 into CURR_VAL.TIMER_MESSAGE_CODE
165 from XNP_MSG_TYPES_B MESSAGE_TYPES_2
166 where rownum = 1
167 and ( MESSAGE_TYPES_2.MSG_CODE = P_TIMER_MESSAGE_CODE )
168 and MSG_TYPE = 'TIMER';
169 return TRUE;
170 exception
171 when no_data_found then
172 XNP_cg$errors.push('Timer: '||
173 XNP_WSGL.MsgGetText(226,XNP_WSGLM.MSG226_INVALID_FK),
174 'E', 'WSG', SQLCODE, 'xnp_timers$xnp_timer_registry.TIMER_MESSAGE_CODE_TranslateFK');
175 return FALSE;
176 when too_many_rows then
177 XNP_cg$errors.push('Timer: '||
178 XNP_WSGL.MsgGetText(227,XNP_WSGLM.MSG227_TOO_MANY_FKS),
179 'E', 'WSG', SQLCODE, 'xnp_timers$xnp_timer_registry.TIMER_MESSAGE_CODE_TranslateFK');
180 return FALSE;
181 when others then
182 XNP_cg$errors.push('Timer: '||SQLERRM,
183 'E', 'WSG', SQLCODE, 'xnp_timers$xnp_timer_registry.TIMER_MESSAGE_CODE_TranslateFK');
184 return FALSE;
185 end;
186 --------------------------------------------------------------------------------
187 -- Name: xnp_timers$xnp_timer_registry.NEXT_TIMER_TranslateFK
188 --
189 -- Description:
190 --
191 -- Parameters:
192 --
193 --------------------------------------------------------------------------------
194 function NEXT_TIMER_TranslateFK(
195 P_NEXT_TIMER in varchar2,
196 Z_MODE in varchar2) return boolean is
197 begin
198 select MSG_CODE
199 into CURR_VAL.NEXT_TIMER
200 from XNP_MSG_TYPES_B
201 where rownum = 1
202 and MSG_TYPE = 'TIMER'
203 and ( MSG_CODE = P_NEXT_TIMER
204 or (MSG_CODE is null and P_NEXT_TIMER is null) );
205 return TRUE;
206 exception
207 when no_data_found then
208 XNP_cg$errors.push('Next Timer: '||
209 XNP_WSGL.MsgGetText(226,XNP_WSGLM.MSG226_INVALID_FK),
210 'E', 'WSG', SQLCODE, 'xnp_timers$xnp_timer_registry.NEXT_TIMER_TranslateFK');
211 return FALSE;
212 when too_many_rows then
213 XNP_cg$errors.push('Next Timer: '||
214 XNP_WSGL.MsgGetText(227,XNP_WSGLM.MSG227_TOO_MANY_FKS),
215 'E', 'WSG', SQLCODE, 'xnp_timers$xnp_timer_registry.NEXT_TIMER_TranslateFK');
216 return FALSE;
217 when others then
218 XNP_cg$errors.push('Next Timer: '||SQLERRM,
219 'E', 'WSG', SQLCODE, 'xnp_timers$xnp_timer_registry.NEXT_TIMER_TranslateFK');
220 return FALSE;
221 end;
222 --------------------------------------------------------------------------------
223 -- Name: xnp_timers$xnp_timer_registry.timer_message_code_listofvalue
224 --
225 -- Description:
226 --
227 -- Parameters:
228 --
229 --------------------------------------------------------------------------------
230 procedure timer_message_code_listofvalue(
231 Z_FILTER in varchar2,
232 Z_MODE in varchar2,
233 Z_CALLER_URL in varchar2,
234 Z_ISSUE_WAIT in varchar2) is
235 L_SEARCH_STRING varchar2(1000);
236 L_ABORT boolean := FALSE;
237 L_INVALID_DEPEDANT boolean := FALSE;
238 L_ANY boolean := FALSE;
239 L_BODY_ATTRIBUTES VarChar2 (1000) := LOV_BODY_ATTRIBUTES;
240 begin
241
242 XNP_WSGL.RegisterURL('xnp_timers$xnp_timer_registry.timer_message_code_listofvalue');
243 XNP_WSGL.AddURLParam('Z_FILTER', Z_FILTER);
244 XNP_WSGL.AddURLParam('Z_MODE', Z_MODE);
245 XNP_WSGL.AddURLParam('Z_CALLER_URL', Z_CALLER_URL);
246 if XNP_WSGL.NotLowerCase then
247 return;
248 end if;
249
250
251 XNP_WSGL.OpenPageHead('Timers');
252
253 if Z_ISSUE_WAIT is not null then
254
255 htp.p ('<SCRIPT>
256 function RefreshMe()
257 {
258 location.href = location.href.substring (0, location.href.length - 1);
259 };
260 </SCRIPT>');
261
262 L_BODY_ATTRIBUTES := L_BODY_ATTRIBUTES || ' OnLoad="RefreshMe()"';
263
264 else
265 htp.p('<SCRIPT>
266 function PassBack(P_TIMER_MESSAGE_CODE) {
267 if (opener.location.href != document.forms[0].Z_CALLER_URL.value) {
268 alert("'||XNP_WSGL.MsgGetText(228,XNP_WSGLM.MSG228_LOV_NOT_IN_CONTEXT)||'");
269 return;
270 }
271 opener.document.forms[0].P_TIMER_MESSAGE_CODE.value = P_TIMER_MESSAGE_CODE;
272 opener.document.forms[0].P_TIMER_MESSAGE_CODE.focus();
273 close();
274 }
275 function Find_OnClick() {
276 document.forms[0].submit();
277 }');
278 if LOV_FRAME is null then
279 htp.p('function Close_OnClick() {
280 close();
281 }');
282 end if;
283 htp.p('</SCRIPT>');
284 end if;
285
286 xnp_timers$.TemplateHeader(TRUE,0);
287
288 XNP_WSGL.ClosePageHead;
289
290 XNP_WSGL.OpenPageBody(FALSE, p_attributes=>L_BODY_ATTRIBUTES);
291
292 htp.header(2, htf.italic('Timers'));
293
294 if Z_ISSUE_WAIT is not null then
295 htp.p(XNP_WSGL.MsgGetText(127,XNP_WSGLM.DSP127_LOV_PLEASE_WAIT));
296 XNP_WSGL.ClosePageBody;
297 return;
298 else
299 htp.formOpen('xnp_timers$xnp_timer_registry.timer_message_code_listofvalue');
300 XNP_WSGL.HiddenField('Z_CALLER_URL', Z_CALLER_URL);
301 XNP_WSGL.HiddenField('Z_MODE', Z_MODE);
302 end if;
303
304 L_SEARCH_STRING := rtrim(Z_FILTER);
305 if L_SEARCH_STRING is not null then
306 if ((instr(Z_FILTER,'%') = 0) and (instr(Z_FILTER,'_') = 0)) then
307 L_SEARCH_STRING := L_SEARCH_STRING || '%';
308 end if;
309 else
310 L_SEARCH_STRING := '%';
311 end if;
312
313 htp.para;
314 htp.p(XNP_WSGL.MsgGetText(19,XNP_WSGLM.CAP019_LOV_FILTER_CAPTION,'Timer'));
315 htp.para;
316 htp.formText('Z_FILTER', cvalue=>L_SEARCH_STRING);
317 htp.p('<input type="button" value="'||LOV_FIND_BUT_CAPTION||'" onclick="Find_OnClick()">');
318 if LOV_FRAME is null then
319 htp.p('<input type="button" value="'||LOV_CLOSE_BUT_CAPTION||'" onclick="Close_OnClick()">');
320 end if;
321 htp.formClose;
322
323
324 if not L_ABORT then
325
326 XNP_WSGL.LayoutOpen(XNP_WSGL.LAYOUT_TABLE, TRUE);
327
328 XNP_WSGL.LayoutRowStart;
329 XNP_WSGL.LayoutHeader(1, 'LEFT', 'Timer');
330 XNP_WSGL.LayoutRowEnd;
331
332 declare
333 l_uu varchar2(100);
334 l_ul varchar2(100);
335 l_lu varchar2(100);
336 l_ll varchar2(100);
337 l_retval number;
338 cursor c1(zmode varchar2,srch varchar2,uu varchar2,ul varchar2,lu varchar2,ll varchar2) is
339 select MESSAGE_TYPES_2.MSG_CODE TIMER_MESSAGE_CODE
340 from XNP_MSG_TYPES_B MESSAGE_TYPES_2
341 where ((MESSAGE_TYPES_2.MSG_CODE like uu||'%' or
342 MESSAGE_TYPES_2.MSG_CODE like ul||'%' or
343 MESSAGE_TYPES_2.MSG_CODE like lu||'%' or
344 MESSAGE_TYPES_2.MSG_CODE like ll||'%') and
345 upper(MESSAGE_TYPES_2.MSG_CODE) like upper(srch))
346 and MSG_TYPE = 'TIMER'
347 order by MESSAGE_TYPES_2.MSG_CODE;
348 begin
349 l_retval := XNP_WSGL.SearchComponents(L_SEARCH_STRING,l_uu,l_ul,l_lu,l_ll);
350 for c1rec in c1(Z_MODE, L_SEARCH_STRING,l_uu,l_ul,l_lu,l_ll) loop
351 CURR_VAL.TIMER_MESSAGE_CODE := c1rec.TIMER_MESSAGE_CODE;
352 XNP_WSGL.LayoutRowStart('TOP');
353 XNP_WSGL.LayoutData('<a href="javascript:PassBack('''||
354 replace(replace(c1rec.TIMER_MESSAGE_CODE,'"','"'),'''','\''')||''')">'||CURR_VAL.TIMER_MESSAGE_CODE||'</a>');
355 XNP_WSGL.LayoutRowEnd;
356 l_any := true;
357 end loop;
358 XNP_WSGL.LayoutClose;
359 if not l_any then
360 htp.p(XNP_WSGL.MsgGetText(224,XNP_WSGLM.MSG224_LOV_NO_ROWS));
361 end if;
362 end;
363 end if;
364
365 htp.p('<SCRIPT>document.forms[0].Z_FILTER.focus()</SCRIPT>');
366
367 XNP_WSGL.ClosePageBody;
368
369 exception
370 when others then
371 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry',
372 LOV_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.timer_message_code_listofvalue');
373 end;
374
375 --------------------------------------------------------------------------------
376 -- Name: xnp_timers$xnp_timer_registry.next_timer_listofvalues
377 --
378 -- Description:
379 --
380 -- Parameters:
381 --
382 --------------------------------------------------------------------------------
383 procedure next_timer_listofvalues(
384 Z_FILTER in varchar2,
385 Z_MODE in varchar2,
386 Z_CALLER_URL in varchar2,
387 Z_ISSUE_WAIT in varchar2) is
388 L_SEARCH_STRING varchar2(1000);
389 L_ABORT boolean := FALSE;
390 L_INVALID_DEPEDANT boolean := FALSE;
391 L_ANY boolean := FALSE;
392 L_BODY_ATTRIBUTES VarChar2 (1000) := LOV_BODY_ATTRIBUTES;
393 begin
394
395 XNP_WSGL.RegisterURL('xnp_timers$xnp_timer_registry.next_timer_listofvalues');
396 XNP_WSGL.AddURLParam('Z_FILTER', Z_FILTER);
397 XNP_WSGL.AddURLParam('Z_MODE', Z_MODE);
398 XNP_WSGL.AddURLParam('Z_CALLER_URL', Z_CALLER_URL);
399 if XNP_WSGL.NotLowerCase then
400 return;
401 end if;
402
403
404 XNP_WSGL.OpenPageHead(XNP_WSGL.MsgGetText(123,XNP_WSGLM.DSP123_LOV_CAPTION,
405 'Next Timer'));
406
407 if Z_ISSUE_WAIT is not null then
408
409 htp.p ('<SCRIPT>
410 function RefreshMe()
411 {
412 location.href = location.href.substring (0, location.href.length - 1);
413 };
414 </SCRIPT>');
415
416 L_BODY_ATTRIBUTES := L_BODY_ATTRIBUTES || ' OnLoad="RefreshMe()"';
417
418 else
419 htp.p('<SCRIPT>
420 function PassBack(P_NEXT_TIMER) {
421 if (opener.location.href != document.forms[0].Z_CALLER_URL.value) {
422 alert("'||XNP_WSGL.MsgGetText(228,XNP_WSGLM.MSG228_LOV_NOT_IN_CONTEXT)||'");
423 return;
424 }
425 opener.document.forms[0].P_NEXT_TIMER.value = P_NEXT_TIMER;
426 opener.document.forms[0].P_NEXT_TIMER.focus();
427 close();
428 }
429 function Find_OnClick() {
430 document.forms[0].submit();
431 }');
432 if LOV_FRAME is null then
433 htp.p('function Close_OnClick() {
434 close();
435 }');
436 end if;
437 htp.p('</SCRIPT>');
438 end if;
439
440 xnp_timers$.TemplateHeader(TRUE,0);
441
442 XNP_WSGL.ClosePageHead;
443
444 XNP_WSGL.OpenPageBody(FALSE, p_attributes=>L_BODY_ATTRIBUTES);
445
446 htp.header(2, htf.italic(XNP_WSGL.MsgGetText(123,XNP_WSGLM.DSP123_LOV_CAPTION,'Next Timer')));
447
448 if Z_ISSUE_WAIT is not null then
449 htp.p(XNP_WSGL.MsgGetText(127,XNP_WSGLM.DSP127_LOV_PLEASE_WAIT));
450 XNP_WSGL.ClosePageBody;
451 return;
452 else
453 htp.formOpen('xnp_timers$xnp_timer_registry.next_timer_listofvalues');
454 XNP_WSGL.HiddenField('Z_CALLER_URL', Z_CALLER_URL);
455 XNP_WSGL.HiddenField('Z_MODE', Z_MODE);
456 end if;
457
458 L_SEARCH_STRING := rtrim(Z_FILTER);
459 if L_SEARCH_STRING is not null then
460 if ((instr(Z_FILTER,'%') = 0) and (instr(Z_FILTER,'_') = 0)) then
461 L_SEARCH_STRING := L_SEARCH_STRING || '%';
462 end if;
463 else
464 L_SEARCH_STRING := '%';
465 end if;
466
467 htp.para;
468 htp.p(XNP_WSGL.MsgGetText(19,XNP_WSGLM.CAP019_LOV_FILTER_CAPTION,'Next Timer'));
469 htp.para;
470 htp.formText('Z_FILTER', cvalue=>L_SEARCH_STRING);
471 htp.p('<input type="button" value="'||LOV_FIND_BUT_CAPTION||'" onclick="Find_OnClick()">');
472 if LOV_FRAME is null then
473 htp.p('<input type="button" value="'||LOV_CLOSE_BUT_CAPTION||'" onclick="Close_OnClick()">');
474 end if;
475 htp.formClose;
476
477
478 if not L_ABORT then
479
480 XNP_WSGL.LayoutOpen(XNP_WSGL.LAYOUT_TABLE, TRUE);
481
482 XNP_WSGL.LayoutRowStart;
483 XNP_WSGL.LayoutHeader(1, 'LEFT', 'Next Timer');
484 XNP_WSGL.LayoutRowEnd;
485
486 declare
487 l_uu varchar2(100);
488 l_ul varchar2(100);
489 l_lu varchar2(100);
490 l_ll varchar2(100);
491 l_retval number;
492 cursor c1(zmode varchar2,srch varchar2,uu varchar2,ul varchar2,lu varchar2,ll varchar2) is
493 select MSG_CODE NEXT_TIMER
494 from XNP_MSG_TYPES_B
495 where ((MSG_CODE like uu||'%' or
496 MSG_CODE like ul||'%' or
497 MSG_CODE like lu||'%' or
498 MSG_CODE like ll||'%') and
499 upper(MSG_CODE) like upper(srch))
500 and MSG_TYPE = 'TIMER'
501 order by MSG_CODE;
502 begin
503 l_retval := XNP_WSGL.SearchComponents(L_SEARCH_STRING,l_uu,l_ul,l_lu,l_ll);
504 for c1rec in c1(Z_MODE, L_SEARCH_STRING,l_uu,l_ul,l_lu,l_ll) loop
505 CURR_VAL.NEXT_TIMER := c1rec.NEXT_TIMER;
506 XNP_WSGL.LayoutRowStart('TOP');
507 XNP_WSGL.LayoutData('<a href="javascript:PassBack('''||
508 replace(replace(c1rec.NEXT_TIMER,'"','"'),'''','\''')||''')">'||CURR_VAL.NEXT_TIMER||'</a>');
509 XNP_WSGL.LayoutRowEnd;
510 l_any := true;
511 end loop;
512 XNP_WSGL.LayoutClose;
513 if not l_any then
514 htp.p(XNP_WSGL.MsgGetText(224,XNP_WSGLM.MSG224_LOV_NO_ROWS));
515 end if;
516 end;
517 end if;
518
519 htp.p('<SCRIPT>document.forms[0].Z_FILTER.focus()</SCRIPT>');
520
521 XNP_WSGL.ClosePageBody;
522
523 exception
524 when others then
525 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry',
526 LOV_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.next_timer_listofvalues');
527 end;
528
529 --------------------------------------------------------------------------------
530 -- Name: xnp_timers$xnp_timer_registry.Startup
531 --
532 -- Description: Entry point for the 'XNP_TIMER_REGISTRY' module
533 -- component (Timers).
534 --
535 -- Parameters:
536 --
537 --------------------------------------------------------------------------------
538 procedure Startup(
539 Z_DIRECT_CALL in boolean,
540 Z_CHK in varchar2) is
541 begin
542
543 XNP_WSGL.RegisterURL('xnp_timers$xnp_timer_registry.startup');
544 XNP_WSGL.AddURLParam('Z_CHK', Z_CHK);
545
546 if not Z_DIRECT_CALL then
547 if not XNP_WSGL.ValidateChecksum('', Z_CHK) then
548 return;
549 end if;
550 end if;
551
552 XNP_WSGL.StoreURLLink(1, 'Timers');
553
554
555 FormQuery(
556 Z_DIRECT_CALL=>TRUE);
557
558 exception
559 when others then
560 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry'||' : '||'Timers',
561 DEF_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.Startup');
562 end;
563
564 --------------------------------------------------------------------------------
565 -- Name: xnp_timers$xnp_timer_registry.ActionQuery
566 --
567 -- Description: Called when a Query form is subitted to action the query request.
568 --
569 -- Parameters:
570 --
571 --------------------------------------------------------------------------------
572 procedure ActionQuery(
573 P_ORDER_ID in varchar2,
574 U_ORDER_ID in varchar2,
575 P_REFERENCE_ID in varchar2,
576 P_TIMER_MESSAGE_CODE in varchar2,
577 P_STATUS in varchar2,
578 P_START_TIME in varchar2,
579 U_START_TIME in varchar2,
580 P_END_TIME in varchar2,
581 U_END_TIME in varchar2,
582 P_NEXT_TIMER in varchar2,
583 Z_DIRECT_CALL in boolean default false,
584 Z_ACTION in varchar2,
585 Z_CHK in varchar2) is
586
587 L_CHK varchar2(10) := Z_CHK;
588 L_BUTCHK varchar2(100):= null;
589 begin
590
591 if Z_DIRECT_CALL then
592 L_CHK := to_char(XNP_WSGL.Checksum(''));
593 else
594 if not XNP_WSGL.ValidateChecksum('', L_CHK) then
595 return;
596 end if;
597 end if;
598
599 --if on the query form and insert is allowed
600 QueryList(
601 P_ORDER_ID,
602 U_ORDER_ID,
603 P_REFERENCE_ID,
604 P_TIMER_MESSAGE_CODE,
605 P_STATUS,
606 P_START_TIME,
607 U_START_TIME,
608 P_END_TIME,
609 U_END_TIME,
610 P_NEXT_TIMER,
611 null, L_BUTCHK, Z_DIRECT_CALL=>TRUE);
612
613 exception
614 when others then
615 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry'||' : '||'Timers',
616 DEF_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.ActionQuery');
617 end;
618
619 --------------------------------------------------------------------------------
620 -- Name: xnp_timers$xnp_timer_registry.QueryHits
621 --
622 -- Description: Returns the number or rows which matches the given search
623 -- criteria (if any).
624 --
625 -- Parameters:
626 --
627 --------------------------------------------------------------------------------
628 function QueryHits(
629 P_ORDER_ID in varchar2,
630 U_ORDER_ID in varchar2,
631 P_REFERENCE_ID in varchar2,
632 P_TIMER_MESSAGE_CODE in varchar2,
633 P_STATUS in varchar2,
634 P_START_TIME in varchar2,
635 U_START_TIME in varchar2,
636 P_END_TIME in varchar2,
637 U_END_TIME in varchar2,
638 P_NEXT_TIMER in varchar2) return number is
639 I_QUERY varchar2(2000) := '';
640 I_CURSOR integer;
641 I_VOID integer;
642 I_FROM_POS integer := 0;
643 I_COUNT number(10);
644 begin
645
646 if not BuildSQL(P_ORDER_ID,
647 U_ORDER_ID,
648 P_REFERENCE_ID,
649 P_TIMER_MESSAGE_CODE,
650 P_STATUS,
651 P_START_TIME,
652 U_START_TIME,
653 P_END_TIME,
654 U_END_TIME,
655 P_NEXT_TIMER) then
656 return -1;
657 end if;
658
659 if not PreQuery(P_ORDER_ID,
660 U_ORDER_ID,
661 P_REFERENCE_ID,
662 P_TIMER_MESSAGE_CODE,
663 P_STATUS,
664 P_START_TIME,
665 U_START_TIME,
666 P_END_TIME,
667 U_END_TIME,
668 P_NEXT_TIMER) then
669 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_ERROR, XNP_cg$errors.GetErrors,
670 'Timer Registry'||' : '||'Timers', DEF_BODY_ATTRIBUTES);
671 return -1;
672 end if;
673
674 I_FROM_POS := instr(upper(ZONE_SQL), ' FROM ');
675
676 if I_FROM_POS = 0 then
677 return -1;
678 end if;
679
680 I_QUERY := 'SELECT count(*)' ||
681 substr(ZONE_SQL, I_FROM_POS);
682
683 I_CURSOR := dbms_sql.open_cursor;
684 dbms_sql.parse(I_CURSOR, I_QUERY, dbms_sql.v7);
685 dbms_sql.define_column(I_CURSOR, 1, I_COUNT);
686 I_VOID := dbms_sql.execute(I_CURSOR);
687 I_VOID := dbms_sql.fetch_rows(I_CURSOR);
688 dbms_sql.column_value(I_CURSOR, 1, I_COUNT);
689 dbms_sql.close_cursor(I_CURSOR);
690
691 return I_COUNT;
692
693 exception
694 when others then
695 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry'||' : '||'Timers',
696 DEF_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.QueryHits');
697 return -1;
698 end;--------------------------------------------------------------------------------
699 -- Name: xnp_timers$xnp_timer_registry.BuildSQL
700 --
701 -- Description: Builds the SQL for the 'XNP_TIMER_REGISTRY' module component (Timers).
702 -- This incorporates all query criteria and Foreign key columns.
703 --
704 -- Parameters:
705 --
706 --------------------------------------------------------------------------------
707 function BuildSQL(
708 P_ORDER_ID in varchar2,
709 U_ORDER_ID in varchar2,
710 P_REFERENCE_ID in varchar2,
711 P_TIMER_MESSAGE_CODE in varchar2,
712 P_STATUS in varchar2,
713 P_START_TIME in varchar2,
714 U_START_TIME in varchar2,
715 P_END_TIME in varchar2,
716 U_END_TIME in varchar2,
717 P_NEXT_TIMER in varchar2) return boolean is
718
719 I_WHERE varchar2(2000);
720 begin
721
722 InitialiseDomain('STATUS');
723
724 -- Build up the Where clause
725 I_WHERE := I_WHERE || ' where MESSAGE_TYPES_2.MSG_CODE = TIMER_REGISTRY.TIMER_MESSAGE_CODE';
726 I_WHERE := I_WHERE || ' and ' || 'MESSAGE_TYPES_2.MSG_TYPE = ''TIMER''';
727
728 begin
729 XNP_WSGL.BuildWhere(P_ORDER_ID, U_ORDER_ID, 'TIMER_REGISTRY.ORDER_ID', XNP_WSGL.TYPE_NUMBER, I_WHERE);
730 exception
731 when others then
732 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_ERROR_QRY, SQLERRM,
733 'Timer Registry'||' : '||'Timers', DEF_BODY_ATTRIBUTES, NULL,
734 XNP_WSGL.MsgGetText(210,XNP_WSGLM.MSG210_INVALID_QRY,'Order Id'));
735 return false;
736 end;
737 XNP_WSGL.BuildWhere(P_REFERENCE_ID, 'TIMER_REGISTRY.REFERENCE_ID', XNP_WSGL.TYPE_CHAR, I_WHERE);
738 XNP_WSGL.BuildWhere(P_TIMER_MESSAGE_CODE, 'TIMER_REGISTRY.TIMER_MESSAGE_CODE', XNP_WSGL.TYPE_CHAR, I_WHERE);
739 XNP_WSGL.BuildWhere(XNP_WSGL.DomainValue(D_STATUS, P_STATUS), 'TIMER_REGISTRY.STATUS', XNP_WSGL.TYPE_CHAR, I_WHERE);
740 begin
741 XNP_WSGL.BuildWhere(P_START_TIME, U_START_TIME, 'TIMER_REGISTRY.START_TIME', XNP_WSGL.TYPE_DATE, I_WHERE, 'DD-MON-RRRR HH24:MI:SS');
742 exception
743 when others then
744 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_ERROR_QRY, SQLERRM,
745 'Timer Registry'||' : '||'Timers', DEF_BODY_ATTRIBUTES, NULL,
746 XNP_WSGL.MsgGetText(210,XNP_WSGLM.MSG210_INVALID_QRY,'Start Time'),
747 XNP_WSGL.MsgGetText(211,XNP_WSGLM.MSG211_EXAMPLE_TODAY,to_char(sysdate, 'DD-MON-RRRR HH24:MI:SS')));
748 return false;
749 end;
750 begin
751 XNP_WSGL.BuildWhere(P_END_TIME, U_END_TIME, 'TIMER_REGISTRY.END_TIME', XNP_WSGL.TYPE_DATE, I_WHERE, 'DD-MON-RRRR HH24:MI:SS');
752 exception
753 when others then
754 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_ERROR_QRY, SQLERRM,
755 'Timer Registry'||' : '||'Timers', DEF_BODY_ATTRIBUTES, NULL,
756 XNP_WSGL.MsgGetText(210,XNP_WSGLM.MSG210_INVALID_QRY,'End Time'),
757 XNP_WSGL.MsgGetText(211,XNP_WSGLM.MSG211_EXAMPLE_TODAY,to_char(sysdate, 'DD-MON-RRRR HH24:MI:SS')));
758 return false;
759 end;
760 XNP_WSGL.BuildWhere(P_NEXT_TIMER, 'TIMER_REGISTRY.NEXT_TIMER', XNP_WSGL.TYPE_CHAR, I_WHERE);
761
762 ZONE_SQL := 'SELECT TIMER_REGISTRY.TIMER_ID,
763 TIMER_REGISTRY.ORDER_ID,
764 TIMER_REGISTRY.REFERENCE_ID,
765 ''xnp_web_utils.show_msg_body?p_msg_id=''||TIMER_REGISTRY.TIMER_ID,
766 TIMER_REGISTRY.TIMER_MESSAGE_CODE,
767 TIMER_REGISTRY.STATUS,
768 TIMER_REGISTRY.START_TIME,
769 TIMER_REGISTRY.END_TIME,
770 TIMER_REGISTRY.NEXT_TIMER
771 FROM XNP_TIMER_REGISTRY TIMER_REGISTRY,
772 XNP_MSG_TYPES_B MESSAGE_TYPES_2';
773
774 ZONE_SQL := ZONE_SQL || I_WHERE;
775 ZONE_SQL := ZONE_SQL || ' ORDER BY TIMER_REGISTRY.TIMER_ID Desc ,
776 TIMER_REGISTRY.TIMER_MESSAGE_CODE';
777 return true;
778
779 exception
780 when others then
781 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry'||' : '||'Timers',
782 DEF_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.BuildSQL');
783 return false;
784 end;
785
786
787 --------------------------------------------------------------------------------
788 -- Name: xnp_timers$xnp_timer_registry.FormQuery
789 --
790 -- Description: This procedure builds an HTML form for entry of query criteria.
791 -- The criteria entered are to restrict the query of the 'XNP_TIMER_REGISTRY'
792 -- module component (Timers).
793 --
794 -- Parameters:
795 --
796 --------------------------------------------------------------------------------
797 procedure FormQuery(
798 Z_DIRECT_CALL in boolean,
799 Z_CHK in varchar2) is
800 begin
801
802 if not Z_DIRECT_CALL then
803 if not XNP_WSGL.ValidateChecksum('', Z_CHK) then
804 return;
805 end if;
806 end if;
807
808 XNP_WSGL.OpenPageHead('Timer Registry'||' : '||'Timers');
809 CreateQueryJavaScript;
810 -- Added for iHelp
811 htp.p('<SCRIPT> ');
812 icx_admin_sig.help_win_script('xnpDiag_timer', null, 'XNP');
813 htp.p('</SCRIPT>');
814 -- <<
815 xnp_timers$.TemplateHeader(TRUE,0);
816 XNP_WSGL.ClosePageHead;
817
818 -- Added for iHelp
819 htp.p('<A HREF="javascript:help_window()"');
820 htp.p('onMouseOver="window.status='||''''||'Help'||''''||';return true">');
821 htp.p(htf.img('/OA_MEDIA/afhelp.gif'));
822 htp.p('</A>');
823 htp.p(htf.nl);
824 -- <<
825
826 XNP_WSGL.OpenPageBody(FALSE, p_attributes=>QF_BODY_ATTRIBUTES);
827
828 htp.p(htf.bold(fnd_message.get_string('XNP','WEB_TITLE')));
829 xnp_timers$.FirstPage(TRUE);
830 htp.p(htf.header(1,fnd_message.get_string('XNP','WEB_XNPTIMER_DETAILS_TITLE')));
831 htp.para;
832 htp.p(XNP_WSGL.MsgGetText(116,XNP_WSGLM.DSP116_ENTER_QRY_CAPTION,'Timers'));
833 htp.para;
834
835 htp.formOpen(curl => 'xnp_timers$xnp_timer_registry.actionquery', cattributes => 'NAME="frmZero"');
836
837 XNP_WSGL.LayoutOpen(XNP_WSGL.LAYOUT_TABLE);
838
839 XNP_WSGL.LayoutRowStart;
840 for i in 1..QF_NUMBER_OF_COLUMNS loop
841 XNP_WSGL.LayoutHeader(13, 'LEFT', NULL);
842 XNP_WSGL.LayoutHeader(20, 'LEFT', NULL);
843 end loop;
844 XNP_WSGL.LayoutRowEnd;
845
846 XNP_WSGL.LayoutRowStart('TOP');
847 XNP_WSGL.LayoutData(htf.bold('Order Id:'));
848 XNP_WSGL.LayoutData(XNP_WSGL.BuildQueryControl('ORDER_ID', '8', TRUE));
849 XNP_WSGL.LayoutRowEnd;
850 XNP_WSGL.LayoutRowStart('TOP');
851 XNP_WSGL.LayoutData(htf.bold('Reference Id:'));
852 XNP_WSGL.LayoutData(XNP_WSGL.BuildQueryControl('REFERENCE_ID', '20', FALSE));
853 XNP_WSGL.LayoutRowEnd;
854 XNP_WSGL.LayoutRowStart('TOP');
855 XNP_WSGL.LayoutData(htf.bold('Timer:'));
856 XNP_WSGL.LayoutData(XNP_WSGL.BuildQueryControl('TIMER_MESSAGE_CODE', '20', FALSE) || ' ' ||
857 XNP_WSGJSL.LOVButton('TIMER_MESSAGE_CODE',LOV_BUTTON_TEXT));
858 XNP_WSGL.LayoutRowEnd;
859 XNP_WSGL.LayoutRowStart('TOP');
860 XNP_WSGL.LayoutData(htf.bold('Status:'));
861 InitialiseDomain('STATUS');
862 XNP_WSGL.LayoutData(XNP_WSGL.BuildDVControl(D_STATUS, XNP_WSGL.CTL_QUERY));
863 XNP_WSGL.LayoutRowEnd;
864 XNP_WSGL.LayoutRowStart('TOP');
865 XNP_WSGL.LayoutData(htf.bold('Start Time:'));
866 XNP_WSGL.LayoutData(XNP_WSGL.BuildQueryControl('START_TIME', '18', TRUE));
867 XNP_WSGL.LayoutRowEnd;
868 XNP_WSGL.LayoutRowStart('TOP');
869 XNP_WSGL.LayoutData(htf.bold('End Time:'));
870 XNP_WSGL.LayoutData(XNP_WSGL.BuildQueryControl('END_TIME', '18', TRUE));
871 XNP_WSGL.LayoutRowEnd;
872 XNP_WSGL.LayoutRowStart('TOP');
873 XNP_WSGL.LayoutData(htf.bold('Next Timer:'));
874 XNP_WSGL.LayoutData(XNP_WSGL.BuildQueryControl('NEXT_TIMER', '20', FALSE) || ' ' ||
875 XNP_WSGJSL.LOVButton('NEXT_TIMER',LOV_BUTTON_TEXT));
876 XNP_WSGL.LayoutRowEnd;
877
878 XNP_WSGL.LayoutClose;
879
880 htp.p ('<SCRIPT><!--');
881 htp.p ('document.write (''<input type=hidden name="Z_ACTION">'')');
882 htp.p ('//-->');
883 htp.p ('</SCRIPT>');
884 htp.p ('<SCRIPT><!--');
885 htp.p ('document.write (''' || htf.formSubmit('', htf.escape_sc(QF_QUERY_BUT_CAPTION), 'onClick="this.form.Z_ACTION.value=\''' || QF_QUERY_BUT_ACTION || '\''"') || ''')');
886 htp.p ('//-->');
887 htp.p ('</SCRIPT>');
888
889 if XNP_WSGL.IsSupported ('NOSCRIPT')
890 then
891
892 htp.p ('<NOSCRIPT>');
893 htp.formSubmit('Z_ACTION', htf.escape_sc(QF_QUERY_BUT_CAPTION));
894 htp.p ('</NOSCRIPT>');
895
896 end if;
897 htp.formReset(htf.escape_sc(QF_CLEAR_BUT_CAPTION));
898
899 XNP_WSGL.HiddenField('Z_CHK',
900 to_char(XNP_WSGL.Checksum('')));
901 htp.formClose;
902
903 htp.p(htf.img('/OA_MEDIA/FNDLOGOS.gif'));
904
905 XNP_WSGL.ClosePageBody;
906
907 exception
908 when others then
909 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry'||' : '||'Timers',
910 QF_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.FormQuery');
911 XNP_WSGL.ClosePageBody;
912 end;
913
914 --------------------------------------------------------------------------------
915 -- Name: xnp_timers$xnp_timer_registry.FormView
916 --
917 -- Description: This procedure builds an HTML form for view/update of fields in
918 -- the 'XNP_TIMER_REGISTRY' module component (Timers).
919 --
920 -- Parameters: Z_FORM_STATUS Status of the form
921 --
922 --------------------------------------------------------------------------------
923 procedure FormView(Z_FORM_STATUS in number) is
924
925
926 begin
927
928 XNP_WSGL.OpenPageHead('Timer Registry'||' : '||'Timers');
929 xnp_timers$.TemplateHeader(TRUE,0);
930 XNP_WSGL.ClosePageHead;
931
932 XNP_WSGL.OpenPageBody(FALSE, p_attributes=>VF_BODY_ATTRIBUTES);
933
934 htp.p(htf.bold(fnd_message.get_string('XNP','WEB_TITLE')));
935 htp.p(htf.header(1,fnd_message.get_string('XNP','WEB_XNPTIMER_DETAILS_TITLE')));
936 InitialiseDomain('STATUS');
937
938
939
940 FORM_VAL.TIMER_ID := CURR_VAL.TIMER_ID;
941 FORM_VAL.ORDER_ID := CURR_VAL.ORDER_ID;
942 FORM_VAL.REFERENCE_ID := CURR_VAL.REFERENCE_ID;
943 FORM_VAL.XML_PAYLOAD_LINK := NBT_VAL.XML_PAYLOAD_LINK;
944 FORM_VAL.WI_INSTANCE_ID := CURR_VAL.WI_INSTANCE_ID;
945 FORM_VAL.FA_INSTANCE_ID := CURR_VAL.FA_INSTANCE_ID;
946 FORM_VAL.TIMER_MESSAGE_CODE := CURR_VAL.TIMER_MESSAGE_CODE;
947 FORM_VAL.STATUS := XNP_WSGL.DomainMeaning(D_STATUS, CURR_VAL.STATUS);
948 FORM_VAL.START_TIME := ltrim(to_char(CURR_VAL.START_TIME, 'DD-MON-RRRR HH24:MI:SS'));
949 FORM_VAL.END_TIME := ltrim(to_char(CURR_VAL.END_TIME, 'DD-MON-RRRR HH24:MI:SS'));
950 FORM_VAL.NEXT_TIMER := CURR_VAL.NEXT_TIMER;
951
952 if Z_FORM_STATUS = XNP_WSGL.FORM_STATUS_ERROR then
953 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_ERROR, XNP_cg$errors.GetErrors,
954 'Timer Registry'||' : '||'Timers', VF_BODY_ATTRIBUTES);
955 elsif Z_FORM_STATUS = XNP_WSGL.FORM_STATUS_UPD then
956 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_SUCCESS, XNP_WSGL.MsgGetText(207, XNP_WSGLM.MSG207_ROW_UPDATED),
957 'Timer Registry'||' : '||'Timers', VF_BODY_ATTRIBUTES);
958 elsif Z_FORM_STATUS = XNP_WSGL.FORM_STATUS_INS then
959 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_SUCCESS, XNP_WSGL.MsgGetText(208, XNP_WSGLM.MSG208_ROW_INSERTED),
960 'Timer Registry'||' : '||'Timers', VF_BODY_ATTRIBUTES);
961 end if;
962
963
964 XNP_WSGL.LayoutOpen(XNP_WSGL.LAYOUT_TABLE, P_BORDER=>TRUE);
965
966 XNP_WSGL.LayoutRowStart;
967 for i in 1..VF_NUMBER_OF_COLUMNS loop
968 XNP_WSGL.LayoutHeader(31, 'LEFT', NULL);
969 XNP_WSGL.LayoutHeader(30, 'LEFT', NULL);
970 end loop;
971 XNP_WSGL.LayoutRowEnd;
972
973 XNP_WSGL.LayoutRowStart('TOP');
974 XNP_WSGL.LayoutData(htf.bold('Order Id:'));
975 XNP_WSGL.LayoutData(htf.bold(FORM_VAL.ORDER_ID));
976 XNP_WSGL.LayoutRowEnd;
977 XNP_WSGL.LayoutRowStart('TOP');
978 XNP_WSGL.LayoutData(htf.bold('Reference Id:'));
979 XNP_WSGL.LayoutData(htf.bold(FORM_VAL.REFERENCE_ID));
980 XNP_WSGL.LayoutRowEnd;
981 if NBT_VAL.XML_PAYLOAD_LINK is not null then
982 XNP_WSGL.LayoutRowStart('TOP');
983 XNP_WSGL.LayoutData(htf.anchor2(FORM_VAL.XML_PAYLOAD_LINK, 'XML'));
984 XNP_WSGL.LayoutData('');
985 XNP_WSGL.LayoutRowEnd;
986 end if;
987 XNP_WSGL.LayoutRowStart('TOP');
988 XNP_WSGL.LayoutData(htf.bold('Workitem Instance Id:'));
989 XNP_WSGL.LayoutData(FORM_VAL.WI_INSTANCE_ID);
990 XNP_WSGL.LayoutRowEnd;
991 XNP_WSGL.LayoutRowStart('TOP');
992 XNP_WSGL.LayoutData(htf.bold('Fulfillment Action Instance Id:'));
993 XNP_WSGL.LayoutData(FORM_VAL.FA_INSTANCE_ID);
994 XNP_WSGL.LayoutRowEnd;
995 XNP_WSGL.LayoutRowStart('TOP');
996 XNP_WSGL.LayoutData(htf.bold('Timer:'));
997 XNP_WSGL.LayoutData(htf.bold(FORM_VAL.TIMER_MESSAGE_CODE));
998 XNP_WSGL.LayoutRowEnd;
999 XNP_WSGL.LayoutRowStart('TOP');
1000 XNP_WSGL.LayoutData(htf.bold('Status:'));
1001 XNP_WSGL.LayoutData(htf.bold(FORM_VAL.STATUS));
1002 XNP_WSGL.LayoutRowEnd;
1003 XNP_WSGL.LayoutRowStart('TOP');
1004 XNP_WSGL.LayoutData(htf.bold('Start Time:'));
1005 XNP_WSGL.LayoutData(htf.bold(FORM_VAL.START_TIME));
1006 XNP_WSGL.LayoutRowEnd;
1007 XNP_WSGL.LayoutRowStart('TOP');
1008 XNP_WSGL.LayoutData(htf.bold('End Time:'));
1009 XNP_WSGL.LayoutData(htf.bold(FORM_VAL.END_TIME));
1010 XNP_WSGL.LayoutRowEnd;
1011 XNP_WSGL.LayoutRowStart('TOP');
1012 XNP_WSGL.LayoutData(htf.bold('Next Timer:'));
1013 XNP_WSGL.LayoutData(htf.bold(FORM_VAL.NEXT_TIMER));
1014 XNP_WSGL.LayoutRowEnd;
1015
1016 XNP_WSGL.LayoutClose;
1017
1018
1019
1020
1021
1022
1023 XNP_WSGL.ReturnLinks('0.1', XNP_WSGL.MENU_LONG);
1024 XNP_WSGL.NavLinks;
1025
1026
1027 htp.p(htf.img('/OA_MEDIA/FNDLOGOS.gif'));
1028
1029 XNP_WSGL.ClosePageBody;
1030
1031 exception
1032 when others then
1033 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry'||' : '||'Timers',
1034 VF_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.FormView');
1035 XNP_WSGL.ClosePageBody;
1036 end;
1037
1038 --------------------------------------------------------------------------------
1039 -- Name: xnp_timers$xnp_timer_registry.QueryView
1040 --
1041 -- Description: Queries the details of a single row in preparation for display.
1042 --
1043 -- Parameters:
1044 --
1045 --------------------------------------------------------------------------------
1046 procedure QueryView(
1047 P_TIMER_ID in varchar2,
1048 Z_POST_DML in boolean,
1049 Z_FORM_STATUS in number,
1050 Z_DIRECT_CALL in boolean,
1051 Z_CHK in varchar2) is
1052 begin
1053
1054 XNP_WSGL.RegisterURL('xnp_timers$xnp_timer_registry.queryview');
1055 XNP_WSGL.AddURLParam('P_TIMER_ID', P_TIMER_ID);
1056 XNP_WSGL.AddURLParam('Z_CHK', Z_CHK);
1057 if not Z_DIRECT_CALL then
1058 if not XNP_WSGL.ValidateChecksum('' ||
1059 P_TIMER_ID, Z_CHK) then
1060 return;
1061 end if;
1062 end if;
1063
1064
1065 if P_TIMER_ID is not null then
1066 CURR_VAL.TIMER_ID := P_TIMER_ID;
1067 end if;
1068 if Z_POST_DML then
1069
1070 null;
1071
1072 else
1073
1074 SELECT TIMER_REGISTRY.TIMER_ID,
1075 TIMER_REGISTRY.ORDER_ID,
1076 TIMER_REGISTRY.REFERENCE_ID,
1077 TIMER_REGISTRY.WI_INSTANCE_ID,
1078 TIMER_REGISTRY.FA_INSTANCE_ID,
1079 TIMER_REGISTRY.TIMER_MESSAGE_CODE,
1080 TIMER_REGISTRY.STATUS,
1081 TIMER_REGISTRY.START_TIME,
1082 TIMER_REGISTRY.END_TIME,
1083 TIMER_REGISTRY.NEXT_TIMER
1084 INTO CURR_VAL.TIMER_ID,
1085 CURR_VAL.ORDER_ID,
1086 CURR_VAL.REFERENCE_ID,
1087 CURR_VAL.WI_INSTANCE_ID,
1088 CURR_VAL.FA_INSTANCE_ID,
1089 CURR_VAL.TIMER_MESSAGE_CODE,
1090 CURR_VAL.STATUS,
1091 CURR_VAL.START_TIME,
1092 CURR_VAL.END_TIME,
1093 CURR_VAL.NEXT_TIMER
1094 FROM XNP_TIMER_REGISTRY TIMER_REGISTRY,
1095 XNP_MSG_TYPES_B MESSAGE_TYPES_2
1096 WHERE TIMER_REGISTRY.TIMER_ID = CURR_VAL.TIMER_ID
1097 AND MESSAGE_TYPES_2.MSG_CODE = TIMER_REGISTRY.TIMER_MESSAGE_CODE
1098 ;
1099
1100 end if;
1101
1102 NBT_VAL.XML_PAYLOAD_LINK := 'xnp_web_utils.show_msg_body?p_msg_id='||CURR_VAL.TIMER_ID;
1103
1104 if not PostQuery(Z_POST_DML) then
1105 FormView(XNP_WSGL.FORM_STATUS_ERROR);
1106 else
1107 FormView(Z_FORM_STATUS);
1108 end if;
1109
1110 exception
1111 when NO_DATA_FOUND then
1112 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_ERROR, XNP_WSGL.MsgGetText(204, XNP_WSGLM.MSG204_ROW_DELETED),
1113 'Timer Registry'||' : '||'Timers', VF_BODY_ATTRIBUTES);
1114 when others then
1115 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry'||' : '||'Timers',
1116 VF_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.QueryView');
1117 end;
1118 --------------------------------------------------------------------------------
1119 -- Name: xnp_timers$xnp_timer_registry.QueryList
1120 --
1121 -- Description: This procedure builds the Record list for the 'XNP_TIMER_REGISTRY'
1122 -- module component (Timers).
1123 --
1124 -- The Record List displays context information for records which
1125 -- match the specified query criteria.
1126 -- Sets of records are displayed (12 records at a time)
1127 -- with Next/Previous buttons to get other record sets.
1128 --
1129 -- The first context column will be created as a link to the
1130 -- xnp_timers$xnp_timer_registry.FormView procedure for display of more details
1131 -- of that particular row.
1132 --
1133 -- Parameters: P_ORDER_ID - Order Id
1134 -- U_ORDER_ID - Order Id (upper bound)
1135 -- P_REFERENCE_ID - Reference Id
1136 -- P_TIMER_MESSAGE_CODE - Timer
1137 -- P_STATUS - Status
1138 -- P_START_TIME - Start Time
1139 -- U_START_TIME - Start Time (upper bound)
1140 -- P_END_TIME - End Time
1141 -- U_END_TIME - End Time (upper bound)
1142 -- P_NEXT_TIMER - Next Timer
1143 -- Z_START - First record to display
1144 -- Z_ACTION - Next or Previous set
1145 --
1146 --------------------------------------------------------------------------------
1147 procedure QueryList(
1148 P_ORDER_ID in varchar2,
1149 U_ORDER_ID in varchar2,
1150 P_REFERENCE_ID in varchar2,
1151 P_TIMER_MESSAGE_CODE in varchar2,
1152 P_STATUS in varchar2,
1153 P_START_TIME in varchar2,
1154 U_START_TIME in varchar2,
1155 P_END_TIME in varchar2,
1156 U_END_TIME in varchar2,
1157 P_NEXT_TIMER in varchar2,
1158 Z_START in varchar2,
1159 Z_ACTION in varchar2,
1160 Z_DIRECT_CALL in boolean,
1161 Z_CHK in varchar2) is
1162
1163 L_VF_FRAME varchar2(20) := null;
1164 I_WHERE varchar2(2000) := '';
1165 I_CURSOR integer;
1166 I_VOID integer;
1167 I_ROWS_FETCHED integer := 0;
1168 I_TOTAL_ROWS integer := 0;
1169 I_START number(6) := to_number(Z_START);
1170 I_COUNT number(10) := 0;
1171 I_OF_TOTAL_TEXT varchar2(200) := '';
1172 I_NEXT_BUT boolean;
1173 I_PREV_BUT boolean;
1174 L_CHECKSUM varchar2(10);
1175
1176 begin
1177
1178 XNP_WSGL.RegisterURL('xnp_timers$xnp_timer_registry.querylist');
1179 XNP_WSGL.AddURLParam('P_ORDER_ID', P_ORDER_ID);
1180 XNP_WSGL.AddURLParam('U_ORDER_ID', U_ORDER_ID);
1181 XNP_WSGL.AddURLParam('P_REFERENCE_ID', P_REFERENCE_ID);
1182 XNP_WSGL.AddURLParam('P_TIMER_MESSAGE_CODE', P_TIMER_MESSAGE_CODE);
1183 XNP_WSGL.AddURLParam('P_STATUS', P_STATUS);
1184 XNP_WSGL.AddURLParam('P_START_TIME', P_START_TIME);
1185 XNP_WSGL.AddURLParam('U_START_TIME', U_START_TIME);
1186 XNP_WSGL.AddURLParam('P_END_TIME', P_END_TIME);
1187 XNP_WSGL.AddURLParam('U_END_TIME', U_END_TIME);
1188 XNP_WSGL.AddURLParam('P_NEXT_TIMER', P_NEXT_TIMER);
1189 XNP_WSGL.AddURLParam('Z_START', Z_START);
1190 XNP_WSGL.AddURLParam('Z_ACTION', Z_ACTION);
1191 XNP_WSGL.AddURLParam('Z_CHK', Z_CHK);
1192 if not Z_DIRECT_CALL then
1193 if not XNP_WSGL.ValidateChecksum('', Z_CHK) then
1194 return;
1195 end if;
1196 end if;
1197
1198 if (Z_ACTION = RL_QUERY_BUT_ACTION) or (Z_ACTION = RL_QUERY_BUT_CAPTION) then
1199 FormQuery(
1200 Z_DIRECT_CALL=>TRUE);
1201 return;
1202 end if;
1203
1204 XNP_WSGL.OpenPageHead('Timer Registry'||' : '||'Timers');
1205 CreateListJavaScript;
1206 xnp_timers$.TemplateHeader(TRUE,0);
1207 XNP_WSGL.ClosePageHead;
1208
1209 XNP_WSGL.OpenPageBody(FALSE, p_attributes=>RL_BODY_ATTRIBUTES);
1210
1211 htp.p(htf.bold(fnd_message.get_string('XNP','WEB_TITLE')));
1212 htp.p(htf.header(1,fnd_message.get_string('XNP','WEB_XNPTIMER_DETAILS_TITLE')));
1213 if (Z_ACTION = RL_LAST_BUT_ACTION) or (Z_ACTION = RL_LAST_BUT_CAPTION) or
1214 (Z_ACTION = RL_COUNT_BUT_ACTION) or (Z_ACTION = RL_COUNT_BUT_CAPTION) or
1215 (RL_TOTAL_COUNT_REQD)
1216 then
1217
1218 I_COUNT := QueryHits(
1219 P_ORDER_ID,
1220 U_ORDER_ID,
1221 P_REFERENCE_ID,
1222 P_TIMER_MESSAGE_CODE,
1223 P_STATUS,
1224 P_START_TIME,
1225 U_START_TIME,
1226 P_END_TIME,
1227 U_END_TIME,
1228 P_NEXT_TIMER);
1229 if I_COUNT = -1 then
1230 XNP_WSGL.ClosePageBody;
1231 return;
1232 end if;
1233 end if;
1234
1235 if (Z_ACTION = RL_COUNT_BUT_ACTION) or (Z_ACTION = RL_COUNT_BUT_CAPTION) or
1236 RL_TOTAL_COUNT_REQD then
1237 I_OF_TOTAL_TEXT := ' '||XNP_WSGL.MsgGetText(111,XNP_WSGLM.DSP111_OF_TOTAL, to_char(I_COUNT));
1238 end if;
1239
1240 if Z_START IS NULL or (Z_ACTION = RL_FIRST_BUT_ACTION) or (Z_ACTION = RL_FIRST_BUT_CAPTION) then
1241 I_START := 1;
1242 elsif (Z_ACTION = RL_NEXT_BUT_ACTION) or (Z_ACTION = RL_NEXT_BUT_CAPTION) then
1243 I_START := I_START + RL_RECORD_SET_SIZE;
1244 elsif (Z_ACTION = RL_PREV_BUT_ACTION) or (Z_ACTION = RL_PREV_BUT_CAPTION) then
1245 I_START := I_START - RL_RECORD_SET_SIZE;
1246 elsif (Z_ACTION = RL_LAST_BUT_ACTION) or (Z_ACTION = RL_LAST_BUT_CAPTION) then
1247 I_START := 1 + (floor((I_COUNT-1)/RL_RECORD_SET_SIZE)*RL_RECORD_SET_SIZE);
1248 elsif Z_ACTION is null and I_START = 1 then
1249 null;
1250 elsif Z_ACTION IS NULL then
1251 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_ERROR, XNP_WSGL.MsgGetText(215,XNP_WSGLM.MSG215_NO_MULTIPLE_SUBMITS),
1252 'Timer Registry'||' : '||'Timers', RL_BODY_ATTRIBUTES);
1253 XNP_WSGL.ClosePageBody;
1254 return;
1255 end if;
1256
1257 if I_START < 1 then
1258 I_START := 1;
1259 end if;
1260
1261 I_PREV_BUT := TRUE;
1262 I_NEXT_BUT := FALSE;
1263 if I_START = 1 or Z_ACTION IS NULL then
1264 I_PREV_BUT := FALSE;
1265 end if;
1266
1267 if nvl(Z_ACTION, 'X') <> 'DONTQUERY' then
1268
1269 if ZONE_SQL IS NULL then
1270 if not BuildSQL(
1271 P_ORDER_ID,
1272 U_ORDER_ID,
1273 P_REFERENCE_ID,
1274 P_TIMER_MESSAGE_CODE,
1275 P_STATUS,
1276 P_START_TIME,
1277 U_START_TIME,
1278 P_END_TIME,
1279 U_END_TIME,
1280 P_NEXT_TIMER) then
1281 XNP_WSGL.ClosePageBody;
1282 return;
1283 end if;
1284 end if;
1285
1286 if not PreQuery(
1287 P_ORDER_ID,
1288 U_ORDER_ID,
1289 P_REFERENCE_ID,
1290 P_TIMER_MESSAGE_CODE,
1291 P_STATUS,
1292 P_START_TIME,
1293 U_START_TIME,
1294 P_END_TIME,
1295 U_END_TIME,
1296 P_NEXT_TIMER) then
1297 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_ERROR, XNP_cg$errors.GetErrors,
1298 'Timer Registry'||' : '||'Timers', RL_BODY_ATTRIBUTES);
1299 return;
1300 end if;
1301
1302 InitialiseDomain('STATUS');
1303
1304
1305 I_CURSOR := dbms_sql.open_cursor;
1306 dbms_sql.parse(I_CURSOR, ZONE_SQL, dbms_sql.v7);
1307 dbms_sql.define_column(I_CURSOR, 1, CURR_VAL.TIMER_ID);
1308 dbms_sql.define_column(I_CURSOR, 2, CURR_VAL.ORDER_ID);
1309 dbms_sql.define_column(I_CURSOR, 3, CURR_VAL.REFERENCE_ID, 80);
1310 dbms_sql.define_column(I_CURSOR, 4, NBT_VAL.XML_PAYLOAD_LINK, 2000);
1311 dbms_sql.define_column(I_CURSOR, 5, CURR_VAL.TIMER_MESSAGE_CODE, 20);
1312 dbms_sql.define_column(I_CURSOR, 6, CURR_VAL.STATUS, 20);
1313 dbms_sql.define_column(I_CURSOR, 7, CURR_VAL.START_TIME);
1314 dbms_sql.define_column(I_CURSOR, 8, CURR_VAL.END_TIME);
1315 dbms_sql.define_column(I_CURSOR, 9, CURR_VAL.NEXT_TIMER, 20);
1316
1317 I_VOID := dbms_sql.execute(I_CURSOR);
1318 I_ROWS_FETCHED := dbms_sql.fetch_rows(I_CURSOR);
1319 else
1320 I_ROWS_FETCHED := 0;
1321 end if;
1322 I_TOTAL_ROWS := I_ROWS_FETCHED;
1323
1324 if I_ROWS_FETCHED <> 0 then
1325
1326 XNP_WSGL.LayoutOpen(XNP_WSGL.LAYOUT_TABLE, P_BORDER=>TRUE);
1327
1328 XNP_WSGL.LayoutRowStart;
1329 for i in 1..RL_NUMBER_OF_COLUMNS loop
1330 XNP_WSGL.LayoutHeader(8, 'RIGHT', 'Order Id');
1331 XNP_WSGL.LayoutHeader(20, 'LEFT', 'Reference Id');
1332 XNP_WSGL.LayoutHeader(30, 'LEFT', 'XML');
1333 XNP_WSGL.LayoutHeader(20, 'LEFT', 'Timer');
1334 XNP_WSGL.LayoutHeader(20, 'LEFT', 'Status');
1335 XNP_WSGL.LayoutHeader(18, 'LEFT', 'Start Time');
1336 XNP_WSGL.LayoutHeader(18, 'LEFT', 'End Time');
1337 XNP_WSGL.LayoutHeader(20, 'LEFT', 'Next Timer');
1338 end loop;
1339 XNP_WSGL.LayoutRowEnd;
1340
1341 while I_ROWS_FETCHED <> 0 loop
1342
1343 if I_TOTAL_ROWS >= I_START then
1344 dbms_sql.column_value(I_CURSOR, 1, CURR_VAL.TIMER_ID);
1345 dbms_sql.column_value(I_CURSOR, 2, CURR_VAL.ORDER_ID);
1346 dbms_sql.column_value(I_CURSOR, 3, CURR_VAL.REFERENCE_ID);
1347 dbms_sql.column_value(I_CURSOR, 4, NBT_VAL.XML_PAYLOAD_LINK);
1348 dbms_sql.column_value(I_CURSOR, 5, CURR_VAL.TIMER_MESSAGE_CODE);
1349 dbms_sql.column_value(I_CURSOR, 6, CURR_VAL.STATUS);
1350 dbms_sql.column_value(I_CURSOR, 7, CURR_VAL.START_TIME);
1351 dbms_sql.column_value(I_CURSOR, 8, CURR_VAL.END_TIME);
1352 dbms_sql.column_value(I_CURSOR, 9, CURR_VAL.NEXT_TIMER);
1353 L_CHECKSUM := to_char(XNP_WSGL.Checksum(''||CURR_VAL.TIMER_ID));
1354
1355
1356 XNP_WSGL.LayoutRowStart('TOP');
1357 XNP_WSGL.LayoutData(htf.anchor2('xnp_timers$xnp_timer_registry.queryview?P_TIMER_ID='||CURR_VAL.TIMER_ID||'&Z_CHK='||L_CHECKSUM, CURR_VAL.ORDER_ID, ctarget=>L_VF_FRAME));
1358 XNP_WSGL.LayoutData(CURR_VAL.REFERENCE_ID);
1359 XNP_WSGL.LayoutData(htf.anchor2(NBT_VAL.XML_PAYLOAD_LINK, 'XML'));
1360 XNP_WSGL.LayoutData(CURR_VAL.TIMER_MESSAGE_CODE);
1361 XNP_WSGL.LayoutData(XNP_WSGL.DomainMeaning(D_STATUS, CURR_VAL.STATUS));
1362 XNP_WSGL.LayoutData(ltrim(to_char(CURR_VAL.START_TIME, 'DD-MON-RRRR HH24:MI:SS')));
1363 XNP_WSGL.LayoutData(ltrim(to_char(CURR_VAL.END_TIME, 'DD-MON-RRRR HH24:MI:SS')));
1364 XNP_WSGL.LayoutData(CURR_VAL.NEXT_TIMER);
1365 XNP_WSGL.LayoutRowEnd;
1366
1367 I_ROWS_FETCHED := dbms_sql.fetch_rows(I_CURSOR);
1368 if I_TOTAL_ROWS = I_START + RL_RECORD_SET_SIZE - 1 then
1369 if I_ROWS_FETCHED <> 0 then
1370 I_NEXT_BUT := TRUE;
1371 end if;
1372 exit;
1373 end if;
1374 else
1375 I_ROWS_FETCHED := dbms_sql.fetch_rows(I_CURSOR);
1376 end if;
1377
1378 I_TOTAL_ROWS := I_TOTAL_ROWS + I_ROWS_FETCHED;
1379
1380 end loop;
1381
1382 XNP_WSGL.LayoutClose;
1383
1384 if I_START = I_TOTAL_ROWS then
1385 htp.p(XNP_WSGL.MsgGetText(109,XNP_WSGLM.DSP109_RECORD, to_char(I_TOTAL_ROWS))||I_OF_TOTAL_TEXT);
1386 else
1387 htp.p(XNP_WSGL.MsgGetText(110,XNP_WSGLM.DSP110_RECORDS_N_M,
1388 to_char(I_START), to_char(I_TOTAL_ROWS))||
1389 I_OF_TOTAL_TEXT);
1390 end if;
1391 htp.para;
1392 else
1393 htp.p(XNP_WSGL.MsgGetText(112,XNP_WSGLM.DSP112_NO_RECORDS));
1394 end if;
1395
1396 if nvl(Z_ACTION, 'X') <> 'DONTQUERY' then
1397 dbms_sql.close_cursor(I_CURSOR);
1398 end if;
1399
1400 htp.formOpen(curl => 'xnp_timers$xnp_timer_registry.querylist', cattributes => 'NAME="frmZero"');
1401 XNP_WSGL.HiddenField('P_ORDER_ID', P_ORDER_ID);
1402 XNP_WSGL.HiddenField('U_ORDER_ID', U_ORDER_ID);
1403 XNP_WSGL.HiddenField('P_REFERENCE_ID', P_REFERENCE_ID);
1404 XNP_WSGL.HiddenField('P_TIMER_MESSAGE_CODE', P_TIMER_MESSAGE_CODE);
1405 XNP_WSGL.HiddenField('P_STATUS', P_STATUS);
1406 XNP_WSGL.HiddenField('P_START_TIME', P_START_TIME);
1407 XNP_WSGL.HiddenField('U_START_TIME', U_START_TIME);
1408 XNP_WSGL.HiddenField('P_END_TIME', P_END_TIME);
1409 XNP_WSGL.HiddenField('U_END_TIME', U_END_TIME);
1410 XNP_WSGL.HiddenField('P_NEXT_TIMER', P_NEXT_TIMER);
1411 XNP_WSGL.HiddenField('Z_START', to_char(I_START));
1412 htp.p ('<SCRIPT><!--');
1413 htp.p ('document.write (''<input type=hidden name="Z_ACTION">'')');
1414 htp.p ('//-->');
1415 htp.p ('</SCRIPT>');
1416
1417 XNP_WSGL.RecordListButton(I_PREV_BUT, 'Z_ACTION', htf.escape_sc(RL_FIRST_BUT_CAPTION), XNP_WSGL.MsgGetText(213,XNP_WSGLM.MSG213_AT_FIRST), FALSE,
1418 'onClick="this.form.Z_ACTION.value=\''' || RL_FIRST_BUT_ACTION || '\''"');
1419 XNP_WSGL.RecordListButton(I_PREV_BUT, 'Z_ACTION', htf.escape_sc(RL_PREV_BUT_CAPTION), XNP_WSGL.MsgGetText(213,XNP_WSGLM.MSG213_AT_FIRST), FALSE,
1420 'onClick="this.form.Z_ACTION.value=\''' || RL_PREV_BUT_ACTION || '\''"');
1421 XNP_WSGL.RecordListButton(I_NEXT_BUT,'Z_ACTION', htf.escape_sc(RL_NEXT_BUT_CAPTION), XNP_WSGL.MsgGetText(214,XNP_WSGLM.MSG214_AT_LAST), FALSE,
1422 'onClick="this.form.Z_ACTION.value=\''' || RL_NEXT_BUT_ACTION || '\''"');
1423 XNP_WSGL.RecordListButton(I_NEXT_BUT,'Z_ACTION', htf.escape_sc(RL_LAST_BUT_CAPTION), XNP_WSGL.MsgGetText(214,XNP_WSGLM.MSG214_AT_LAST), FALSE,
1424 'onClick="this.form.Z_ACTION.value=\''' || RL_LAST_BUT_ACTION || '\''"');
1425
1426 XNP_WSGL.RecordListButton(TRUE, 'Z_ACTION', htf.escape_sc(RL_REQUERY_BUT_CAPTION),p_dojs=>FALSE,
1427 buttonJS => 'onClick="this.form.Z_ACTION.value=\''' || RL_REQUERY_BUT_ACTION || '\''"');
1428 htp.para;
1429
1430 XNP_WSGL.RecordListButton(TRUE, 'Z_ACTION', htf.escape_sc(RL_QUERY_BUT_CAPTION),p_dojs=>FALSE,
1431 buttonJS => 'onClick="this.form.Z_ACTION.value=\''' || RL_QUERY_BUT_ACTION || '\''"');
1432 XNP_WSGL.HiddenField('Z_CHK',
1433 to_char(XNP_WSGL.Checksum('')));
1434 htp.formClose;
1435
1436 XNP_WSGL.ReturnLinks('0', XNP_WSGL.MENU_LONG);
1437 XNP_WSGL.NavLinks;
1438
1439 htp.p(htf.img('/OA_MEDIA/FNDLOGOS.gif'));
1440
1441 XNP_WSGL.ClosePageBody;
1442
1443 exception
1444 when others then
1445 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry'||' : '||'Timers',
1446 RL_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.QueryList');
1447 XNP_WSGL.ClosePageBody;
1448 end;
1449
1450 --------------------------------------------------------------------------------
1451 -- Name: xnp_timers$xnp_timer_registry.QueryFirst
1452 --
1453 -- Description: Finds the first row which matches the given search criteria
1454 -- (if any), and calls QueryView for that row
1455 --
1456 -- Parameters:
1457 --
1458 --------------------------------------------------------------------------------
1459 procedure QueryFirst(
1460 P_ORDER_ID in varchar2,
1461 U_ORDER_ID in varchar2,
1462 P_REFERENCE_ID in varchar2,
1463 P_TIMER_MESSAGE_CODE in varchar2,
1464 P_STATUS in varchar2,
1465 P_START_TIME in varchar2,
1466 U_START_TIME in varchar2,
1467 P_END_TIME in varchar2,
1468 U_END_TIME in varchar2,
1469 P_NEXT_TIMER in varchar2,
1470 Z_ACTION in varchar2,
1471 Z_DIRECT_CALL in boolean,
1472 Z_CHK in varchar2) is
1473
1474 I_CURSOR integer;
1475 I_VOID integer;
1476 I_ROWS_FETCHED integer := 0;
1477
1478 begin
1479
1480 XNP_WSGL.RegisterURL('xnp_timers$xnp_timer_registry.queryfirst');
1481 XNP_WSGL.AddURLParam('P_ORDER_ID', P_ORDER_ID);
1482 XNP_WSGL.AddURLParam('U_ORDER_ID', U_ORDER_ID);
1483 XNP_WSGL.AddURLParam('P_REFERENCE_ID', P_REFERENCE_ID);
1484 XNP_WSGL.AddURLParam('P_TIMER_MESSAGE_CODE', P_TIMER_MESSAGE_CODE);
1485 XNP_WSGL.AddURLParam('P_STATUS', P_STATUS);
1486 XNP_WSGL.AddURLParam('P_START_TIME', P_START_TIME);
1487 XNP_WSGL.AddURLParam('U_START_TIME', U_START_TIME);
1488 XNP_WSGL.AddURLParam('P_END_TIME', P_END_TIME);
1489 XNP_WSGL.AddURLParam('U_END_TIME', U_END_TIME);
1490 XNP_WSGL.AddURLParam('P_NEXT_TIMER', P_NEXT_TIMER);
1491 XNP_WSGL.AddURLParam('Z_ACTION', Z_ACTION);
1492 XNP_WSGL.AddURLParam('Z_CHK', Z_CHK);
1493 if not Z_DIRECT_CALL then
1494 if not XNP_WSGL.ValidateChecksum('', Z_CHK) then
1495 return;
1496 end if;
1497 end if;
1498
1499 if Z_ACTION = 'BLANK' then
1500 XNP_WSGL.EmptyPage(VF_BODY_ATTRIBUTES);
1501 return;
1502 end if;
1503
1504
1505 if not BuildSQL(
1506 P_ORDER_ID,
1507 U_ORDER_ID,
1508 P_REFERENCE_ID,
1509 P_TIMER_MESSAGE_CODE,
1510 P_STATUS,
1511 P_START_TIME,
1512 U_START_TIME,
1513 P_END_TIME,
1514 U_END_TIME,
1515 P_NEXT_TIMER) then
1516 return;
1517 end if;
1518
1519 if not PreQuery(
1520 P_ORDER_ID,
1521 U_ORDER_ID,
1522 P_REFERENCE_ID,
1523 P_TIMER_MESSAGE_CODE,
1524 P_STATUS,
1525 P_START_TIME,
1526 U_START_TIME,
1527 P_END_TIME,
1528 U_END_TIME,
1529 P_NEXT_TIMER) then
1530 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_ERROR, XNP_cg$errors.GetErrors,
1531 'Timer Registry'||' : '||'Timers', VF_BODY_ATTRIBUTES);
1532 return;
1533 end if;
1534
1535 I_CURSOR := dbms_sql.open_cursor;
1536 dbms_sql.parse(I_CURSOR, ZONE_SQL, dbms_sql.v7);
1537 dbms_sql.define_column(I_CURSOR, 1, CURR_VAL.TIMER_ID);
1538 dbms_sql.define_column(I_CURSOR, 2, CURR_VAL.ORDER_ID);
1539 dbms_sql.define_column(I_CURSOR, 3, CURR_VAL.REFERENCE_ID, 80);
1540 dbms_sql.define_column(I_CURSOR, 4, NBT_VAL.XML_PAYLOAD_LINK, 2000);
1541 dbms_sql.define_column(I_CURSOR, 5, CURR_VAL.TIMER_MESSAGE_CODE, 20);
1542 dbms_sql.define_column(I_CURSOR, 6, CURR_VAL.STATUS, 20);
1543 dbms_sql.define_column(I_CURSOR, 7, CURR_VAL.START_TIME);
1544 dbms_sql.define_column(I_CURSOR, 8, CURR_VAL.END_TIME);
1545 dbms_sql.define_column(I_CURSOR, 9, CURR_VAL.NEXT_TIMER, 20);
1546
1547 I_VOID := dbms_sql.execute(I_CURSOR);
1548
1549 I_ROWS_FETCHED := dbms_sql.fetch_rows(I_CURSOR);
1550
1551 if I_ROWS_FETCHED = 0 then
1552 XNP_WSGL.EmptyPage(VF_BODY_ATTRIBUTES);
1553 else
1554 dbms_sql.column_value(I_CURSOR, 1, CURR_VAL.TIMER_ID);
1555 dbms_sql.column_value(I_CURSOR, 2, CURR_VAL.ORDER_ID);
1556 dbms_sql.column_value(I_CURSOR, 3, CURR_VAL.REFERENCE_ID);
1557 dbms_sql.column_value(I_CURSOR, 4, NBT_VAL.XML_PAYLOAD_LINK);
1558 dbms_sql.column_value(I_CURSOR, 5, CURR_VAL.TIMER_MESSAGE_CODE);
1559 dbms_sql.column_value(I_CURSOR, 6, CURR_VAL.STATUS);
1560 dbms_sql.column_value(I_CURSOR, 7, CURR_VAL.START_TIME);
1561 dbms_sql.column_value(I_CURSOR, 8, CURR_VAL.END_TIME);
1562 dbms_sql.column_value(I_CURSOR, 9, CURR_VAL.NEXT_TIMER);
1563 xnp_timers$xnp_timer_registry.QueryView(Z_DIRECT_CALL=>TRUE);
1564 end if;
1565
1566 dbms_sql.close_cursor(I_CURSOR);
1567
1568 exception
1569 when others then
1570 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry'||' : '||'Timers',
1571 VF_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.QueryFirst');
1572 XNP_WSGL.ClosePageBody;
1573 end;
1574
1575 --------------------------------------------------------------------------------
1576 -- Name: xnp_timers$xnp_timer_registry.PreQuery
1577 --
1578 -- Description: Provides place holder for code to be run prior to a query
1579 -- for the 'XNP_TIMER_REGISTRY' module component (Timers).
1580 --
1581 -- Parameters: None
1582 --
1583 -- Returns: True If success
1584 -- False Otherwise
1585 --
1586 --------------------------------------------------------------------------------
1587 function PreQuery(
1588 P_ORDER_ID in varchar2,
1589 U_ORDER_ID in varchar2,
1590 P_REFERENCE_ID in varchar2,
1591 P_TIMER_MESSAGE_CODE in varchar2,
1592 P_STATUS in varchar2,
1593 P_START_TIME in varchar2,
1594 U_START_TIME in varchar2,
1595 P_END_TIME in varchar2,
1596 U_END_TIME in varchar2,
1597 P_NEXT_TIMER in varchar2) return boolean is
1598 L_RET_VAL boolean := TRUE;
1599 begin
1600 return L_RET_VAL;
1601 exception
1602 when others then
1603 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry'||' : '||'Timers',
1604 DEF_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.PreQuery');
1605 return FALSE;
1606 end;
1607
1608 --------------------------------------------------------------------------------
1609 -- Name: xnp_timers$xnp_timer_registry.PostQuery
1610 --
1611 -- Description: Provides place holder for code to be run after a query
1612 -- for the 'XNP_TIMER_REGISTRY' module component (Timers).
1613 --
1614 -- Parameters: Z_POST_DML Flag indicating if Query after insert or update
1615 --
1616 -- Returns: True If success
1617 -- False Otherwise
1618 --
1619 --------------------------------------------------------------------------------
1620 function PostQuery(Z_POST_DML in boolean) return boolean is
1621 L_RET_VAL boolean := TRUE;
1622 begin
1623 return L_RET_VAL;
1624 exception
1625 when others then
1626 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry'||' : '||'Timers',
1627 DEF_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.PostQuery');
1628 return FALSE;
1629 end;
1630
1631 --------------------------------------------------------------------------------
1632 -- Name: xnp_timers$xnp_timer_registry.CreateQueryJavaScript
1633 --
1634 -- Description:
1635 --
1636 -- Parameters:
1637 --
1638 --------------------------------------------------------------------------------
1639 procedure CreateQueryJavaScript is
1640 begin
1641 htp.p(XNP_WSGJSL.OpenScript);
1642 htp.p('var FormType = "Query";');
1643
1644 htp.p(
1645 'function TIMER_MESSAGE_CODE_LOV() {
1646 var filter = "";
1647 var the_pathname = location.pathname;
1648 var i = the_pathname.indexOf (''/:'');
1649 var j = the_pathname.indexOf (''/'', ++i);
1650
1651 if (i != -1)
1652 {
1653
1654 // Syntactically incorrect url so it needs to be corrected
1655
1656 the_pathname = the_pathname.substring (j, the_pathname.length);
1657
1658 }; // (i != -1)
1659
1660 frmLOV = open("xnp_timers$xnp_timer_registry.timer_message_code_listofvalue" +
1661 "?Z_FILTER=" + escape(filter) + "&Z_MODE=Q" +
1662 "&Z_CALLER_URL=" + escape(location.protocol + ''//'' + location.host + the_pathname + location.search) +
1663 "&Z_ISSUE_WAIT=Y",');
1664 if LOV_FRAME is not null then
1665 htp.p(' "'||LOV_FRAME||'");');
1666 else
1667 htp.p(' "winLOV", "scrollbars=yes,resizable=yes,width=400,height=400");');
1668 end if;
1669 htp.p(' if (frmLOV.opener == null) {
1670 frmLOV.opener = self;
1671 }
1672 }
1673 ');
1674
1675 htp.p(
1676 'function NEXT_TIMER_LOV() {
1677 var filter = "";
1678 var the_pathname = location.pathname;
1679 var i = the_pathname.indexOf (''/:'');
1680 var j = the_pathname.indexOf (''/'', ++i);
1681
1682 if (i != -1)
1683 {
1684
1685 // Syntactically incorrect url so it needs to be corrected
1686
1687 the_pathname = the_pathname.substring (j, the_pathname.length);
1688
1689 }; // (i != -1)
1690
1691 frmLOV = open("xnp_timers$xnp_timer_registry.next_timer_listofvalues" +
1692 "?Z_FILTER=" + escape(filter) + "&Z_MODE=Q" +
1693 "&Z_CALLER_URL=" + escape(location.protocol + ''//'' + location.host + the_pathname + location.search) +
1694 "&Z_ISSUE_WAIT=Y",');
1695 if LOV_FRAME is not null then
1696 htp.p(' "'||LOV_FRAME||'");');
1697 else
1698 htp.p(' "winLOV", "scrollbars=yes,resizable=yes,width=400,height=400");');
1699 end if;
1700 htp.p(' if (frmLOV.opener == null) {
1701 frmLOV.opener = self;
1702 }
1703 }
1704 ');
1705
1706 htp.p(XNP_WSGJSL.CloseScript);
1707 exception
1708 when others then
1709 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry'||' : '||'Timers',
1710 QF_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.CreateQueryJavaScript');
1711 end;
1712
1713 --------------------------------------------------------------------------------
1714 -- Name: xnp_timers$xnp_timer_registry.CreateListJavaScript
1715 --
1716 -- Description:
1717 --
1718 -- Parameters:
1719 --
1720 --------------------------------------------------------------------------------
1721 procedure CreateListJavaScript is
1722 begin
1723 htp.p(XNP_WSGJSL.OpenScript);
1724 htp.p('var FormType = "List";');
1725 htp.p(XNP_WSGJSL.CloseScript);
1726 exception
1727 when others then
1728 XNP_WSGL.DisplayMessage(XNP_WSGL.MESS_EXCEPTION, SQLERRM, 'Timer Registry'||' : '||'Timers',
1729 RL_BODY_ATTRIBUTES, 'xnp_timers$xnp_timer_registry.CreateListJavaScript');
1730 end;
1731 end;