وب سرویس برای شیرپوینت ۲۰۱۰

ترفند های شیرپوینت

با توجه به محدودیت های InfoPath به پیشنهاد دوست خوب و عزیزم، آقای مهندس میثمی، سعی کردیم از وب سرویس ها کمک گرفته و قابلیت های InfoPath را افزایش دهیم. در این مطلب، برخی توابع مفید که در پروژه ها از آن استفاده کرده ام را به اشتراک می گذارم.

در مطلب دیگری نحوه استفاده از وب سرویس ها را در InfoPath توضیح خواهم داد.

فایل ضمیمه، یک سولوشن برای شیرپوینت است. برای استفاده از آن باید این سولوشن را در Central Admin فارم خود نصب کنید.

برای نصب می توانید اینجا را مطالعه کنید.

و اما توابعی که در این وب سرویس وجود دارند:

CountMaxMinAvg
این تابع بر اساس شرطی که بصورت CAML برایش تعریف می کنید، تعداد، بیشترین مقدار، کمترین مقدار و مقدار میانگین یک ستون از یک لیست را ارائه می دهد. برای انجام کارهای آماری در InfoPath بسیار مفید است.
CountMaxMinAvgUN

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

در این تابع می توانید نام کاربری مدیر سایت را داده و کل آیتم های لیست را شمارش کنید.

CreateDocument
توسط این تابع یک Document در Document Library ایجاد می کنید.
CreateInfoPathDoc
توسط این تابع یک فرم در Form Library ایجاد می کنید.
DeCodeURL
برای اهالی کوی کد نویسان آشناست. مثلا عبارت http%3A%2F%2F را به http:// تبدیل می کند.
EnCodeURL
عکس تابع قبلی عمل می کند. مثلا عبارت http:// را به http%3A%2F%2F تبدیل می کند.
GetCurrentUser
نام کاربر لاگین کرده را بر می گرداند.
GetSiteListCount
این تابع را بیشتر برای تست گذاشتم. از اسمش پیداست.
GroupBy
عملکرد این تابع شبیه به دستور group by در زبان SQL است. بر اساس این ستون، در یک لیست، عمل گروه بندی را انجام می دهد. از ستون Value برای محاسبه تعداد، میانگین، کمترین و بیشترین استفاده خواهد شد.
Num2Alpha
برای بدست آوردن عبارت عدد به حروف استفاده می شود. مثلا شما می خواهید در کنار مبلغ، حروف آن را هم نمایش دهید. از این وب سرویس می توانید استفاده کنید.
GetListItems

این تابع واسطه ای است برای اجرای تابع اصلی که توسط خود شیرپوینت ساخته و ارائه شده است.

https://msdn.microsoft.com/en-us/library/lists.lists.getlistitems(v=office.12).aspx

اگر تجربه کرده باشید، استفاده از این توابع در InfoPath به خاطر عدم پشتیبانی از نوع داده XML بسیار پیچیده است. من در این تابع، امکان نوشتن متن XML بصورت string را قرار داده ام. یعنی نیازی نیست نوع داده ها از نوع XML باشند.

UpdateListItems

این تابع هم واسطه ای است برای تابع اصلی خودش.

https://msdn.microsoft.com/en-us/library/lists.lists.updatelistitems(v=office.12).aspx

نمونه ای از پارامتر Batch:

<Method ID=”1″ Cmd=”New”><Field Name=”Title”>Test Title</Field></Method>

مانند تابع قبل، به راحتی آن را در InfoPath بکار ببرید.