Mea Culpa — SharePoint Designer * kan * opprette statlige maskin arbeidsflyter

Jeg har nylig lært at det er mulig og selv ganske enkelt å opprette en tilstand maskinen arbeidsflyt ved hjelp av SharePoint Designer. Nødvendighet er mor til oppfinnelsen og alt som bra og jeg hadde behov denne uken som så for en oppfinnelse. Tilfeldigvis, Jeg kom over Dette MSDN foruminnlegg også. Min personlige erfaring denne uken og at "uavhengig bekreftelse" gir styrke til min overbevisning. Jeg planlegger å skrive om dette på større lengde med en fullverdig eksempel, men her er hovedpunkt av det.:

  • Tilnærmingen utnytter det faktum at en arbeidsflyt kan endre et listeelement, og dermed utløser en ny arbeidsflyt. Jeg har normalt anses dette å være en plage og selv blogged om bruker semaforer å håndtere det..
  • SharePoint gjør flere uavhengige arbeidsflyter å være aktiv mot et bestemt listeelement.

Konfigurere den:

  • Design din tilstandsmaskin (dvs., USA og hvordan USA overgang fra den ene til neste).
  • Implementere hver stat som egen arbeidsflyt.
  • Konfigurer alle disse state arbeidsflytene kjøres som svar på endringer i listeelementet.

Hver stat arbeidsflyt følger dette grov mønster:

  • Ved initialisering, finne ut om det virkelig skal kjøres ved å undersøke informasjon i "varen". Avbryte hvis ikke.
  • Gjøre arbeidet.
  • Oppdatere varen"" med ny informasjon. Dette utløser en oppdatering til gjeldende element og fyrer av alle stat-arbeidsflyter.

Bortsett fra den åpenbare fordelen kan at man opprette en deklarativ tilstand maskinen arbeidsflyt, alt som statusinformasjonen er veldig bra for å bygge KPIer og interessant visninger.

Den har en ganske betydelig ulempe — standard arbeidsflythistorikk-sporing er enda mer ubrukelig enn normalt 🙂 Det er lett å rette opp, men. Lagre alle dine type overvåkingsinformasjon i en egendefinert liste. Det er sannsynligvis en god idé selv for vanilje sekvensiell arbeidsflyt, men det er for et annet blogginnlegg 🙂

Jeg kaller dette en "mea culpa" fordi jeg har, Dessverre, sa flere ganger på forum og andre steder at man må bruke visual studio til å opprette en tilstand maskinen arbeidsflyt. Som rett og slett ikke sant.

</slutten>

Abonner på bloggen min.

Technorati Merkelapper:

4 tanker om “Mea Culpa — SharePoint Designer * kan * opprette statlige maskin arbeidsflyter

  1. Jaustral skrev:
    Hei Paul,
    hvor mange stater har du arbeider med? Jeg får bare ha to ulike aktivt arbeidsflyter når jeg går til arbeidsflytsiden?
    Beste,
    Juan.
    Svar
  2. Sanjeev Rajput
    Jeg ønsker virkelig å lese full eksempler. Forhåpentligvis kan en av dere bidra til å avklare noen mareritt jeg har med min lignende prosess. Jeg er på punktet hvor jeg er klar til å starte fra frisk.
    Svar
  3. Paul Galvin
    Det er en veldig interessant tilnærming setter utropstegn peker på større punktet at SPD kan opprette tilstand maskinen arbeidsflyter.
    Jeg vet ikke om det er betydelige forskjeller Performance-messig mellom hva du disponere og hva jeg skissere. I mitt tilfelle denne uken, ytelse er ikke et problem fordi denne bestemte arbeidsflyten er en tidkrevende affære (16 eller uker fra start til slutt) og det er aldri mer enn et par dusin aktiv når som helst. Hvis det var et par dusin starter opp og kjører hver time … det ville være en annen historie. Jeg tror at ytelse og -arbeidsflyt generelt er et meget tåkete emne.
    Jeg vet ikke hvis du kjører din egen blogg eller ikke. Hvis du gjør, du bør vurdere å skrive om tilnærming nærmere. Hvis ikke, Jeg ville være mer enn gjerne ringe deg "gjest blogger" og laste opp innlegget til min blogg.
    Takk for kommentar. Det er en av de beste jeg har kunnet framprovosere på bloggen min!
    –Paul G
    Svar
  4. Mike Atkins
    Jeg implementert tilstandsmaskinen bruker en egen liste for å holde staten under staten overganger. Viktigste arbeidsflyten opprettet et element her og angi utgangstilstanden. Jeg brukte en enkelt, separat, arbeidsflyt til å håndtere alle tilstandene, bruke en "Hvis-så-ELSEIF" struktur (i "Trinn 1") på mulige tilstander.
    For hver stat, alt jeg trengte å gjøre var å få et svar fra en bruker.
    Mitt eksempel var en flere nivåer sekvensiell godkjenning, hvor hvert trinn (representert av en stat) kan ha ulike mulige etterfølgere. Dette betydde at hver bruker hadde (potensielt) ulike alternativer tilgjengelig i en valg meny. Min "trinn 2" var også en "IF-THEN-ELSE" struktur som vurdert alle mulige svar (fra alle stadier), og så bestemte på hva den neste tilstanden skal være. "Trinn 3" Angi staten, og arbeidsflyt avsluttet.
    Denne metoden har den (åpenbare) Utnytt skjer innenfor en enkelt (sekundær) arbeidsflyt. Men, omfanget av hva som kan oppnås i denne arbeidsflyten er mer begrenset at en må med arbeidsflyter for hver stat. Jeg lurte, men, Hva slags ytelse treffer foregår hvis alle enkelte stat arbeidsflytene starter (Riktignok slutter umiddelbart etterpå).
    Også, Jeg bruker en sekundær liste (med sin egen arbeidsflyt) representerer overgangen mellom stater som denne prosessen kan være bare en del av en større arbeidsflyt. Når viktigste arbeidsflyten starter tilstand maskinprosessen, den går inn i en ventetilstand, og når den "gjentakelse" har termintaed. Jeg var også vurderer muligheten for at min viktigste arbeidsflyt kan også vil endre dataene i det opprinnelige listeelementet, og jeg ønsket å unngå unødvendige "firings" i staten maskin arbeidsflyten.
    Svar

Avreise en svar til Paul Galvin Avbryt svar

e-postadressen din vil ikke offentliggjøres. Obligatoriske felt er merket *