En av de nye mønstrene som jeg finner i laging SharePoint-løsninger som utnytter SharePoint Designer arbeidsflyten og en hendelse-mottaker.
Her er et scenario for å sette det i sammenheng:
- Jeg laste opp et dokument til en doc-lib.
- Jeg kick off flere trinn arbeidsflyt som er opprettet ved hjelp av SharePoint Designer.
- På et tidspunkt i løpet av denne prosessen, Arbeidsflyten tilordner en oppgave til noen (via samle inn data fra bruker, eller tilordne en oppgave).
- Vi ønsker å bruke en Ytelsesindikator til å spore hvor lenge aktiviteten venter på ferdigstillelse. KPIen viser grønt for oppgaver som er fullført eller forfallsdato mer enn 3 dager. Det viser gule Hvis oppgaven forfaller i morgen eller i dag. Den viser rødt Hvis oppgaven er forfalt.
- Her er kicker: Jeg vil at datoen som driver at KPI være ferie-klar.
Jeg kan ikke beregne en ferie-aware forfallsdato dato i SharePoint Designer arbeidsflyt veldig lett. Jeg må lage en egendefinert handling eller bruke et 3rd party verktøy. Men, Det er lett nok å beregne slik dato på en hendelsesmottaker. Flette de to sammen og får vi et mønster som dette:
- Definere en skjult Ja/Nei områdekolonne i dokumentbiblioteket merket "DoCalcualteDueDate".
- Starte den USANN.
- På riktig tidspunkt i arbeidsflyten (f.eks. like før "innsamling av data" handling), tilordne denne verdien til True.
- En ItemUpdate() hendelsen mottakeren ser ut til å se om "DoCalculateDueDate" gjelder. Siden hendelsesmottaker kjører på hver oppdatering, "DoCalculateDueDate" er vanligvis USANN.
- Når arbeidsflyten tilordner DoCalculateDueDate til true, hendelse-mottaker beregner forfallsdatoen ferie-aware dato.
- Når hendelsen mottakeren gjør denne beregningen, Det setter DoCalculateDueDate-flagget til false.
Til slutt, SPD arbeidsflyt er kommunisert med en hendelsesmottaker via DoCalculateDueDate semaforen og vi har ferie-klar grunn datoene som er tildelt i akkurat riktig øyeblikk i arbeidsflyten livet. SharePoint Designer kontroller når forfallsdatoen er tilordnet, men hendelsesmottaker utfører den faktiske beregningen og tildeling.
</slutten>