I’ve recently learned that it’s possible and even fairly easy to create a state machine workflow using SharePoint Designer. Necessity is the mother of invention and all that good stuff and I had a need this week that looked for an invention. Coincidentally, Me deparei este foro MSDN post tamén. My personal experience this week and that "independent confirmation" lends strength to my conviction. I plan to write about this at greater length with a full blown example, pero aquí é a esencia do que:
- O enfoque aproveita o feito de que un fluxo de traballo pode cambiar un elemento da lista, thereby triggering a new workflow. I’ve normally considered this to be a nuisance and even blog sobre o uso dos semáforos para tratar con isto.
- SharePoint permite múltiples fluxos de traballo independentes para ser activo contra un elemento da lista específica.
Para configurar-lo:
- Proxecto súa máquina de estado (é dicir,, os estados e como os estados de transición dun a outro).
- Aplicar cada estado como fluxo de traballo separado.
- Configurar cada un destes fluxos de traballo do Estado para executar en resposta a calquera cambio no elemento da lista.
Cada fluxo de traballo do Estado segue este estándar duro:
- Tras o arranque, determine whether it should really run by inspecting state information in the "current item". Abort if not.
- Facer o traballo.
- Update the "current item" with new state information. This triggers an update to the current item and fires off all the state workflows.
Ademais da vantaxe obvia que se pode crear un fluxo de traballo de máquina de estado declarativa, toda a información que estado é óptimo para KPIs de construción e puntos de vista interesantes.
El ten unha desvantaxe moi substancial — standard workflow history tracking is even more useless than normal 🙂 That’s easily remedied, con todo. Store all of your audit type information in a custom list. That’s probably a good idea even for vanilla sequential workflow, but that’s for another blog post 🙂
I call this a "mea culpa" porque eu teño, por desgraza, said more than once on forums and elsewhere that one must use visual studio to create a state machine workflow. That simply isn’t true.
</final>