1: package body WF_EVENT_HTML as
2: /* $Header: wfehtmb.pls 120.4 2005/11/08 00:43:44 nravindr ship $ */
3:
4: --
5: -- isDeletable
113: return TRUE;
114:
115: exception
116: when OTHERS then
117: wf_core.context('WF_EVENT_HTML', 'isDeletable', rawtohex(x_guid), x_type);
118: raise;
119: end isDeletable;
120: --
121: -- isAccessible
171: end if;
172:
173: exception
174: when OTHERS then
175: wf_core.context('WF_EVENT_HTML', 'isAccessible', x_type);
176: raise;
177: end isAccessible;
178:
179: -- ListEvents
227: wf_core.raise('WF_NOTADMIN');
228: end if;
229:
230: -- Check if Accessible
231: wf_event_html.isAccessible('EVENTS');
232:
233: l_name := h_name;
234: l_display_name := h_display_name;
235: l_type := h_type;
289: dTab(i).col04:= wf_core.translate(event.status);
290:
291: dTab(i).selectable := FALSE;
292:
293: dTab(i).hasdetail := not Wf_Event_Html.isDeletable(event.guid, 'EVENT_S');
294:
295: -- when there is subscription, it is not deletable
296: if (dTab(i).hasdetail) then
297: dTab(i).deletable := FALSE;
297: dTab(i).deletable := FALSE;
298:
299: -- otherwise, we need to check further
300: else
301: dTab(i).deletable := Wf_Event_Html.isDeletable(event.guid, 'EVENT');
302: end if;
303:
304: end loop;
305:
322: htp.headClose;
323:
324: -- Page header
325: wfa_sec.Header(FALSE,
326: owa_util.get_owa_service_path||'wf_event_html.FindEvent',
327: wf_core.translate('WFE_LIST_EVENTS_TITLE'),
328: TRUE);
329:
330: htp.br; -- add some space between header and table
331:
332: -- populate the header table
333: i := 1;
334: hTab(i).def_type := 'FUNCTION';
335: hTab(i).value := 'Wf_Event_Html.DeleteEvent?h_guid=';
336: i := i+1;
337: hTab(i).def_type := 'FUNCTION';
338: hTab(i).value := 'Wf_Event_Html.ListSubscriptions?use_guid_only=T&'||
339: 'h_event_guid=';
334: hTab(i).def_type := 'FUNCTION';
335: hTab(i).value := 'Wf_Event_Html.DeleteEvent?h_guid=';
336: i := i+1;
337: hTab(i).def_type := 'FUNCTION';
338: hTab(i).value := 'Wf_Event_Html.ListSubscriptions?use_guid_only=T&'||
339: 'h_event_guid=';
340: i := i+1;
341: hTab(i).def_type := 'FUNCTION';
342: hTab(i).value := 'Wf_Event_Html.EditEvent?h_guid=';
338: hTab(i).value := 'Wf_Event_Html.ListSubscriptions?use_guid_only=T&'||
339: 'h_event_guid=';
340: i := i+1;
341: hTab(i).def_type := 'FUNCTION';
342: hTab(i).value := 'Wf_Event_Html.EditEvent?h_guid=';
343: i := i+1;
344: hTab(i).def_type := 'TITLE';
345: hTab(i).value := wf_core.translate('SUBSCRIPTIONS');
346: hTab(i).attr := 'id="'||wf_core.translate('SUBSCRIPTIONS')||'"';
369:
370: htp.tableopen (calign=>'CENTER ', cattributes=>'summary""');
371: htp.tableRowOpen;
372: htp.p('
377: wf_core.translate('WFE_ADD_EVENT'));
378: htp.p('
392:
393: exception
394: when OTHERS then
395: rollback;
396: wf_core.context('WF_EVENT_HTML', 'ListEvents');
397: wfe_html_util.Error;
398: end ListEvents;
399:
400: --
458: wf_core.raise('WF_NOTADMIN');
459: end if;
460:
461: -- Check if Accessible
462: wf_event_html.isAccessible('SYSTEM');
463:
464: l_mguid := hextoraw(h_master_guid);
465: Wf_Event_Html.Validate_System_Name(display_master, l_mguid);
466:
461: -- Check if Accessible
462: wf_event_html.isAccessible('SYSTEM');
463:
464: l_mguid := hextoraw(h_master_guid);
465: Wf_Event_Html.Validate_System_Name(display_master, l_mguid);
466:
467: -- find the local system guid
468: begin
469: select hextoraw(TEXT)
561: from WF_EVENT_SUBSCRIPTIONS
562: where SYSTEM_GUID = asystem.guid;
563:
564: if (acnt = 0) then
565: dTab(i).deletable := Wf_Event_Html.isDeletable(asystem.guid, 'SYSTEM');
566: dTab(i).hasdetail := FALSE;
567: else
568: dTab(i).deletable := FALSE; -- has reference from subscriptions
569: dTab(i).hasdetail := TRUE;
588: htp.headClose;
589:
590: -- Page header
591: wfa_sec.Header(FALSE,
592: owa_util.get_owa_service_path||'wf_event_html.FindSystem',
593: wf_core.translate('WFE_LIST_SYSTEMS_TITLE'),
594: TRUE);
595:
596: htp.br; -- add some space between header and table
597:
598: -- popluate the header table
599: i := 1;
600: hTab(i).def_type := 'FUNCTION';
601: hTab(i).value := 'Wf_Event_Html.DeleteSystem?h_guid=';
602: i := i+1;
603: hTab(i).def_type := 'FUNCTION';
604: hTab(i).value := 'Wf_Event_Html.ListSubscriptions?use_guid_only=T&h_system_guid=';
605: i := i+1;
600: hTab(i).def_type := 'FUNCTION';
601: hTab(i).value := 'Wf_Event_Html.DeleteSystem?h_guid=';
602: i := i+1;
603: hTab(i).def_type := 'FUNCTION';
604: hTab(i).value := 'Wf_Event_Html.ListSubscriptions?use_guid_only=T&h_system_guid=';
605: i := i+1;
606: hTab(i).def_type := 'FUNCTION';
607: hTab(i).value := 'Wf_Event_Html.EditSystem?h_guid=';
608: i := i+1;
603: hTab(i).def_type := 'FUNCTION';
604: hTab(i).value := 'Wf_Event_Html.ListSubscriptions?use_guid_only=T&h_system_guid=';
605: i := i+1;
606: hTab(i).def_type := 'FUNCTION';
607: hTab(i).value := 'Wf_Event_Html.EditSystem?h_guid=';
608: i := i+1;
609: hTab(i).def_type := 'TITLE';
610: hTab(i).value := wf_core.translate('SUBSCRIPTIONS');
611: hTab(i).attr := 'id="'||wf_core.translate('SUBSCRIPTIONS')||'"';
643:
644: htp.tableopen (calign=>'CENTER', cattributes=>'summary=""');
645: htp.tableRowOpen;
646: htp.p('
658:
659: exception
660: when OTHERS then
661: rollback;
662: wf_core.context('WF_EVENT_HTML', 'ListSystems');
663: wfe_html_util.Error;
664: end ListSystems;
665:
666: --
732: wf_core.raise('WF_NOTADMIN');
733: end if;
734:
735: -- Check if Accessible
736: wf_event_html.isAccessible('AGENTS');
737:
738: l_sguid := hextoraw(h_system_guid);
739: if (use_guid_only = 'F') then
740: Wf_Event_Html.Validate_System_Name(display_system, l_sguid);
736: wf_event_html.isAccessible('AGENTS');
737:
738: l_sguid := hextoraw(h_system_guid);
739: if (use_guid_only = 'F') then
740: Wf_Event_Html.Validate_System_Name(display_system, l_sguid);
741: end if;
742:
743: l_name := h_name;
744: l_protocol := h_protocol;
860: dTab(i).col05:= wf_core.translate(agent.status);
861:
862: dTab(i).selectable := FALSE;
863:
864: dTab(i).deletable := Wf_Event_Html.isDeletable(agent.guid, 'AGENT');
865:
866: dTab(i).hasdetail := FALSE;
867:
868: end loop;
886: htp.headClose;
887:
888: -- Page header
889: wfa_sec.Header(FALSE,
890: owa_util.get_owa_service_path||'wf_event_html.FindAgent',
891: wf_core.translate('WFE_LIST_AGENTS_TITLE'),
892: TRUE);
893:
894: htp.br; -- add some space between header and table
895:
896: -- popluate the header table
897: i := 1;
898: hTab(i).def_type := 'FUNCTION';
899: hTab(i).value := 'Wf_Event_Html.DeleteAgent?h_guid=';
900: i := i+1;
901: hTab(i).def_type := 'FUNCTION';
902: hTab(i).value := null; -- never has detail page
903: i := i+1;
901: hTab(i).def_type := 'FUNCTION';
902: hTab(i).value := null; -- never has detail page
903: i := i+1;
904: hTab(i).def_type := 'FUNCTION';
905: hTab(i).value := 'Wf_Event_Html.EditAgent?h_guid=';
906: i := i+1;
907: hTab(i).def_type := 'TITLE';
908: hTab(i).value := null; -- no detail title
909: hTab(i).level := 0;
964:
965: htp.tableopen (calign=>'CENTER', cattributes=>'summary=""');
966: htp.tableRowOpen;
967: htp.p('
979:
980: exception
981: when OTHERS then
982: rollback;
983: wf_core.context('WF_EVENT_HTML', 'ListAgents');
984: wfe_html_util.Error;
985: end ListAgents;
986:
987: --
1063: wf_core.raise('WF_NOTADMIN');
1064: end if;
1065:
1066: -- Check if Accessible
1067: wf_event_html.isAccessible('SUBSCRIPTIONS');
1068:
1069: l_eguid := hextoraw(h_event_guid);
1070: l_sguid := hextoraw(h_system_guid);
1071: if (use_guid_only = 'F') then
1068:
1069: l_eguid := hextoraw(h_event_guid);
1070: l_sguid := hextoraw(h_system_guid);
1071: if (use_guid_only = 'F') then
1072: Wf_Event_Html.Validate_Event_Name(display_event, l_eguid);
1073: Wf_Event_Html.Validate_System_Name(display_system, l_sguid);
1074: end if;
1075:
1076: l_source_type := h_source_type;
1069: l_eguid := hextoraw(h_event_guid);
1070: l_sguid := hextoraw(h_system_guid);
1071: if (use_guid_only = 'F') then
1072: Wf_Event_Html.Validate_Event_Name(display_event, l_eguid);
1073: Wf_Event_Html.Validate_System_Name(display_system, l_sguid);
1074: end if;
1075:
1076: l_source_type := h_source_type;
1077: l_status := h_status;
1351: dTab(i).col07 := wf_core.translate(ssr.status);
1352:
1353: dTab(i).selectable := FALSE;
1354: -- dTab(i).deletable := TRUE;
1355: dTab(i).deletable := Wf_Event_Html.isDeletable(ssr.guid, 'SUBSCRIPTION');
1356: dTab(i).hasdetail := FALSE;
1357:
1358: end loop;
1359:
1376: htp.headClose;
1377:
1378: -- Page header
1379: wfa_sec.Header(FALSE,
1380: owa_util.get_owa_service_path||'wf_event_html.FindSubscription',
1381: wf_core.translate('WFE_LIST_SUBSC_TITLE'),
1382: TRUE);
1383:
1384: htp.br; -- add some space between header and table
1385:
1386: -- popluate the header table
1387: i := 1;
1388: hTab(i).def_type := 'FUNCTION';
1389: hTab(i).value := 'Wf_Event_Html.DeleteSubscription?h_guid=';
1390: i := i+1;
1391: hTab(i).def_type := 'FUNCTION';
1392: hTab(i).value := null; -- never has detail page
1393: i := i+1;
1391: hTab(i).def_type := 'FUNCTION';
1392: hTab(i).value := null; -- never has detail page
1393: i := i+1;
1394: hTab(i).def_type := 'FUNCTION';
1395: hTab(i).value := 'Wf_Event_Html.EditSubscription?h_guid=';
1396: i := i+1;
1397: hTab(i).def_type := 'TITLE';
1398: hTab(i).value := null; -- no detail title
1399: hTab(i).level := 0;
1483: htp.tableRowOpen;
1484: htp.p('
1508:
1509: exception
1510: when OTHERS then
1511: rollback;
1512: wf_core.context('WF_EVENT_HTML', 'ListSubscriptions');
1513: wfe_html_util.Error;
1514: end ListSubscriptions;
1515:
1516: --
1582: wf_core.raise('WF_NOTADMIN');
1583: end if;
1584:
1585: -- Check if Accessible
1586: wf_event_html.isAccessible('EVENTS');
1587:
1588:
1589: -- populate the appropriate values in the form if editing an exist guid
1590: if (h_guid is not null) then
1681: htp.headClose;
1682:
1683: -- Page header
1684: wfa_sec.Header(FALSE,
1685: owa_util.get_owa_service_path||'wf_event_html.FindEvent',
1686: wf_core.translate('WFE_EDIT_'||l_type||'_TITLE'),
1687: TRUE);
1688:
1689: -- Form
1687: TRUE);
1688:
1689: -- Form
1690: htp.formOpen(curl=>owa_util.get_owa_service_path||
1691: 'wf_event_html.SubmitEvent',
1692: cmethod=>'Get',
1693: cattributes=>'TARGET="_top" NAME="WF_EVENT_EDIT"');
1694:
1695: -- GUID
1834: -- URL to go back to
1835: if (h_guid is null and l_type = 'GROUP') then
1836: htp.formHidden('url', ''); -- signal the coming back to this screen
1837: else
1838: htp.formHidden('url', 'Wf_Event_Html.ListEvents');
1839: end if;
1840:
1841: htp.tableClose;
1842: htp.formClose;
1864: dTab(i).deletable := FALSE; -- do not allow deletion
1865:
1866: -- it is deletable when there is no subscription; that is,
1867: -- there is no detail.
1868: dTab(i).hasdetail := not Wf_Event_Html.isDeletable(event.guid, 'EVENT');
1869: end loop;
1870:
1871: htp.p(wf_core.translate('WFE_EVENTS_IN_GROUP'));
1872:
1871: htp.p(wf_core.translate('WFE_EVENTS_IN_GROUP'));
1872:
1873: -- Submit Form for Add/Delete
1874: htp.formOpen(curl=>owa_util.get_owa_service_path||
1875: 'Wf_Event_Html.SubmitSelectedGEvents',
1876: cmethod=>'Post',
1877: cattributes=>'TARGET="_top" NAME="WF_GROUP_EDIT"');
1878: htp.formHidden('h_gguid', rawtohex(h_guid));
1879:
1881: htp.formHidden(cname=>'action', cvalue=>'');
1882:
1883: -- Url to come back to later
1884: htp.formHidden(cname=>'url',
1885: cvalue=>'Wf_Event_Html.EditEvent?h_guid='||rawtohex(h_guid));
1886:
1887: -- Add dummy fields to start both array-type input fields.
1888: -- These dummy values are needed so that the array parameters to
1889: -- the submit procedure will not be null even if there are no real
1896: hTab(i).def_type := 'FUNCTION';
1897: hTab(i).value := null; -- delete is not allowed here
1898: i := i+1;
1899: hTab(i).def_type := 'FUNCTION';
1900: hTab(i).value := 'Wf_Event_Html.ListSubscriptions?use_guid_only=T&'||
1901: 'h_event_guid=';
1902: i := i+1;
1903: hTab(i).def_type := 'FUNCTION';
1904: hTab(i).value := 'Wf_Event_Html.EditEvent?h_guid=';
1900: hTab(i).value := 'Wf_Event_Html.ListSubscriptions?use_guid_only=T&'||
1901: 'h_event_guid=';
1902: i := i+1;
1903: hTab(i).def_type := 'FUNCTION';
1904: hTab(i).value := 'Wf_Event_Html.EditEvent?h_guid=';
1905: i := i+1;
1906: hTab(i).def_type := 'TITLE';
1907: hTab(i).value := wf_core.translate('SUBSCRIPTIONS');
1908: hTab(i).attr := 'id="'||wf_core.translate('SUBSCRIPTIONS')||'"';
2044:
2045: exception
2046: when others then
2047: rollback;
2048: wf_core.context('WF_EVENT_HTML', 'EditEvent', h_guid);
2049: wfe_html_util.Error;
2050: end EditEvent;
2051:
2052: --
2114: wf_core.raise('WF_NOTADMIN');
2115: end if;
2116:
2117: -- Check if Accessible
2118: wf_event_html.isAccessible('EVENTS');
2119:
2120:
2121: -- Render page
2122: htp.htmlOpen;
2197: end if;
2198:
2199: -- Submit Form for Add/Delete
2200: htp.formOpen(curl=>owa_util.get_owa_service_path||
2201: 'Wf_Event_Html.SubmitSelectedGEvents',
2202: cmethod=>'Get',
2203: cattributes=>'TARGET="_top" NAME="WF_GROUP_EDIT"');
2204: htp.formHidden('h_gguid', rawtohex(h_guid));
2205:
2207: htp.formHidden(cname=>'action', cvalue=>'');
2208:
2209: -- Url to come back to later
2210: htp.formHidden(cname=>'url',
2211: cvalue=>'Wf_Event_Html.EditEvent?h_guid='||rawtohex(h_guid));
2212:
2213: -- Add dummy fields to start both array-type input fields.
2214: -- These dummy values are needed so that the array parameters to
2215: -- the submit procedure will not be null even if there are no real
2304: htp.htmlClose;
2305: exception
2306: when others then
2307: rollback;
2308: wf_core.context('WF_EVENT_HTML', 'EditGroup', rawtohex(h_guid));
2309: wfe_html_util.Error;
2310: end EditGroup;
2311:
2312: --
2349: wf_core.raise('WF_NOTADMIN');
2350: end if;
2351:
2352: -- Check if Accessible
2353: wf_event_html.isAccessible('SYSTEM');
2354:
2355: -- Set page title
2356: htp.htmlOpen;
2357: htp.headOpen;
2363: htp.headClose;
2364:
2365: -- Page header
2366: wfa_sec.Header(FALSE,
2367: owa_util.get_owa_service_path||'wf_event_html.FindEvent',
2368: wf_core.translate('WFE_EDIT_SYSTEM_TITLE'),
2369: TRUE);
2370:
2371: -- populate the appropriate values in the form if editing an exist guid
2404:
2405: end if;
2406: -- Form
2407: htp.formOpen(curl=>owa_util.get_owa_service_path||
2408: 'wf_event_html.SubmitSystem',
2409: cmethod=>'Get',
2410: cattributes=>'TARGET="_top" NAME="WF_SYSTEM_EDIT"');
2411:
2412: -- GUID
2469: -- the proper escape sequence.
2470: l_url := 'javascript:fnd_open_dm_display_window('||''''||
2471: REPLACE('wf_lov.display_lov?p_lov_name='||'h_master_guid'||
2472: '&p_display_name='||'SYSTEM'||
2473: '&p_validation_callback=wf_event_html.wf_system_val'||
2474: '&p_dest_hidden_field=top.opener.parent.document.WF_SYSTEM_EDIT.h_master_guid.value'||
2475: '&p_current_value=top.opener.parent.document.WF_SYSTEM_EDIT.display_master.value'||
2476: '&p_display_key='||'Y'||
2477: '&p_dest_display_field=top.opener.parent.document.WF_SYSTEM_EDIT.display_master.value',
2489:
2490: htp.tableRowClose;
2491:
2492: -- URL to go back to
2493: htp.formHidden('url', 'Wf_Event_Html.ListSystems');
2494:
2495: htp.tableClose;
2496: htp.formClose;
2497:
2533:
2534: exception
2535: when others then
2536: rollback;
2537: wf_core.context('WF_EVENT_HTML', 'EditSystem', h_guid);
2538: wfe_html_util.Error;
2539: end EditSystem;
2540:
2541: --
2598: wf_core.raise('WF_NOTADMIN');
2599: end if;
2600:
2601: -- Check if Accessible
2602: wf_event_html.isAccessible('AGENTS');
2603:
2604: -- Set page title
2605: htp.htmlOpen;
2606: htp.headOpen;
2612: htp.headClose;
2613:
2614: -- Page header
2615: wfa_sec.Header(FALSE,
2616: owa_util.get_owa_service_path||'wf_event_html.FindAgent',
2617: wf_core.translate('WFE_EDIT_AGENT_TITLE'),
2618: TRUE);
2619:
2620: -- populate the appropriate values in the form if editing an exist guid
2660: end if;
2661:
2662: -- Form
2663: htp.formOpen(curl=>owa_util.get_owa_service_path||
2664: 'wf_event_html.SubmitAgent',
2665: cmethod=>'Get',
2666: cattributes=>'TARGET="_top" NAME="WF_AGENT_EDIT"');
2667:
2668: -- GUID
2777: -- the proper escape sequence.
2778: l_url := 'javascript:fnd_open_dm_display_window('||''''||
2779: REPLACE('wf_lov.display_lov?p_lov_name='||'h_system_guid'||
2780: '&p_display_name='||'SYSTEM'||
2781: '&p_validation_callback=wf_event_html.wf_system_val'||
2782: '&p_dest_hidden_field=top.opener.parent.document.WF_AGENT_EDIT.h_system_guid.value'||
2783: '&p_current_value=top.opener.parent.document.WF_AGENT_EDIT.display_system.value'||
2784: '&p_display_key='||'Y'||
2785: '&p_dest_display_field=top.opener.parent.document.WF_AGENT_EDIT.display_system.value',
2856: htp.tableData(cvalue=>template, calign=>'Left',cattributes=>'id=""');
2857: htp.tableRowClose;
2858:
2859: -- URL to go back to
2860: htp.formHidden('url', 'Wf_Event_Html.ListAgents');
2861:
2862: htp.tableClose;
2863: htp.formClose;
2864:
2900:
2901: exception
2902: when others then
2903: rollback;
2904: wf_core.context('WF_EVENT_HTML', 'EditAgent', h_guid);
2905: wfe_html_util.Error;
2906: end EditAgent;
2907:
2908: --
2995: wf_core.raise('WF_NOTADMIN');
2996: end if;
2997:
2998: -- Check if Accessible
2999: wf_event_html.isAccessible('SUBSCRIPTIONS');
3000:
3001: -- Set page title
3002: htp.headOpen;
3003:
3026: htp.headClose;
3027:
3028: -- Page header
3029: wfa_sec.Header(FALSE,
3030: owa_util.get_owa_service_path||'wf_event_html.FindSubscription',
3031: wf_core.translate('WFE_EDIT_SUBSC_TITLE'),
3032: TRUE);
3033:
3034: -- populate the appropriate values in the form if editing an exist guid
3282: htp.formClose;
3283:
3284: -- Form
3285: htp.formOpen(curl=>owa_util.get_owa_service_path||
3286: 'wf_event_html.SubmitSubscription',
3287: cmethod=>'Get',
3288: cattributes=>'TARGET="_top" NAME="WF_SUBSC_EDIT"');
3289:
3290: -- GUID
3316: -- the proper escape sequence.
3317: l_url := 'javascript:fnd_open_dm_display_window('||''''||
3318: REPLACE('wf_lov.display_lov?p_lov_name='||'h_system_guid'||
3319: '&p_display_name='||'SYSTEM'||
3320: '&p_validation_callback=wf_event_html.wf_system_val'||
3321: '&p_dest_hidden_field=top.opener.parent.document.WF_SUBSC_EDIT.h_system_guid.value'||
3322: '&p_current_value=top.opener.parent.document.WF_SUBSC_EDIT.display_system.value'||
3323: '&p_display_key='||'Y'||
3324: '&p_dest_display_field=top.opener.parent.document.WF_SUBSC_EDIT.display_system.value',
3374: -- the proper escape sequence.
3375: l_url := 'javascript:fnd_open_dm_display_window('||''''||
3376: REPLACE('wf_lov.display_lov?p_lov_name='||'h_event_guid'||
3377: '&p_display_name='||'WFE_FIND_EVENT'||
3378: '&p_validation_callback=wf_event_html.wf_event_val'||
3379: '&p_dest_hidden_field=top.opener.parent.document.WF_SUBSC_EDIT.h_event_guid.value'||
3380: '&p_current_value=top.opener.parent.document.WF_SUBSC_EDIT.display_event.value'||
3381: '&p_display_key='||'Y'||
3382: '&p_dest_display_field=top.opener.parent.document.WF_SUBSC_EDIT.display_event.value',
3405: -- the proper escape sequence.
3406: l_url := 'javascript:fnd_open_dm_display_window('||''''||
3407: REPLACE('wf_lov.display_lov?p_lov_name='||'h_source_agent_guid'||
3408: '&p_display_name='||'WFE_FIND_AGENT'||
3409: '&p_validation_callback=wf_event_html.wf_agent_val'||
3410: '&p_dest_hidden_field=top.opener.parent.document.WF_SUBSC_EDIT.h_source_agent_guid.value'||
3411: '&p_current_value=top.opener.parent.document.WF_SUBSC_EDIT.display_source_agent.value'||
3412: '&p_display_key='||'Y'||
3413: '&p_dest_display_field=top.opener.parent.document.WF_SUBSC_EDIT.display_source_agent.value',
3506: -- the proper escape sequence.
3507: l_url := 'javascript:fnd_open_dm_display_window('||''''||
3508: REPLACE('wf_lov.display_lov?p_lov_name='||'h_wfptype_dname'||
3509: '&p_display_name='||'ITEMTYPE'||
3510: '&p_validation_callback=wf_event_html.wf_itemtype_val'||
3511: '&p_dest_hidden_field=top.opener.parent.document.WF_SUBSC_EDIT.h_wfptype_dname.value'||
3512: '&p_current_value=top.opener.parent.document.WF_SUBSC_EDIT.h_wfptype.value'||
3513: '&p_display_key='||'Y'||
3514: '&p_dest_display_field=top.opener.parent.document.WF_SUBSC_EDIT.h_wfptype.value',
3537: -- the proper escape sequence.
3538: l_url := 'javascript:fnd_open_dm_display_window('||''''||
3539: REPLACE('wf_lov.display_lov?p_lov_name='||'h_wfpname'||
3540: '&p_display_name='||'PROCESS'||
3541: '&p_validation_callback=wf_event_html.wf_processname_val'||
3542: '&p_dest_hidden_field=top.opener.parent.document.WF_SUBSC_EDIT.h_wfptn.value'||
3543: '&p_current_value=top.opener.parent.document.WF_SUBSC_EDIT.h_wfpname.value'||
3544: '&p_dest_display_field=top.opener.parent.document.WF_SUBSC_EDIT.h_wfpname.value'||
3545: '&p_display_key='||'Y'||
3570: -- the proper escape sequence.
3571: l_url := 'javascript:fnd_open_dm_display_window('||''''||
3572: REPLACE('wf_lov.display_lov?p_lov_name='||'h_out_agent_guid'||
3573: '&p_display_name='||'AGENT'||
3574: '&p_validation_callback=wf_event_html.wf_agent_val'||
3575: '&p_dest_hidden_field=top.opener.parent.document.WF_SUBSC_EDIT.h_out_agent_guid.value'||
3576: '&p_current_value=top.opener.parent.document.WF_SUBSC_EDIT.display_out_agent.value'||
3577: '&p_dest_display_field=top.opener.parent.document.WF_SUBSC_EDIT.display_out_agent.value'||
3578: '&p_display_key='||'Y'||
3604: -- the proper escape sequence.
3605: l_url := 'javascript:fnd_open_dm_display_window('||''''||
3606: REPLACE('wf_lov.display_lov?p_lov_name='||'h_to_agent_guid'||
3607: '&p_display_name='||'AGENT'||
3608: '&p_validation_callback=wf_event_html.wf_agent_val'||
3609: '&p_dest_hidden_field=top.opener.parent.document.WF_SUBSC_EDIT.h_to_agent_guid.value'||
3610: '&p_current_value=top.opener.parent.document.WF_SUBSC_EDIT.display_to_agent.value'||
3611: '&p_dest_display_field=top.opener.parent.document.WF_SUBSC_EDIT.display_to_agent.value'||
3612: '&p_display_key='||'Y'||
3754: calign=>'Left',cattributes=>'id=""');
3755: htp.tableRowClose;
3756:
3757: -- URL to go back to
3758: htp.formHidden('url', 'Wf_Event_Html.ListSubscriptions');
3759:
3760: htp.tableClose;
3761: htp.formClose;
3762:
3809:
3810: exception
3811: when OTHERS then
3812: rollback;
3813: wf_core.context('WF_EVENT_HTML', 'EditSubscription');
3814: wfe_html_util.Error;
3815: end EditSubscription;
3816:
3817: --
3905:
3906: -- If url is not specified, we know that it is from the edit event screen
3907: -- for group, so return to that screen with the newly created event guid.
3908: if (url is null or url = '') then
3909: Wf_Event_Html.EditEvent(l_guid);
3910:
3911: -- Go to a specific url
3912: else
3913: Wfe_Html_Util.gotoURL(url);
3915:
3916: exception
3917: when OTHERS then
3918: rollback;
3919: wf_core.context('WF_EVENT_HTML', 'SubmitEvent', rawtohex(l_guid));
3920: wfe_html_util.Error;
3921: end SubmitEvent;
3922:
3923: --
3942: elsif (action = 'FIND') then
3943: -- action is FIND
3944: -- so find event for EditGroup
3945: -- ignore hguid_array
3946: Wf_Event_Html.FindEvent(h_gguid);
3947: return;
3948: elsif (action = 'DELETE') then
3949: l_guid := hextoraw(h_guids(2));
3950: Wf_Event_Html.DeleteSelectedGEvents(h_gguid, h_guids);
3946: Wf_Event_Html.FindEvent(h_gguid);
3947: return;
3948: elsif (action = 'DELETE') then
3949: l_guid := hextoraw(h_guids(2));
3950: Wf_Event_Html.DeleteSelectedGEvents(h_gguid, h_guids);
3951: elsif (action = 'ADD') then
3952: Wf_Event_Html.AddSelectedGEvents(h_gguid, h_guids);
3953: end if;
3954:
3948: elsif (action = 'DELETE') then
3949: l_guid := hextoraw(h_guids(2));
3950: Wf_Event_Html.DeleteSelectedGEvents(h_gguid, h_guids);
3951: elsif (action = 'ADD') then
3952: Wf_Event_Html.AddSelectedGEvents(h_gguid, h_guids);
3953: end if;
3954:
3955: Wfe_Html_Util.gotoURL(url);
3956:
3956:
3957: exception
3958: when OTHERS then
3959: rollback;
3960: wf_core.context('WF_EVENT_HTML', 'SubmitSelectedGEvents',
3961: rawtohex(h_gguid), url);
3962: wfe_html_util.Error;
3963: end SubmitSelectedGEvents;
3964:
4003: wf_core.raise('WF_NOTADMIN');
4004: end if;
4005:
4006: l_mguid := hextoraw(h_master_guid);
4007: Wf_Event_Html.Validate_System_Name(display_master, l_mguid);
4008:
4009: if (h_guid is not null) then
4010: l_guid := hextoraw(h_guid);
4011:
4038:
4039: exception
4040: when OTHERS then
4041: rollback;
4042: wf_core.context('WF_EVENT_HTML', 'SubmitSystem', rawtohex(l_guid));
4043: wfe_html_util.Error;
4044: end SubmitSystem;
4045:
4046: --
4095: wf_core.raise('WF_NOTADMIN');
4096: end if;
4097:
4098: l_system_guid := hextoraw(h_system_guid);
4099: Wf_Event_Html.Validate_System_Name(display_system, l_system_guid);
4100:
4101: if (h_guid is not null) then
4102: l_guid := hextoraw(h_guid);
4103:
4141:
4142: exception
4143: when OTHERS then
4144: rollback;
4145: wf_core.context('WF_EVENT_HTML', 'SubmitAgent', rawtohex(l_guid));
4146: wfe_html_util.Error;
4147: end SubmitAgent;
4148:
4149: --
4221: end if;
4222:
4223: -- validate LOVs
4224: l_sysguid := hextoraw(h_system_guid);
4225: Wf_Event_Html.Validate_System_Name(display_system, l_sysguid);
4226:
4227: l_evtguid := hextoraw(h_event_guid);
4228: Wf_Event_Html.Validate_Event_Name(display_event, l_evtguid);
4229:
4224: l_sysguid := hextoraw(h_system_guid);
4225: Wf_Event_Html.Validate_System_Name(display_system, l_sysguid);
4226:
4227: l_evtguid := hextoraw(h_event_guid);
4228: Wf_Event_Html.Validate_Event_Name(display_event, l_evtguid);
4229:
4230: l_fagnguid := hextoraw(h_source_agent_guid);
4231: Wf_Event_Html.Validate_Agent_Name(display_source_agent, l_fagnguid);
4232:
4227: l_evtguid := hextoraw(h_event_guid);
4228: Wf_Event_Html.Validate_Event_Name(display_event, l_evtguid);
4229:
4230: l_fagnguid := hextoraw(h_source_agent_guid);
4231: Wf_Event_Html.Validate_Agent_Name(display_source_agent, l_fagnguid);
4232:
4233: l_oagnguid := hextoraw(h_out_agent_guid);
4234: Wf_Event_Html.Validate_Agent_Name(display_out_agent, l_oagnguid);
4235:
4230: l_fagnguid := hextoraw(h_source_agent_guid);
4231: Wf_Event_Html.Validate_Agent_Name(display_source_agent, l_fagnguid);
4232:
4233: l_oagnguid := hextoraw(h_out_agent_guid);
4234: Wf_Event_Html.Validate_Agent_Name(display_out_agent, l_oagnguid);
4235:
4236: l_tagnguid := hextoraw(h_to_agent_guid);
4237: Wf_Event_Html.Validate_Agent_Name(display_to_agent, l_tagnguid);
4238:
4233: l_oagnguid := hextoraw(h_out_agent_guid);
4234: Wf_Event_Html.Validate_Agent_Name(display_out_agent, l_oagnguid);
4235:
4236: l_tagnguid := hextoraw(h_to_agent_guid);
4237: Wf_Event_Html.Validate_Agent_Name(display_to_agent, l_tagnguid);
4238:
4239: l_phase := to_number(h_phase);
4240: l_priority := to_number(h_priority);
4241:
4297:
4298: exception
4299: when OTHERS then
4300: rollback;
4301: wf_core.context('WF_EVENT_HTML', 'SubmitSubscription', rawtohex(l_guid));
4302: wfe_html_util.Error;
4303: end SubmitSubscription;
4304:
4305: --
4355: wf_core.raise('WF_NOTADMIN');
4356: end if;
4357:
4358: -- Check if Accessible
4359: wf_event_html.isAccessible('EVENTS');
4360:
4361: -- Determine if this is for group addition or not
4362: if (x_gguid is not null) then
4363: l_url := 'Wf_Event_Html.FindEvent';
4359: wf_event_html.isAccessible('EVENTS');
4360:
4361: -- Determine if this is for group addition or not
4362: if (x_gguid is not null) then
4363: l_url := 'Wf_Event_Html.FindEvent';
4364:
4365: begin
4366: select NAME into l_name
4367: from WF_EVENTS
4377:
4378: title := wf_core.translate('WFE_ADD_TO_GROUP')||': '||l_name;
4379: helptext := 'wf/links/t_d.htm?T_DEFEVGPM';
4380: else
4381: l_url := 'Wf_Event_Html.ListEvents';
4382: title := wf_core.translate('WFE_FIND_EVENT_TITLE');
4383: helptext := 'wf/links/t_f.htm?T_FDEVT';
4384: end if;
4385:
4553: end loop;
4554:
4555: -- Submit Form for Add/Delete
4556: htp.formOpen(curl=>owa_util.get_owa_service_path||
4557: 'Wf_Event_Html.SubmitSelectedGEvents',
4558: cmethod=>'Post',
4559: cattributes=>'TARGET="_top" NAME="WF_GROUP_EDIT"');
4560: htp.formHidden('h_gguid', rawtohex(h_guid));
4561:
4563: htp.formHidden(cname=>'action', cvalue=>'');
4564:
4565: -- Url to come back to later
4566: htp.formHidden(cname=>'url',
4567: cvalue=>'Wf_Event_Html.EditEvent?h_guid='||rawtohex(h_guid));
4568:
4569: -- Add dummy fields to start both array-type input fields.
4570: -- These dummy values are needed so that the array parameters to
4571: -- the submit procedure will not be null even if there are no real
4640:
4641: exception
4642: when others then
4643: rollback;
4644: wf_core.context('WF_EVENT_HTML', 'FindEvent', rawtohex(x_gguid));
4645: wfe_html_util.Error;
4646: end FindEvent;
4647:
4648: --
4714: Wf_Events_Pkg.Delete_Row(h_guid);
4715: end if;
4716:
4717: -- go back to ListEvents
4718: Wfe_Html_Util.gotoURL(wfa_html.base_url||'/Wf_Event_Html.ListEvents');
4719:
4720: exception
4721: when others then
4722: rollback;
4719:
4720: exception
4721: when others then
4722: rollback;
4723: wf_core.context('WF_EVENT_HTML', 'DeleteEvent', rawtohex(h_guid));
4724: wfe_html_util.Error;
4725: end DeleteEvent;
4726:
4727: --
4741:
4742: -- go back to ListSystems
4743: htp.p('');
4747:
4748: exception
4749: when others then
4747:
4748: exception
4749: when others then
4750: rollback;
4751: wf_core.context('WF_EVENT_HTML', 'DeleteSystem', rawtohex(h_guid));
4752: wfe_html_util.Error;
4753: end DeleteSystem;
4754:
4755: --
4769:
4770: -- go back to ListAgents
4771: htp.p('');
4775:
4776: exception
4777: when others then
4775:
4776: exception
4777: when others then
4778: rollback;
4779: wf_core.context('WF_EVENT_HTML', 'DeleteAgent', rawtohex(h_guid));
4780: wfe_html_util.Error;
4781: end DeleteAgent;
4782:
4783: -- DeleteSubscription
4796:
4797: -- go back to ListSubscriptions
4798: htp.p('');
4802:
4803: exception
4804: when others then
4802:
4803: exception
4804: when others then
4805: rollback;
4806: wf_core.context('WF_EVENT_HTML', 'DeleteSubscription', rawtohex(h_guid));
4807: wfe_html_util.Error;
4808: end DeleteSubscription;
4809:
4810: --
4953: p_result := l_result;
4954: exception
4955: when OTHERS then
4956: rollback;
4957: wf_core.context('WF_EVENT_HTML', 'Wf_Event_Val');
4958: raise;
4959: end Wf_Event_Val;
4960:
4961: --
5084: p_result := l_result;
5085: exception
5086: when OTHERS then
5087: rollback;
5088: wf_core.context('WF_EVENT_HTML', 'Wf_System_Val');
5089: raise;
5090: end Wf_System_Val;
5091:
5092: --
5243: p_result := l_result;
5244: exception
5245: when OTHERS then
5246: rollback;
5247: wf_core.context('WF_EVENT_HTML', 'Wf_Agent_Val');
5248: raise;
5249: end Wf_Agent_Val;
5250:
5251: --
5375: p_result := l_result;
5376: exception
5377: when OTHERS then
5378: rollback;
5379: wf_core.context('WF_EVENT_HTML', 'Wf_ItemType_Val');
5380: raise;
5381: end Wf_ItemType_Val;
5382:
5383: --
5509: p_result := l_result;
5510: exception
5511: when OTHERS then
5512: rollback;
5513: wf_core.context('WF_EVENT_HTML', 'Wf_ProcessName_Val');
5514: raise;
5515: end Wf_ProcessName_Val;
5516:
5517: --
5609: end if;
5610:
5611: exception
5612: when OTHERS then
5613: wf_core.context('Wf_Event_Html', 'Validate_Event_Name', p_name,
5614: rawtohex(p_guid));
5615: raise;
5616: end Validate_Event_Name;
5617:
5710: end if;
5711:
5712: exception
5713: when OTHERS then
5714: wf_core.context('Wf_Event_Html', 'Validate_System_Name', p_name,
5715: rawtohex(p_guid));
5716: raise;
5717: end Validate_System_Name;
5718:
5813: end if;
5814:
5815: exception
5816: when OTHERS then
5817: wf_core.context('Wf_Event_Html', 'Validate_Agent_Name', p_name,
5818: rawtohex(p_guid));
5819: raise;
5820: end Validate_Agent_Name;
5821:
5863: end;
5864:
5865: exception
5866: when OTHERS then
5867: wf_core.context('WF_EVENT_HTML', 'AddSelectedGEvents', rawtohex(h_gguid));
5868: raise;
5869: end AddSelectedGEvents;
5870:
5871: --
5898: end;
5899:
5900: exception
5901: when OTHERS then
5902: wf_core.context('WF_EVENT_HTML','DeleteSelectedGEvents',rawtohex(h_gguid));
5903: raise;
5904: end DeleteSelectedGEvents;
5905: -- EnterEventDetails
5906: -- Enter Event Name, Event Key, Event Data to raise business event
5952: dbms_lob.write(l_event_data, length(p_event_data), 1 , p_event_data);
5953: wf_event.raise(p_event_name, p_event_key, l_event_data);
5954: end if;
5955:
5956: owa_util.redirect_url(curl=> wfa_html.base_url||'/wf_event_html.RaiseEventConfirm?p_event_name='||p_event_name||'&p_event_key='||p_event_key);
5957:
5958: exception
5959: when OTHERS then
5960: rollback;
5957:
5958: exception
5959: when OTHERS then
5960: rollback;
5961: wf_core.context('WF_EVENT_HTML', 'RaiseEvent', p_event_name, p_event_key);
5962: wfe_html_util.Error;
5963: --raise;
5964: end RaiseEvent;
5965: -- RaiseEventConfirm
6013: htp.tableopen (cattributes =>'align=CENTER border=0 summary=""');
6014: htp.tableRowOpen;
6015: htp.p('
6029: htp.htmlClose;
6030: exception
6031: when OTHERS then
6032: rollback;
6033: wf_core.context('WF_EVENT_HTML', 'RaiseEventConfirm');
6034: wfe_html_util.Error;
6035: --raise;
6036: end RaiseEventConfirm;
6037: -- GetSystemIdentifier
6074: wf_core.raise('WF_NOTADMIN');
6075: end if;
6076:
6077: -- Check if Accessible
6078: wf_event_html.isAccessible('AGENTS');
6079:
6080: -- Get Local System GUID
6081: l_system_guid := hextoraw(wf_core.translate('WF_SYSTEM_GUID'));
6082:
6105:
6106: exception
6107: when OTHERS then
6108: rollback;
6109: wf_core.context('WF_EVENT_HTML', 'GetSystemIdentifier');
6110: wfe_html_util.Error;
6111: --raise;
6112: end GetSystemIdentifier;
6113:
6172:
6173: end if;
6174:
6175: -- Check if Accessible
6176: wf_event_html.isAccessible('AGENTS');
6177:
6178: -- Set page title
6179: htp.htmlOpen;
6180: htp.headOpen;
6274: '',
6275: l_rc);
6276: IF l_rc = 1 then
6277: htp.tableData(htf.anchor2(curl=>wfa_html.base_url||
6278: '/wf_event_html.FindQueueMessage?p_queue_name='||
6279: queues.queue_name||'&p_type=WF_EVENT_T',
6280: ctext=>''),
6297: l_rc);
6298:
6299: IF l_rc = 1 then
6300: htp.tableData(htf.anchor2(curl=>wfa_html.base_url||
6301: '/wf_event_html.FindECXMSGQueueMessage?p_queue_name='||
6302: queues.queue_name||'&p_type=ECX_MSG',
6303: ctext=>''),
6321: l_rc);
6322:
6323: IF l_rc = 1 then
6324: htp.tableData(htf.anchor2(curl=>wfa_html.base_url||
6325: '/wf_event_html.FindECX_INENGOBJQueueMessage?p_queue_name='||
6326: queues.queue_name||'&p_type=INENGOBJ',
6327: ctext=>''),
6354:
6355: exception
6356: when others then
6357: rollback;
6358: wf_core.context('WF_EVENT_HTML', 'EventQueueDisplay');
6359: wfe_html_util.Error;
6360: --raise;
6361: end EventQueueDisplay;
6362: -- FindQueueMessage
6411: wf_core.raise('WF_NOTADMIN');
6412: end if;
6413:
6414: -- Check if Accessible
6415: wf_event_html.isAccessible('AGENTS');
6416:
6417: l_url := 'Wf_Event_Html.ListQueueMessages';
6418: title := wf_core.translate('WFE_FIND_QUEUE_MESSAGES_TITLE');
6419: helptext := 'wf/links/t_f.htm?T_FDQMSG';
6413:
6414: -- Check if Accessible
6415: wf_event_html.isAccessible('AGENTS');
6416:
6417: l_url := 'Wf_Event_Html.ListQueueMessages';
6418: title := wf_core.translate('WFE_FIND_QUEUE_MESSAGES_TITLE');
6419: helptext := 'wf/links/t_f.htm?T_FDQMSG';
6420:
6421: -- Render page
6522:
6523: exception
6524: when others then
6525: rollback;
6526: wf_core.context('WF_EVENT_HTML', 'FindQueueMessage');
6527: wfe_html_util.Error;
6528: end;
6529: -- FindECXMSGQueueMessage
6530: -- Filter Screen over Queue Messages
6569: wf_core.raise('WF_NOTADMIN');
6570: end if;
6571:
6572: -- Check if Accessible
6573: wf_event_html.isAccessible('AGENTS');
6574:
6575: l_url := 'ecx_workflow_html.ListECXMSGQueueMessages';
6576: title := wf_core.translate('WFE_FIND_QUEUE_MESSAGES_TITLE');
6577: helptext := 'wf/links/t_f.htm?T_FDQMSG';
6691:
6692: exception
6693: when others then
6694: rollback;
6695: wf_core.context('WF_EVENT_HTML', 'FindECXMSGQueueMessage');
6696: wfe_html_util.Error;
6697: end;
6698: -- FindECXMSGQueueMessage
6699: -- Filter Screen over Queue Messages
6738: wf_core.raise('WF_NOTADMIN');
6739: end if;
6740:
6741: -- Check if Accessible
6742: wf_event_html.isAccessible('AGENTS');
6743:
6744: l_url := 'ecx_workflow_html.ListECX_INENGOBJQueueMessages';
6745: title := wf_core.translate('WFE_FIND_QUEUE_MESSAGES_TITLE');
6746: helptext := 'wf/links/t_f.htm?T_FDQMSG';
6838:
6839: exception
6840: when others then
6841: rollback;
6842: wf_core.context('WF_EVENT_HTML', 'FindECX_INENGOBJQueueMessage');
6843: wfe_html_util.Error;
6844: end;
6845:
6846:
6923:
6924: end if;
6925:
6926: -- Check if Accessible
6927: wf_event_html.isAccessible('AGENTS');
6928:
6929: -- Set page title
6930: htp.htmlOpen;
6931: htp.headOpen;
6932: htp.p('
6933: htp.title(wf_core.translate('WFQUEUE_MESSAGE_TITLE'));
6934: wfa_html.create_help_function('wf/links/t_l.htm?T_LQUEM');
6935: htp.headClose;
6936: wfa_sec.Header(FALSE, owa_util.get_owa_service_path ||'wf_event_html.FindQueueMessage?p_queue_name='||p_queue_name||'&p_type=WF_EVENT_T', wf_core.translate('WFQUEUE_MESSAGE_TITLE'), TRUE);
6937: htp.br;
6938:
6939: IF (admin_mode = 'N') THEN
6940: htp.center(htf.bold(l_error_msg));
7192:
7193: l_eventdata := l_message.GetEventData();
7194:
7195: htp.tableData(htf.anchor2(curl=>wfa_html.base_url||
7196: '/wf_event_html.EventDataContents?p_message_id='||l_msg_id
7197: ||'&p_queue_table='||l_qtable||'&p_mimetype=text/xml',
7198: ctext=>'
7199: BORDER=0>'),
7200: 'center', cattributes=>'valign="MIDDLE"
7199: BORDER=0>'),
7200: 'center', cattributes=>'valign="MIDDLE"
7201: headers="' || wf_core.translate('XMLEVENTDATA') || '"');
7202: htp.tableData(htf.anchor2(curl=>wfa_html.base_url||
7203: '/wf_event_html.EventDataContents?p_message_id='||l_msg_id
7204: ||'&p_queue_table='||l_qtable||'&p_mimetype=text',
7205: ctext=>'
7206: BORDER=0>'),
7207: 'center', cattributes=>'valign="MIDDLE"
7222:
7223: exception
7224: when others then
7225: rollback;
7226: Wf_Core.Context('WF_EVENT_HTML', 'ListQueueMessages',
7227: p_queue_name);
7228: wfe_html_util.Error;
7229: --raise;
7230: end ListQueueMessages;
7419: END IF;
7420: exception
7421: when others then
7422: rollback;
7423: Wf_Core.Context('WF_EVENT_HTML', 'EventDataContents',
7424: p_queue_table,p_message_id);
7425: wfe_html_util.Error;
7426: --raise;
7427: end EventDataContents;
7565: end getFWKEvtSubscriptionUrl;
7566:
7567:
7568: /**Gets old Event Subscription URL's of the form
7569: host:port/pls/
7571: event subscription page is directly accessed
7572: without the using PL/SQL catridge.Returns following error code
7573: 0 - Success
7589: end updateToFWKEvtSubscriptionUrl;
7590:
7591:
7592: /**Gets old Event Data URL's of the form
7593: host:port/pls/
7595: event data page is directly accessed
7596: without the using PL/SQL catridge.Returns following error code
7597: 0 - Success
7620: end if;
7621: end updateToFWKEvtDataUrl;
7622:
7623:
7624: end WF_EVENT_HTML;
7625: