ติดตามการคำนวณ

ใช้การติดตามการคำนวณ Essbase เพื่อรับข้อมูลเชิงลึกเกี่ยวกับการประมวลผลสูตรของสมาชิก ช่วยให้คุณดีบักและปรับแต่งสคริปต์การคำนวณพื้นที่เก็บข้อมูลบล็อคของคุณได้ ใช้งาน CALCTRACE สำหรับการติดตามการคำนวณ Smart View ตามคอนเท็กซ์ หรือใช้คำสั่ง SET TRACE เพื่อเลือกจุดที่ตัดกันของข้อมูลที่จะติดตาม

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

การติดตามการคำนวณไม่ได้เปลี่ยนแปลงสิ่งใดเกี่ยวกับลักษณะการคำนวณ หากการคำนวณเริ่มต้นใน Smart View และเซิร์ฟเวอร์ที่เชื่อมต่อมีการติดตามการคำนวณที่ใช้งานโดยผู้ดูแลระบบ Smart View จะแสดงไดอะล็อกบ็อกซ์ป็อปอัปที่มีรายละเอียดหลังจากที่การคำนวณรัน สามารถวางข้อมูลการติดตามการคำนวณจากไดอะล็อกป็อปอัปลงในโปรแกรมแก้ไขข้อความ หรือคุณสามารถค้นหาข้อมูลเดียวกันใน calc_trace.txt ที่อยู่ในไดเรคทอรีของไฟล์ฐานข้อมูลใน Essbase

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

ไม่รองรับการติดตามการคำนวณในแอปพลิเคชันที่มีการใช้งานการจัดการสถานการณ์

ในการใช้งานการติดตามการคำนวณ ผู้ดูแลระบบต้องเปิดพารามิเตอร์คอนฟิเกอเรชันของแอปพลิเคชัน CALCTRACE ก่อน หลังจากใช้งานการติดตามการคำนวณสำหรับแอปพลิเคชันของคุณ มีวิธี 2 วิธีในการใช้:

  • ใน Smart View คุณสามารถใช้การติดตามที่ตรงกับคอนเท็กซ์สำหรับค่าเซลล์เดียว
    1. ใน Smart View ให้เชื่อมต่อชีทการสืบค้นกับแอปพลิเคชันที่คุณใช้งานการติดตามการคำนวณ
    2. ไฮไลต์เซลล์ข้อมูลที่มีค่าที่คำนวณที่คุณต้องการติดตาม
    3. ในแผงข้อมูลของแท็บ Essbase ให้คลิกปุ่ม คำนวณ และเลือกสคริปต์การคำนวณเพื่อรัน คุณจะเห็น Point-Of-View จากเซลล์ข้อมูลที่ไฮไลต์ในพรอมต์รันไทม์การติดตามสมาชิก
    4. คลิก เริ่มต้น เพื่อรันสคริปต์การคำนวณ

      ระบบจะคำนวณขอบเขตการคำนวณทั้งหมดตามที่มีอยู่ในสคริปต์ แต่จะติดตามเฉพาะคอนเท็กซ์ของเซลล์ข้อมูลที่ไฮไลต์เท่านั้นในระหว่างการคำนวณ

    5. เมื่อสิ้นสุดสคริปต์การคำนวณ ให้ตรวจสอบไดอะล็อกบ็อกซ์ ผลลัพธ์การคำนวณ ซึ่งแสดงผลลัพธ์ก่อนและหลังการคำนวณสำหรับเซลล์ข้อมูลที่ไฮไลต์ของคุณ

      ถ้าไม่มีการแก้ไขเซลล์ข้อมูลที่ไฮไลต์ในระหว่างการคำนวณ คุณจะเห็นข้อความระบุว่าไม่มีการแก้ไขเซลล์

  • ในสคริปต์การคำนวณ คุณสามารถใช้คำสั่งการคำนวณ SET TRACE เพื่อเลือกจุดที่ตัดกันของข้อมูลที่จะติดตาม SET TRACE ช่วยให้คุณสามารถติดตามเซลล์ข้อมูลได้หลายเซลล์ นอกจากนี้ คุณสามารถติดตามส่วนของสคริปต์การคำนวณได้โดยใช้การรวมของ SET TRACE mbrList (เพื่อใช้งานการติดตามการคำนวณในลิสต์สมาชิก) และ SET TRACE OFF (เพื่อเลิกใช้การติดตามการคำนวณจนกระทั่งพบ SET TRACE ใหม่ในสคริปต์ ในการใช้คำสั่ง SET TRACE คุณต้องรันสคริปต์การคำนวณจากภายนอกของ Smart View โดยใช้เครื่องมือออกแบบลูกบาศก์, คำสั่ง CLI calc, งาน รันการคำนวณ ในเว็บอินเตอร์เฟซ Essbase หรือ MaxL (คำสั่ง รันการคำนวณ)

สคริปต์การคำนวณต่อไปนี้จะมีการรันใน "พื้นฐานตัวอย่าง" สคริปต์จะมีคำสั่ง SET TRACE ซึ่งส่งคำขอข้อมูลโดยละเอียดที่จะล็อกสำหรับจุดที่ตัดกันของข้อมูล (เซลล์) ที่แสดงยอดขายเดือนมกราคมตามงบประมาณในตลาดแคลิฟอร์เนียสำหรับ SKU ของผลิตภัณฑ์เลขที่ 100-10

SET TRACEID "id042"
SET TRACE ("100-10", "California", "Jan", "Sales", "Budget");
FIX("California", "Budget")
   "Sales" (
      "100-10" = @MEMBER(@CONCATENATE(@NAME(@PARENT("Product")), "-20")) / 10;
   );
ENDFIX;

หมายเหตุ:

คำสั่ง SET TRACEID ก็แนะนำเช่นกัน เพื่อป้องกันการเขียนทับไฟล์การติดตามการคำนวณ

"พื้นฐานตัวอย่าง" มีไดเมนชันแบบสปาร์ซสองรายการ ได้แก่ ผลิตภัณฑ์และตลาด สูตรของสมาชิกอยู่ใน "ยอดขาย" สมาชิกของการวัด ซึ่งเป็นไดเมนชันที่หนาแน่น ลิสต์สมาชิกของคำสั่ง FIX มีสมาชิกแบบสปาร์ซเพียงหนึ่งราย นั่นคือ "แคลิฟอร์เนีย" ซึ่งอยู่ในไดเมนชัน "ตลาด"

จำนวนบล็อคที่มีอยู่ในขอบเขต FIX จะกำหนดจำนวนครั้งในการคำนวณของเซลล์ที่ติดตาม ในตัวอย่างนี้ การคำนวณจะวนรอบผ่านการรวมสมาชิกแบบสปาร์ซที่มีอยู่ทั้งหมดของ "แคลิฟอร์เนีย" ค่าผสมแต่ละรายการเหล่านี้จะแสดงบล็อค

หลังจากที่การคำนวณเสร็จสมบูรณ์ ระบบจะล็อกและแสดงข้อมูลการติดตามใน calc_trace_id042.txt:

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 1)
Previous value: 840.00
Dependent values: 
        [100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00

Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 2)
Block from FIX scope: [100-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values: 
        [100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 3)
Block from FIX scope: [200-10][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values: 
        [200-20][California][Jan][Sales][Budget] = 520.00
New value: [100-10][California][Jan][Sales][Budget] = 52.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

[...calc iterations 4-7 are omitted from example...]

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 8)
Block from FIX scope: [400-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 9.00
Dependent values: 
        [400-20][California][Jan][Sales][Budget] = 90.00
New value: [100-10][California][Jan][Sales][Budget] = 9.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

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

  • เซลล์ที่ติดตามมีการคำนวณหลายครั้ง และค่าของเซลล์จะถูกเขียนทับแต่ละครั้งที่มีค่าใหม่ (จำนวนการอัปเดตเซลล์ที่รายงานจะหยุดที่ 8)

  • ค่าของเซลล์ก่อนการคำนวณคือ 840.00

  • สำหรับการคำนวณที่เกิดขึ้นแต่ละครั้ง ค่าอ้างอิงและค่าใหม่จะปรากฏขึ้น ค่าอ้างอิงจะมาจากสูตรของสมาชิกในคำสั่ง FIX

  • หลังจากที่การคำนวณทั้งหมดเสร็จสมบูรณ์ ค่าสุดท้ายของเซลล์ที่ติดตามคือ 9 แต่จะแสดงค่าผลิตภัณฑ์ "400-20"->แคลิฟอร์เนีย หารด้วย 10

  • บรรทัดที่ 91-93 ของสคริปต์การคำนวณที่มีสูตรของสมาชิกในยอดขายจะใช้คำนวณค่าที่อัปเดต

สำหรับแต่ละบล็อคที่วนรอบผ่าน "ยอดขาย" มีการคำนวณโดยใช้สูตรดังนี้

"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10

สูตรประกอบด้วยสมาชิกแบบสปาร์ซทางด้านซ้ายมือ ซึ่งอาจเป็นสาเหตุให้บล็อคการคำนวณจริงแตกต่างจากบล็อค FIX เริ่มต้น ตัวอย่างเช่น เมื่อการคำนวณวนรอบผ่าน "แคลิฟอร์เนีย"->"100-20" การคำนวณจะเกิดขึ้นจริงใน "แคลิฟอร์เนีย"->"100-10"

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