Call Web Service در نینتکس

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

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

تفاوت Call web service و Start Workflow

Start Workflow  اجازه می دهد تا کاربر یک فرآیند کاری در همان لیست ایجاد کند.  اما اغلب شروع فرآیند در یک لیست متفاوت مورد نیاز است. همچنین در صورتی که فرآیند بخشی از یک فرآیند بزرگ تر است انتقال متغییر ها ضروری است که با call web service قابل انجام است.

با Call Web Service می توانید یک SOAP Web Service را فرآخوانی کنید که معمولا برای فرآخوانی SharePoint web services استفاده می شود. میتوان برای ارتباط با یک وب سرویس خارجی نیز از این عملکرد استفاده کرد.

شروع فرآیند

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

در قسمت URL قسمت Insert Reference  انتخاب کرده و در تب Common،Web URL را انتخاب کنید. سپس عبارت زیر را مقابل آن اضافه کنید

/_vti_bin/NintexWorkflow/Workflow.asmx

Username  و Password دارای دسترسی را وارد کنید.

Call Web Service در نینتکس

Call Web Service در نینتکس

سپس در قسمت Web Metod بعد از زدن کلید Refresh گزینه start workflow را انتخاب کنید.

Call Web Service در نینتکس

Call Web Service در نینتکس

در قسمت Web service output در صورت نیاز به شروع فرآیند با پارامتر های خاص می تواند تکمیل گردد. در غیر اینصورت فیلدها را خالی باقی بگذارید.

 

اجرای فرآیند روی یک آیتم در لیست

در صورتی از این روش استفاده می شود که یک فرآیند باید مستقیما روی یک مورد لیست اجرا شود .با این عملکرد شما می توانید هر فرآیند در سایت شیرپوینت را آغاز کنید.

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

مانند نمونه قبل موارد را انجام دهید و سپس در قسمت Web Metod گزینه StartWorkflowOnListItem را انتخاب نمایید.

 

Call Web Service در نینتکس

Call Web Service در نینتکس

در قسمت Web Service input موارد را مطابق نمونه تکمیل نمایید:

Call Web Service در نینتکس

Call Web Service در نینتکس

 

 

Call Web Service در نینتکس

Call Web Service در نینتکس

انتقال متغیرها بین فرایندها

برای انجام این کار لازم است از گزینه start data استفاده کنیم.برای انجام اینکار به روش زیر اقدام کنید:

در فرآیند خود در قسمت Workflow setting گزینه variable را انتخاب و متغیر تعریف نمایید.

با کمک یک عملکرد متغیرها را پر کنید.

Call Web Service در نینتکس

Call Web Service در نینتکس

 

در حال حاضر دو متغیر texta  و  number1به ترتیب با testvalue1 و ۱۲۳۴۵ پر شده اند.

حالا در Call Web Service در قسمت associationData (string)  گزینه Reference را انتخاب کنید. متغیر مورد نظر خود را انتخاب کنید.

Call Web Service در نینتکس

Call Web Service در نینتکس

تیک گزینه Encode inserted tokens را انتخاب نمایید. نتایج را در یک متغیر ذخیره نمایید.

 

اجرای فرآیند روی تمام آیتم های یک لیست

با استفاده از گزینه StartWorkflowOnListItemID می توان فرآیند را روی همه آیتم های لیست اجرا نمود. برای اینکار ابتدا مطابق مثال زیر دو متغیر بسازید. یک متغیر Collection و یک متغیر List Item ID لازم است.

 

Call Web Service در نینتکس

Call Web Service در نینتکس

اولین قدم این است که همه آیتم ها در لیست فعلی را جستجو کنیم و شناسه یا ID را در یک متغیر ذخیره کنیم. با کمک عملکرد Query List و For Each میتوان تمام این شناسه ها در یک Collection ذخیره شود.

 

Call Web Service در نینتکس

Call Web Service در نینتکس

حالا call Web Service را اضافه میکنیم و در web Metod گزینه StartWorkflowOnListItem را انتخاب می کنیم.

در قسمت ItemId  از متغیر حاوی  Id ها را اضافه می کنیم. اسم لیست در ListName و نام فرآیند مورد نظر در WorkflowName وارد می کنیم.

 

 

Call Web Service در نینتکس

Call Web Service در نینتکس

 

فرایند به صورت زیر طراحی می گردد:

 

Call Web Service در نینتکس

Call Web Service در نینتکس

 

بدین صورت فرایند روی همه ایتم ها اجرا می شود.

 

دریافت پیوست ها با call Web Service

بدین منظور به صورت زیر Call web service  را config کنید:

Call Web Service در نینتکس

Call Web Service در نینتکس

URL ها را از XML استخراج و آنها را در یک متغیر( attachment_coll) مجموعه به کمک عملکرد Query XML ذخیره کنید.

 

Call Web Service در نینتکس

Call Web Service در نینتکس

 

به ازای هر URL مراحل زیر اجرا می شود:

پیوست از آیتم در متغیر attachment_base64 ذخیره می شود.

 

Call Web Service در نینتکس

Call Web Service در نینتکس

 

با عملکرد Regular Expression نام فایل را دریافت می کنیم:

 

Call Web Service در نینتکس

Call Web Service در نینتکس

 

از call Web service با AddAttachmentCollection برای اضافه کردن پیوست ها استفاده میکنیم:

Call Web Service در نینتکس

Call Web Service در نینتکس

 

در حال حاضر تمام پیوست های در مورد لیست ذخیره می شود.

2 دیدگاه در “Call Web Service در نینتکس

  • سرکار خانم نینا خزدوز
    با سلام و احترام و تشکر از مقاله خوب شما
    در این جا چند سوال مطرح می باشد که خواهشمند است در صورت امکان پاسخ فرمائید :
    ۱٫ پس از فراخوانی فرایند دوم (که از لیست دیگری است) چه اتفاقی برای فرایند اول می افتد.
    ۲٫ آیا کسی که فرایند اول را اجرا نموده متوجه می شود که در این مرحله باید صبر کند تا فرایند دوم اجرا گردد.
    ۳٫ پس از اتمام فرایند دوم، فرایند اول چگونه متوجه اتمام فرایند دوم خواهد شد تا بتواند ادامه فرایند را اجرا نماید.

    • با سلام
      موارد پرسشی شما بستگی به طراحی فرایند دارد به طور مثال میتوان فرایند اول را طوری پیاده سازی کرد که به اتمام برسد و ادامه مسیر به عهده فرایند یا فرایندهای بعدی باشد. یا میتوان با اکشن pause فرایند اول را در انتظار ویرایش یک فیلد نگه داشت و فرایند بعدی قبل از اتمام این فیلد را آپدیت کرده و تمام شود. با ادیت این فیلد فرایند اول ادامه میابد. از دید کاربر هم یک فرایند در حال اجراست و این میتواند یک مزیت باشد. زمان اتمام فرایند اول تا شروع فرایند بعدی آنقدر نیست که به چشم بیاید.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *