طراحی یک Workflow ساده با استفاده از شرپوینت دیزاینر

در این پُست تصمیم دارم تا با مثالی طراحی و پیاده سازی یک Workflow را توسط SharePoint Designer 2007 تشریح کنم.

قبل از طراحی هر جریان کاری یا Workflow ابتدا باید یک پلان یا سناریو در مورد اون جریان کاری بنویسید. سناریوی این مثال هم به صورت زیر است :

موضوع : طراحی یک جریان کاری تایید کننده محتویات یک کتابخانه اسناد (Content Approval Workflow)

سناریو : سناریو رو با استفاده از شکل زیر توضیح می دم.

1

ابتدا سندی توسط کاربر در یک کتابخانه اسناد یا (Document Library) ساخته یا آپلود می شود.در حین این عمل، یک ایمیلی به شخص تایید کننده اسناد یا Approver فرستاده شده و او را از ایجاد شدن یک سند جدید آگاه می سازد. یک ایمیل هم جهت اطلاع به فردی که سند را ایجاد کرده ارسال می گردد. پس از این عملیات پردازش لازم توسط جریان کاری بر روی کتابخانه اعمال شده و سند در وضعیت انتظار برای تایید (Approve) یا رد (Reject) قرار می گیرد. شخص تایید کننده اسناد باید سند مورد نظر را باز و بررسی کرده و در صورت لزوم آنرا تایید یا رد نماید. در این زمان Workflow یکی از دو عمل زیر را انجام میدهد :

۱- اگر سند مورد نظر تایید شود، سند به کتابخانه دیگری(Published) جهت انتشار عمومی منتقل شده و یک ایمیل به سازنده سند و شخص تایید کننده جهت اطلاع ارسال می شود.

۲- اگر سند توسط شخص تایید کننده به دلایل مختلف رد شود، این سند به کتابخانه دیگری(Rejected) که اسناد رد شده در آن قرار می گیرند انتقال می یابد و ایمیلی جهت اطلاع به شخص تایید کننده و سازنده سند ارسال می شود.

پس از نوشتن سناریو و مشخص شدن چارچوب جریان کاری، حال آنرا توسط شرپوینت دیزاینر یا SPD 2007 پیاده سازی می کنیم.

۱- ابتدا یک تیم سایت جدید به نام Developer Team Site ایجاد کنید. یا اگر سایت شرپوینت قبلاً ایجاد کردید از آن استفاده کنید.

۲- سه کتابخانه اسناد (Document Library) به نام های Submitted, Published, Rejected بسازید.برای کتابخانه Submitted در قسمت Versioning Setting در صفحه Library Setting Document در قسمت “Require content approval for submitted items” گزینه Yes را انتخاب نمایید.

۳- SPD 2007 را اجرا کنید و در منوی فایل گزینه Open Site را انتخاب کنید. در پنجره باز شده آدرس سایت مورد نظر که ساختید و یا از قبل ساخته بودید را وارد کنید و Open را کلیک کنید.پس از چند لحظه سایت شما به همراه فایلهای آن لود میشود.

۴- حال از منوی فایل به بخش New رفته و گزینه Workflow را انتخاب کنید تا پنجره Workflow Designer مانند شکل زیر باز شود.در قسمت Name نام Publishing را وارد کنید و این Workflow را به لیست Submitted، توسط انتخاب ازلیست Dropdown وسط صفحه الحاق نمایید.گزینه Automatically Start the workflow when a new item is created. را هم تیک بزارید.) مانند شکل زیر( بر روی Next کلیک کنید.

1

۵- در پنجره باز شده، در قسمت Step Name نام Launch and wait را برای این مرحله وارد نمایید.

۶- بر روی Conditions کلیک کنید.گزینه Compare Submitted Field را انتخاب نمایید. Field را بر روی Approval Status ست کنید و Value را بر روی Pending. دکمه Actions را کلیک کنید و Send an email را انتخاب نمایید.بر روی لینک Hyperlink آن کلیک کنید تا پنجره Define Email Message باز شود.در انتهای خط اول To: بر روی دکمه Address book کلیک کنید تا پنجره Select Users باز شود.از لیست سمت چپ گروه Approvers را انتخاب کنید و آنرا توسط دکمه Add به لیست Selected User اضافه نمایید.(شکل زیر)

2

پنجره را Ok نمایید تا به صفحه قبل باز گردد. حال در قسمت CC: مانند قسمت قبلی عمل کرده و User who created current item را انتخاب نمایید. (یعنی کاربری که سند را ایجاد کرده). از قسمت Subject دکمه fx را کلیک نمایید. در پنجره Define Workflow Lookup از قسمت Source گزینه Current item و از Field گزینه Name را انتخاب نمایید و پنجره را OK نمایید. قسمت مربوط به متن ایمیل را هم با یک متن دلخواه پر نمایید و یا می توانید آنرا خالی بگذارید.پنجره Define Email Message باید شبیه شکل زیر شده باشد :

3

۷- منوی Actions را کلیک کنید و در قسمت More Actions گزینه “Wait for field change in current item” را انتخاب کنید و دکمه Add را کلیک کنید. Field را روی Approval Status ست کنید. گزینه “to equal” را هم به “to not equal” تغییر دهید. Value را هم با مقدارPending ست کنید. با این کار مرحله Launch and Wait تکمیل شد.(شکل زیر)

4

تا اینجای کار یک گام از طراحی انجام شد. در این مرحله در قسمت Conditions شرطها بررسی شد و در قسمت Actions عمل مربوط برای انجام روی شروط مورد نظر، تعیین گردید.

۸- در پایین قسمت Workflow Steps لینک Add workflow step را کلیک کنید. Name Step را به صورت Review and Routing وارد کنید.

۹- از بخش Conditions گزینه Compare Submitted Field را انتخاب کنید. بر روی لینک Field کلیک کنید و Approval Status را انتخاب نمایید.لینک Value را کلیک کنید و Approved را برگزینید.

۱۰- حال از قسمت Actions گزینه Copy List Item را انتخاب نمایید.سپس لینک اول this list را انتخاب و سپس Current Item را انتخاب نمایید. لینک دوم this list را با گزینه Published ست کنید.

۱۱- از Actions ،Item Delete را انتخاب،سپس بر روی لینک this list کلیک کنید و Current Item را انتخاب نمایید.

۱۲- حال از قسمت Actions گزینه Send an Email را انتخاب کنید. بر روی لینک this message کلیک نمایید. تنظیم ایمیل را مانند بخش Define Email در بند ۶ انجام دهید.در قسمت To نام شخصی که آیتم را ایجاد کرده (User who created current item) انتخاب نمایید و در قسمت CC: گروه Approvers را انتخاب کنید. قسمت subject را هم مانند بند ۶ تنظیم نمایید.یک متن هم برای سازنده سند جهت آکاهی از تایید سند خود در قسمت مربوطه وارد نمایید. مانند شکل زیر :

5

۱۳- بر روی لینک Add ‘Else If” Conditional Branch در زیر دکمه Actions کلیک کنید.

این کار باعث می شود تا بتوانید شرط جدیدی را سِت نمایید، که در صورت عدم Approve یا تایید شدن سند، اعمال مربوط به این شرط جدید اتفاق بیفتد. یعنی همان IF,ELSE زبانهای برنامه نویسی!

۱۴- در این قسمت برای تعیین شرطهای مورد نیاز، Compare Submitted Field رو برای Conditions ست کنید و لینک Field رو با Approval Status و لینک Value رو با Rejected تنظیم نمایید.

۱۵- از قسمت Actions گزینه Copy List Item و “this list” اول رو با current item و دومی رو با Rejected تنظیم نمایید.

۱۶- از Actions ،Item Delete را انتخاب، سپس بر روی لینک this list کلیک کنید و Current Item را انتخاب نمایید.

۱۷- حال از قسمت Actions گزینه Send an Email را انتخاب کنید. بر روی لینک this message کلیک نمایید. تنظیم ایمیل را مانند بخش Define Email در بند ۶ انجام دهید.در قسمت To نام شخصی که آیتم را ایجاد کرده (Created by: ) انتخاب نمایید و در قسمت CC: گروه Approvers را انتخاب کنید.این کار سبب تکمیل مرحله Review and Routing می شود.(شکل های زیر)

6

7

۱۸- دکمه Finish را برای اتمام کار کلیک کنید. پس از ذخیره تغییرات در SPD ، جریان کاری ایجاد شده به طور اتوماتیک با سایت شرپوینتی ما متصل شده و فقط باید آنرا در کتابخانه Submitted که قبلاً ساخته بودیم، فعال کنیم!

۱۹- حال برای انجام این کار وارد سایت شده و به کتابخانه اسناد Submitted وارد شده و یک سند جدید به نام First Document را در آنجا بسازید.در این سند جدید که توسط مایکروسافت Word ایجاد شده، متنی را بنویسید و آنرا ببندید.

۲۰- سند جدید را در این کتابخانه مشاهده نمایید. در ستون Approval Status کلمه Pending را می بینید. این همان تنظیم مربوط به فعال کردن content approval در مرحله ۲ است. در ستون مربوط به Publishing وضعیت In Progress را مشاهده می کنید.زیرا یک Instance از Publishing workflow ایجاد شده است. وارد قسمت Workflow Setting این کتابخانه شوید.مشاهده می کنید که یک جریان کاری برای این کتابخانه ساخته شده و هم اکنون در حال اجراست (شکل زیر).

8

۲۱- سند جدیدی که در کتابخانه ایجاد شده بود را به این صورت Approve نمایید: موس را بر روی نام سند حرکت دهید، سپس بر روی فلش مشخص نمایش داده شده که به صورت drop down هست کلیک کنید. حال از منوی باز شده گزینه Approve/Reject را کلیک نمایید.در صفحه باز شده Approved را انتخاب نمایید تا سند تایید شود.

۲۲- زمانیکه سند Approve شد، این سند به صورت تنظیم شده (در زمان طراحی Workflow ) به کتابخانه اسناد Published که قبلاً ایجاد کرده بودیم، منتقل می شود.

۲۳- برای دفعه دوم، یک سند دیگری مانند فوق ایجاد کنید و مانند مرحله ۲۱ عمل نمایید و این بار آنرا Reject نمایید.با این کار سند شما که رد شد، اینبار این سند دوم به کتابخانه اسناد Rejected منتقل خواهد شد.

۲۴- برای تکمیل کار و مشاهده کامل نتایج،می توانید ایمیلی که بعد از Submit شدن، Approve و یا Reject شدن سند برای صاحب و سازنده آن سند ارسال شده است را مشاهده کنید.

خُب، امیدوارم که خسته نشده باشید و مراحل فوق را به درستی انجام داده باشید. در ادامه مطالبم نکاتی را در مورد Workflow ای که ساخته شد بیان می کنم :

· یک جریان کاری یک مدلی از دنیای واقعی پروسس های تجاری است. بنابراین یک جریان کاری یا workflow بر حسب نیاز، شامل یک سری از مراحل یا step ها می باشد.

· SPD یا همان SharePoint Designer جریان های کاری را بدون اینکه کُدی در محیط .NET نوشته شود، ایجاد میکند.

· Template ایجاد شده جریان کاری پس از ساخت، به صورت اتوماتیک بر روی WSS و یا MOSS منتشر می شود.

· شرایط و ارتباطاتی که توسط سازنده جریان کاری انتخاب می شود، به صورت مجموعه ای از قوانین فرموله می شوند. هر قانونی با یک یا چند شرط و یک یا چند عمل مقایسه می شود. بنابراین جریان کاری، عمل مرتبط را در صورتیکه شرط درست باشد انجام می دهد.

· SPD از این اطلاعات استفاده کرده و یک Template مبتنی بر قوانین را بر اساس مدل XAML می سازد، که نمایش دهنده جریان کاری مورد نظر ما است. اگر مانند شکل زیر پوشه جریانهای کاری(Workflows) ایجاد شده توسط SPD را در داخل محیط SPD باز کنید، در زیر نام جریان کاری (Publishing) ،۳ نوع فایل مجزا را خواهید دید که عبارتند از :

– Publishing.xoml : که یک فایل markup می باشد. این فایل فقط زمانی که جریان کاری در بدنه خود از شرط هایی(Conditions) استفاده نماید، نیاز می باشد.

– Publishing.xoml.rules : این یک فایل قوانین یا Rules برای جریان کاری است.

– Publishing.xoml.wfconfig.xml : این فایل یک فایل تنظیمات و پیکربندی(Configuration) برای جریان کاری است. (شکل زیر)

9

بحث در مورد جزئیات و محتویات این فایل ها در حوصله این پُست نیست و در آینده به آنها خواهم پرداخت.

نکته جالب این است که SPD این فایل ها را در یک کتابخانه اسناد مخفی (Hidden doc Lib) منتشر می نماید که برای هر سایتی به صورت مجزا ایجاد می شود.این کتابخانه جریان های کاری، به صورت پیش فرض از دید Web browser مخفی هستند! برای فعال سازی نمایش این کتابخانه، در محیط SPD و در بخش Folder List بر روی پوشه Workflows کلیک راست نمایید و Properties را انتخاب کنید.در صفحه باز شده وارد Tab Settings شوید و گزینه Hide from Browse را از حالت انتخاب خارج نمایید (Uncheck) و صفحه را OK نمایید.

به طور کلی SPD توانایی ساخت جریان های کاری سفارشی و دلخواه را که برای اجرا نیاز به تنظیم دستی دارند، را دارا می باشد. علاوه بر این، SPD می تواند به صورت خودکار فرم هایی را برای نمایش به کاربر ایجاد کند تا جریان کاری بتواند اطلاعات مورد نیاز را از کاربر جمع آوری نماید. این فرمها صفحات aspx هستند. در مثالهای بعدی به ساخت این نوع از جریان های کاری خواهم پرداخت.

پاسخ دهید