สร้างฟิลเตอร์แบบไดนามิค Efficient

คุณสามารถสร้างฟิลเตอร์แบบไดนามิคโดยใช้ข้อมูลที่มาภายนอกเพื่อลดจำนวนการกำหนดฟิลเตอร์ที่จำเป็น

แทนที่จะจัดการชุดฟิลเตอร์การเข้าใช้ข้อมูลที่ฮาร์ดโค้ดไว้สำหรับผู้ใช้ต่างๆ คุณสามารถฟิลเตอร์การเข้าใช้เซลล์ลูกบาศก์จากข้อมูลที่มาภายนอกได้ตามชื่อสมาชิกและชื่อผู้ใช้
คุณดำเนินการโดยใช้รูปแบบคำสั่งการกำหนดฟิลเตอร์แบบไดนามิค รวมทั้งวิธี @datasourceLookup และตัวแปร $LoginUser และ $LoginGroup ข้อมูลที่มาภายนอกของคุณเป็นไฟล์ csv หรือตารางเชิงสัมพันธ์ สำหรับข้อมูลที่มาเชิงสัมพันธ์ คุณสามารถโหลดไฟล์ .csv ในตารางเชิงสัมพันธ์

รูปแบบคำสั่งฟิลเตอร์แบบไดนามิค

ใช้รูปแบบคำสั่งฟิลเตอร์แบบไดนามิคเพื่อสร้างฟิลเตอร์แบบยืดหยุ่นที่คุณสามารถกำหนดให้กับผู้ใช้และกลุ่มมากกว่าหนึ่งรายการ

แถวฟิลเตอร์สามารถมีอีลิเมนต์ต่อไปนี้เป็นส่วนหนึ่งของการกำหนด นอกเหนือจากเอ็กซ์เพรสชันของสมาชิก

$loginuser

ตัวแปรนี้จะจัดเก็บค่าของผู้ใช้ที่ล็อกอินในปัจจุบันขณะรันไทม์ สามารถใช้ร่วมกับวิธี @datasourcelookup

$logingroup

ตัวแปรนี้จะจัดเก็บค่าของกลุ่มทั้งหมดที่มีผู้ใช้ที่ล็อกอินอยู่ในปัจจุบัน โดยจะรวมทั้งกลุ่มทางตรงและทางอ้อม เมื่อใช้ร่วมกับเมทธอด @datasourcelookup ระบบจะค้นหาแต่ละกลุ่มแยกกันเทียบกับที่มาข้อมูล

@datasourcelookup

วิธีนี้จะดึงข้อมูลเรคคอร์ดจากที่มาข้อมูล

รูปแบบคำสั่ง

@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
พารามิเตอร์ คำอธิบาย
dataSourceName

ชื่อที่มาข้อมูลภายนอกที่กำหนดใน Essbase สำหรับที่มาข้อมูลระดับแอปพลิเคชัน ให้นำหน้าชื่อด้วยชื่อแอปพลิเคชันและเครื่องหมายจุด

columnName

ชื่อของคอลัมน์ที่มาข้อมูลเพื่อค้นหา columnValue ที่กำหนด

columnValue

ค่าที่จะค้นหาใน columnName

returnColumnName

ชื่อของคอลัมน์ที่มาข้อมูลที่แสดงลิสต์ค่า

คำอธิบาย

การเรียก @datasourcelookup เทียบเท่ากับการสืบค้น SQL ต่อไปนี้:

select returnColumnName from dataSourceName where columnName=columnValue

@datasourcelookup จะค้นหาที่มาข้อมูลที่กำหนดและค้นหาเรคคอร์ดที่  columnName มี columnValue ถ้าคุณระบุ columnValue เป็น $loginuser วิธีนี้จะค้นหาเรคคอร์ดที่ columnName มีชื่อของผู้ใช้ที่ล็อกอินปัจจุบัน

Essbase จะกำหนดแถวการกำหนดฟิลเตอร์โดยการรวมอีลิเมนต์ลิสต์เป็นสตริงที่คั่นด้วยคอมม่า ถ้าเรคคอร์ดใดมีอักขระพิเศษ การเว้นวรรค หรือมีเฉพาะตัวเลข เรคคอร์ดนั้นจะอยู่ในเครื่องหมายคำพูด

ตัวอย่าง

ล้อมรอบพารามิเตอร์ในเครื่องหมายคำพูด

การเรียกต่อไปนี้จะค้นหาที่มาข้อมูลร่วม และแสดงลิสต์ชื่อร้านค้าที่ Mary เป็นผู้จัดการร้าน

@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")

การเรียกต่อไปนี้จะค้นหาที่มาข้อมูลระดับแอปพลิเคชัน และแสดงลิสต์ชื่อร้านค้าที่ผู้ใช้ที่ล็อกอินปัจจุบันเป็นผู้จัดการร้าน

@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")

การเรียกต่อไปนี้จะค้นหาที่มาข้อมูลระดับแอปพลิเคชัน และแสดงลิสต์ชื่อร้านค้าที่แผนกร้านค้าตรงกับกลุ่มใดๆ ที่มีผู้ใช้ที่ล็อกอินอยู่

@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")

หากผู้ใช้ที่ล็อกอินอยู่ในกลุ่ม 3 กลุ่ม เมทธอด @datasourcelookup ข้างต้นจะแสดงค่าคอลัมน์ทั้งหมดที่ตรงกันสำหรับแต่ละกลุ่ม

เวิร์กโฟลว์สำหรับการสร้างฟิลเตอร์แบบไดนามิค

ใช้เวิร์กโฟลว์ทั่วไปต่อไปนี้ในการสร้างฟิลเตอร์แบบไดนามิค

เวิร์กโฟลว์ฟิลเตอร์แบบไดนามิคนี้จะถือว่าคุณมีลูกบาศก์ และกลุ่มและผู้ใช้ที่จัดเตรียมอยู่แล้ว

  1. ระบุที่มาของข้อมูลว่าเป็นไฟล์หรือที่มาเชิงสัมพันธ์
  2. กำหนดการเชื่อมต่อและที่มาข้อมูลใน Essbase แบบร่วมหรือในระดับแอปพลิเคชัน
  3. สร้างฟิลเตอร์ที่ระดับลูกบาศก์ โดยใช้ส่วน ฟิลเตอร์ ของเครื่องมือตรวจสอบฐานข้อมูล
  4. กำหนดแถวฟิลเตอร์สำหรับแต่ละฟิลเตอร์ โดยใช้รูปแบบคำสั่งของฟิลเตอร์แบบไดนามิคเพื่อใช้ตัวแปร $loginuser ตัวแปร $logingroup และเมทธอด @datasourcelookup ตามที่จำเป็น
  5. ระบุฟิลเตอร์ให้กับผู้ใช้หรือกลุ่ม
  6. หากคุณระบุฟิลเตอร์ให้กับกลุ่ม ให้ระบุกลุ่มให้กับแอปพลิเคชันที่จะฟิลเตอร์ โดยใช้ส่วน สิทธิ์ ของเครื่องมือตรวจสอบแอปพลิเคชัน

ตัวอย่างฟิลเตอร์แบบไดนามิค

ฟิลเตอร์แบบไดนามิคต่อไปนี้จะทำงานร่วมกับลูกบาศก์ชื่อ Efficient.UserFilters ซึ่งมีอยู่ในแกลเลอรี่้เป็นเทมเพลทตัวอย่าง


ฟิลเตอร์แบบไดนามิคที่มีแถว 3 แถวซึ่งให้สิทธิ์การเข้าใช้ metaread แก่ผู้ใช้ที่ล็อกอิน

ในการเรียนรู้วิธีสร้างและใช้ฟิลเตอร์แบบไดนามิคนี้ ให้ดาวน์โหลดเทมเพลทเวิร์กบุค Efficient_Filters.xlsx จากส่วนด้านเทคนิคของแกลเลอรี่ และทำตามคำแนะนำ README ในเวิร์กบุค มีแกลเลอรี่อยู่ในส่วน ไฟล์ ของเว็บอินเตอร์เฟซ Oracle Analytics Cloud – Essbase