اکشن Call Web Service به فرآیند، امکان فراخوانی یک متد وب سرویس از نوع (SOAP(Simple Object Access Protocol را میدهد که به کمک آن میتوانید وب سرویسهای سفارشی یا وب سرویسهای شیرپوینت را فراخوانی کنید. این مبحث به پیادهسازی فراخوانی وب سرویس ساده و چگونگی مشاهده نتایج آن و چگونگی استفاده از آن در کنار سایر اکشنهای NINTEX WORKFLOW میپردازد. برای آشنایی با نحوه فراخوانی وب سرویس در فرآیندساز Nintex در ادامه همراه ما باشید.
این فرآیند بر روی یک لیست با ۳ ستون اجرا میشود: عنوان (Title) و Data1 از نوع متن تک خطی و Data2 از نوع عدد.
آیتمهای نمونه استفاده شده در اینجا دارای دادههای زیر است:
فرآیند کامل شده در زیر نمایش داده شده است:
۱٫ قدم اول ایجاد مقادیر یا variables است که بعدا از آنها استفاده میشود. مقادیر را مانند شکل زیر ایجاد کنید:
۲٫ اولین اکشن فرآیند را Call Web Service اضافه کنید و آن را با اطلاعاتی که در ادامه بیان میشود تنظیم کنید.
URL: ابتدا یک مرجع و ارتباط به URL وب(Web URL) وارد کنید و سپس این متن را وارد نمایید: vti_bin/Lists.asmx_/
این مقدار بسته به متد وب سرویسی که از آن استفاده میکنید تغییر میکند. در این مورد ما از متد Lists.GetListItems استفاده میکنیم.
Username & Password: اینها را با اکانتی که مجوزهای مربوطه برای فعالیتهای Web Service را دارد تنظیم کنید. بهطور مثال اگر فقط شما میتوانید لیست را بخوانید پس فقط یک اکانت با مجوز خواندن لازم است. اگر شما در حال اضافه کردن آیتمهای جدید به یک لیست هستید شما به دسترسی مشارکتی و بقیه موارد نیاز دارید.
۳٫ زمانی که اطلاعات وارد شد بر روی دکمه refresh کلیک کرده و سپس ok کنید. هم اکنون شما باید بتوانید یک متد وب را از نوار Dropdown انتخاب کنید.
۴٫ GetListItems را از لیست Dropdown متدهای وب انتخاب کنید و سپس SOAP Editor را مانند editor mode یا حالت ویرایشگر انتخاب کنید. شما باید یک پنجره ویرایشگر همانطور که در زیر مشاهده میکنید، ببینید.
۵٫ متن زیر را در پنجره ویرایشگر SOAP وارد کنید.
<?xml version=”1.0″ encoding=”utf-8″?>
<soap:Envelope xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xmlns:xsd=”http://www.w3.org/2001/XMLSchema”
xmlns:soap=”http://schemas.xmlsoap.org/soap/envelope/”>
<soap:Body>
<GetListItems xmlns=”http://schemas.microsoft.com/sharepoint/soap/”>
<listName>{Common:ListName}</listName>
<viewName></viewName>
<query>
<Query>
<Where>
<Eq>
<FieldRef Name=”Title” />
<Value Type=”Text”>A</Value>
</Eq>
</Where>
</Query>
</query>
<viewFields></viewFields>
<rowLimit></rowLimit>
<queryOptions xmlns:SOAPSDK9=
“http://schemas.microsoft.com/sharepoint/soap/” >
<QueryOptions/>
</queryOptions>
<webID></webID>
</GetListItems>
</soap:Body>
</soap:Envelope>
۶٫ فیلد ‘Store result in’ را با variable ایجاد کرده از قبل getlistitems_result تنظیم کنید. فرمت نتیجه را Xml ست کنید. حالا که web service action تنظیم شده است، save را کلیک کنید.
توجه: اکشن بعدی در فرآیند بصورت انتخابی است و راه خوبی برای مشاهده نتایج web service call در فرمت Xml است. این دید میتواند در مواقع تعیین نام فیلدها و مشاهده اینکه آیا خروجی صحیح است، قبل از اجرای بقیه اکشنها بر روی این نتایج استفاده شود.
۷٫ یک اکشن Send Notification اضافه کنید ، سپس ایمیل به مرجع مورد نظر ارسال میشود. خط Subject را با GetListItems Result پر کنید. در بدنه ایمیل مرجعی را به getlistitems_result وارد کرده و قالب آن را به متن خالی plain text ست کنید. این نکته بسیار مهم است زیرا بدون آن، ایمیل خالی به نظر میرسد. پیکر بندی تنظیمات مانند زیر مشاهده میشود:
۸٫ مرحله بعدی تبدیل خروجی Xml وب سرویس به دادهای است که در اکشنهای دیگر (مانند مقادیر متنی فرآیند) وجود دارد. برای انجام این کار ما از اکشن Query XML استفاده میکنیم. دو Query XML استفاده شده است. یکی برای هر مقداری (variable) که میخواهیم ست کنیم. ما این اطلاعات را توسط Xpath processing میگیریم. اولین اکشن Query XML را مانند زیر تنظیم کنید:
در اینجا فیلد ows_Data1 از وب سرویس برگشت داده میشود و در resultPart1 ذخیره میگردد.
۹٫ دومین اکشن Query XML را عینا مثل قبل تنظیم کنید اما به جای ows_Data1 از ows_Data2 و به جای resutPart1 از resultPart2 استفاده کنید. اکشن را همانند شکل زیر پیکربندی کنید:
۱۰٫ اکنون ما میتوانیم از این مقادیر variable ها با logging کردن آنها در لیست تاریخچه استفاده کنیم. یک اکشن Log in History List بهعنوان مرحله نهایی اضافه کنید. اکشن را مانند شکل زیر پیکربندی کنید:
۱۱٫ در نهایت فرآیند را publish و اجرا کنید.
در این مطلب به بررسی نحوه فراخوانی وب سرویس در فرآیندساز Nintex پرداختیم. گروه ساقه در زمینه شیرپوینت خدمات و محصولات متعددی ارائه میکند. برای دریافت اطلاعات بیشتر میتوانید همین حالا با ما تماس بگیرید.