Overzicht van Windows-werkstroom
Een werkstroom is een set elementeenheden die activiteiten worden genoemd die worden opgeslagen als een model dat een praktijkproces beschrijft. Werkstromen bieden een manier om de volgorde van uitvoering en afhankelijke relaties tussen stukken kort of langlopend werk te beschrijven. Dit werk doorloopt het model van begin tot eind en activiteiten kunnen worden uitgevoerd door personen of door systeemfuncties.
Runtime-engine voor werkstroom
Elk actief werkstroomexemplaren wordt gemaakt en onderhouden door een in-process runtime-engine waarmee het hostproces communiceert via een van de volgende opties:
Een WorkflowInvoker, waarmee de werkstroom wordt aangeroepen als een methode.
Een WorkflowApplication voor expliciete controle over de uitvoering van één werkstroomexemplaren.
Een WorkflowServiceHost voor op berichten gebaseerde interacties in scenario's met meerdere exemplaren.
Elk van deze klassen verpakt de runtime van de kernactiviteit die wordt weergegeven als ActivityInstance verantwoordelijk voor de uitvoering van de activiteit. Er kunnen meerdere ActivityInstance objecten zijn binnen een toepassingsdomein dat gelijktijdig wordt uitgevoerd.
Elk van de voorgaande drie hostinteractieobjecten wordt gemaakt op basis van een boomstructuur met activiteiten die een werkstroomprogramma worden genoemd. Met deze typen of een aangepaste host die wordt verpakt ActivityInstance, kunnen werkstromen worden uitgevoerd binnen elk Windows-proces, waaronder consoletoepassingen, toepassingen op basis van formulieren, Windows Services, ASP.NET websites en WCF-services (Windows Communication Foundation).
Werkstroomonderdelen in het hostproces
Interactie tussen werkstroomonderdelen
In het volgende diagram ziet u hoe werkstroomonderdelen met elkaar communiceren.
In het voorgaande diagram wordt de Invoke methode van de WorkflowInvoker klasse gebruikt om verschillende werkstroomexemplaren aan te roepen. WorkflowInvoker wordt gebruikt voor lichtgewicht werkstromen die geen beheer van de host nodig hebben; werkstromen die beheer van de host (zoals Bookmark hervatting) nodig hebben, moeten worden uitgevoerd met behulp van Run . Het is niet vereist om te wachten tot het ene werkstroomexemplaren is voltooid voordat u een ander exemplaar aanroept; de runtime-engine ondersteunt het gelijktijdig uitvoeren van meerdere werkstroomexemplaren. De werkstromen die worden aangeroepen, zijn als volgt:
Een Sequence activiteit die een WriteLine onderliggende activiteit bevat. Een Variable van de bovenliggende activiteit is gebonden aan een InArgument van de onderliggende activiteit. Zie Variabelen en argumenten voor meer informatie over variabelen, argumenten en binding.
Een aangepaste activiteit met de naam
ReadLine
. Een OutArgument van deReadLine
activiteit wordt geretourneerd naar de aanroepmethode Invoke .Een aangepaste activiteit die is afgeleid van de CodeActivity abstracte klasse. De CodeActivity functie heeft toegang tot runtimefuncties (zoals bijhouden en eigenschappen) met behulp van de CodeActivityContext functie die beschikbaar is als parameter van de Execute methode. Zie Eigenschappen voor werkstroomtracking en tracering en werkstroomuitvoering voor meer informatie over deze runtimefuncties.