1: package body WF_SETUP as
2: /* $Header: wfevsetb.pls 115.17 2004/06/02 17:41:54 dlam ship $ */
3:
4: function GetLocalSystemGUID
5: return raw
15: exception
16: when no_data_found then
17: wf_core.raise('WFE_NO_SYSTEM');
18: when OTHERS then
19: wf_core.context('WF_SETUP', 'GetLocalSystemGUID');
20: raise;
21: end GetLocalSystemGUID;
22:
23: function GetLocalSystem
33:
34: return (lsys);
35: exception
36: when OTHERS then
37: wf_core.context('WF_SETUP', 'GetLocalSystem');
38: raise;
39: end GetLocalSystem;
40:
41: procedure Check_InitParameters
96: Wfe_Html_Util.Simple_Table(hTab, dTab);
97:
98: exception
99: when OTHERS then
100: wf_core.context('WF_SETUP', 'Check_InitParameters');
101: wfe_html_util.Error;
102: end Check_InitParameters;
103:
104: procedure Check_Dblinks(
166:
167: exception
168: when OTHERS then
169: rollback;
170: wf_core.context('WF_SETUP', 'Check_Dblinks');
171: wfe_html_util.Error;
172: end Check_Dblinks;
173:
174:
284:
285: exception
286: when OTHERS then
287: rollback;
288: wf_core.context('WF_SETUP', 'Check_Queues');
289: wfe_html_util.Error;
290: end Check_Queues;
291:
292:
341:
342: -- append creation function
343: if (creatable) then
344: dTab(i).col03 := dTab(i).col03||
345: "
346: rawtohex(lqr.guid)||">'||
347: wf_core.translate('CREATE')||
348: '';
349: else
347: wf_core.translate(" CREATE')||
348: '';
349: else
350: dTab(i).col03 := dTab(i).col03||
351: '
352: rawtohex(lqr.guid)||">'||
353: wf_core.translate('EDIT')||
354: '';
355: end if;
381:
382: exception
383: when OTHERS then
384: rollback;
385: wf_core.context('WF_SETUP', 'Check_Listeners');
386: wfe_html_util.Error;
387: end Check_Listeners;
388:
389:
477:
478: if (creatable) then
479: dTab(i).col03 :=
480: '
482: ||" &tosystem="||ppgr.tosystem
483: ||" &edit="N'
484: ||'>'||
485: wf_core.translate('CREATE')||
486: '';
487: else
488: dTab(i).col03 :=
489: '
491: ||" &tosystem="||ppgr.tosystem
492: ||" &edit="Y'
493: ||'>'||
494: wf_core.translate('EDIT')||
523:
524: exception
525: when OTHERS then
526: rollback;
527: wf_core.context('WF_SETUP', 'Check_Propagations');
528: wfe_html_util.Error;
529: end Check_Propagations;
530:
531: procedure Check_All
554:
555: -- Check if Accessible
556: wf_event_html.isAccessible('SYSTEM');
557:
558: lguid := Wf_Setup.GetLocalSystemGUID;
559: lsys := Wf_Setup.GetLocalSystem;
560:
561: -- Render page
562: htp.htmlOpen;
555: -- Check if Accessible
556: wf_event_html.isAccessible('SYSTEM');
557:
558: lguid := Wf_Setup.GetLocalSystemGUID;
559: lsys := Wf_Setup.GetLocalSystem;
560:
561: -- Render page
562: htp.htmlOpen;
563:
582: TRUE);
583:
584: htp.br; -- add some space between header and table
585:
586: Wf_Setup.Check_InitParameters;
587: htp.br;
588:
589: Wf_Setup.Check_Dblinks(lguid);
590: htp.br;
585:
586: Wf_Setup.Check_InitParameters;
587: htp.br;
588:
589: Wf_Setup.Check_Dblinks(lguid);
590: htp.br;
591:
592: Wf_Setup.Check_Queues(lguid);
593: htp.br;
588:
589: Wf_Setup.Check_Dblinks(lguid);
590: htp.br;
591:
592: Wf_Setup.Check_Queues(lguid);
593: htp.br;
594:
595: Wf_Setup.Check_Listeners(lguid);
596: htp.br;
591:
592: Wf_Setup.Check_Queues(lguid);
593: htp.br;
594:
595: Wf_Setup.Check_Listeners(lguid);
596: htp.br;
597:
598: Wf_Setup.Check_Propagations(lguid);
599: htp.br;
594:
595: Wf_Setup.Check_Listeners(lguid);
596: htp.br;
597:
598: Wf_Setup.Check_Propagations(lguid);
599: htp.br;
600:
601: wfa_sec.Footer;
602: htp.htmlClose;
603:
604: exception
605: when OTHERS then
606: rollback;
607: wf_core.context('WF_SETUP', 'Check_All');
608: wfe_html_util.Error;
609: end Check_All;
610:
611: -- ###
639: wf_core.raise('WF_NOTADMIN');
640: end if;
641:
642: -- check system is local
643: lguid := Wf_Setup.GetLocalSystemGUID;
644:
645: begin
646: select SYSTEM_GUID, substr(QUEUE_NAME,1,30)
647: into sguid, qname
685:
686: commit;
687:
688: -- go back to check_all
689: Wfe_Html_Util.gotoURL(p_url=>wfa_html.base_url||'/Wf_Setup.Check_All');
690:
691: exception
692: when OTHERS then
693: rollback;
690:
691: exception
692: when OTHERS then
693: rollback;
694: wf_core.context('WF_SETUP', 'Create_Queue', rawtohex(aguid),
695: qname, qtable);
696: wfe_html_util.Error;
697: end Create_Queue;
698:
757: owa_util.http_header_close;
758: end if;
759:
760: -- get local system
761: lguid := Wf_Setup.GetLocalSystemGUID;
762:
763: -- check agent is local
764: begin
765: select NAME
785: end loop;
786:
787: i := 1;
788: hTab(i).def_type := 'FUNCTION';
789: hTab(i).value := 'Wf_Setup.DeleteJob?h_url='||
790: wfa_html.base_url||'/Wf_Setup.List_Listener&h_job=';
791: i := i+1;
792: hTab(i).def_type := 'FUNCTION';
793: hTab(i).value := null;
786:
787: i := 1;
788: hTab(i).def_type := 'FUNCTION';
789: hTab(i).value := 'Wf_Setup.DeleteJob?h_url='||
790: wfa_html.base_url||'/Wf_Setup.List_Listener&h_job=';
791: i := i+1;
792: hTab(i).def_type := 'FUNCTION';
793: hTab(i).value := null;
794: i := i+1;
792: hTab(i).def_type := 'FUNCTION';
793: hTab(i).value := null;
794: i := i+1;
795: hTab(i).def_type := 'FUNCTION';
796: hTab(i).value := 'Wf_Setup.Edit_Listener?aguid='||rawtohex(l_aguid)
797: ||'&url='
798: ||wfa_html.base_url||'/Wf_Setup.List_Listener&jobnum=';
799: i := i+1;
800: hTab(i).def_type := 'TITLE';
794: i := i+1;
795: hTab(i).def_type := 'FUNCTION';
796: hTab(i).value := 'Wf_Setup.Edit_Listener?aguid='||rawtohex(l_aguid)
797: ||'&url='
798: ||wfa_html.base_url||'/Wf_Setup.List_Listener&jobnum=';
799: i := i+1;
800: hTab(i).def_type := 'TITLE';
801: hTab(i).value := null; -- no detail title
802: i := i+1;
848: htp.tableRowOpen;
849: htp.p('
850:
851: -- construct the url for adding listener
852: l_url := wfa_html.base_url||'/Wf_Setup.Edit_Listener?aguid='
853: ||rawtohex(l_aguid)
854: ||'&url='||wfa_html.base_url||'/Wf_Setup.List_Listener';
855:
856: wfa_html.create_reg_button (l_url,
857: wf_core.translate('ADD'),
858: wfa_html.image_loc,
876: htp.htmlClose;
877:
878: exception
879: when OTHERS then
880: wf_core.context('WF_SETUP', 'List_Listener', rawtohex(l_aguid));
881: wfe_html_util.Error;
882: end List_Listener;
883:
884: --
924: wf_core.raise('WF_NOTADMIN');
925: end if;
926:
927: -- get local system
928: lguid := Wf_Setup.GetLocalSystemGUID;
929:
930: -- check agent is local
931: begin
932: select NAME
956: wfa_sec.Header(FALSE, null, wf_core.translate('WFE_EDIT_LISTENER_TITLE'),
957: TRUE);
958:
959: -- Form
960: l_url := 'Wf_Setup.SubmitListener';
961: htp.formOpen(curl=>owa_util.get_owa_service_path||l_url,
962: cmethod=>'Post',
963: cattributes=>'TARGET="_top" NAME="WF_LSNR_EDIT"');
964:
1022:
1023: -- go back to the specified URL
1024: -- if url is null, go back to check_all
1025: if (url is null) then
1026: htp.formHidden('h_url',wfa_html.base_url||'/Wf_Setup.Check_All');
1027: else
1028: htp.formHidden('h_url',url);
1029: end if;
1030:
1096: commit;
1097: exception
1098: when OTHERS then
1099: rollback;
1100: wf_core.context('WF_SETUP', 'Edit_Listener', rawtohex(aguid));
1101: wfe_html_util.Error;
1102: end Edit_Listener;
1103:
1104: procedure Edit_Propagation(
1177: wfa_sec.Header(FALSE, null, wf_core.translate('WFE_EDIT_PROPAGATION_TITLE'),
1178: TRUE);
1179:
1180: -- Form
1181: l_url := 'Wf_Setup.SubmitPropagation';
1182: htp.formOpen(curl=>owa_util.get_owa_service_path||l_url,
1183: cmethod=>'Post',
1184: cattributes=>'TARGET="_top" NAME="WF_PPGN_EDIT"');
1185:
1238:
1239: -- go back to the specified URL
1240: -- if url is null, go back to check_all
1241: if (url is null) then
1242: htp.formHidden('h_url',wfa_html.base_url||'/Wf_Setup.Check_All');
1243: else
1244: htp.formHidden('h_url',url);
1245: end if;
1246:
1341:
1342: exception
1343: when OTHERS then
1344: rollback;
1345: wf_core.context('WF_SETUP', 'Edit_Propagation', oqueue, tosystem, url);
1346: wfe_html_util.Error;
1347: end Edit_Propagation;
1348:
1349:
1439: end if;
1440:
1441: -- next rundate should be future date
1442: if (l_rundate is not null) then
1443: if (Wf_Setup.JobNextRunDate(l_job,l_day,l_hour,l_minute,l_sec)
1444: <= sysdate) then
1445: wf_core.raise('WFE_LATER_INTERVAL');
1446: end if;
1447: end if;
1447: end if;
1448:
1449: DBMS_JOB.Interval(
1450: job=>l_job,
1451: interval=>'Wf_Setup.JobNextRunDate('||to_char(l_job)||','||
1452: to_char(l_day)||','||
1453: to_char(l_hour)||','||
1454: to_char(l_minute)||','||
1455: to_char(l_sec)||')'
1469:
1470: exception
1471: when OTHERS then
1472: rollback;
1473: wf_core.context('WF_SETUP', 'SubmitListener', h_name, h_rundate,
1474: '('||h_day||','||h_hour||','||h_minute||','||h_sec||')');
1475: wfe_html_util.Error;
1476: end SubmitListener;
1477:
1496: l_nextrun varchar2(2000);
1497: begin
1498: -- remove the old schedule and return
1499: if (h_action = 'DELETE') then
1500: Wf_Setup.DeletePropagation(h_qname, h_system);
1501:
1502: -- go back to the specified URL
1503: Wfe_Html_Util.gotoURL(h_url);
1504: return;
1529: end;
1530:
1531: -- remove the old schedule first
1532: if (h_edit = 'Y') then
1533: Wf_Setup.DeletePropagation(h_qname, h_system);
1534: end if;
1535:
1536: -- calculate the nextrun function
1537: if (l_interval is not null) then
1557:
1558: exception
1559: when OTHERS then
1560: rollback;
1561: wf_core.context('WF_SETUP', 'SubmitPropagation', h_qname, h_system,
1562: h_duration, h_interval, h_latency);
1563: wfe_html_util.Error;
1564: end SubmitPropagation;
1565:
1593: -- go back to the specified URL
1594: Wfe_Html_Util.gotoURL(h_url);
1595: exception
1596: when OTHERS then
1597: wf_core.context('WF_SETUP', 'DeleteJob', h_job, h_url);
1598: raise;
1599: end DeleteJob;
1600:
1601: --
1627: destination=>h_system
1628: );
1629: exception
1630: when OTHERS then
1631: wf_core.context('WF_SETUP', 'DeletePropagation', h_qname, h_system);
1632: raise;
1633: end DeletePropagation;
1634:
1635: --
1694: l_latency := to_number(60);
1695: end;
1696:
1697: -- In case an existing propagation schedule exists
1698: Wf_Setup.DeletePropagation(h_qname, h_system);
1699:
1700: -- schedule propagation
1701: DBMS_AQADM.Schedule_Propagation(
1702: queue_name=>h_qname,
1707:
1708: exception
1709: when OTHERS then
1710: rollback;
1711: wf_core.context('WF_SETUP', 'SubmitPropagation', h_qname, h_system,
1712: h_duration,h_latency);
1713: raise;
1714: end SubmitPropagation;
1715: end WF_SETUP;
1711: wf_core.context('WF_SETUP', 'SubmitPropagation', h_qname, h_system,
1712: h_duration,h_latency);
1713: raise;
1714: end SubmitPropagation;
1715: end WF_SETUP;