En af de nye mønstre jeg finde når du udformer SharePoint løsninger udnytter SharePoint Designer arbejdsprocessen og en hændelse receiver.
Her er en Forretningsscenario at sætte det i sammenhæng:
- Jeg overfører et dokument til en doc lib.
- Jeg sparke off flere trin arbejdsproces oprettet ved hjælp af SharePoint Designer.
- På et tidspunkt under denne proces, arbejdsproces tildeler en opgave til en person (via indsamle data fra brugeren eller tildele en opgave).
- Vi ønsker at bruge en KPI-indikator til at holde styr på hvor længe denne opgave er afventer afslutningen. Nøgletallet viser grøn til opgaver, der er afsluttet eller due mere end 3 dage fra nu. Det viser gul, hvis opgaven er forfalden i morgen eller i dag. Det viser rød, hvis opgaven er forfaldne.
- Her er kickeren: Jeg ønsker den dato, der drev KPI skal være ferie-bevidste.
Jeg kan ikke beregne en ferie-aware due dato i SharePoint Designer arbejdsprocessen meget nemt. Jeg ville have til at oprette en brugerdefineret handling eller bruge en 3rd part værktøj. Dog, Det er let nok at beregne sådanne en dato i en event modtager. Flette disse to sammen og vi få et mønster som denne:
- Definere en skjult Ja/ingen webstedskolonne på dokumentbiblioteket mærket "DoCalcualteDueDate".
- Initialisere det til false.
- På et passende tidspunkt i arbejdsprocessen (strømsparetilstand. lige før Indsaml data"" handling), tildele værdien til True.
- En ItemUpdate() hændelse modtageren ser til at se, hvis "DoCalculateDueDate" er sandt. Siden begivenhed modtageren kører på hver opdatering, "DoCalculateDueDate" er normalt falsk.
- Når arbejdsprocessen tildeler DoCalculateDueDate til true, hændelse modtageren beregner den ferie-aware behørig dato.
- Når hændelsen modtageren gør denne beregning, det indstiller flaget DoCalculateDueDate til false.
I sidste ende, SPD workflow er kommunikeret med en event modtager via DoCalculateDueDate semaphore og vi har ferie-aware grund datoer, der er tildelt den helt korrekte øjeblikket i arbejdsprocessens liv. SharePoint Designer kontrol når forfaldsdatoen er tildelt men begivenhed modtageren udfører de faktiske beregning og tildeling.
</slutningen>