Ik heb onlangs geleerd dat het mogelijk en zelfs vrij gemakkelijk een staat machine werkstroom met behulp van SharePoint Designer te maken. Noodzaak is de moeder van de uitvinding en al dat goede materiaal en ik had een behoefte deze week die keek voor een uitvinding. Toevallig, Ik kwam dit MSDN forumpost ook. Mijn persoonlijke ervaring deze week en dat "onafhankelijke bevestiging" leent kracht om mijn overtuiging. Ik ben van plan om te schrijven over dit uitvoeriger met een volledige geblazen voorbeeld, maar hier is de kern van het:
- De aanpak maakt gebruik van het feit dat een werkstroom een item in de lijst kunt wijzigen, daardoor triggering een nieuwe workflow. Ik heb dit een overlast en zelfs normaal overwogen geblogd over het gebruik van semaforen om het te behandelen.
- SharePoint laat toe meerdere onafhankelijke werkstromen te zijn actief tegen een specifieke lijst-item.
Te configureren:
- Ontwerp uw statusmachine (dat wil zeggen, de Staten en hoe Staten de overgang van de ene naar de volgende).
- Uitvoering van elke staat als aparte werkstroom.
- Elk van deze werkstromen staat uit te voeren in reactie op wijzigingen in het lijstitem configureren.
Elke staat-workflow volgt dit ruwe patroon:
- Bij initialisatie, bepalen of het moet echt worden uitgevoerd door inspectie van statusgegevens in het "huidige item". Afbreken als niet.
- Het werk doen.
- De "huidige-item bijwerken" met nieuwe statusgegevens. Dit start een update naar het huidige item en branden uit alle staat workflows.
Afgezien van de hand liggende voordeel kunt dat men een declaratieve staat machine workflow maken, dat alles staat informatie is geweldig voor het bouwen van KPI's en interessante views.
Het heeft een vrij grote nadeel — het standaard bijhouden van de workflowgeschiedenis is zelfs nog nuttelozer dan normaal 🙂 Dat is eenvoudig te verhelpen, echter. Al uw audit typegegevens in een aangepaste lijst opslaan. Dat is waarschijnlijk een goed idee zelfs voor vanille sequentiële workflow, maar dat is voor een andere blogpost 🙂
Ik noem dit een "mea culpa" want ik heb, Helaas, meer dan eens gezegd op forums en elders moet dat een gebruikt u visual studio een staat machine werkstroom te maken. Dat is gewoon niet waar.
</einde>