Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Adnotację @ScheduledTask (jeżeli zadanie zaplanowane nie jest definiowane we wtyczce, musi ono pochodzić z pakietu com.suncode)
  2. Publiczną metodę oznaczoną adnotacją @Define z jednym parametrem ScheduledTaskDefinitionBuilder
  3. Publiczną metodę o nazwie execute, która ma zostać wykonana okresowo. Metoda execute może zwracać dowolny typ włącznie z void. Zwrócona wartość będzie wyświetlona jako wynik przetwarzania zadania zaplanowanego. Ustawienie typu void jest jednoznaczne z brakiem rezultatu.

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:

Code Block
languagejava
@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
		...
	}
}

...

  • pojedynczy parametr zadania zaplanowanego - typ parametru musi być zgodny ze zdefiniowanym typem oraz musi być poprzedzony adnotacją @Param. Obsługiwane typy parametrów:
    • STRING
    • BOOLEAN
    • 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)
    • CUSTOM_FILE - mapowanie do com.suncode.pwfl.customfile.CustomFile
    • STRING_ARRAY
    • BOOLEAN_ARRAY
    • INTEGER_ARRAY
    • FLOAT_ARRAY
    • DATE_ARRAY
    • DATETIME_ARRAY
    • CUSTOM_FILE_ARRAY
  • Javadoc
    displayValueParameters
    propertyjavadoc.plusworkflow
    classNamecom.suncode.pwfl.component.Parameters
     - 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
    displayValueTranslator
    propertyjavadoc.plusworkflow
    classNamecom.suncode.pwfl.translation.Translator
     - translator dla tego komponentu. Więcej informacji tutaj,
  • Javadoc
    displayValueCancelationHandler
    propertyjavadoc.plusworkflow
    classNamecom.suncode.pwfl.administration.scheduledtask.context.CancelationHandler
     - 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,
  • 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.
  • Javadoc
    displayValueProgressHolder
    propertyjavadoc.plusworkflow
    classNamecom.suncode.pwfl.administration.scheduledtask.context.ProgressHolder
     - 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
    propertyjavadoc.plusworkflow
    classNamecom.suncode.pwfl.administration.scheduledtask.ScheduledTaskInstanceInfo
     - obiekt przechowujący informacje o danej instancji zadania zaplanowanego.

...

Info
titleUWAGA

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:

Code Block
if (Thread.currentThread().isInterrupted())
{
    taskLog.info( "Anulowano....");
    log.info( "Anulowano....");
    break;
}         

Dynamiczny formularz

Dynamiczny formularz umożliwia zdefiniowanie formularza parametrów zadania zaplanowanego.

Rejestracja dynamicznego formularza

Code Block
languagejs
titlePlik przekazany w adnotacji @ScheduledTaskScript
PW.ScheduledTasks.register('example-scheduled-task', {
    buildParams: function (form) {
        form.addCombobox({
            id: 'example-scheduled-task',
            values: [
                ['wartosc1', 'Wartosc 1', 'Opis 1'],
                ['wartosc2', 'Wartosc 2', 'Opis 2'],
                ['wartosc3', 'Wartosc 3', 'Opis 3']
            ]
        });
    }
}
Tip

Jeżeli podczas dodawania elementu do formularza zdefiniujemy mu id i ta wartość będzie odnośić 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 (nie będzie ono zapisane w deklaracji źródła), to powinniśmy określić nazwę, opis, typ oraz wymagalność.

Dostępne funkcje dynamicznego formularza

FunkcjaParametryOpis
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.

Dodanie parametru.

Przykład:

Code Block
languagejs
...
form.addField('param-1');
...

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[].

Code Block
languagejs
...
form.addField({
	id: 'custom',
	fieldType: 'date',
	...
});
...
 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.

Dodanie parametru jako pole typu `TextArea`.

Note

Parametr musi być typu

Javadoc
displayValueString
propertyjavadoc.plusworkflow
classNamecom.suncode.pwfl.core.type.Types
.

 

Przykład:

Code Block
languagejs
...
form.addTextArea('param-1');
...

lub

Code Block
languagejs
...
form.addTextArea({
	id: 'param-1',
	...
});
...
addCombobox(definition, [position])definition - obiekt zawierający definicję pola

Definicja powinna zawierać nastepujące pola:

  • id - identyfikator parametru (opcjonalne)
  • valueField - nazwa pola, ustawiającego
    wartość pola
  • displayField - nazwa pola, którego wartość
    zostanie wyświetlona w polu
  • minChars - minimalna liczba wpisanych znaków,
    po której Combobox rozpoczyna filtrowanie.
    Domyślnie: 0.
  • fields - definicja pól Comboboxa w postaci
    tablicy obiektów zawierających nastepujące pola:
    • name - nazwa pola
    • type - typ pola
  • values - ((info) dla typu lokalnego) tablica wartości
    wyświetlanych pola.
  • remote - ((info) dla typu zdalnego) obiekt zawierający
    definicję zdalnego pobierania danych. Obiekt zawiera
    następujące pola:
    • url - adres URL
    • remoteSort - określa czy dane powinny
      być sortowane po stronie serwera (wartość true)
      czy po stronie przeglądarki (wartość false).
      Domyslnie false.
    • pageSize - liczba wyświetlanych wyników na stronie.
      Domyslnie 25.
  • sort - tablica obiektów definiujących sposób sortowania.
    Obiekt zawiera następujące pola:
    • property - pole po jakim chcemy sortować
    • direction - kierunek po jakim chcemy sortować.
      ASC dla kierunku rosnącego,
      DESC dla kierunku malejącego.
  • onChange - funkcja wywoływana, gdy zmieni się
    wartość pola.
    Funkcja może korzystać z następujących parametrów:
    • combo - pole Combox dla którego nastąpiła zmiana
    • newValue - nowa wartość pola
    • oldValue - stara wartość 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 dodanie pola typu 'Combobox' lokalnego (local):

Code Block
languagejs
...
form.addCombobox({
	id: 'param-1',
	valueField: 'id',
	displayField: 'display',
	fields: [
		{name: 'id', type: 'string'},
		{name: 'display', type: 'string'}
	],
	values : [{id : 'activity', display : 'Zadanie'},
		  {id : 'stage', display : 'Etap'},
		  {id : 'process', display : 'Proces'}],
	sort: [{
		property: 'display',
		direction: 'DESC'
	}],
	onChange: function(combo, newValue, oldValue){
		...
	}
});
...

Przykład dodanie pola typu 'Combobox' zdalnego (remote):

Code Block
languagejs
...
form.addCombobox({
	id: 'param-1',
	valueField: 'id',
	displayField: 'display',
	fields: [
		{name: 'id', type: 'string'},
		{name: 'display', type: 'string'}
	],
	remote: {
		url: Suncode.getAbsolutePath('plugin/com.suncode.example-plugin/example-combo/get'),
		remoteSort: false,
		pageSize: 20
	},
	sort: [{
		property: 'display',
		direction: 'DESC'
	}],
	onChange: function(combo, newValue, oldValue){
		...
	}
});
...
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.

Przykład:

Code Block
languagejs
...
form.addCheckbox('param-1');
...

Jeżeli podpinamy to pod parametr komponentu, to typ tego parametru musi być boolean.

addRow( [definition] )

definition - definicja wiersza.

Zawiera następujące pola:

  • id - identyfikator wiersza (opcjonalny)
  • fieldsSpace - odstęp w pikselach pomiędzy elementami wiersza. Domyślnie 5,
  • fieldLabel - nazwa (label) wiersza. Domyślnie nazwa wiersza tworzona jest
    na podstawie nazw elementów zawartych w wierszu.

Dodaje i zwraca "pusty" wiersz. Zwrócony wiersz umożliwia dodanie do niego pol. Pola będą dodawane obok siebie.

Przykład:

Code Block
languagejs
var row = form.addRow();
row.addField('param-1');
row.addField('param-2');
row.addCombobox(...);
addButton(definition, [position] )

definition - definicja przycisku.
Zawiera następujące pola:

  • id - identyfikator przycisku
  • text - wyświetlany tekst przycisku
  • handler - funkcja wywołująca się po kliknieciu 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:

Code Block
languagejs
form.addButton({
	id: 'btn-1',
	text: 'Przycisk',
	handler: function(){
	...
	}
})
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.

Dodanie parametru jako pole typu 'Password'.

Note

Parametr musi być typu

Javadoc
displayValueString
propertyjavadoc.plusworkflow
classNamecom.suncode.pwfl.core.type.Types
.

Przykład:

Code Block
languagejs
...
form.addPassword('param-1');
...

lub

Code Block
languagejs
...
form.addPassword({
	id: 'param-1',
	...
});
...
hide(elementId)elementId - identyfikator elementu

Ukrywa pole o podanym id.

Przykład

Code Block
languagejs
...
form.hide('param-1');
...
show(elementId)elementId - identyfikator elementu

Pokazuje pole o podanym id.

Przykład:

Code Block
languagejs
...
form.show('param-1');
...
disable(elementId)elementId - identyfikator elementu

Wyłącza możliwość edycji pola o podanym id.

Przykład:

Code Block
languagejs
...
form.disable('param-1');
...
enable(elementId)elementId - identyfikator elementu

Włącza możliwość edycji pola o podanym id.

Przykład:

Code Block
languagejs
...
form.enable('param-1');
...
getValue(elementId) elementId - identyfikator elementu

Pobiera wartość parametru o podanym id.

Przykład:

Code Block
languagejs
...
form.getValue('param-1');
...
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:

Code Block
languagejs
...
form.setValue('param-1', 'value');
...
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:

Code Block
languagejs
...
form.mask(false);
...
unmask(onlyForm)

onlyForm - prawda by usunąć maskę tylko z formularza parametrów, fałsz by

usunąć maskę z zawartość całego okna.

Usuwa maskę z formularza parametrów lub zawartości okna.

Przykład:

Code Block
languagejs
...
form.unmask(false);
...