คำนวณลำดับค่าที่เลือก

เมื่อเลือกลำดับค่า คุณสามารถโฟกัสการคำนวณ Essbase ในกริด Smart View ที่ใช้งานอยู่ ซึ่งจะจำกัดขอบเขตเฉพาะเสี้ยวข้อมูลในลูกบาศก์ของพื้นที่เก็บข้อมูลบล็อคของคุณ

ส่วนต่อไปนี้จะอธิบายการคำนวณลำดับค่า:

โปรดดูรูปแบบคำสั่งสำหรับการใช้งาน @GRIDTUPLES ในสคริปต์การคำนวณที่ FIX…ENDFIX

กรณีการใช้งานสำหรับการคำนวณลำดับค่า

เมื่อเลือกลำดับค่า คุณสามารถโฟกัสการคำนวณ Essbase ในกริด Smart View ที่ใช้งานอยู่ ซึ่งจะจำกัดขอบเขตเฉพาะเสี้ยวข้อมูลในลูกบาศก์ของพื้นที่เก็บข้อมูลบล็อคของคุณ

การเลือกลำดับค่าจะช่วยคุณออปติไมซ์การคำนวณกริดแบบอะซิมเมตริกข้ามไดเมนชัน ซึ่งเป็นการหลีกเลี่ยงการคำนวณมากเกินไป

ลำดับค่าการคำนวณของ Essbase จะแตกต่างจากลำดับค่าที่ใช้ในการสืบค้น MDX ประสิทธิภาพของการคำนวณและขนาดของลูกบาศก์จะยังคงเกิดขึ้นจากจำนวนของบล็อคในลูกบาศก์เป็นหลัก (ระบุขนาดบล็อคที่เฉพาะเจาะจง) ด้วยเหตุผลนี้ จะมีการระบุลำดับค่าการคำนวณเฉพาะสำหรับค่าผสมสมาชิกสปาร์ซ นอกจากนี้ เพื่อความง่ายต่อการเขียนสคริปต์การคำนวณ คุณสามารถรวมสมาชิกหลายรายจากไดเมนชันสปาร์ซเดียวในการระบุลำดับค่าการคำนวณได้ ตัวอย่างเช่น หากคุณระบุ ("New York", "California", "Actual", "Cola") เป็นลำดับค่าการคำนวณ คุณจะสามารถคำนวณอินเตอร์เซกชันของเซลล์ต่อไปนี้

"New York"->"Actual"->"Cola"
"California"->"Actual"->"Cola"

พิจารณาถึงกริดแบบซิมเมตริกต่อไปนี้ เป็นแบบซิมเมตริกเนื่องจากแต่ละผลิตภัณฑ์ที่ตลาดและสถานการณ์เดียวกัน (Actual) ที่แสดงอยู่ในกริด

กริดแบบซิมเมตริกที่มีค่า 'Actual, Jan' สำหรับห้าตลาดสำหรับ Cola และห้าตลาดเดียวกันสำหรับ Diet Cola

กริดต่อไปนี้เป็นแบบอะซิมเมตริก เนื่องจากผลิตภัณฑ์ Diet Cola มีตลาดในกริดน้อยกว่าที่ผลิตภัณฑ์ Cola มี

กริดแบบอะซิมเมตริกที่มีค่า 'Actual, Jan' สำหรับห้าตลาดสำหรับ Cola แต่มีเพียงสองตลาดสำหรับ Diet 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

  • สามารถรวมสมาชิกเพียงรายการเดียวสำหรับแต่ละไดเมนชันในลำดับค่า 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 ในสคริปต์การคำนวณ

กริดแบบอะซิมเมตริกที่มีค่า 'Actual, Jan' สำหรับห้าตลาดสำหรับ Cola แต่มีเพียงสองตลาดสำหรับ Diet Cola

การเลือกลำดับค่า ไม่ว่าทำโดยใช้ลิสต์ลำดับค่าแบบตั้งค่าโดยตรงหรือใช้ฟังก์ชัน @GRIDTUPLES ก็จะใช้ได้เฉพาะในคอนเท็กซ์ของคำสั่งการคำนวณ FIX…ENDFIX เท่านั้น รูปแบบคำสั่ง FIX จะขยายเพื่อเปิดใช้งานการเลือกลำดับค่า:

FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs)
COMMANDS ;
ENDFIX
  • tupleList - ชุดของลำดับค่าที่คั่นด้วยคอมมา
  • dimensionList - ไดเมนชันแบบสปาร์ซอย่างน้อยสองไดเมนชันที่มีการใช้สมาชิกจากกริด Smart View เพื่อกำหนดพื้นที่การคำนวณ (ในสคริปต์การคำนวณ คุณสามารถใช้ไดเมนชันแบบสปาร์ซเพื่อกำหนดลำดับค่าได้เท่านั้น)
  • fixMbrs - สมาชิกหรือลิสต์ของสมาชิก

ตัวอย่างการเลือกลำดับค่าไปยัง 'ลดขอบเขตการคำนวณ'

เมื่อใช้กริด Smart View และคำสั่ง FIX ของสคริปต์การคำนวณ Essbase คุณสามารถคำนวณลำดับค่าของสมาชิกที่เลือกตาม Point of View (POV) ของกริด หรือคุณสามารถพิมพ์ค่าผสมของลำดับค่าอย่างชัดเจนในคำสั่ง FIX ของคุณ โดยย้ายการอ้างอิงกับกริด Smart View หนึ่งออกเพื่อกำหนดขอบเขตการคำนวณ

การคำนวณลำดับค่าที่เลือกจะช่วยให้คุณทำงานกับพื้นที่แบบอะซิมเมตริกทั้งในสคริปต์การคำนวณและกริด Smart View

พิจารณาถึงตัวอย่างต่อไปนี้

  • ไม่มีการเลือกลำดับค่า - คำนวณแบบดีฟอลต์ ตาม Point of View (POV) ของกริด Smart View ในปัจจุบัน การคำนวณไม่ถูกจำกัดเฉพาะกับลำดับค่าที่เจาะจงใดๆ
  • การเลือกไดเมนชันสปาร์ซที่กำหนดชื่อ - คำนวณลำดับค่าจากไดเมนชันสปาร์ซสองรายการขึ้นไปที่กำหนดชื่อในสคริปต์การคำนวณ การคำนวณถูกจำกัดเฉพาะกับสมาชิกจากไดเมนชันลำดับค่าที่มีอยู่ในกริด 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 ในเวิร์กบุค