Versions Compared

Key

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

...

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
languagejava
@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)
  • 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.

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
languagexml
<!-- 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.

...