Allgemein gilt: alle Eigenschaften von WorkItemBase sind von außen (public) read-only (protected set). Nur die Workerklasse selbst darf sie zuweisen.
Die Eigenschaften in diesem Kapitel sollten im allgemeinen vor der Einplanung eines Work-Items im Konstruktor oder spätestens in WorkItemCreating zugewiesen werden – natürlich nur die erforderlichen.

Guid InstanceGuid

Logischer Primärschlüssel der Arbeitsaufgabe. Dieser muss systemweit eindeutig sein. Der Schlüssel wird in allen Workmanager-API Methoden zum Zugriff auf existierende Work-Items verwendet.

Wird eine noch nicht laufende Aufgabe mit demselben Schlüssel erneut angelegt, so ersetzt diese die vorherige Version.
Eine bereits laufende Aufgabe kann nicht mehr überschrieben werden (Fehlercode). Die Aufgabe kann sich nur selbst erneut einplanen.

Systemweite Aufgaben, die nur einmal existieren dürfen, sollten im Konstruktor eine beliebige, konstante GUID zuweisen.

Wenn immer eine neue Aufgabe erzeugt werden soll, kann die Zuweisung dieses Feldes entfallen. Dann vergibt das System eine GUID.

Wenn die Existenz eines Work-Items an ein anderes Objekt gebunden werden soll, dann kann auch dessen Guid verwendet werden, beispielsweise bei einem an eine Konfiguration gebundenen Worker. Es muss allerdings darauf geachtet werden, dass nicht zwei verschiedene und gleichzeitig erwünschte Worker-Klassen dieselbe GUID verwenden.

Dieses Property darf pro Instanz nur einmal zugewiesen werden.

String Name

Name des Workers. Wird in Administrativen Ansichten von Work-items verwendet sowie als Standard-Titel beim Anlegen des zugehörigen Worker-Protokolls.
Wenn kein Name angegeben wird, wird der Name der implementierenden Worker-Klasse verwendet.

Guid UserContextGuid

Der User-Kontext in dem dieses Work-Item arbeiten soll, z. B. Constants.SystemUser.

Standardmäßig wird der aktuelle Benutzer verwendet, unter dem das Work-Item erzeugt wurde.

EnumExpectedRunTime ExpectedRunTime

Priorität des Work-Items (siehe Scheduling/Prioritäten), standardmäßig Normal.

DateTime ScheduledStartTime

Wann soll das Work-Item starten (UTC!), standardmäßig: sofort.

bool IsSystemWorkItem

Ist dies ein System- oder ein User-WorkItem? System-Work-Items tauchen nicht in der Progress Bar auf, auch dann nicht, wenn sie unter der dem angemeldeten User laufen.

bool IsVisibleForAllUsers

Soll dieses Work-Item allen Benutzern im Progress Bar angezeigt werden?

bool IsCancellable

Darf dieses Work-Item vom Benutzer abgebrochen werden?

Die Eigenschaft kann auch davon abhängen, in welchem Zustand sich das WorkItem befindet. Es kann beispielsweise beim Beginn der eigentlichen Arbeit wieder auf false gesetzt werden.

int NumberOfStarts, MaxNumberOfStarts

Wie oft wurde diese Instanz des Work-Items bereits gestartet und wie oft darf das maximal passieren.

Diese Parameter werden verwendet, um zu entscheiden, ob ein automatischer Neustart nach einem Fehler oder einem Timeout noch angemessen ist. Standardmäßig werden maximal 3 Startversuche durchgeführt.

WorkerLoggingMode LoggingMode

Soll automatisch ein Worker-Protokoll mit dem Namen der Work-Items für dieses Work-Item angelegt werden?

  • Auto Beim Schreiben des ersten Ereignisses wird ein Applikationsprotokoll erstellt. (Standard)
  • Always Vor dem Start des Work-Items eine Applikationsprotokoll angelegt.
  • Never Es wird kein Applikationsprotokoll erstellt. Die Worker-Implementierung kann dies aber per InitLogger() explizit tun.

Dieses Property darf nur im Konstruktor zugewiesen werden.

EnumLogProcesses LoggingProcess

Das Log soll mit diesem Wert für die Eigenschaft OrmLogBase.Process erstellt werden.

Dieses Property sollte nur im Konstruktor zugewiesen werden.
Wenn eine dynamische Berechnung gefordert ist, kann diese Alternativ in einer Überladung von InitLogger() erfolgen, und zwar vor dem Aufruf von base.InitLogger().

Guid LoggerGuid

GUID des zugehörigen Worker-Protokolls.

Wird hier eine GUID eines existierenden Protokolls verwendet, so wird kein neues angelegt, sondern dieses fortgeschrieben.

Ist das Feld leer und LoggingMode aktiviert, wird ein neues Protokoll angelegt.

Dieses Property wird beim Erstellen eines Protokolls automatisch aktualisiert.
Wenn man eine abweichende GUID zuweist, wird das Logging beendet bis wieder InitLogger() aufgerufen wird.

EnumWorkItemState State (read-only)

Aktueller Zustand des Work-Items. Siehe Work-Items / Mögliche Zustände.