Przydatne linki |
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)
Zadanie zaplanowane tworzone jest w oparciu o definicję stworzoną przez użytkownika. Definicja taka musi zawierać następujące elementy:
com.suncode
)Definicja może zawierać również adnotację @ScheduledTaskScript. Adnotacja ta przekazuje ścieżkę do skryptu (z classpath) zawierającego definicję formularza dynamicznego.
Przykładowa definicja przedstawiona jest poniżej:
@ScheduledTask @ScheduledTaskScript( "js/example-form.js" ) 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 ... } } |
Zadanie zaplanowane musi posiadać metodę o nazwie execute. Metoda może posiadać następujące typy parametrów:
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:
<!-- Udostępnianie komponentów (m.in. zadań zaplanowanych) --> <workflow-components key="components" /> |
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.
Np. po stworzeniu klasy we wtyczce:
package com.suncode.plugin; public class SomePluginClass { public void someMethod( String text, Integer number ) { System.out.println( "Text: " + text + ", number: " + number ); } public void someMethod2( String text, Double number ) { System.out.println( "Text: " + text + ", number: " + number ); } } |
Po wpisaniu com.suncode.plugin.SomePluginClass w pole Nazwa klasy w oknie dodawania nowego zadania zaplanowanego wyświetlone zostaną metody someMethod oraz someMethod2, które można wybrać i dodać jako zadanie zaplanowane.
Takie zadania mają jednak ograniczenia:
Ze względu na powyższe ograniczenia funkcjonalność ta powinna służyć jedynie do testowania własnych klas we wtyczkach. Preferowane jest, aby docelowo zadania zaplanowane we wtyczkach były komponentami.
Jeśli zadanie zaplanowane jest napisane jako rozszerzenie klasy AbstractAdvancedTask i ma włączoną adnotację cancelable = true to by przerwać wykonywanie takiego zadania należy w kodzie metody dodać warunek:
|
Dynamiczny formularz umożliwia zdefiniowanie formularza parametrów zadania zaplanowanego.
PW.ScheduledTasks.register('example-scheduled-task', { buildParams: function (form) { form.addCombobox({ id: 'example-scheduled-task', values: [ ['wartosc1', 'Wartosc 1'], ['wartosc2', 'Wartosc 2'], ['wartosc3', 'Wartosc 3'] ] }); } } |
Jeżeli podczas dodawania elementu do formularza zdefiniujemy mu id i ta wartość będzie odnosić się do id parametru zdefiniowanego w komponencie, to wszystkie właściwości dla pola zostaną odczytane z definicji parametru (nazwa, opis, wymagalność, typ). Jeżeli natomiast chcemy dodać pole, które nie jest związane z żadnym parametrem, to powinniśmy określić nazwę, opis, typ oraz wymagalność. |
Funkcja | Parametry | Opis | |||
---|---|---|---|---|---|
addField(definition, [position]) | definition - identyfikator dodawanego parametru lub obiekt zawierający definicję pola position - pozycja na której dodany mam zostać parametr. Gdy position nie zostanie podany, parametr zostanie dodany na końcu formularza. listeners - obiekt definiujacy funkcje zdarzeń na zmiennej
| Dodanie parametru. Przykład:
Jeżeli dodajemy pole niezwiązane z parametrem komponentu, to możemy określić jakiego typu ma być to pole. Dostępne są następujące typy: string, integer, float, date, datetime, boolean, string[], integer[], float[], date[], datetime[], boolean[].
| |||
addTextArea(definition, [position]) | definition - identyfikator dodawanego parametru lub obiekt zawierający definicję pola position - pozycja na której dodany mam zostać parametr. Gdy position nie zostanie podany, parametr zostanie dodany na końcu formularza. listeners - obiekt definiujacy funkcje zdarzeń na zmiennej
| Dodanie parametru jako pole typu `TextArea`.
Przykład:
lub
| |||
addCombobox(definition, [position]) | definition - obiekt zawierający definicję pola Definicja powinna zawierać nastepujące pola:
position - pozycja na której dodany mam zostać parametr. Gdy position nie zostanie podany, parametr zostanie dodany na końcu formularza
| Dodanie parametru jako pole typu `Combobox`. Przykład dodania pola typu 'Combobox' lokalnego (local):
Przykład dodania pola typu 'Combobox' zdalnego (remote):
| |||
addCheckbox(definition, [position]) | definition - identyfikator dodawanego parametru lub obiekt zawierający definicję pola position - pozycja na której dodany mam zostać parametr. Gdy position nie zostanie podany, parametr zostanie dodany na końcu formularza. listeners - obiekt definiujacy funkcje zdarzeń na zmiennej
| Przykład:
Jeżeli podpinamy to pod parametr komponentu, to typ tego parametru musi być boolean. | |||
addRow( [definition] ) | definition - definicja wiersza. Zawiera następujące pola:
| Dodaje i zwraca "pusty" wiersz. Zwrócony wiersz umożliwia dodanie do niego pol. Pola będą dodawane obok siebie. Przykład:
| |||
addButton(definition, [position] ) | definition - definicja przycisku.
position - pozycja na której dodany mam zostać parametr. Gdy position nie zostanie podany, parametr zostanie dodany na końcu formularza | Dodanie przycisku na formularzu. Przykład:
| |||
addPassword(definition, [position]) | definition - identyfikator dodawanego parametru lub obiekt zawierający definicję pola position - pozycja na której dodany mam zostać parametr. Gdy position nie zostanie podany, parametr zostanie dodany na końcu formularza. listeners - obiekt definiujacy funkcje zdarzeń na zmiennej
| Dodanie parametru jako pole typu 'Password'.
Przykład:
lub
| |||
hide(elementId) | elementId - identyfikator elementu | Ukrywa pole o podanym id. Przykład
| |||
show(elementId) | elementId - identyfikator elementu | Pokazuje pole o podanym id. Przykład:
| |||
disable(elementId) | elementId - identyfikator elementu | Wyłącza możliwość edycji pola o podanym id. Przykład:
| |||
enable(elementId) | elementId - identyfikator elementu | Włącza możliwość edycji pola o podanym id. Przykład:
| |||
getValue(elementId) | elementId - identyfikator elementu | Pobiera wartość parametru o podanym id. Przykład:
| |||
setValue(elementId, value) | elementId - identyfikator elementu value - wartość do ustawienia | Ustawia przekazaną wartość do parametru o podanym id. Dla typów tablicowych wartością jest tablica wartości. Przykład:
| |||
mask(onlyForm) | onlyForm - prawda by nałożyć maskę tylko na formularz parametrów, fałsz by nałożyć maskę na zawartość całego okna. | Nakłada maskę na formularz parametrów lub zawartość okna. Przykład:
| |||
unmask(onlyForm) | onlyForm - prawda by usunąć maskę tylko z formularza parametrów, fałsz by usunąć maskę z zawartości całego okna | Usuwa maskę z formularza parametrów lub zawartości okna. Przykład:
|