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

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

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

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

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

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

ในการใช้งานการติดตามการคำนวณ ผู้ดูแลระบบต้องเปิดพารามิเตอร์คอนฟิเกอเรชันของแอปพลิเคชัน 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 โดยใช้เครื่องมือออกแบบลูกบาศก์ หรือเพจงานของบริการคลาวด์
สคริปต์การคำนวณต่อไปนี้จะมีการรันใน "พื้นฐานตัวอย่าง" สคริปต์จะมีคำสั่ง SET TRACE ซึ่งส่งคำขอข้อมูลโดยละเอียดที่จะล็อกสำหรับจุดที่ตัดกันของข้อมูล (เซลล์) ที่แสดงยอดขายเดือนมกราคมตามงบประมาณในตลาดแคลิฟอร์เนียสำหรับ SKU ของผลิตภัณฑ์เลขที่ 100-10
SET TRACE ("100-10", "California", "Jan", "Sales", "Budget");
FIX("California", "Budget")
   "Sales" (
      "100-10" = @MEMBER(@CONCATENATE(@NAME(@PARENT("Product")), "-20")) / 10;
   );
ENDFIX;

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

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

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

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 และบล็อคที่แสดงในสูตรของสมาชิก รายการล็อกเหล่านี้สามารถระบุการแสดงสาเหตุที่มีการคำนวณที่ซ้ำกัน ช่วยให้คุณดีบักสคริปต์การคำนวณของคุณ