...
Tip |
---|
Przydatne linki |
Zadanie zaplanowane
Zadanie zaplanowane to komponent użytkownika pozwalający na zdefiniowanie zadania wykonywanego okresowo.
Stworzenie zadania zaplanowanego możliwe jest w panelu administratora (Administracja -> Konfiguracja systemu -> Zadania zaplanowane)
Definiowanie zadania zaplanowanego
Zadanie zaplanowane tworzone jest w oparciu o definicję stworzoną przez użytkownika. Definicja taka musi zawierać następujące elementy:
...
Code Block | ||
---|---|---|
| ||
@ScheduledTask public class ExampleScheduledTask { @Define public void definition( ScheduledTaskDefinitionBuilder builder ) { builder .id( "example-scheduled-task" ) .name( "example.scheduled.task.name" ) .description( "example.scheduled.task.desc" ) .cancelable() .parameter() .id( "scheduled-task-param" ) .name( "example.scheduled.task.param.name" ) .description( "example.scheduled.task.param.desc" ) .type( Types.STRING ) .create(); } public void execute( @Param( value = "scheduled-task-param" ) String param ) { // Ciało zadania zaplanowanego ... } } |
Implementacja metody execute
Zadanie zaplanowane musi posiadać metodę o nazwie execute. Metoda może posiadać następujące typy parametrów:
- pojedynczy parametr zadania zaplanowanego - typ parametru musi być zgodny ze zdefiniowanym typem oraz musi być poprzedzony adnotacją @Param. Obsługiwane typy parametrów:
- STRING
- INTEGER
- FLOAT
- DATE - mapowane do org.joda.time.LocalDate (format yyyy-MM-dd)
- DATETIME - mapowane do org.joda.time.LocalDateTime (format yyyy-MM-dd HH:mm:ss)
- zawiera wszystkie zdefiniowane parametry zadania zaplanowanego wraz z ich wartościami, jest to alternatywa dla pobierania parametru za pomocą wyżej wspomnianej adnotacji @Param,Javadoc displayValue Parameters property javadoc.plusworkflow className com.suncode.pwfl.component.Parameters
- translator dla tego komponentu. Więcej informacji tutaj,Javadoc displayValue Translator property javadoc.plusworkflow className com.suncode.pwfl.translation.Translator
- przechowuje informację o tym, czy użytkownik w GUI kliknął przycisk Anuluj wykonywanie. Sam mechanizm anulowania zadania musi zaimplementować twórca komponentu. Przycisk Anuluj wykonywanie pokaże się tylko, jeżeli w builderze została wywołana metoda cancelable,Javadoc displayValue CancelationHandler property javadoc.plusworkflow className com.suncode.pwfl.administration.scheduledtask.context.CancelationHandler - Logger - logger do logowania własnych komunikatów w komponencie. Komunikaty są zapisywane do plików (skonfigurowanych w Log4j) oraz zostaną wyświetlone w historii wykonywania zadania.
- obiekt, w którym ustawić można aktualny progress wykonywania zadania zaplanowanego (liczba między 0 a 1). Progress ten zostanie wyświetlony w GUI.Javadoc displayValue ProgressHolder property javadoc.plusworkflow className com.suncode.pwfl.administration.scheduledtask.context.ProgressHolder
Rejestracja zadania zaplanowanego we wtyczce
Jeżeli zadanie zaplanowane jest definiowane we wtyczce to należy dodatkowo zaznaczyć, że wtyczka ta udostępnia komponenty. W tym celu należy w pliku suncode-plugin.xml dodać wpis:
Code Block | ||
---|---|---|
| ||
<!-- Udostępnianie komponentów (m.in. zadań zaplanowanych) --> <workflow-components key="components" /> |
Metoda jako zadanie zaplanowane we wtyczce
Zadanie zaplanowane we wtyczce nie musi być komponentem. Może zostać stworzone tak samo, jak zadania zaplanowane definiowane w projektach klienckich - zadanie zaplanowane jako wywołanie publicznej metody.
...