tony_ziroff
Occasional Observer

ScheculeEntry abhängig von der Zeit abbrechen

Jump to solution

Hallo,

Ich möchte einen stündlichen ScheduleEntry nur tagsüber ausführen,

Ich habe folgendes Script als erste Task des Schedule Entries , Die nachfolgenden Tasks werden jedoch trotzdem ausgeführt.

Wie kann ich den kompletten Scheduleentry beenden?

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

import java.util.*;

import de.espirit.firstspirit.access.*;

int DEPLOYMENT_START_TIME = 6;

int DEPLOYMENT_END_TIME = 18;

Date date = new Date();   // given date

Calendar calendar = GregorianCalendar.getInstance(); // creates a new calendar instance

calendar.setTime(date);   // assigns calendar to given date

int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY); // gets hour in 24h format

if( hourOfDay > DEPLOYMENT_START_TIME && hourOfDay < DEPLOYMENT_END_TIME ){

    context.logInfo("starting deployment");

}else{

    t = context.getTask();

    s = t.getScheduleEntry();

    s.setActive(false);

    context.logInfo("cancel deployment " + s.getName());

}

0 Kudos
1 Solution

Accepted Solutions
robin_kump
I'm new here

Hallo Tony,

wir verwenden einen umgedrehte Mechanismus, d.h. nur der erste Task eines Auftrags ist standardmäßig aktiv. Alle anderen Tasks werden bei Bedarf durch diesen Task aktiviert.

if(hourOfDay > DEPLOYMENT_START_TIME && hourOfDay < DEPLOYMENT_END_TIME) {

    for(task : context.getTasks()) {

        if(!"control".equals(task.getName())) {

            task.setActive(true);

        }

    }

}

Geht natürlch auch umgedreht, aber Du musst auf jeden Fall die Tasks aktivieren/deaktivieren und nicht den ScheduleEntry.

Beste Grüße

Robin

View solution in original post

0 Kudos
2 Replies
robin_kump
I'm new here

Hallo Tony,

wir verwenden einen umgedrehte Mechanismus, d.h. nur der erste Task eines Auftrags ist standardmäßig aktiv. Alle anderen Tasks werden bei Bedarf durch diesen Task aktiviert.

if(hourOfDay > DEPLOYMENT_START_TIME && hourOfDay < DEPLOYMENT_END_TIME) {

    for(task : context.getTasks()) {

        if(!"control".equals(task.getName())) {

            task.setActive(true);

        }

    }

}

Geht natürlch auch umgedreht, aber Du musst auf jeden Fall die Tasks aktivieren/deaktivieren und nicht den ScheduleEntry.

Beste Grüße

Robin

0 Kudos

Hallo Robin,

danke dir. Ich probiere das mal mit den Tasks aus. Ich denke das mein Fehler war, zu versuchen, den ScheduleEntry abzubrechen!

VG,

Tony

0 Kudos