คุณสามารถสร้างฟิลเตอร์แบบไดนามิคโดยใช้ข้อมูลที่มาภายนอกเพื่อลดจำนวนการกำหนดฟิลเตอร์ที่จำเป็น
@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
ข้างต้นจะแสดงค่าคอลัมน์ทั้งหมดที่ตรงกันสำหรับแต่ละกลุ่ม
ใช้เวิร์กโฟลว์ทั่วไปต่อไปนี้ในการสร้างฟิลเตอร์แบบไดนามิค
เวิร์กโฟลว์ฟิลเตอร์แบบไดนามิคนี้จะถือว่าคุณมีลูกบาศก์ และกลุ่มและผู้ใช้ที่จัดเตรียมอยู่แล้ว
$loginuser
ตัวแปร $logingroup
และเมทธอด @datasourcelookup
ตามที่จำเป็นฟิลเตอร์แบบไดนามิคต่อไปนี้จะทำงานร่วมกับลูกบาศก์ชื่อ Efficient.UserFilters ซึ่งมีอยู่ในแกลเลอรี่้เป็นเทมเพลทตัวอย่าง
ในการเรียนรู้วิธีสร้างและใช้ฟิลเตอร์แบบไดนามิคนี้ ให้ดาวน์โหลดเทมเพลทเวิร์กบุค Efficient_Filters.xlsx
จากส่วนด้านเทคนิคของแกลเลอรี่ และทำตามคำแนะนำ README ในเวิร์กบุค มีแกลเลอรี่อยู่ในส่วน ไฟล์ ของเว็บอินเตอร์เฟซ Oracle Analytics Cloud – Essbase