En av de framväxande mönster som jag hitta i crafting SharePoint-lösningar utnyttjar SharePoint Designer arbetsflöde och en händelsemottagare.
Här är ett affärsscenario att sätta det i sammanhang:
- Jag ladda upp ett dokument till en doc-lib.
- Jag sparka igång flera steg arbetsflödet skapas med SharePoint Designer.
- Någon gång under denna process, arbetsflöde tilldelar en uppgift till någon (via samla in data från användare eller tilldela en uppgift).
- Vi vill använda en KPI för att spåra hur länge denna uppgift väntar på avslutningen. KPI visar grönt för aktiviteterna som är slutförda eller vederbörlig mer än 3 dagar från nu. Det visar gult om uppgiften beror i morgon eller idag. Det visar rött om uppgiften är förfallen.
- Här är kickern: Jag vill att datumet som driver det KPI problemsituationer semester.
Jag kan inte beräkna en semester-medveten due date i SharePoint Designer arbetsflöde mycket lätt. Jag skulle behöva skapa en anpassad åtgärd eller använda en 3: e parts verktyg. Men, Det är lätt att beräkna ett datum i en händelsemottagare. Slå ihop dessa två tillsammans och vi får ett mönster som denna:
- Definiera ett dolda ja/nej webbplatskolumn på dokumentbiblioteket märkt "DoCalcualteDueDate".
- Initiera den till false.
- Vid lämplig tidpunkt i arbetsflödet (t.ex. strax innan den "samla in datan" åtgärd), tilldela värdet true.
- En ItemUpdate() händelsemottagare ser ut för att se om "DoCalculateDueDate" är sant. Eftersom händelsen mottagaren körs på varje uppdatering, "DoCalculateDueDate" är normalt falskt.
- När arbetsflödet tilldelar DoCalculateDueDate True, händelsen mottagaren beräknar holiday-medveten due date.
- När händelsen mottagaren gör denna beräkning, Det definierar flaggan DoCalculateDueDate till false.
I slutet, SPD arbetsflöde är kommunicerade med en händelsemottagare via DoCalculateDueDate semafor och vi har semester-medveten på grund av datum som tilldelas i exakt rätt ögonblick i arbetsflödets liv. SharePoint Designer kontroller när förfallodatumet tilldelas men händelsemottagare utför den faktiska beräkningen och tilldelning.
</slutet>