بتحديد مصفوفة مرتبة، يمكنك التركيز على عمليات Essbase الحسابية في شبكة Smart View النشطة، بالحد من نطاقها لشرائح محددة من البيانات في مكعب تخزين الكتل لديك.
تصف الأقسام التالية حساب المصفوفة المرتبة:
بالنسبة إلى الصياغة التي تستخدم @GRIDTUPLES في اسكربت عملية حسابية، اطلع على FIX…ENDFIX.
بتحديد مصفوفة مرتبة، يمكنك التركيز على عمليات Essbase الحسابية في شبكة Smart View النشطة، بالحد من نطاقها لشرائح محددة من البيانات في مكعب تخزين الكتل لديك.
ويفيد اختيار المصفوفة المرتبة في تحسين العمليات الحسابية على الشبكة غير المتماثلة على مستوى الأبعاد، مع تجنب إجراء عمليات حسابية زائدة.
تختلف المصفوفات المرتبة لعمليات Essbase الحسابية عن المصفوفات المرتبة في استعلامات MDX. يعتمد أداء العملية الحسابية وحجم المكعب على عدد الكتل في المكعب (بالنظر لحجم كتلة معين). ولهذا السبب يتم تحديد المصفوفات المرتبة للعملية الحسابية في توليفات الأعضاء المبعثرة فقط. إلى جانب ذلك، ولتسهيل كتابة اسكربت العمليات الحسابية، يمكن تضمين العديد من الأعضاء من بُعد مبعثر واحد في مواصفات مصفوفة مرتبة لعملية حسابية. على سبيل المثال، في حالة تحديد ("New York", "California", "Actual", "Cola") كمصفوفة مرتبة لعملية حسابية، فسيتم حساب تقاطعات الخلايا التالية:
"New York"->"Actual"->"Cola" "California"->"Actual"->"Cola"
فكر في الشبكة المتماثلة التالية. وهي متماثلة نظرًا لاشتمال كل منتج على نفس الأسواق والسيناريو الفعلي (Actual) ممثلاً في الشبكة.
الشبكة التالية غير متماثلة، نظرًا لأن منتج Diet Cola تتوفر له أسواق أقل في الشبكة مقارنة بمنتج 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:
ولكن عند تحديد مصفوفات مرتبة في اسكربتات العملية الحسابية فلا يتم الالتزام بتلك المتطلبات التزامًا صارمًا لمزيد من السهولة في العمل. يمكن كتابة تعبيرات المصفوفات المرتبة بحرية، ويمكن للمصفوفات المرتبة أن تصف قوائم أعضاء، كحال المصفوفة المرتبة التالية: (@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 في اسكربت العملية الحسابية.
ما إذا كان تحديد المصفوفات المرتبة يتم باستخدام قوائم واضحة من المصفوفات المرتبة أو باستخدام دالة @GRIDTUPLES، فإن التحديد يسري فقط على أمر العملية الحسابية FIX…ENDFIX. ويتم توسيع صياغة جملة FIX لتمكين اختيار المصفوفات المرتبة:
FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs) COMMANDS ; ENDFIX
باستخدام شبكة Smart View وجملة FIX في اسكربت عملية Essbase الحسابية، يمكن حساب المصفوفات المرتبة للأعضاء المختارين تبعًا لزاوية عرض الشبكة. ويمكن بدلاً من ذلك كتابة توليفات المصفوفات المرتبة بشكل مباشر في جملة FIX، مع إزالة التبعية من شبكة 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 في المصنف للاطلاع على الإرشادات.