Mga Archive ng kategorya: SharePoint workflow

Araw-araw na Pag-email ng paalala ay Task // Looping sa SharePoint Designer workflow

I wrote up a detailed article a few weeks ago describing how to create a SharePoint Designer workflow that sends a task reminder email on a daily basis. It’s been lathala sa bagong SharePoint Magazine lugar. More generally, ang artikulo ay nagpapakita kung paano upang lumikha ng isang looping istruktura sa SPD.

Ang magazine ay may isang malawak na iba't-ibang mga artikulo kabilang ang, bukod sa iba pang mga bagay, napaka-teknikal na mga bagay-bagay, interviews and industry news. I recommend you add it to your RSS feed.

Kung mayroon kang isang produkto o serbisyo upang magbenta, I’d also consider advertising on the site. It’s off to a strong start with several thousand pairs of eyes looking at it already. That’s sure to grow.

Sa wakas, kung ikaw ay nangangati upang magsulat ng isang bagay at kumuha ng mga ito sa harap ng isang malaking madla, this is a great time and place to scratch it.

</dulo>

Mag-subscribe sa aking blog.

Technorati Tags:

Aking Pinakabagong “Sa Defense ng SharePoint Designer” Artikulo ay Magagamit

Mark Miller sa ibabaw End User SharePoint has posted my latest article about using SharePoint Designer to create great workflow solutions up on his site. Tingnan ito.

Sa artikulong ito, Makipag-usap ko tungkol sa proseso ng disenyo at, nang mas detalyado, paano mag-set up ng isang maaasahan at repeatable proseso ng pagsubok gamit ang mga tampok ng SharePoint (custom na mga listahan, site ng mga template). The article targets End Users, ngunit ang diskarte ay mabuti para sa mga developer masyadong.

</dulo>

Mag-subscribe sa aking blog.

Nagla-log workflow Aktibidad sa SharePoint Designer

Huling na-linggo, Ako ay nagtatrabaho out kung paano loop at ipatupad ang estado machine paggamit ng SharePoint Designer at nabanggit, bilang isang bukod, na Gusto ko marahil magsulat ng isang blog post tungkol sa mas mahusay na daloy ng trabaho sa pag-log.

Mahusay, Sanjeev Rajput beat me to it. Magkaroon ng isang hitsura.

Sine-save ang data ng pag-log in sa isang pasadyang listahan tila superior sa paggamit ng regular na daloy ng trabaho sa kasaysayan:

  • Ito ay lamang ng isang pasadyang listahan, sa gayon maaari mong i-export ito sa excel napaka madali.
  • Maaari kang lumikha ng tanawin, dynamic na i-filter ang data, at iba pa.
  • Ito ay hindi napapailalim sa auto-pampadumi kumuha ka ng regular na may workflow kasaysayan.

May ilang mga panganib / downsides:

  • Maraming tumatakbo daloy ng trabaho na may maraming mga pag-log ay maaaring magdulot ng masyadong maraming data na nakasulat sa listahan.
  • Maybe you *do* want automatic purging. You don’t get that feature with this approach (walang coding).
  • Security is tricky. In order to write to the list, the user must have permission to do so. That means that it’s probably not suitable for any kind of "official" audit since the user could discover the list and edit it. This could be overcome with some custom programming.

</dulo>

Technorati Tags:

Mag-subscribe sa aking blog.

Ang Problema Sa Tribbles … maligaw .. KPI

This past week I finished off a proof of concept project for a client in Manhattan. While implementing the solution, Ako ang bumangga sa isa pang kapintasan ng Moss KPI (tingnan ang dito para sa isang nakaraang isyu KPI at ang aking workaround).

Likuran: We used SharePoint Designer workflow to model a fairly complex multi-month long business process. As it chugged along, it would update some state information in a list. KPIs use this data to do their mojo.

We decided to create a new site each time a new one of these business processes kicks off. Aside from the workflow itself, mga site na ito host ng ilang mga dokumento aklatan, use audience targeting and so forth. Just a bunch of stuff to help with collaboration among the internal employees, naglalakbay sa mga empleyado at mga kalahok ng kliyente kasosyo sa negosyo.

Din namin pinaghahanap upang ipakita ang ilang mga KPI na masubaybayan ang pangkalahatang kalusugan ng mga tiyak na proseso ng negosyo bilang na-promote sa pamamagitan ng daloy ng trabaho ng data ng estado at tiningnan gamit ang KPI.

Sa wakas, ginamit namin KPI listahan ng mga item na gawin ang isang bilang sa isang pagtingin sa isang listahan sa site (na taliwas sa paghila mula sa isa pang pinagmulan ng data, tulad ng excel o SQL).

Ang Problema: Bilang maaari mong isipin, ipagpalagay na kami ay upang dalhin ang pangunahing ideya inaabangan ang panahon sa isang mundo produksyon, we would want a site template. Provision a new site based off a "business process" template.

The problem is that you can’t seem to get a functioning KPI that way. When I create a new site based on a template with a KPI List and KPI web part, the new site’s KPI data are broken. The new site’s KPI list points at whatever source you defined when you first saved it as a template.

Sa pamamagitan ng paraan ng halimbawa:

  • Create a new site and build it to perfection. This site includes the KPI data.
  • I-save ang na bilang isang template.
  • Lumikha ng bagong site at kung base off ang template.
  • KPI Ang bagong site listahan ng mga item’ pinagmumulan tumuturo sa template ng site, hindi sa kasalukuyang site.

Ang proseso ng Instantiation ay hindi wasto ang URL.

I tried to solve this by specifying a relative URL when defining the KPI list item. Gayunman, Hindi ko makuha ang anumang pagkakaiba-iba ng na upang gumana.

I always want to pair up these "problem" blog post na may ilang mga uri ng solusyon, but in this case I don’t have a good one. The best I can figure is that you need to go in to the newly provisioned site and fix everything manually. The UI makes this even harder because changing the URL of the source list causes a refresh, kaya mo ba talagang i-muling tukuyin ang buong bagay mula sa simula.

Kung sinuman nakakaalam ng isang mas mahusay na paraan upang mahawakan ito, paki-post ng komento.

</dulo>

Technorati Tags:

MEA Culpa — SharePoint Designer * MAA * Lumikha ng daloy ng trabaho State Machine

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, Ako ay dumating sa kabuuan ang post na ito MSDN forum as well. 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, ngunit narito ang diwa ng ito:

  • Ang diskarte Pinakikinabangan ang katunayan na ang isang daloy ng trabaho ay maaaring baguhin ang isang item sa listahan, thereby triggering a new workflow. I’ve normally considered this to be a nuisance and even blog tungkol sa paggamit ng semaphores upang mahawakan ito.
  • SharePoint nagbibigay-daan sa maramihang mga independiyenteng mga daloy ng trabaho upang maging aktibo laban sa isang partikular na item listahan.

Upang i-configure ito:

  • Idisenyo ang iyong estado machine (ibig sabihin, ang estado at kung paano estado ng paglipat mula sa isa sa susunod).
  • Ipatupad ang bawat estado bilang hiwalay na mga daloy ng trabaho.
  • I-configure ang bawat isa sa mga daloy ng trabaho ng estado upang isakatuparan bilang tugon sa anumang mga pagbabago sa mga item sa listahan.

Ang bawat estado workflow sumusunod ito magaspang pattern:

  • Sa Pinasimulan, determine whether it should really run by inspecting state information in the "current item". Abort if not.
  • Ang trabaho.
  • Update the "current item" with new state information. This triggers an update to the current item and fires off all the state workflows.

Bukod sa halata na benepisyo na maaari isa lumikha ng isang paturol estado machine workflow, lahat na impormasyon sa estado ay kakila-kilabot para sa KPI gusali at mga kagiliw-giliw na tanawin.

Ginagawa magkaroon ng isang medyo makabuluhang sagabal — standard workflow history tracking is even more useless than normal 🙂 That’s easily remedied, gayunman. 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" dahil mayroon akong, sa kasamaang-palad, 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.

</dulo>

Mag-subscribe sa aking blog.

Technorati Tags:

Gamitin ang mga Semaphores sa SharePoint Designer workflow sa Pigilan ang mga walang katapusang loop

It’s possible to cause an endless loop in a SharePoint Designer workflow. A common implementation pattern like this causes the problem:

  • Lumikha ng isang daloy ng trabaho at iugnay sa isang listahan.
  • Magpahiwatig na dapat itong magsimula sa lumikha ng mga bagong item at i-update ng mga umiiral nang mga item.
  • A step in the workflow updates a field in "Current Item".
  • Dahil sa kasalukuyang item ay nagbago, daloy ng trabaho sa pagsisimula muli.

Upang maiwasan ang walang katapusang loop, ipatupad ang isang simpleng semaporo:

  • Magdagdag ng isang haligi ng site (o haligi sa listahan / library kung hindi ka gumagamit ng uri ng nilalaman).
  • Itago ito mula sa pahina ng pag-edit (madaling gawin kung ang isang haligi ng site sa pamamagitan ng kanyang mga katangian, hindi bilang madaling kung ang isang listahan ng haligi).
  • Sa ang daloy ng trabaho, suriin upang makita kung ang halaga ng haligi semaporo ay blangko.
  • Kung ito ay blangko, itakda ito sa isang non-blangko na halaga at magpatuloy.
  • Kung ay ay hindi blangko, lumabas agad.

Ito ay maaaring maging isang medyo nuanced na solusyon, depende sa mga pangangailangan ng negosyo at iba pa, ngunit ito ay naging isang maisasagawa pattern kapag kailangan ko na ito.

</dulo>

Technorati Tags:

Mag-subscribe sa aking blog.

Maglakad-through: Ayusin Employee Pagsasanay Template Magagamit Upuan pagkarehistro Bug

Tulad ng maraming mga taong kilala, ang template Employee Pagsasanay na ibinigay sa pamamagitan ng Microsoft dito May bug na maaari naming muling buuin pagsunod sa mga hakbang na ito:

  • Lumikha ng isang class na may isang maximum na laki ng 10 mag-aaral.
  • Magparehistro –> Total available seats properly decrements by one. Magbunga: 9 Available ang upuan.
  • Pagkarehistro: –> Bug. Total available seats should increment by one. It does not. Magbunga: 9 Available ang upuan ng bawat SharePoint, ngunit sa katunayan, marami 10 Available ang upuan.

Solusyon: Gamitin SharePoint Designer upang itama ang daloy ng trabaho.

Una, open up the site. The folder list for me looks like this:

imahen

If we have a look at the "Attendee registration" workflow, we see that there is a step labeled "Enforce seating policy". It looks like this:

imahen

This step in the workflow updates the item by incrementing the "Filled Seats" metadata column on the course. If we pull that up in more detail, makita namin ito:

imahen

Iyon ay ang lahat ng impormasyong kailangan namin upang ayusin ang unregistration workflow.

Kung namin i-flip sa ibabaw ng mga workflow unregistration, there is no similar workflow step. Add it as follows:

1: Expand "Attendee unregistration" at buksan up ang XOML (tingnan muna screen shot kung ikaw ay mawawala).

2: Magdagdag ng isang bagong variable na daloy ng trabaho, "New Filled Seats" of type "Number".

3: Assign a value to "New Filled Seats" tulad ng ipinapakita:

imahen

4: Pagbawas ng Puno Upuan sa pamamagitan ng 1:

imahen

5: I-update ang mga kaugnay na item Course:

imahen

6: Make sure all the steps are in the right sequence. Sa akin, ito ganito ang hitsura:

imahen

7: Tapusin ang daloy ng trabaho upang muling bumuo ng mga ito.

8: Pagsubok.

</dulo>

Mag-subscribe sa aking blog.

Technorati Tags: ,

Patungo sa SharePoint Technical Pattern Disenyo: SharePoint Designer workflow + Tatanggap ng Kaganapan = bagsik Cocktail

Ang isa sa mga umuusbong na mga pattern mahanap ako sa crafting solusyon sa SharePoint Pinakikinabangan SharePoint Designer workflow at isang kaganapan receiver.

Narito ang isang negosyo sitwasyon upang ilagay ito sa konteksto:

  • Ako mag-upload ng isang dokumento sa isang doc Lib.
  • Sipain ko off ang multi-hakbang na daloy ng trabaho na nilikha gamit ang SharePoint Designer.
  • Sa ilang mga punto sa panahon ng prosesong iyon, daloy ng trabaho ay nagtatalaga ng isang gawain sa isang tao (sa pamamagitan ng mangolekta ng data mula sa gumagamit o magtalaga ng isang gawain).
  • We want to use a KPI to track how long that task is awaiting completion. The KPI shows green for tasks that are completed or due more than 3 days from now. It shows yellow if the task is due tomorrow or today. It shows red if the task is past due.
  • Narito ang kabayong naninipa: Gusto ko ang mga petsa na nag-mamaneho na KPI na maging holiday-aware.

I can’t calculate a holiday-aware due date in SharePoint Designer workflow very easily. I would have to create a custom action or use a 3rd party tool. Gayunman, it’s easy enough to calculate such a date in an event receiver. Merge those two together and we get a pattern like this:

  • Define a hidden yes/no site column on the document library labeled "DoCalcualteDueDate".
  • Initialize ito upang hindi totoo.
  • Sa naaangkop na oras sa daloy ng trabaho (e.g. just before the "collect data" aksyon), magtalaga ng halagang iyon sa True.
  • Isang ItemUpdate() event receiver looks to see if "DoCalculateDueDate" is true. Since the event receiver runs on every update, "DoCalculateDueDate" ay karaniwang hindi totoo.
  • Kapag workflow nagtatalaga DoCalculateDueDate sa true, mga kaganapan receiver kinakalkula ang holiday-aware takdang petsa.
  • Kapag ang kaganapan receiver Ginagawa ito pagkalkula, Nagtatakda ito ang DoCalculateDueDate flag upang hindi totoo.

Sa katapusan, SPD workflow is communicated with an event receiver via the DoCalculateDueDate semaphore and we have holiday-aware due dates that are assigned at the exactly correct moment in the workflow’s life. SharePoint Designer controls when the due date is assigned but the event receiver performs the actual calculation and assignment.

</dulo>

Mag-subscribe sa aking blog.

Napagmasdang Pag-uugali: Naglilipat ng daloy ng trabaho SPD Sa loob ng isang Collection Site

I-UPDATE: I’ve been researching how to embed a SPD workflow into a site definition. Ito chain MSDN forum ay may ilang mga kagiliw-giliw na impormasyon. It’s not conclusive, ngunit ang mga punto upang path sa loob ng gubat.

I’m giving this post a slightly oddball "Observed Behavior" lead since I’m a little leery of drawing conclusions from it. SPD workflows are … maramdamin.

Ang mga tao ay madalas na nagtatanong / nagtataka / fretting over moving SPD workflows from one place to another. Ngayon, Sinundan ko ang mga hakbang na ito at ginawa ang mga obserbasyon:

  • Nilikha ko ang isang daloy ng trabaho gamit ang SharePoint Designer sa isang site na naka-attach sa isang library dokumento.
  • Ang mga kaugnay na library dokumento na matatagpuan ilang mga dokumento.
  • I-save ang site bilang isang template.
  • Kapag ako naka-save na mga site bilang isang template, I-save ang nilalaman pati na rin.
  • Lumikha ako ng bagong site sa parehong koleksyon site gamit ang na template.

Sa puntong ito, I tried to run the workflow. It promptly terminated itself with the log message, "Failed on start".

I expected this. I have low expectations when it comes to moving SPD workflows around.

Nagpatuloy ako:

  • Binuksan ang site sa SharePoint Designer.
  • Had a peek at the workflow. It seemed fine.
  • I clicked "Finish".
  • Nagpatakbo ako ng workflow.

Oras na ito, ito ay nagtrabaho fine.

I’ll add that this workflow used the "collect data from user" pagkilos na kung saan ay isang medyo kumplikado pagkilos sa ilalim ng hood.

I tentatively conclude that the process of "finishing" the workflow caused SPD to properly associate the SPD workflow with the new document library. I also conclude the XOML and other XML artifacts are reasonably "loose". They are not super tightly coupled to the document library.

Ano ang ibig sabihin nito? Assuming it’s a reliable and reproducible process, there’s at least one rough method we can use to move them around. I don’t know if this would work if we crossed site collection boundaries or even more drastically, buong bagong mga sakahan (e.g. dev sa entablado upang mag-udyok).

Kung binabasa mo ito at may hilig, paki-post ng komento o email sa akin your SharePoint Designer migration story. I’ll gladly update this posting with any insights thus offered.

</dulo>

Mag-subscribe sa aking blog.

Technorati Tags:

Mabilis at simpleng: Workflow-lamang Update Field

It’s often useful to store status information in a custom list such as an approval code which should never be directly manipulated by end users. This is a common business scenario. I have been working on a project this year that generates various status and reminder dates via SharePoint Designer workflows that then drive KPIs and generally support time-critical business processes.

Use a site content type / column to achieve this effect.

Create a site content type with the status column as shown:

imahen

Note the "Status (for Demo)" field at the bottom.

Susunod, click on the column name to access the column’s properties. Select "Hidden (Will not appear in forms)" in the Column Settings section as shown:

imahen

This removes the field from the standard edit/update forms. Gayunman, ito ay magagamit pa rin sa mga pagtingin, KPI, ang bagay na modelo at kahit saan pa na gusto mong gamitin ito, including SPD workflow.

</dulo>

Mag-subscribe sa aking blog.