เมื่อเลือกลำดับค่า คุณสามารถโฟกัสการคำนวณ Essbase ในกริด Smart View ที่ใช้งานอยู่ ซึ่งจะจำกัดขอบเขตเฉพาะเสี้ยวข้อมูลในลูกบาศก์ของพื้นที่เก็บข้อมูลบล็อคของคุณ
ส่วนต่อไปนี้จะอธิบายการคำนวณลำดับค่า:
โปรดดูรูปแบบคำสั่งสำหรับการใช้งาน @GRIDTUPLES ในสคริปต์การคำนวณที่ FIX…ENDFIX
เมื่อเลือกลำดับค่า คุณสามารถโฟกัสการคำนวณ Essbase ในกริด Smart View ที่ใช้งานอยู่ ซึ่งจะจำกัดขอบเขตเฉพาะเสี้ยวข้อมูลในลูกบาศก์ของพื้นที่เก็บข้อมูลบล็อคของคุณ
การเลือกลำดับค่าจะช่วยคุณออปติไมซ์การคำนวณกริดแบบอะซิมเมตริกข้ามไดเมนชัน ซึ่งเป็นการหลีกเลี่ยงการคำนวณมากเกินไป
ลำดับค่าการคำนวณของ Essbase จะแตกต่างจากลำดับค่าที่ใช้ในการสืบค้น MDX ประสิทธิภาพของการคำนวณและขนาดของลูกบาศก์จะยังคงเกิดขึ้นจากจำนวนของบล็อคในลูกบาศก์เป็นหลัก (ระบุขนาดบล็อคที่เฉพาะเจาะจง) ด้วยเหตุผลนี้ จะมีการระบุลำดับค่าการคำนวณเฉพาะสำหรับค่าผสมสมาชิกสปาร์ซ นอกจากนี้ เพื่อความง่ายต่อการเขียนสคริปต์การคำนวณ คุณสามารถรวมสมาชิกหลายรายจากไดเมนชันสปาร์ซเดียวในการระบุลำดับค่าการคำนวณได้ ตัวอย่างเช่น หากคุณระบุ ("New York", "California", "Actual", "Cola") เป็นลำดับค่าการคำนวณ คุณจะสามารถคำนวณอินเตอร์เซกชันของเซลล์ต่อไปนี้
"New York"->"Actual"->"Cola" "California"->"Actual"->"Cola"
พิจารณาถึงกริดแบบซิมเมตริกต่อไปนี้ เป็นแบบซิมเมตริกเนื่องจากแต่ละผลิตภัณฑ์ที่ตลาดและสถานการณ์เดียวกัน (Actual) ที่แสดงอยู่ในกริด
กริดต่อไปนี้เป็นแบบอะซิมเมตริก เนื่องจากผลิตภัณฑ์ Diet Cola มีตลาดในกริดน้อยกว่าที่ผลิตภัณฑ์ Cola มี
ขอบเขตการคำนวณดีฟอลต์ เมื่อมีมากกว่าหนึ่งไดเมนชันอยู่ในคำสั่ง FIX หรือ Point of View (POV) ของกริด Smart View คือการคำนวณข้ามผลิตภัณฑ์ (ค่าผสมที่เป็นไปได้ทั้งหมด) ของสมาชิกใน FIX หรือกริด อีกนัยหนึ่งคือ การคำนวณตาม POV ที่ค่าผสมของผลิตภัณฑ์และตลาดนำมาจากการที่กริดคำนวณค่าผสมแถว-สมาชิกทั้งหมดเหล่านี้:
Cola->"New York" Cola->"Massachusetts" Cola->"Florida" Cola->"Connecticut" Cola->"New Hampshire" "Diet Cola"->"New York" "Diet Cola"->"Massachusetts" "Diet Cola"->"Florida" "Diet Cola"->"Connecticut" "Diet Cola"->"New Hampshire"
นี่อาจเป็นกิจกรรมการคำนวณมากกว่าที่คุณต้องการ หากคุณต้องการคำนวณเฉพาะค่าผสมที่แสดงบนกริด คุณสามารถระบุลำดับค่าที่จะคำนวณ และจำกัดการคำนวณเป็นเสี้ยวข้อมูลที่เล็กกว่าได้ ลำดับค่าที่คำนวณสามารถลดเวลาการคำนวณและขนาดลูกบาศก์ลงได้ด้วย
Cola->"New York" Cola->"Massachusetts" Cola->"Florida" Cola->"Connecticut" Cola->"New Hampshire" "Diet Cola"->"New York" "Diet Cola"->"Florida"
ลำดับค่าของการคำนวณเป็นวิธีในการแสดงเสี้ยวข้อมูลของสมาชิก จากไดเมนชันสปาร์ซสองรายการขึ้นไป ที่จะใช้ในการคำนวณพื้นที่เก็บข้อมูลบล็อคของ Essbase
ตัวอย่างลำดับค่าการคำนวณที่ถูกต้อง มีดังนี้
("Diet Cola", "New York")
("Diet Cola", "Cola", Florida)
(Cola, "New Hampshire")
หากคุณเขียนเอ็กซ์เพรสชัน MDX คุณอาจต้องคำนึงถึงข้อจำกัดของลำดับค่าเหล่านี้ซึ่งใช้กับ MDX
อย่างไรก็ตาม เมื่อคุณเลือกลำดับค่าในสคริปต์การคำนวณ ข้อกำหนดเหล่านี้จะได้รับการผ่อนปรนเพื่อความสะดวก คุณสามารถเขียนเอ็กซ์เพรสชันลำดับค่าได้อย่างอิสระ และลำดับค่าอาจอธิบายลิสต์สมาชิก เช่น ลำดับค่าต่อไปนี้: (@Children(East), Cola)
วิธีง่ายๆ ในการเลือกลำดับค่าคือการแทรกโดยตรงในสคริปต์การคำนวณเป็นลิสต์ภายในคำสั่ง FIX
โปรดทราบว่ารูปแบบคำสั่ง FIX จะเป็นดังนี้
FIX (fixMbrs) COMMANDS ; ENDFIX
ในคำสั่ง FIX ด้านล่าง มีการระบุลำดับค่าสองรายการก่อนบล็อคคำสั่งจะเริ่ม ลำดับค่าจะอยู่ในวงเล็บปีกกา { } ที่ใช้คั่น ชุด ซึ่งเป็นการรวมลำดับค่าหลายรายการเข้าด้วยกัน
FIX({ (@Children(East), Cola), ("New York", Florida, "Diet Cola") }) Sales (Sales = Sales + 10;); ENDFIX
อีกวิธีหนึ่งในการเลือกลำดับค่าคือแบบคอนเท็กซ์ตามสมาชิกใดก็ตามที่อยู่ใน POV กริด Smart View ขณะรันไทม์ของการคำนวณ คุณสามารถทำเช่นนี้ได้โดยการระบุฟังก์ชัน @GRIDTUPLES เป็นอาร์กิวเมนต์ให้กับ FIX ในสคริปต์การคำนวณ
FIX ({@GRIDTUPLES(Product, Market)}) Sales (Sales = Sales + 10;); ENDFIX
หากคุณรันสคริปต์การคำนวณนี้จาก Smart View กับกริดด้านล่าง ระบบจะคำนวณเฉพาะชุดค่าผสมของผลิตภัณฑ์และตลาดที่แสดงอยู่เท่านั้น ตัวอย่างเช่น ระบบจะไม่คำนวณ "Diet Cola"->Massachusetts เนื่องจากไม่ได้เลือกให้แสดงโดยตรงในกริด โปรดทราบว่าระบบจะคำนวณสถานการณ์ทั้งหมด (ไดเมนชันแบบสปาร์ซที่สามในลูกบาศก์ตัวอย่าง) แม้ว่าจะมีเฉพาะค่า "Actual" แสดงอยู่บนกริดก็ตาม นั่นเป็นเพราะไดเมนชันสถานการณ์ไม่ได้เป็นส่วนหนึ่งของคำสั่ง GRIDTUPLES ในสคริปต์การคำนวณ
การเลือกลำดับค่า ไม่ว่าทำโดยใช้ลิสต์ลำดับค่าแบบตั้งค่าโดยตรงหรือใช้ฟังก์ชัน @GRIDTUPLES ก็จะใช้ได้เฉพาะในคอนเท็กซ์ของคำสั่งการคำนวณ FIX…ENDFIX เท่านั้น รูปแบบคำสั่ง FIX จะขยายเพื่อเปิดใช้งานการเลือกลำดับค่า:
FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs) COMMANDS ; ENDFIX
เมื่อใช้กริด Smart View และคำสั่ง FIX ของสคริปต์การคำนวณ Essbase คุณสามารถคำนวณลำดับค่าของสมาชิกที่เลือกตาม Point of View (POV) ของกริด หรือคุณสามารถพิมพ์ค่าผสมของลำดับค่าอย่างชัดเจนในคำสั่ง FIX ของคุณ โดยย้ายการอ้างอิงกับกริด Smart View หนึ่งออกเพื่อกำหนดขอบเขตการคำนวณ
การคำนวณลำดับค่าที่เลือกจะช่วยให้คุณทำงานกับพื้นที่แบบอะซิมเมตริกทั้งในสคริปต์การคำนวณและกริด Smart View
พิจารณาถึงตัวอย่างต่อไปนี้
ในการลองใช้ตัวอย่าง ให้ดาวน์โหลดเทมเพลทเวิร์กบุค CalcTuple_Tuple.xlsx
จากส่วน ทางเทคนิค > การคำนวณ
ของโฟลเดอร์ แกลเลอรี่ ในพื้นที่ ไฟล์ ของเว็บอินเตอร์เฟซ Essbase อ่านคำแนะนำจากเวิร์กชีท README ในเวิร์กบุค
กำลังสาธิตลักษณะการคำนวณพื้นที่เก็บข้อมูลบล็อค Essbase ดีฟอลต์ที่เกิดขึ้นเมื่อคุณไม่ได้เลือกลำดับค่า สคริปต์การคำนวณต่อไปนี้จะคำนวณผลิตภัณฑ์ทั้งหมดของสมาชิกไดเมนชันผลิตภัณฑ์และตลาดจากกริด Smart View
ด้วยความช่วยเหลือจากตัวแปรแทนแบบรันไทม์ (RTSV) สองตัวที่กำหนดไว้ในบล็อค SET RUNTIMESUBVARS การคำนวณจะถูกจำกัดอยู่ที่มุมมองผลิตภัณฑ์และตลาดใดๆ ก็ตามที่อยู่ในกริดเมื่อรันการคำนวณจาก Smart View
SET RUNTIMESUBVARS { ProductGridMembers = POV <RTSV_HINT><svLaunch> <description>All Product's members on the grid</description> <type>member</type> <dimension>Product</dimension><choice>multiple</choice> </svLaunch></RTSV_HINT>; MarketGridMembers = POV <RTSV_HINT><svLaunch> <description>All Market's members on the grid</description> <type>member</type> <dimension>Market</dimension><choice>multiple</choice> </svLaunch></RTSV_HINT>; }; FIX ( &ProductGridMembers, &MarketGridMembers ) Marketing( Marketing = Marketing +1; ); ENDFIX
เมื่อใช้ฟังก์ชัน @GRIDTUPLES เพื่อเลือกลำดับค่าของไดเมนชันผลิตภัณฑ์และตลาด สคริปต์การคำนวณพื้นที่เก็บข้อมูลบล็อค Essbase นี้จะคำนวณลำดับค่าสำหรับไดเมนทั้งสองเท่านั้น โดยจำกัดขอบเขตเฉพาะสมาชิกที่แสดงอยู่ในกริด Smart View ณ เวลาที่รันการคำนวณจาก Smart View
FIX ( {@GRIDTUPLES(Product, Market)} ) Marketing( Marketing = Marketing + 1; ); ENDFIX
เมื่อแก้ไขเฉพาะไดเมนชันสปาร์ซที่กำหนดชื่อในลำดับค่า การคำนวณจะครอบคลุมจำนวนบล็อคน้อยกว่าการคำนวณดีฟอลต์มาก อย่างไรก็ตาม สมาชิกทั้งหมดจากไดเมนชันที่ไม่ได้กล่าวถึงในการแก้ไข (ปี, สถานการณ์) จะได้รับการคำนวณโดยสคริปต์การคำนวณนี้
เมื่อใช้ฟังก์ชัน @GRIDTUPLES และตัวแปรแทนแบบรันไทม์ สคริปต์การคำนวณพื้นที่เก็บข้อมูลบล็อค Essbase นี้จะคำนวณเฉพาะลำดับค่าที่เลือกจากกริด ตามการเลือกไดเมนชันสปาร์ซในพรอมต์ RTSV
ตัวแปรแทนแบบรันไทม์ &DimSelections ซึ่งได้รับการกำหนดในบล็อค SET RUNTIMESUBVARS จะจำกัดขอบเขตการคำนวณเป็นเฉพาะไดเมนชันสปาร์ซของลูกบาศก์เท่านั้น ไม่รวมสถานการณ์ ฟังก์ชัน @GRIDTUPLES ที่ใช้ในคำสั่ง FIX จะเรียกตัวแปรนี้ โดยจำกัดจำนวนอินเตอร์เซกชันที่ถูกคำนวณ
SET RUNTIMESUBVARS { DimSelections = "Version", "Site", "Entity", "Product", "Market" <RTSV_HINT><svLaunch> <description>List two or more sparse dimensions used for forming calculation tuples:</description> <type>string</type> </svLaunch></RTSV_HINT>; }; FIX ( {@GRIDTUPLES(&DimSelections)} ) Marketing( Marketing = Marketing + 1; ); ENDFIX
การคำนวณมีจำนวนบล็อคที่น้อยกว่าตัวอย่างก่อนหน้า เนื่องจากในกรณีนี้ การกำหนดลำดับค่าขยายไปยังไดเมนชันสปาร์ซเพิ่มเติมนอกเหนือจาก Product->Market
ในการลองใช้ตัวอย่าง ให้ดาวน์โหลดเทมเพลทเวิร์กบุค CalcTuple_Tuple.xlsx
จากส่วน ทางเทคนิค > การคำนวณ ของโฟลเดอร์ แกลเลอรี่ ในพื้นที่ ไฟล์ ของเว็บอินเตอร์เฟซ Essbase อ่านคำแนะนำจากเวิร์กชีท README ในเวิร์กบุค