= !ScheduleMaker実装サービス jp.ossc.nimbus.service.scheduler2.!DatabaseConditionScheduleMakerService [http://nimbus.sourceforge.jp/reports/apidocs/jp/ossc/nimbus/service/scheduler2/DatabaseConditionScheduleMakerService.html jp.ossc.nimbus.service.scheduler2.DatabaseConditionScheduleMakerService]は、スケジュールを作成する条件判断をSQLで行う[http://nimbus.sourceforge.jp/reports/apidocs/jp/ossc/nimbus/service/scheduler2/ScheduleMaker.html ScheduleMaker]実装サービスです。 SQLの戻り値が、BOOL型trueまたはNUMBER型0以外またはCHAR型0以外の場合は、スケジュールを作成します。 このサービスは、複合的なサービスで、以下のサービスを下位サービスとして使用します。 ||下位サービスインタフェース||用途|| ||[wiki:Function/service/connection#header_ConnectionFactory jp.ossc.nimbus.service.connection.ConnectionFactory]||JDBCコネクションを取得する。|| 以下に簡単なサービス定義を示します。 {{{ code xml <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE server PUBLIC "-//Nimbus//DTD Nimbus 1.0//JA" "http://nimbus.sourceforge.jp/dtd/nimbus-service_1_0.dtd"> <server> <manager> <!-- ScheduleMakerサービス --> <service name="BusinessDayScheduleMaker" code="jp.ossc.nimbus.service.scheduler2.DatabaseConditionScheduleMakerService"> <!-- スケジュール作成日をSQLに文字列として埋め込む場合のフォーマットを設定する --> <attribute name="DateFormat">yyyyMMdd</attribute> <!-- SQLを設定する --> <attribute name="Query"> SELECT COUNT(1) FROM BUSINESSDAY WHERE DAY = ? </attribute> <!-- ConnectionFactoryサービスのサービス名を設定する --> <attribute name="ConnectionFactoryServiceName">#ConnectionFactory</attribute> <depends>ConnectionFactory</depends> </service> <!-- JDBCドライバ経由でConnectionを取得するConnectionFactoryサービス --> <service name="ConnectionFactory" code="jp.ossc.nimbus.service.connection.JDBCConnectionFactoryService"> <attribute name="DriverName">org.hsqldb.jdbcDriver</attribute> <attribute name="ConnectionURL">jdbc:hsqldb:./localDB</attribute> <attribute name="UserName">sa</attribute> <attribute name="Password"></attribute> </service> <!-- ScheduleManagerサービス --> <service name="ScheduleManager" code="jp.ossc.nimbus.service.scheduler2.DefaultScheduleManagerService"> <attribute name="ScheduleMasterServiceNames"> #ScheduleMaster1 #ScheduleMaster2 </attribute> <attribute name="ScheduleMakerTypeMapping"> 営業日=#BusinessDayScheduleMaker </attribute> <attribute name="PersistDir">./schedule</attribute> <depends>BusinessDayScheduleMaker</depends> <depends> <!-- スケジュールマスタ1 08:00:00にFlow1を実行するスケジュール --> <service name="ScheduleMaster1" code="jp.ossc.nimbus.service.scheduler2.DefaultScheduleMaster"> <attribute name="Id">Schedule1</attribute> <attribute name="TaskName">Flow1</attribute> <attribute name="StartTime">// 08:00:00 000</attribute> <attribute name="ScheduleType">営業日</attribute> </service> </depends> <depends> <!-- スケジュールマスタ2 スケジュールマスタ1の終了を待って、08:00:00にFlow2を実行するスケジュール --> <service name="ScheduleMaster2" code="jp.ossc.nimbus.service.scheduler2.DefaultScheduleMaster"> <attribute name="Id">Schedule2</attribute> <attribute name="TaskName">Flow2</attribute> <attribute name="StartTime">// 08:00:00 000</attribute> <attribute name="Input">100</attribute> <attribute name="Depends">Schedule1</attribute> <attribute name="ScheduleType">毎日</attribute> </service> </depends> </service> </manager> </server> }}} ---- [wiki:Function/service/scheduler#header_scheduler2_ScheduleMaker スケジューラ/高機能スケジューラ/ScheduleMaker]