چگونه VS2010 به ایجاد یک workflow در شیرپوینت کمک می کند ؟

SharePoint 2010 مجموعه ای از Workflow ها را از طریق وبسایت یا SharePoint Designer در اختیار کاربران خود قرار می دهد که ممکن است تعداد محدودی از خواسته های آنها را برآورده سازد. برای این منظور کاربران می توانند به کمک برنامه نویسی یک Workflow طراحی کنند . در اینجا می خواهم Workflowیی طراحی کنم که هنگام افزودن یک فایل به کتابخانه ، در صورتی که Extension آن PNG یا JPEG باشد (شرط) ، DocumentID آن را به عنوان آن فایل اضافه کند (عملیات) .

برای این منظور به سراغ Visual Studio 2010 میرویم (توجه داشته باشید که باید کاربری با دسترسی مالک کتابخانه باشید) .

 

یک پروژه از نوع Sequential Workflow ایجاد می کنیم :

 

 

سپس server را معرفی می کنیم :

 

 

 

پس از عبور از این مرحله و تایید سرور یک wizard برای تنظیمات workflow باز می شود :

ابتدا نام workflow را تعیین می کنیم :

سپس ارتباط بین workflow و لیست ها و کتابخانه ها را تعیین می کنیم . در اینجا من کتابخانه ای به نام DOC1 دارم و می خواهم Workflow را به آن نسبت دهم :

 

پس از این مرحله ، نحوه فعال کردن Workflow را تنظیم می کنید . من می خواهم این Wrokflow زمانی قعال شود که فایلی در کتابخانه Upload می شود (هنگام ایجاد شدن آن) :

 

روی Finish کلیک کنید تا پروژه ایجاد شود . حال از قسمت Solution Explorer فایلWorkflow1 یا پیدا کرده و روی آن کلیک سمت راست کنید و Add - New Item را انتخاب کنید :

 

در پنجره باز شده Workflow Initial Form را انتخاب نمایید :

این کار برای افزودن صفحه آغازین اجرای Wrokflow است که در اینجا فقط آن را ایجاد می کنیم و از همان طراحی پیش فرض آن استفاده می کنیم (۲ دکمه Start و Cancel) . البته چون در اینجا workflow به صورت خودکار فعال می شود ، نیازی به استفاده از این صفحه نیست ولی اگر در تنظیمات اولیه ، فعال سازی دستی را انتخاب کرده باشیم ، این صفحه به نمایش در می آید

 

 

اکنون وضعیت Solution Explorer باید چیزی شبیه به این باشد :

 

روی فایل workflow1 (که در تصویر بالا به حالت انتخاب در آمده است) دویار کلیک کنید تا فایل باز شود ، سپس کلید F7 را بزنید تا وارد Behind Code بشویم :

در فایل باز شده به صورت پیش فرض ، ۲ متغیر Global و Public ایجاد شده است که ما در اینجا با workflowProperties از نوع SPWorkflowActivationPropertiesکار داریم

 

دو تابع طراحی می کنیم برای شرط و عملیاتی که در عنوان همین پست به صورت مسئله بیان کردم . یکی برای گرفتن DocID و دیگری برای مقایسه و اعمال عملیات :

اکنون باید توابع خود Workflow را تعریف کنیم .

برای این منظور به Wrokflow برمی گردیم و روی onWrokflowActivated کلیک می کنیم و در پنجره Properties در قسمت Event روی Invoked دوبار کلیک میکنیم تا تابع این رخداد ساخته شود :

 

و مانند زیر نام تابعی که ساختیم را برای فراخوانی درون آن تابع می نویسیم :

 

 

اکنون پروژه را Deploy می کنیم و این Wrokflow آماده استفاده می باشد

باید نام این workflow به لیست Wrokflow های کتابخانه اضافه شده باشد :

 

پیام بگذارید