השתמש במעקב חישובי Essbase כדי לקבל תובנות לגבי עיבוד נוסחאות איבר, שיעזור לך לנפות באגים ולעדן את תסריטי החישוב שלך של אחסון בבלוקים. אפשר את CALCTRACE למעקב חישוב תלוי הקשר של Smart View, או השתמש בפקודה SET TRACE כדי לבחור חיתוכי נתונים למעקב.
מעקב חישוב מאפשר גישה למידע שנרשם לגבי חישוב, אחרי שתסריט החישוב מתבצע בהצלחה על קובייה.
מעקב אחרי חישוב אינו משנה דבר בהתנהגות החישוב. אם חישוב מופעל ב-Smart View, ומנהלן אפשר מעקב חישוב בשרת המחובר, Smart View מציג, אחרי שהחישוב רץ, תיבת דו-שיח צצה המכילה פרטים. את המידע על מעקב החישוב אפשר להדביק מתיבת הדו-שיח הצצה לתוך עורך טקסט. לחלופין, תוכל למצוא את אותו מידע ב-calc_trace.txt
, הממוקם בספריית קובצי מסד הנתונים ב- Essbase.
המידע על מעקב החישוב יכול לעזור לך לנפות את ביצוע תסריט החישוב, במקרה שתוצאות החישוב אינן תואמות לציפיות.
מעקב חישוב לא נתמך ביישומים עם ניהול תרחיש מאופשר.
לאפשור מעקב חישוב, המנהלן חייב להפעיל תחילה את פרמטר תצורת היישום CALCTRACE. אחרי שהמעקב אחר החישוב מאופשר ליישום, ישנן שתי דרכים כדי לנצל את היתרונות שלו:
הטווח המלא של החישוב כפי שנכלל בתסריט יחושב, אך במהלך החישוב יתבצע מעקב אחר הקשר תא הנתונים המודגש בלבד.
אם תא הנתונים המוגש לא השתנה במהלך החישוב, תראה הודעה שמציינת כי התא לא השתנה.
SET TRACE mbrList
(להפעלת מעקב אחר חישוב ברשימת איברים) ו-SET TRACE OFF
(לחסימת מעקב אחר חישוב עד שהמערכת תיתקל ב-SET TRACE בתסריט). כדי להשתמש בפקודה SET TRACE, עליך לבצע את תסריט החישוב מחוץ ל-Smart View, באמצעות Cube Designer, הפקודה CLI calc, העבודה הרץ חישוב בממשק האינטרנט של Essbase, או MaxL (משפט הרץ חישוב).תסריט החישוב הבא מורץ ב-Sample Basic. התסריט כולל פקודה 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 מומלצת גם כדי למנוע את החלפת קובץ המעקב אחר החישוב.ל- Sample Basic שני ממדים sparse: מוצר ושוק. נוסחת האיבר היא על 'מכירות', איבר של 'מדידות', שהוא ממד דחוס. רשימת האיברים של משפט FIX מכילה רק איבר sparse אחד, 'קליפורניה', ששייך לממד 'שוק'.
מספר הבלוקים הקיימים בטווח FIX קובע את מספר הפעמים שהתא במעקב מחושב. בדוגמה זו, החישוב עובר דרך כל קומבינציות איבר sparse הקיימות של 'קליפורניה'. כל קומבינציה כזו מייצגת בלוק.
אחרי סיום החישוב, מידע המעקב הבא נרשם ומוצג ב-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"->California
חלקי 10.
שורות 91-93 של תסריט החישוב, המכילות נוסחת איבר על 'מכירות', אחראיות לערכים המעודכנים.
בכל אחד מהבלוקים שדרכם החישוב עובר, 'מכירות' מחושב באמצעות הנוסחה:
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10
הנוסחה מכילה איבר sparse בצד שמאל, מה שיכול לגרום לבלוק החישוב בפועל להיות שונה מבלוק FIX ההתחלתי. למשל, כשהחישוב עובר דרך 'קליפורניה'->'100-20', החישובים מבוצעים למעשה ב-'קליפורניה'->'100-10'.
הרשומות ביומן המעקב ששמן בלוק מטווח FIX
ובלוק בפועל בשימוש בחישוב
מודפסות רק אם קיים הפרש בין הבלוקים במשפט FIX לבין הבלוק המיוצג בנוסחת האיבר. רשומות יומן אלה יכולות להצביע על הסיבות לחישובים כפולים ולעזור בכך בניפוי תסריטי חישוב.