Prozesse und Arbeitsaufgaben

Prozesse ("Vorgänge", =Process) und Arbeitsaufgaben (=Workitem) sind PiBObjekte spezieller Ausprägung.

D.H alle Eigenschaften und Funktionen die Objekte haben, gelten auch für Prozesse und Arbeitsaufgaben (Kommentare, Historie, Beziehungen, Dateien usw.)

Prozesse

Ein Prozess ist ein Container für Arbeitsaufgaben. Technisch handelt es sich um eine (c#) Klasse, die von PiB.ProcessModel.ProcessBaseBase ableitet.

Optional kann das Attribut ProcessDescription angegeben werden (was i.d.R. auch immer gemacht werden sollte).

[PiB.ProcessModel.ProcessDescription("Untersuchung X")]
class SampleProc : PiB.ProcessModel.ProcessBaseBase
{

}

Rückmeldungen von der Workflow-Engine

Prozesse können IduIT.PiB.ProcessModel.IProcessDefinitionInteraction implementieren, um auf Ereignisse des Workflows reagieren zu können (OnCreated, OnBeforeCreateWorkitem)

Workitems (Arbeitsaufgaben)

Eine Arbeitsaufgabe ist der aktive Bestandteil eines Prozesses.

Arbeitsaufgaben sind (c#) Klassen, die von der Basis PiB.ProcessModel.WorkitemBase ableiten.

Optional kann das Attribut WorkitemDescription angegeben werden (was i.d.R. auch immer gemacht werden sollte).

[PiB.ProcessModel.WorkitemDescription(
	Title = "Durchführung der Prüfung",
	Description = "Beschreibung ...",
	DisallowCreateInteractive = true,
	IconCls = "FA:raygun",
	OnlyOnePerProcess = true,
	ApplicableProcessTypes = new[] { typeof(SampleProc) })
]
class SampleWI : PiB.ProcessModel.WorkitemBase
{
}

Rückmeldungen von der Workflow-Engine

Arbeitsaufgaben können PiB.ProcessModel.Workflow.IWorkitemInteraction implementieren, um auf Ereignisse des Workflows reagieren zu können (OnStart, OnFinish usw.)

Es handelt sich dabei durchgängig um die serverseitige Ausführung.

Interaktive Arbeitsaufgaben.

I.d.R. sind Arbeitsaufgaben interaktiv, d.h. sie verfügen über UI Elemente. Die Speicherung der Daten kann dabei innerhalb des Workitem erfolgen (JSON serialisiert in der Pib-internen Tabelle). Verwende in diesem Fall PiB.ProcessModel.WorkitemWithDataBase als Basisklasse.

Es gibt drei mögliche Formulartypen:

  • In dem PiB.ProcessModel.WorkitemDescriptionAttribut ist die Eigenschaft ClientComponentClassName belegt

    • Gibt den Namen einer Typescript Klasse an, die PiB.ProcessModel.Ui.Components.IWorkitemUI implementiert
  • Es wird von PiB.ProcessModel.WorkitemWithDataBase und der Typ der Eigenschaft Workdata verwendet einen Typen, der seinserseits das Attribut IduIT.Core.PropertyModel.PropertyModelClassAttribute verwendet.

  • Beides ist nicht gegeben: in dem Fall wird eine Instanz eines __FormlessWorkitemUI erstellt.


Zuletzt geändert: 18.04.2024 11:10:32 (erstmals erstellt 24.11.2020)