بایگانی دسته بندی: شیرپوینت گردش کار

Emailing Daily Task Reminders // Looping in 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 published at the new SharePoint Magazine محل. More generally, the article shows how to create a looping structure in SPD.

The magazine has a wide variety of articles including, در میان چیزهای دیگر, very technical stuff, interviews and industry news. I recommend you add it to your RSS feed.

If you have a product or service to sell, 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.

در نهایت, if you’ve been itching to write something and get it out in front of a larger audience, this is a great time and place to scratch it.

</پایان>

مشترک شدن در وبلاگ من.

برچسب ها:

آخرین من “در دفاع از شیرپوینت طراح” مقاله در دسترس است

مارک میلر در بیش از پایان کاربری شیرپوینت has posted my latest article about using SharePoint Designer to create great workflow solutions up on his site. آن را چک کنید.

در این مقاله, من در مورد فرایند طراحی صحبت می کنید و, در جزئیات بیشتر, چگونه برای راه اندازی یک فرایند قابل اعتماد و تکرار آزمون با استفاده از ویژگی های شیرپوینت (لیست های سفارشی, قالب سایت). The article targets End Users, اما روش خوبی برای توسعه دهندگان می باشد بیش از حد.

</پایان>

مشترک شدن در وبلاگ من.

ورود فعالیت گردش کار در طراح شیرپوینت

هفته گذشته, من چگونه می توان به حلقه و پیاده سازی یک ماشین دولتی با استفاده از شیرپوینت طراح و ذکر, کنار, که من احتمالا یک پست وبلاگ در مورد ورود به سیستم گردش کار بهتر نوشتن.

خوب, Sanjeev Rajput beat me to it. یک نگاه.

صرفه جویی در مصرف اطلاعات ورود به سیستم را به یک لیست سفارشی به نظر می رسد نسبت به با استفاده از تاریخ گردش کار به طور منظم:

  • این فقط یک لیست سفارشی, بنابراین شما می توانید صادرات آن را به راحتی به اکسل.
  • شما می توانید نمایش ایجاد کنید, به صورت پویا داده ها فیلتر, غیره.
  • این موضوع به پاکسازی خودکار شما را با سابقه گردش کار به طور منظم دریافت کنید.

برخی از خطرات وجود دارد / جنبه های منفی:

  • بسیاری از گردش در حال اجرا با تعداد زیادی از ورود به سیستم می تواند داده های بسیار زیادی را می شود به این لیست نوشته می شود.
  • Maybe you *do* want automatic purging. You don’t get that feature with this approach (بدون برنامه نویسی).
  • 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.

</پایان>

مشترک شدن در وبلاگ من.

مشکل با Tribbles ها … گمراه شدن .. KPI ها

This past week I finished off a proof of concept project for a client in Manhattan. While implementing the solution, I ran into another shortcoming of MOSS KPIs (see here for a previous KPI issue and my workaround).

زمینه: 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, these sites host several document libraries, use audience targeting and so forth. Just a bunch of stuff to help with collaboration among the internal employees, traveling employees and the client’s participating business partners.

We also wanted to show some KPIs that monitor the overall health of that specific business process as promoted by the workflow state data and viewed using the KPIs.

سرانجام, we used KPI list items that do a count on a view on a list in the site (as opposed to pulling from another data source, like excel or SQL).

The Problem: As you can imagine, assuming we were to carry the basic idea forward into a production world, we would want a site template. Provision a new site based off a "business process" قالب.

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.

By way of example:

  • Create a new site and build it to perfection. This site includes the KPI data.
  • Save that as a template.
  • Create a new site and base if off the template.
  • This new site’s KPI list items’ sources point to the site template, not the current site.

The instantiation process does not correct the URL.

I tried to solve this by specifying a relative URL when defining the KPI list item. اما, I couldn’t get any variation of that to work.

I always want to pair up these "problem" blog posts with some kind of solution, 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, so you really have to redefine the whole thing from scratch.

If anyone knows a better way to handle this, لطفا نظرتان را تایپ کنید.

</پایان>

برچسب ها:

انالز Culpa — شیرپوینت طراح * حالت، گردش ماشین را ایجاد کنید

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, من در سراسر آمد این ارسال انجمن MSDN 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, اما در اینجا جان کلام آن است:

  • این رویکرد اهرم این واقعیت است که گردش می توانید یک قلم اول از اقلام لیست, thereby triggering a new workflow. I’ve normally considered this to be a nuisance and even بلاگ مورد با استفاده از سمافورها به آن دسته.
  • شیرپوینت اجازه می دهد تا چند گردش مستقل فعال در برابر یک قلم اول از اقلام لیست خاص.

آن را پیکربندی کنید:

  • طراحی ماشین دولت خود را (به عنوان مثال, دولتها و چگونگی انتقال کشور از یک به بعد).
  • اجرای هر ایالت را به عنوان گردش کار جداگانه.
  • پیکربندی هر یک از این گردش دولت به اجرا در پاسخ به هر گونه تغییر در قلم اول از اقلام لیست.

هر گردش کار دولت به دنبال این الگوی خشن:

  • پس از مقداردهی اولیه, determine whether it should really run by inspecting state information in the "current item". Abort if not.
  • انجام کار.
  • Update the "current item" with new state information. This triggers an update to the current item and fires off all the state workflows.

گذشته از منافع آشکار است که می تواند اعلانی گردش دستگاه دولتی ایجاد, تمام اطلاعات دولت فوق العاده برای KPI ها ساختمان و دیدگاه های جالب.

دارای اشکال نسبتا قابل توجهی — استاندارد ردیابی تاریخ گردش کار است و حتی بیشتر بی فایده تر از حد نرمال 🙂 که به راحتی رفع, اما. Store all of your audit type information in a custom list. That’s probably a good idea even for vanilla sequential workflow, اما این برای وبلاگ دیگر 🙂

I call this a "mea culpa" چون من, متاسفانه, 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.

</پایان>

مشترک شدن در وبلاگ من.

برچسب ها:

استفاده از سمافورها در گردش طراح شیرپوینت برای جلوگیری از حلقه بی پایان

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

  • ایجاد یک گردش کار و با یک لیست مرتبط.
  • نشان می دهد که آن را باید در ایجاد آیتمهای جدیدی که شروع شده و به روز رسانی از آیتم های موجود.
  • A step in the workflow updates a field in "Current Item".
  • از آنجا که قلم دوم از اقلام فعلی تغییر, گردش کار از نو شروع می شود.

برای جلوگیری از این حلقه بی پایان, پیاده سازی بوسیله پرچم مخابره کردن ساده:

  • اضافه کردن یک ستون سایت (یا ستون را به لیست / کتابخانه اگر شما نوع محتوا با استفاده از).
  • ویرایشهای آن را از صفحه ویرایش (آسان برای انجام این کار اگر یک ستون سایت از طریق خواص آن, به عنوان آسان نیست اگر یک ستون لیست).
  • در گردش, چک کنید اگر مقدار ستون مخابره بوسیله پرچم خالی است.
  • اگر خالی است, تنظیم آن را به ارزش های غیر خالی و ادامه.
  • اگر خالی است, خروج بلافاصله.

این می تواند تبدیل به یک راه حل نسبتا ظریف, با توجه به الزامات کسب و کار و غیره, اما یک الگوی عملی شده است زمانی که من آن را مورد نیاز.

</پایان>

مشترک شدن در وبلاگ من.

راه رفتن، از طریق: رفع کارمند آموزش الگو صندلی های موجود اشکالات UNREGISTER

همانطور که بسیاری از مردم می دانند, از کارمند قالب آموزش ارائه شده توسط مایکروسافت در اینجا دارای یک اشکال است که ما می توانیم تولید مثل پس از این مراحل:

  • ایجاد یک کلاس با حداکثر اندازه 10 دانش آموزان.
  • ثبات –> Total available seats properly decrements by one. نتیجه: 9 صندلی های موجود.
  • UNREGISTER: –> Bug. Total available seats should increment by one. It does not. نتیجه: 9 صندلی های موجود در شیرپوینت, اما در واقع, وجود دارد 10 صندلی های موجود.

راه حل: استفاده از شیرپوینت طراح گردش کار برای اصلاح.

اولین, open up the site. The folder list for me looks like this:

تصویر

If we have a look at the "Attendee registration" گردش کار, we see that there is a step labeled "Enforce seating policy". It looks like this:

تصویر

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, ما این را:

تصویر

این تمام اطلاعاتی که ما نیاز به تعمیر گردش کار لغو ثبت.

اگر ما بیش از تلنگر به گردش کار لغو ثبت, there is no similar workflow step. Add it as follows:

1: Expand "Attendee unregistration" و باز کردن XOML (اولین ضربه روی صفحه نمایش را ببینید اگر شما از دست داده در حال).

2: افزودن یک متغیر گردش کار جدید, "New Filled Seats" of type "Number".

3: Assign a value to "New Filled Seats" به عنوان نشان داده شده است:

تصویر

4: کاهش پر از صندلی های 1:

تصویر

5: بروز آیتم مربوط به درس:

تصویر

6: Make sure all the steps are in the right sequence. برای من, مثل این به نظر می رسد:

تصویر

7: پایان گردش کار به دوباره ساختن آن.

8: تست.

</پایان>

مشترک شدن در وبلاگ من.

Towards SharePoint Technical Design Patterns: شیرپوینت طراح گردش + Event Receiver = High Potency Cocktail

One of the emerging patterns I find in crafting SharePoint solutions leverages SharePoint Designer workflow and an event receiver.

Here is a business scenario to put it in context:

  • I upload a document to a doc lib.
  • I kick off multi-step workflow created using SharePoint Designer.
  • At some point during that process, workflow assigns a task to someone (via collect data from user or assign a task).
  • 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.
  • Here’s the kicker: I want the date that drives that KPI to be 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. اما, 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 it to false.
  • At the appropriate time in the workflow (e.g. just before the "collect data" اقدام), assign that value to True.
  • An ItemUpdate() event receiver looks to see if "DoCalculateDueDate" is true. Since the event receiver runs on every update, "DoCalculateDueDate" is normally false.
  • When workflow assigns DoCalculateDueDate to true, the event receiver calculates the holiday-aware due date.
  • When the event receiver does this calculation, it sets the DoCalculateDueDate flag to false.

در پایان, 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.

</پایان>

مشترک شدن در وبلاگ من.

رفتار مشاهده شده: حرکت SPD گردش در داخل مجموعه سایت

تکمیلی: I’ve been researching how to embed a SPD workflow into a site definition. This MSDN forum chain has some interesting information. It’s not conclusive, but points to path through the jungle.

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 … temperamental.

People are often asking / wondering / fretting over moving SPD workflows from one place to another. امروز, I followed these steps and made these observations:

  • I created a workflow using SharePoint Designer in a site attached to a document library.
  • The associated document library already housed several documents.
  • I saved the site as a template.
  • When I saved the site as a template, I saved the content as well.
  • I created a new site in the same site collection using that template.

در این مرحله, 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.

I continued:

  • Opened the site in SharePoint Designer.
  • Had a peek at the workflow. It seemed fine.
  • I clicked "Finish".
  • I ran the workflow.

این بار, مشغول به کار خوب.

I’ll add that this workflow used the "collect data from user" action which is a relatively complex action under the 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.

What does this mean? 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, entire new farms (e.g. dev to stage to prod).

If you’re reading this and inclined, please post a comment or ایمیل من your SharePoint Designer migration story. I’ll gladly update this posting with any insights thus offered.

</پایان>

مشترک شدن در وبلاگ من.

سریع و ساده: گردش کار فقط فیلد به روز رسانی

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.

استفاده از یک نوع محتوای سایت / ستون برای رسیدن به این اثر.

ایجاد یک سایت نوع محتوا با ستون وضعیت، به عنوان نشان داده شده است:

تصویر

Note the "Status (برای دیدن نمایش (Demo))" رشته در پایین.

بعد, click on the column name to access the column’s properties. Select "Hidden (نمی خواهد در فرم ظاهر می شود)" در ستون بخش تنظیمات به عنوان نشان داده شده است:

تصویر

This removes the field from the standard edit/update forms. اما, آن است که هنوز هم در دسترس نمایش ها, KPI ها, مدل شی و هر جای دیگری که می خواهید از آن استفاده کنید, including SPD workflow.

</پایان>

مشترک شدن در وبلاگ من.