تتبع العمليات الحسابية

استخدم تتبع عمليات Essbase الحسابية للحصول على معلومات دقيقة حول معالجة معادلات الأعضاء، ولمساعدتك على اكتشاف الأخطاء وحلها وتحسين اسكربتات العمليات الحسابية لتخزين الكتل. قم بتمكين CALCTRACE لتتبع عمليات Smart View الحسابية الحساسة للسياق، أو استخدم أمر SET TRACE لتحديد تقاطع البيانات المطلوب تتبعه.

تتيح لك وظيفة تتبع العمليات الحسابية الوصول إلى المعلومات المسجلة عن عملية حسابية، بعد نجاح تنفيذ العملية الحسابية مقابل مكعب.

لا يؤدي تتبع عملية حسابية إلى تغيير أي شيء عن سلوك العملية الحسابية. إذا تم تشغيل عملية حسابية في Smart View، وقام أحد المسؤولين بتمكين وظيفة تتبع العمليات الحسابية على الخادم المتصل، يعرض Smart View مربع حوار منبثق يشتمل على التفاصيل، بعد تشغيل العملية الحسابية. يمكن لصق معلومات تتبع العملية الحسابية من مربع الحوار المنبثق في محرر نص. أو يمكنك العثور على نفس المعلومات في ملف calc_trace.txt، الموجود في دليل ملفات قاعدة البيانات في Essbase.

يمكن أن تساعدك معلومات تتبع العملية الحسابية في تصحيح أخطاء تنفيذ اسكربت العملية الحسابية إذا كانت نتائج العملية الحسابية ليست كما توقعتها.

تتبع العمليات الحسابية غير مدعوم في التطبيقات الممكّن بها إدارة السيناريو.

لتمكين تتبع العملية الحسابية، يجب على المسؤول أولاً تشغيل معلمة تكوين تطبيق CALCTRACE. وبعد تمكين تتبع العمليات الحسابية للتطبيق، تُتاح لك طريقتان للاستفادة منه:

  • في Smart View، يمكنك استخدام تتبع حساس للسياق لقيمة من خلية واحدة.
    1. في Smart View، يمكنك ربط ورقة استعلام بالتطبيق الذي قمت بتمكين تتبع العمليات الحسابية له.
    2. ويمكنك تمييز خلية بيانات تريد تتبع قيمتها المحسوبة.
    3. في لوحة "البيانات" ضمن علامة تبويب Essbase، انقر على الزر حساب وحدد اسكربت عملية حسابية لتنفيذه سترى زاوية العرض من خلية البيانات المميزة في مُوجِّهات وقت تشغيل أعضاء التتبع.
    4. انقر على تشغيل لتنفيذ اسكربت العملية الحسابية.

      سيتم حساب النطاق الكامل للعملية الحسابية المضمَّنة في الاسكربت، لكن سياق خلية البيانات المميزة فقط هو ما يتم تتبعه أثناء العملية الحسابية.

    5. في نهاية اسكربت العملية الحسابية، تفحص مربع الحوار نتيجة العملية الحسابية الذي يعرض النتائج قبل العملية الحسابية وبعدها لخلية البيانات المميزة.

      إذا لم يتم تعديل خلية البيانات المميزة أثناء العملية الحسابية، فستظهر لك رسالة تشير إلى أن الخلية لم يتم تعديلها.

  • في اسكربتات العملية الحسابية، يمكنك استخدام أمر العملية الحسابية SET TRACE لتحديد تقاطعات البيانات التي تريد تتبعها. يتيح لك أمر SET TRACE تتبع عدة خلايا بيانات. إضافة إلى ذلك، يمكنك تتبع أقسام من اسكربتات العمليات الحسابية باستخدام توليفة من الأمر 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 على بُعدين مبعثرين: Product (المنتج) وMarket (السوق). معادلة العضو موجودة في المبيعات Sales، وهو عضو في بُعد المقاييس Measures، وهو بُعد كثيف. تشتمل قائمة الأعضاء بجملة FIX على عضو مبعثر واحد فقط، وهو California، الذي ينتمي إلى البُعد Market.

يحدد عدد الكتل الموجودة في نطاق الإصلاح عدد مرات حساب الخلية المتتبعَة. في هذا المثال، تجري العملية الحسابية في جميع توليفات العضو المبعثر California. وتمثل كل توليفة من هذه التوليفات كتلة.

بعد اكتمال العملية الحسابية، يتم تسجيل وعرض معلومات التتبع في 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 في اسكربت العملية الحسابية، التي تشتمل على معادلة عضو في Sales (المبيعات)، هي المسؤولة عن القيم المحدثة.

لكل كتلة من الكتل التي تجري عليها العملية الحسابية، يتم حساب المبيعات Sales باستخدام المعادلة:

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

تشتمل المعادلة على عضو مبعثر على الجانب الأيسر، الذي قد يؤدي إلى اختلاف كتلة العملية الحسابية الفعلية عن كتلة FIX المبدئية. على سبيل المثال، عندما تدور العملية الحسابية على "California"->"100-20"، يتم في الواقع إجراء العمليات الحسابية في "California"->"100-10".

تتم كتابة إدخالات سجل التتبع المسماة Block from FIX scope (كتلة من مجال Fix) وActual block used in calculation (الكتلة الفعلية المستخدمة في العملية الحسابية) في حالة وجود اختلاف بين الكتل في جملة FIX والكتلة الممثلة في معادلة العضو. يمكن أن توفر إدخالات السجل هذه إشارات إلى سبب وجود عمليات حسابية مكررة، ما يساعدك على تصحيح أخطاء اسكربتات العمليات الحسابية.