حساب المصفوفات المرتبة المحددة

بتحديد مصفوفة مرتبة، يمكنك التركيز على عمليات Essbase الحسابية في شبكة Smart View النشطة، بالحد من نطاقها لشرائح محددة من البيانات في مكعب تخزين الكتل لديك.

تصف الأقسام التالية حساب المصفوفة المرتبة:

بالنسبة إلى الصياغة التي تستخدم @GRIDTUPLES في اسكربت عملية حسابية، اطلع على FIX…ENDFIX.

حالات استخدام حساب المصفوفة المرتبة

بتحديد مصفوفة مرتبة، يمكنك التركيز على عمليات Essbase الحسابية في شبكة Smart View النشطة، بالحد من نطاقها لشرائح محددة من البيانات في مكعب تخزين الكتل لديك.

ويفيد اختيار المصفوفة المرتبة في تحسين العمليات الحسابية على الشبكة غير المتماثلة على مستوى الأبعاد، مع تجنب إجراء عمليات حسابية زائدة.

تختلف المصفوفات المرتبة لعمليات Essbase الحسابية عن المصفوفات المرتبة في استعلامات MDX. يعتمد أداء العملية الحسابية وحجم المكعب على عدد الكتل في المكعب (بالنظر لحجم كتلة معين). ولهذا السبب يتم تحديد المصفوفات المرتبة للعملية الحسابية في توليفات الأعضاء المبعثرة فقط. إلى جانب ذلك، ولتسهيل كتابة اسكربت العمليات الحسابية، يمكن تضمين العديد من الأعضاء من بُعد مبعثر واحد في مواصفات مصفوفة مرتبة لعملية حسابية. على سبيل المثال، في حالة تحديد ("New York", "California", "Actual", "Cola") كمصفوفة مرتبة لعملية حسابية، فسيتم حساب تقاطعات الخلايا التالية:

"New York"->"Actual"->"Cola"
"California"->"Actual"->"Cola"

فكر في الشبكة المتماثلة التالية. وهي متماثلة نظرًا لاشتمال كل منتج على نفس الأسواق والسيناريو الفعلي (Actual) ممثلاً في الشبكة.

الشبكة المتماثلة تشتمل على Actual، وقيم شهر يناير Jan في خمسة أسواق لمنتج Cola، والأسواق الخمسة نفسها لمنتج Diet Cola

الشبكة التالية غير متماثلة، نظرًا لأن منتج Diet Cola تتوفر له أسواق أقل في الشبكة مقارنة بمنتج Cola.

الشبكة غير المتماثلة تشتمل على Actual، وقيم شهر يناير Jan في خمسة أسواق لمنتج Cola، وسوقين فقط لمنتج Diet Cola

النطاق الافتراضي للعملية الحسابية، عند وجود ما يزيد عن بُعد واحد في جملة FIX أو زاوية عرض شبكة Smart View، هو حساب المنتج المركب (كل التوليفات المتاحة) للأعضاء في جملة FIX أو الشبكة. في عبارة أخرى، العملية الحسابية القائمة على زاوية العرض والتي تأتي توليفات المنتج والسوق فيها من الشبكة، تقوم تلك العملية بحساب كل توليفات العضو-الصف تلك:

Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Massachusetts"
"Diet Cola"->"Florida"
"Diet Cola"->"Connecticut"
"Diet Cola"->"New Hampshire"

وقد ينطوي هذا على قدر من العمليات الحسابية يفوق ما تحتاج إليه. إذا أردت حساب فقط التوليفات المعروضة في الشبكة، فبوسعك تحديد المصفوفات المرتبة المطلوب حسابها، وقصر العملية الحسابية على الشرائح الأصغر حجمًا. ومن شأن حساب المصفوفات المرتبة أن يحد من الوقت المطلوب للحساب ومن حجم المكعب.

Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Florida"

التعرف على العمليات الحسابية التي تستند إلى مصفوفة مرتبة

المصفوفة المرتبة في عملية حسابية هي وسيلة لتمثيل شريحة بيانات من أعضاء، مأخوذة من اثنين أو أكثر من الأبعاد المبعثرة، ويجري استخدامها في عملية حسابية لكتلة تخزين Essbase.

أمثلة لمصفوفات مرتبة في عملية حسابية:

  • ("Diet Cola", "New York")
  • ("Diet Cola", "Cola", Florida)
  • (Cola, "New Hampshire")

في حالة كتابة تعبيرات MDX، لا بد أن تكون على دراية بالقيود المتعلقة بالمصفوفة المرتبة والتي تسري على MDX:

  • يمكن تضمين عضو واحد فقط من كل بُعد في مصفوفة MDX مرتبة
  • يتعين على كل المصفوفات المرتبة في مجموعة MDX أن تشتمل على نفس الأبعاد المُمثّلة، بنفس الترتيب

ولكن عند تحديد مصفوفات مرتبة في اسكربتات العملية الحسابية فلا يتم الالتزام بتلك المتطلبات التزامًا صارمًا لمزيد من السهولة في العمل. يمكن كتابة تعبيرات المصفوفات المرتبة بحرية، ويمكن للمصفوفات المرتبة أن تصف قوائم أعضاء، كحال المصفوفة المرتبة التالية: (@Children(East), Cola).

تحديد المصفوفات المرتبة لحساب زاوية العرض

إحدى الطرق البسيطة لتحديد مصفوفات مرتبة هو إدراجها بشكل واضح في اسكربت عملية حسابية، بوصفها قائمة ضمن جملة FIX.

تذكر أن صيغة جملة FIX هي كالتالي:

FIX (fixMbrs)
COMMANDS ;
ENDFIX

في جملة FIX أدناه، يتم تحديد مصفوفتين مرتبتين قبل بدء كتلة الأمر. وتتم إحاطة المصفوفات المرتبة بأقواس هلالية { } تحدد مجموعة، أي عدد من المصفوفات المرتبة.

FIX({
  (@Children(East), Cola),
  ("New York", Florida, "Diet Cola")
  })
Sales (Sales = Sales + 10;);
ENDFIX

هناك طريقة أخرى لتحديد المصفوفات المرتبة وهي الطريقة السياقية، وذلك تبعًا للأعضاء الموجودين في زاوية عرض شبكة Smart View في وقت تشغيل العملية الحسابية. يتم ذلك عبر تقديم دالة @GRIDTUPLES كوسيطة في جملة FIX، ضمن اسكربت العملية الحسابية.

FIX ({@GRIDTUPLES(Product, Market)})
   Sales (Sales = Sales + 10;);
ENDFIX

في حالة تنفيذ اسكربت العملية الحسابية من Smart View على الشبكة أدناه، يتم حساب التوليفات المعروضة فقط من المنتجات products والأسواق markets. على سبيل المثال، لا يتم حساب "Diet Cola"->Massachusetts، لأنها غير معروضة بشكل واضح في الشبكة. تجدر ملاحظة أن كل السيناريوهات (البُعد المبعثر الثالث في نموذج المكعب هذا) يتم حسابها، رغم أن Actual وحده هو المعروض في الشبكة. ويرجع هذا لأن بُعد السيناريو Scenario ليس جزءًا من جملة GRIDTUPLES في اسكربت العملية الحسابية.

الشبكة غير المتماثلة تشتمل على Actual، وقيم شهر يناير Jan في خمسة أسواق لمنتج Cola، وسوقين فقط لمنتج Diet Cola

ما إذا كان تحديد المصفوفات المرتبة يتم باستخدام قوائم واضحة من المصفوفات المرتبة أو باستخدام دالة @GRIDTUPLES، فإن التحديد يسري فقط على أمر العملية الحسابية FIX…ENDFIX. ويتم توسيع صياغة جملة FIX لتمكين اختيار المصفوفات المرتبة:

FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs)
COMMANDS ;
ENDFIX
  • tupleList - مجموعة مصفوفات مرتبة مقسمة بفواصل.
  • dimensionList - بُعدين مبعثرين على الأقل يتم استخدام أعضائهم من شبكة Smart View النشطة في تعريف نطاقات العملية الحسابية. (في اسكربتات العملية الحسابية، يمكنك استخدام الأبعاد المبعثرة فقط في تعريف المصفوفات المرتبة.)
  • fixMbrs - عضو في قائمة الأعضاء.

أمثلة لاختيار مصفوفة مرتبة لتقليص نطاق العملية الحسابية

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

من شأن حساب المصفوفات المرتبة المحددة أن يساعدك على التعامل بكفاءة مع المناطق غير المتماثلة في اسكربتات العمليات الحسابية وفي شبكات Smart View.

انظر الأمثلة التالية:

  • لم يتم تحديد مصفوفة مرتبة - يتم الحساب على النحو الافتراضي تبعًا لزاوية عرض شبكة Smart View. لا تقتصر العملية الحسابية على أية مصفوفات مرتبة محددة.
  • تحديد الأبعاد المبعثرة المسماة - حساب المصفوفات المرتبة من اثنين أو أكثر من الأبعاد المبعثرة المسماة في اسكربت العملية الحسابية. تقتصر العملية الحسابية على الأعضاء من أبعاد المصفوفة المرتبة الموجودين في شبكة Smart View.
  • تحديد الأبعاد المبعثرة السياقية - حساب المصفوفات المرتبة من الأبعاد المبعثرة المحددة في وقت التشغيل. تقتصر العملية الحسابية على الأعضاء من أبعاد المصفوفة المرتبة الموجودين في شبكة Smart View.

لتجربة استخدام الأمثلة، قم بتنزيل قالب مصنف CalcTuple_Tuple.xlsx من قسم تقني > عملية حسابيةفي مجلد المعرض ضمن منطقة الملفات بواجهة Essbase على الويب. راجع ورقة عمل README في المصنف للاطلاع على الإرشادات.

لم يتم تحديد مصفوفة مرتبة

عرض سلوك العملية الحسابية لتخزين كتل Essbase الافتراضي والذي يحدث في حالة عدم تحديد مصفوفات مرتبة، إذ يقوم اسكربت العملية الحسابية التالي بحساب المنتج المركب الكامل لأعضاء بُعد Product وMarket من شبكة Smart View.

عبر الاستعانة بمتغيري استبدال في وقت التشغيل (RTSV) معرفين في كتلة SET RUNTIMESUBVARS، يقتصر نطاق العملية الحسابية على زوايا عرض Product وMarket الموجودة في الشبكة عند إجراء العملية الحسابية من Smart View.

SET RUNTIMESUBVARS
{
ProductGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Product's members on the grid</description>
<type>member</type>
<dimension>Product</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
MarketGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Market's members on the grid</description>
<type>member</type> <dimension>Market</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
};
FIX (
&ProductGridMembers, &MarketGridMembers
)
Marketing(
   Marketing = Marketing +1;
);
ENDFIX

تحديد الأبعاد المبعثرة المسماة

باستخدام الدالة @GRIDTUPLES لتحديد المصفوفة المرتبة لبعدي Product وMarket، يقوم اسكربت عملية Essbase الحسابية لتخزين الكتل هذا بحساب المصفوفات المرتبة لهذين البعدين فقط، حاصرًا نطاقه على الأعضاء الموجودين في شبكة Smart View في وقت تنفيذ العملية الحسابية من Smart View.

FIX (
{@GRIDTUPLES(Product, Market)}
)
Marketing(
   Marketing = Marketing + 1;
);
ENDFIX

من خلال التركيز على الأبعاد المبعثرة المسماة في المصفوفة المرتبة، فإن العملية الحسابية سوف تستوعب عددًا أقل بكثير من الكتل مقارنة بما تستوعبه عملية حسابية تقليدية. أما كل الأعضاء غير الواردة بنطاق التركيز هذا (السنة Year، السيناريو Scenario) فيتم حسابها بواسطة اسكربت العملية الحسابية ذلك.

تحديد الأبعاد المبعثرة السياقية

باستخدام دالة @GRIDTUPLES ومتغير بديل في وقت الاستخدام، يقوم اسكربت العملية الحسابية لتخزين كتل Essbase هذا بحساب المصفوفات المرتبة المحددة فقط من الشبكة، وذلك تبعًا للخيارات من الأعضاء المبعثرة في موجه RTSV.

المتغير البديل في وقت التشغيل &DimSelections المعرف في كتلة SET RUNTIMESUBVARS، يقلص من نطاق العملية الحسابية بحيث تقتصر على الأبعاد المبعثرة في المكعب، مستبعدًا السيناريو. وتقوم الدالة @GRIDTUPLES المستخدمة في جملة FIX باستدعاء هذا المتغير، حيث تقلص من عدد التقاطعات التي يمكن حسابها.

SET RUNTIMESUBVARS
            {
            DimSelections = "Version", "Site", "Entity", "Product", "Market"
            <RTSV_HINT><svLaunch>
            <description>List two or more sparse dimensions used for forming calculation tuples:</description>
            <type>string</type>
            </svLaunch></RTSV_HINT>;
            };
            FIX (
            {@GRIDTUPLES(&DimSelections)}
            )
            Marketing(
            Marketing = Marketing + 1;
            );
            ENDFIX
        

تشمل العملية الحسابية عددًا من الكتل أقل من سابقه في المثال الماضي، وذلك لأن تعريف المصفوفة المرتبة في هذه الحالة يمتد إلى مزيد من الأبعاد المبعثرة تتجاوز Product->Market.

لتجربة استخدام الأمثلة، قم بتنزيل قالب مصنف CalcTuple_Tuple.xlsx من قسم تقني > عملية حسابية في مجلد المعرض ضمن منطقة الملفات بواجهة Essbase على الويب. راجع ورقة عمل README في المصنف للاطلاع على الإرشادات.