คุณสามารถใช้การติดตามการคำนวณเพื่อวิเคราะห์การประมวลผลสูตรของสมาชิก และปรับแต่งสคริปต์การคำนวณของคุณ
การติดตามการคำนวณช่วยให้คุณสามารถเข้าใช้ข้อมูลที่ล็อกเกี่ยวกับการคำนวณ หลังจากที่สคริปต์การคำนวณรันกับลูกบาศก์เรียบร้อยแล้ว
การติดตามการคำนวณไม่ได้เปลี่ยนแปลงสิ่งใดเกี่ยวกับลักษณะการคำนวณ หากการคำนวณเริ่มต้นใน Smart View และเซิร์ฟเวอร์ที่เชื่อมต่อมีการติดตามการคำนวณที่ใช้งานโดยผู้ดูแลระบบ Smart View จะแสดงไดอะล็อกบ็อกซ์ป็อปอัปที่มีรายละเอียดหลังจากที่การคำนวณรัน สามารถวางข้อมูลการติดตามการคำนวณจากไดอะล็อกป็อปอัปลงในโปรแกรมแก้ไขข้อความ หรือคุณสามารถค้นหาข้อมูลเดียวกันใน calc_trace.txt
ที่อยู่ในไดเรคทอรีของไฟล์ฐานข้อมูลในบริการคลาวด์
ข้อมูลการติดตามการคำนวณสามารถช่วยให้คุณดีบักการรันสคริปต์การคำนวณ ในกรณีที่ผลลัพธ์ของการคำนวณไม่ใช่สิ่งที่คุณต้องการ
ไม่รองรับการติดตามการคำนวณในแอปพลิเคชันที่มีการใช้งานการจัดการสถานการณ์
ในการใช้งานการติดตามการคำนวณ ผู้ดูแลระบบต้องเปิดพารามิเตอร์คอนฟิเกอเรชันของแอปพลิเคชัน CALCTRACE ก่อน หลังจากใช้งานการติดตามการคำนวณสำหรับแอปพลิเคชันของคุณ มีวิธี 2 วิธีในการใช้:
ระบบจะคำนวณขอบเขตการคำนวณทั้งหมดตามที่มีอยู่ในสคริปต์ แต่จะติดตามเฉพาะคอนเท็กซ์ของเซลล์ข้อมูลที่ไฮไลต์เท่านั้นในระหว่างการคำนวณ
ถ้าไม่มีการแก้ไขเซลล์ข้อมูลที่ไฮไลต์ในระหว่างการคำนวณ คุณจะเห็นข้อความระบุว่าไม่มีการแก้ไขเซลล์
SET TRACE mbrList
(เพื่อใช้งานการติดตามการคำนวณในลิสต์สมาชิก) และ SET TRACE OFF
(เพื่อเลิกใช้การติดตามการคำนวณจนกระทั่งพบ SET TRACE ใหม่ในสคริปต์ ในการใช้คำสั่ง SET TRACE คุณต้องรันสคริปต์การคำนวณจากภายนอกของ Smart View โดยใช้เครื่องมือออกแบบลูกบาศก์ หรือเพจงานของบริการคลาวด์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 และบล็อคที่แสดงในสูตรของสมาชิก รายการล็อกเหล่านี้สามารถระบุการแสดงสาเหตุที่มีการคำนวณที่ซ้ำกัน ช่วยให้คุณดีบักสคริปต์การคำนวณของคุณ