توابع User (کاربر) در Tableau
این مقاله توابع User و کاربردهای آنها را در Tableau معرفی میکند. همچنین نحوه ایجاد یک محاسبه کاربر را با استفاده از یک مثال نشان میدهد.
چرا از توابع User (کاربر) استفاده کنیم
توابع User (کاربر) میتوانند برای ایجاد فیلترهای کاربر یا فیلترهای امنیتی سطح ردیف استفاده شوند که بر تجسمهای منتشر شده در Tableau Server یا Tableau Cloud تأثیر میگذارند، به طوری که فقط افراد خاصی بتوانند تجسم شما را ببینند.
به عنوان مثال، اگر تجسمی دارید که عملکرد فروش هر کارمند در بخش شما را که در Tableau Server یا Tableau Cloud منتشر شده است نشان میدهد، ممکن است بخواهید فقط به کارمندان اجازه دهید هنگام دسترسی به آن تجسم، شماره فروش خود را ببینند.
در این حالت، میتوانید از تابع ISMEMBEROF برای ایجاد فیلدی استفاده کنید که اگر نام کاربری شخصی که به سرور وارد شده است عضو یک گروه مشخص (در سرور) باشد، مانند گروه “مدیران”، مقدار true را برمیگرداند. سپس وقتی با استفاده از این فیلد محاسبه شده، نما را فیلتر میکنید، فقط شخصی که عضوی از آن گروه است میتواند دادهها را ببیند.
محاسبه در این مورد ممکن است چیزی شبیه به موارد زیر باشد:
ISMEMBEROF('Managers')
توجه: اگر نامهای گروه یا نامهای کاربری شما حاوی برخی حروف و اعداد غیرحرفی هستند، هنگام استفاده از توابع زیر، باید از کدگذاری URL HTML برای کاراکترهای خاص استفاده کنید.
برخی از کاراکترهای خاص بدون کدگذاری URL HTML مجاز هستند، مانند زیرخط، پرانتز و علامت تعجب. _ ( ) ! بسیاری از کاراکترهای دیگر باید کدگذاری شوند.
به عنوان مثال، تابع ISMEMBEROF(“USERS+”) باید به صورت ISMEMBEROF(“USERS%2B”) نوشته شود، زیرا ‘%2B’ کدگذاری URL HTML برای نماد ‘+’ است.
فقط برای جاسازی گردشهای کاری در Tableau Cloud و Tableau Server
در میان توابع کاربر، زیرمجموعهای از توابع ویژگی کاربر را میتوان با برنامههای متصل به Tableau در Tableau Cloud یا برنامههای متصل به Tableau در Tableau Server 2025.1 و بالاتر استفاده کرد.
توابع ویژگی کاربر (USERATTRIBUTE و USERATTRIBUTEINCLUDES) به Tableau اجازه میدهند تا ویژگیهای کاربر را در زمان اجرا به عنوان بخشی از گردش کار احراز هویت دریافت کند. هنگامی که ویژگیهای کاربر از JSON Web Tokens (JWTs) ارسال میشوند، محتوای جاسازی شده نوشته شده با این توابع میتواند دادههای نمایش داده شده به کاربران را کنترل و سفارشی کند.
embedding workflows
نکات:
- API Tableau Embedding v3 را بررسی کنید (لینک در پنجره جدید باز میشود) برای مشکلات و محدودیتهای شناخته شدهای که ممکن است بر گردش کار شما تأثیر بگذارند، کمک بگیرید.
- توابع ویژگی کاربر را میتوان در محتوای نوشته شده در Tableau Desktop، Tableau Cloud یا Tableau Server گنجاند.
- برای کار کردن ویژگی کاربر:
- ۱)در Tableau Cloud، باید تنظیمات Control User Access in Authentication Workflows را فعال کنید، ۲) برنامه متصل را با مقادیر ادعایی ویژگیهای کاربر در JWT پیکربندی کنید، و ۳) نویسنده محتوا باید یک تابع ویژگی کاربر ایجاد کند.
- )در Tableau Server، باید قابلیت ویژگی کاربر را از طریق متد Update Embedding Settings for a Site با استفاده از Tableau REST API فعال کنید و به صورت اختیاری گزینه Features.VizDataServiceClientEnableTSM را فعال کنید، ۲) برنامه متصل را با مقادیر ادعایی ویژگی کاربر در JWT پیکربندی کنید، و ۳) نویسنده محتوا باید یک تابع ویژگی کاربر ایجاد کند.
- پیشنمایش محتوا با این توابع هنگام نوشتن در Tableau Desktop، Tableau Cloud یا Tableau Server در دسترس نیست. توابع ویژگی کاربر مقادیر NULL یا FALSE را برمیگردانند. برای اطمینان از عملکرد توابع ویژگی کاربر مطابق انتظار، توصیه میکنیم پس از جاسازی در برنامه خارجی خود، محتوا را بررسی کنید.
- توابع ویژگی کاربر را نمیتوان در گردشهای کاری غیر جاسازیشده، با پروتکلهای OIDC یا SAML یا گردشهای کاری که به Tableau Bridge متکی هستند، استفاده کرد.
توابع User (کاربر) موجود در Tableau
FULLNAME( )
Syntax | FULLNAME( ) |
Output | String |
Definition | نام کامل کاربر فعلی را برمیگرداند. |
Example |
FULLNAME( ) این نام کامل کاربر وارد شده، مانند “Hamlin Myrer” را برمیگرداند. [Manager] = FULLNAME( ) اگر مدیر “Hamlin Myrer” وارد سیستم شده باشد، این مثال فقط در صورتی مقدار TRUE را برمیگرداند که فیلد Manager در view شامل “Hamlin Myrer” باشد. |
Notes | این تابع موارد زیر را بررسی میکند:
فیلترهای کاربر هنگامی که از یک فیلد محاسباتی مانند [فیلد نام کاربری] = FULLNAME() به عنوان فیلتر استفاده میشود، میتوان از آن برای ایجاد یک فیلتر کاربر استفاده کرد که فقط دادههایی را نشان میدهد که مربوط به شخصی است که به سرور وارد شده است. |
ISFULLNAME
Syntax | ISFULLNAME("User Full Name") |
Output | Boolean |
Definition | اگر نام کامل کاربر فعلی با نام کامل مشخص شده مطابقت داشته باشد، مقدار TRUE و در غیر این صورت مقدار FALSE را برمیگرداند. |
Example |
ISFULLNAME("Hamlin Myrer") |
Notes | آرگومان <“نام کامل کاربر”> باید یک رشتهی تحتاللفظی باشد، نه یک فیلد.
این تابع موارد زیر را بررسی میکند:
|
ISMEMBEROF
Syntax | ISMEMBEROF("Group Name") |
Output | Boolean or null |
Definition | اگر شخصی که در حال حاضر از Tableau استفاده میکند عضو گروهی باشد که با رشته داده شده مطابقت دارد، مقدار TRUE را برمیگرداند، اگر عضو نباشد مقدار FALSE و اگر وارد سیستم نشده باشد مقدار NULL را برمیگرداند. |
Example |
ISMEMBEROF('Superstars') ISMEMBEROF('domain.lan\Sales') |
Notes | آرگومان <“نام کامل گروه”> باید یک رشتهی تحتاللفظی باشد، نه یک فیلد.
اگر کاربر در Tableau Cloud یا Tableau Server وارد شده باشد، عضویت گروه توسط گروههای Tableau تعیین میشود. اگر رشتهی داده شده “همهی کاربران” باشد، تابع مقدار TRUE را برمیگرداند. تابع ISMEMBEROF() همچنین دامنههای Active Directory را میپذیرد. دامنهی Active Directory باید در محاسبه با نام گروه اعلام شود. اگر تغییری در عضویت گروه یک کاربر ایجاد شود، تغییر در دادههایی که بر اساس عضویت گروه هستند، در یک workbook یا view با یک session جدید منعکس میشوند. session موجود، دادههای قدیمی را منعکس میکند. |
ISUSERNAME
Syntax | ISUSERNAME("username") |
Output | Boolean |
Definition | اگر نام کاربری کاربر فعلی با نام کاربری مشخص شده مطابقت داشته باشد، مقدار TRUE و در غیر این صورت مقدار FALSE را برمیگرداند. |
Example |
ISUSERNAME("hmyrer") |
Notes | آرگومان <“username”> باید یک رشتهی تحتاللفظی باشد، نه یک فیلد.
این تابع موارد زیر را بررسی میکند:
|
USERDOMAIN( )
Syntax | USERDOMAIN( ) |
Output | String |
Definition | دامنه مربوط به کاربر فعلی را برمیگرداند. |
Notes | این تابع موارد زیر را بررسی میکند:
|
USERNAME( )
Syntax | USERNAME( ) |
Output | String |
Definition | نام کاربری کاربر فعلی را برمیگرداند. |
Example |
USERNAME( ) این، نام کاربری کاربر وارد شده، مانند “hmyrer” را برمیگرداند. [Manager] = USERNAME( ) اگر مدیر “hmyrer” وارد سیستم شده باشد، این مثال فقط در صورتی TRUE را برمیگرداند که فیلد Manager در view شامل “hmyrer” باشد. |
Notes | این تابع موارد زیر را بررسی میکند:
فیلترهای کاربر هنگامی که از یک فیلد محاسباتی مانند [فیلد نام کاربری] = USERNAME() به عنوان فیلتر استفاده میشود، میتوان از آن برای ایجاد یک فیلتر کاربر استفاده کرد که فقط دادههایی را نشان میدهد که مربوط به شخصی است که به سرور وارد شده است. |
USERATTRIBUTE
توجه: قبل از استفاده از این تابع، به بخش «جاسازی گردشهای کاری فقط در Tableau Cloud و Tableau Server» مراجعه کنید. برای اطلاعات بیشتر، به بخش «Authentication and Embedded Views» در Embedding API نسخه ۳ مراجعه کنید.
Syntax | USERATTRIBUTE('attribute_name') |
Output | String or null |
Definition | اگر <‘attribute_name’> بخشی از توکن وب JSON (JWT) ارسال شده به Tableau باشد، محاسبه اولین مقدار <‘attribute_name’> را برمیگرداند.
اگر <‘attribute_name’> وجود نداشته باشد، مقدار null را برمیگرداند. |
Example | فرض کنید “Region” ویژگی کاربر است که در JWT گنجانده شده و به Tableau منتقل شده است (با استفاده از برنامه متصل که قبلاً توسط مدیر سایت شما پیکربندی شده است).
به عنوان نویسنده کتاب کار، میتوانید تجسم خود را برای فیلتر کردن دادهها بر اساس یک منطقه مشخص تنظیم کنید. در آن فیلتر، میتوانید محاسبه زیر را ارجاع دهید. [Region] = USERATTRIBUTE(“Region”) هنگامی که کاربر ۲ از منطقه غرب، تجسم تعبیه شده را مشاهده میکند، Tableau فقط دادههای مناسب برای منطقه غرب را نشان میدهد. |
Notes | اگر انتظار دارید <‘attribute_name’> چندین مقدار را برگرداند، میتوانید از تابع USERATTRIBUTEINCLUDES استفاده کنید. |
USERATTRIBUTEINCLUDES
توجه: قبل از استفاده از این تابع، به بخش «جاسازی گردشهای کاری فقط در Tableau Cloud و Tableau Server» مراجعه کنید. برای اطلاعات بیشتر، به بخش «Authentication and Embedded Views» در Embedding API نسخه ۳ مراجعه کنید.
Syntax | USERATTRIBUTEINCLUDES('attribute_name', 'expected_value') |
Output | Boolean |
Definition | اگر هر دو مورد زیر درست باشند، مقدار TRUE را برمیگرداند:
<‘attribute_name’> بخشی از توکن وب JSON (JWT) ارسال شده به Tableau است. یکی از مقادیر <‘attribute_name’> برابر با <‘expected_value’> باشد. در غیر این صورت مقدار FALSE را برمیگرداند. |
Example | فرض کنید “Region” ویژگی کاربر است که در JWT گنجانده شده و به Tableau منتقل شده است (با استفاده از برنامه متصل که قبلاً توسط مدیر سایت شما پیکربندی شده است).
به عنوان نویسنده کتاب کار، میتوانید تجسم خود را برای فیلتر کردن دادهها بر اساس یک منطقه مشخص تنظیم کنید. در آن فیلتر، میتوانید محاسبه زیر را ارجاع دهید. USERATTRIBUTEINCLUDES(‘Region’, [Region]) اگر کاربر ۲ از منطقه غرب به تجسم تعبیه شده دسترسی پیدا کند، Tableau بررسی میکند که آیا ویژگی کاربر منطقه با یکی از مقادیر فیلد [Region] مطابقت دارد یا خیر. وقتی درست باشد، تجسم دادههای مناسب را نشان میدهد. وقتی کاربر ۳ از منطقه شمال به همان تجسم دسترسی پیدا میکند، نمیتواند هیچ دادهای را ببیند زیرا هیچ تطابقی با مقادیر فیلد [Region] وجود ندارد. |
ایجاد یک User Calculation
محاسبات کاربری user calculation مستقیماً با کاربران و گروههایی که در Tableau Server یا Tableau Cloud تنظیم کردهاید، کار میکنند. میتوانید محاسبات کاربری ایجاد کنید تا به عنوان فیلتر استفاده شوند تا کاربران فقط دادههایی را که مربوط به خودشان است، ببینند.
به عنوان مثال، اگر نقشهای مشابه زیر دارید که دادههای فروش ۴۸ ایالت آمریکا را نشان میدهد، میتوانید یک محاسبه کاربری ایجاد کنید تا فقط بخشهایی از نقشه را که مربوط به هر کاربر است، مانند دادههای مربوط به یک مدیر منطقهای در مقابل یک مدیر ملی، نشان دهد. (یک مدیر ملی باید بتواند دادههای کل کشور را ببیند، در حالی که یک مدیر منطقهای فقط باید بتواند دادههای منطقهای را که مدیریت میکند، ببیند).
وقتی مدیر ملی وارد سیستم میشود، تصویرسازی زیر را میبیند:
وقتی مدیر منطقهای غرب وارد سیستم میشود، فقط فروش منطقه خود را میبیند:
برای ایجاد یک تابع کاربری که عملکردی مشابه این مثال داشته باشد، مراحل زیر را دنبال کنید.
قبل از شروع
برای دنبال کردن این مثال، باید به Tableau Server یا Tableau Cloud دسترسی داشته باشید. همچنین باید مدیر سرور یا سایت باشید.
مرحله 1: ایجاد کاربران و گروهها
- وارد Tableau Server یا Tableau Cloud شوید.
- در Tableau Server یا Tableau Cloud، کاربران زیر را اضافه کنید:
- Sadie Pawthorne
- Chuck Magee
- Fred Suzuki
- Roxanne Rodriguez
- یک گروه جدید به نام مدیران ملی ایجاد کنید.
- خودتان را به گروه مدیران ملی اضافه کنید.
مرحله 2: ایجاد مصورسازی
- Tableau Desktop را باز کنید و به منبع داده Sample-Superstore که همراه Tableau ارائه میشود، متصل شوید.
- در گوشه پایین سمت چپ فضای کاری، روی تب Data Source کلیک کنید.
- در صفحه Data Source، از پنل Connections در سمت چپ، صفحه People را به قسمت join بکشید.
- روی آیکون join کلیک کنید و Left را انتخاب کنید.
- به یک برگه کاری جدید بروید.
- در پنجره داده، زیر بخش ابعاد، روی وضعیت (State) دوبار کلیک کنید.
- یک نمای نقشه ایجاد میشود.
- از پنجره داده، زیر بخش اقدامات (Measures)، گزینه فروش (Sales) را روی کارت نشانگرها (Marks) به رنگ (Color) بکشید.
- در قفسه ستونها (Columns)، فیلد طول جغرافیایی (Longitude) را انتخاب کنید و برای کپی کردن آن، کلید کنترل (Control) (در مک کلید فرمان (Command)) را روی صفحه کلید خود نگه دارید. نسخه کپی را به سمت راست نسخه اصلی در قفسه ستونها (Columns) بکشید.
- در کارت Marks، روی زبانه دوم (پایین) طول جغرافیایی کلیک کنید.
- از پنجره Data، گزینه Region را به Color در کارت Marks بکشید.
- نمای نقشه در سمت راست با رنگهای جدید بهروزرسانی میشود.
- در کارت Marks، روی منوی کشویی نوع علامت کلیک کنید و Map را انتخاب کنید.
- در کارت Marks، روی Color کلیک کنید و در قسمت Opacity، اسلایدر را روی ۵۰٪ تنظیم کنید.
- حالا در کارت Marks، روی اولین برگه Longitude کلیک کنید.
- در کارت Marks، روی Color > Edit Colors کلیک کنید و سپس از فهرست کشویی پالت رنگ، Gray را انتخاب کنید. نمای نقشه در سمت چپ بهروزرسانی میشود.
- در قفسه ستونها، روی فیلد طول جغرافیایی در سمت راست کلیک راست کرده و گزینه محور دوگانه (Dual Axis) را انتخاب کنید.
نقشه به شکل زیر است:
مرحله 3: ایجاد User Calculation
- Analysis > Create Calculated Field را انتخاب کنید.
- در calculation editor که باز میشود، موارد زیر را انجام دهید:
- نام فیلد محاسبهشده را فیلتر کاربر بگذارید.
- فرمول زیر را وارد کنید:
[Regional Manager] = USERNAME() OR ISMEMBEROF("National Managers")
این محاسبه بررسی میکند که آیا یک شخص در فیلد منطقه (افراد) یا گروه مدیران ملی قرار دارد یا خیر. در این صورت، مقدار درست را برمیگرداند.
- پس از اتمام، روی OK کلیک کنید.
محاسبه کاربر جدید در زیر ابعاد در پنجره دادهها ظاهر میشود. درست مانند سایر فیلدهایتان، میتوانید از آن در یک یا چند تجسم استفاده کنید.
مرحله 4: User Calculation را به قفسه فیلترها اضافه کنید
- از پنجره داده، در زیر ابعاد، فیلتر کاربر را به قفسه فیلترها بکشید.
- در کادر محاورهای فیلتر که باز میشود، گزینه True را انتخاب کنید و سپس روی OK کلیک کنید.
توجه: اگر به Tableau Server یا Tableau Cloud وارد نشدهاید، گزینه True قابل مشاهده نیست. در Tableau Desktop، برای انتخاب آن به Tableau Server یا Tableau Cloud وارد شوید. برای اطلاعات بیشتر به Sign in to Tableau Server یا Tableau Cloud (لینک در پنجره جدید باز میشود) مراجعه کنید.
مرحله ۵: محاسبه را آزمایش کنید
- در Tableau Desktop، در گوشه پایین سمت راست فضای کاری، روی منوی کشویی Filter as User کلیک کنید و کاربر را به Sadie Pawthorne تغییر دهید.
- نقشه بهروزرسانی میشود تا فقط منطقه غرب ایالات متحده را نشان دهد زیرا Sadie در برگه People به منطقه غرب اختصاص داده شده است.
- دوباره منوی کشویی Filter as User را انتخاب کنید و کاربر را به Roxanne Rodriguez تغییر دهید.
- نقشه بهروزرسانی میشود تا فقط منطقه مرکزی ایالات متحده را نشان دهد زیرا روکسان در برگه افراد به منطقه مرکزی اختصاص داده شده است.
- دوباره منوی کشویی فیلتر به عنوان کاربر را انتخاب کنید و کاربر را به چاک مگی تغییر دهید.
- نقشه بهروزرسانی میشود تا فقط منطقه شرقی ایالات متحده را نشان دهد زیرا چاک در برگه افراد به منطقه شرقی اختصاص داده شده است.
- دوباره منوی کشویی فیلتر به عنوان کاربر را انتخاب کنید و کاربر را به فرد سوزوکی تغییر دهید.
- نقشه بهروزرسانی میشود تا فقط منطقه جنوبی ایالات متحده را نشان دهد زیرا فرد در برگه افراد به منطقه جنوبی اختصاص داده شده است.
- یک بار دیگر منوی کشویی فیلتر به عنوان کاربر را انتخاب کنید و کاربر را به خودتان تغییر دهید.
- نقشه بهروزرسانی میشود تا همه دادهها را نشان دهد زیرا شما عضوی از گروه مدیران ملی در سرور هستید.
این رفتار حتی زمانی که شما نما را در Tableau Server یا Tableau Cloud منتشر میکنید نیز ادامه دارد. کاربرانی که در گروه National Managers یا در برگه People در منبع داده Sample Superstore فهرست نشدهاند، فقط یک تصویرسازی خالی مشاهده میکنند.
برای خرید لایسنس نرم افزار Tableau ، میتوانید از خدمات ما استفاده نموده و درخواست خود را از طریق فرم زیر ثبت نمایید.
بدون دیدگاه