فیلتر کردن رکوردها با CAML Query در شیرپوینت

فیلتر کردن رکوردها با CAML Query در شیرپوینت

یکی از چالش‌های رایج برای توسعه‌دهنده‌های شیرپوینت، مدیریت نماهای شیرپوینت (Views) هست. فرض کنید می‌خواهید در یک لیست نمایی بسازید که فقط افرادی که رکوردها رو خودشون ایجاد کرده‌اند به همراه رکوردهایی که به تیم خودشون مربوط میشه (یعنی هم‌تیمی‌هاشون)، بتونن مشاهده کنن.

اولین چیزی که احتمالاً به ذهنتون می‌رسه، استفاده از Set Item Permissions هست.

البته باید توجه داشته باشید که تعداد مجاز دسترسی‌های منحصر به فرد (Unique Permissions) در یک لیست ۵۰,۰۰۰ هست، اما مایکروسافت توصیه کرده که تعداد این دسترسی‌ها بیشتر از ۵,۰۰۰ نباشه. چرا؟

چون وقتی تعداد رکوردهایی که دسترسی‌های منحصر به فرد دارن از این مقدار بیشتر بشه، سیستم دچار کندی و افت عملکرد میشه. بنابراین به دنبال یک روش دیگه باید باشیم.

پیشنهاد من اینه که بیاید سراغ فیلتر کردن رکوردها با CAML Query در شیرپوینت.

 

فیلتر کردن رکوردها با CAML Query در شیرپوینت

 

خب، یعنی چی؟ بذارید اینطور توضیح بدم. اول از همه، باید یک ستون از نوع Person or Group  برای مثال به اسم test بسازید. بعد یک نما (View) به نام Membership ایجاد کنید و در قسمت فیلتر، Created By رو برابر با [Me] تنظیم کنید.

حالا باید شیرپوینت دیزاینر رو باز کنید، برید به لیست مربوطه و نمای Membership رو پیدا کنید.

حالا وقتشه که کد نما رو تغییر بدید! شما باید از تگ <Where> تا تگ </Where> رو انتخاب کنید و کد زیر رو به جای اون قرار بدید:

 

 

با این روش، رکوردهایی که نویسنده یا کاربر جاری به‌عنوان Author مشخص کرده یا کاربر عضو گروهی است که به فیلد test اشاره دارد، به‌طور خودکار فیلتر می‌شوند. این تکنیک به شما کمک می‌کنه بدون نیاز به Set Item Permissions، فقط رکوردهای مربوط به کاربر جاری نمایش داده بشه.

باتوجه به مثال بالا شما می تونید برای هر واحد یک گروه بسازید و اعضای واحد را به گروه ساخته شده اضافه کنید سپس آن گروه را در ستون test درج کنید. اینطوری کاربرا رکوردایی که ایجاد کرده اند و یا اعضای تیمشون آن رکورد را ایجاد کرده اند در یک نما میبینند.

در شبکه های اجتماعی به اشتراک بگذارید

Share on whatsapp
WhatsApp
Share on telegram
Telegram
Share on email
Email

دیدگاهتان را بنویسید

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