Alternatives for 250+ cross-dimensional operators
Our geographical product segmentation has altered. I have to change the outline. We have departments and products. Normally we could report on the sum of departments and on the sum of products. Now because of the switch in segmentation we can only report on products. Some of the same products are made by mutiple regions. I have to make an hierarchy which can report on products for regions. In this instance in the outline, there is one product member and two department members. I have made formulas to pull the product apart to regions.
I have done this with cross dimensional operators:
For example product A is made by department 1 and 2. I made two formulas in the product dimension ProdAdep1 and ProdAdep2:
Member formulas:
ProdAdep1 = Product A -> Department 1;
ProdAdep2 = Product A -> Department 2;
Product A is now made ~ and ProdAdep1,ProdBdep1, ProdCdep1 count up to Total products department 1.
I made all these formulas dynamic calc. Both the product and department dimension are sparse. There are now 250+ formulas and the caculation of the database became very slow. In my Essbase bible 'Look smarter than you are with Essbase 11' I found that the usage of a lot of cross dimensional operators is unseemly and slow.
So I figured out an alternative, a calcscript with a fix.
FIX("Product A")
ProdAdep1 = "Department 1";
ProdAdep2 = "Department 2";
ENDFIX
But this doens't work either. Can anyone help me to think out the best solution?
Thank you Steve, its a bit more complicated.
Departments roll up to regions, products also roll up to regions, but we also have shared (central) products.
For example department 1 in region X (department dimension) can have product A (product dimension) and department 2 in region Y (department dimension) can have product A (product dimension) also. The wish is to report on products and have a full view of the regions within the product dimension.
How it is now:
Department dimension:
Total Region X
|- Department 1
|- Department 3
Total region Y
|- Department 2
|- Department 4
Product dimension:
Total Region X
|-Product C
|-Product D
Total Region Y
|- Product E
|- Product F
Central Products
|- Product A
The Wish:
Department dimension:
Total Region X
|- Department 1
|- Department 3
Total region Y
|- Department 2
|- Department 4
Product dimension:
Total Region X
|-Product C
|-Product D
|-Product A (for region X based on department)
Total Region Y
|- Product E
|- Product F
|- Product A (for region Y based on department)
Central Products
|- Product A ~
It isnt possible to add a dimension, because the problem occurs on level 0.
Similar Messages
-
Substitution variable in a cross-dimensional operator
All,
Essbase doesn't like this:
"Jan"(
("Actuals"->"2011"->"001"->"abc") = ("Run1"->"2011"->"000"->&varAP);
can I have a substitution variable inside a cross-dimensional operator?The basic construct works for me in Sample.Basic. When you say Essbase doesn't like it, what exactly happens - fails syntax check, errors on execution or just doesn't produce the right results?
Sometimes it's necessary to include quotes in the subvar value itself, e.g. setting your subvar to *"X Y Z"* including the quotes rather than X Y Z.
I would guess you've already tried this, but does the script validate and run successfully if you replace the subvar with the value of the subvar? -
Local variables with cross dimensional operator
Hi,
I have a business rule, which has the following calculation :
VAR TOTPROD;
TOTPROD = "Prod1"+"Prod2"+"Prod3";
"MBR1" = "MBR2"->"Jan"->TOTPROD/"MBR2"->"YearTotal"->"TotalProducts";
The above statement does not run for obvious reasons that TOTPROD is not a member name.
Is there a way to use a local variable in a cross dimensional operator statement?
I want to use the local variable in order to avoid making an alternate hierarchy.
I am using Essbase / HPB 11.1.2.2
Please help.
Thanks.Hi
As you state, I dont think the approach that you have is going to work.
What about either
a. Creating a dummy product member in your outline and place your result on it (or use an existing 'dummy' product member)
b. Re-write your code to handle what you wish to do....something like (assuming you are adding Prod1, 2 and 3):
"MBR1" = ("MBR2"->"Jan"-> "Prod1"+"MBR2"->"Jan"-> "Prod2"+"MBR2"->"Jan"-> "Prod3")/"MBR2"->"YearTotal"->"TotalProducts";
Not sure if I am missing anything here, but do either of these suggestions help?
JB -
Optimisation of cross dimensional calculations
Hi,
Here's a script which should not take too long to run. However, this script runs for hours. Any suggestions would be great. I have added some more details about the dimensions involved.
Outline of the script:
/*Script Begins*/
SET UPDATECALC OFF;
SET CREATENONMISSINGBLK ON;
SET CACHE ALL;
SET CALCPARALLEL 5;
SET CALCTASKDIMS 2;
SET NOTICE LOW;
SET MSG SUMMARY;
FIX (@ATTRIBUTE("Existing"),@Relative("Location",0),@RELATIVE("Entity",0),&pln_scenario,"BU Budget",&plan1_yr,@RELATIVE("BOM",0), @RELATIVE("YearTotal",0))
"RMQ" = "location wise Sales Volume"->"UBOM" * "RMQ per Unit SKU"->"All locations"->"YearAgg";
ENDFIX;
ENDFIX;
/*Script Ends*/
UBOM is a member of BOM, "YearAgg" is a dummy member in period dimension and "all locations" is a dummy member in location dimension.
Dimension details: Evaluation Order which has been thought through.
Dimension Members Density
Account 352 Dense
Period 35 Dense
Version 3 Sparse
Scenario 8 Sparse
Location 7 Sparse
Year 9 Sparse
Entity 20 Sparse
Product 416 Sparse
BOM 938 SparseAre you sure that changing the cross-dimensional order of members makes a difference?
"location wise Sales Volume"->"UBOM" * "RMQ per Unit SKU"->"YearAgg"->"All locations";instead of
"location wise Sales Volume"->"UBOM" * "RMQ per Unit SKU"->"All locations"->"YearAgg"really improves how Essbase reads its index and page files?
It seems to me that Essbase is pointing to the same block, no matter the order of the dimension combinations.
The same goes for a FIX: I can't see how the dimension order within a single FIX statement is going to cause Essbase to touch blocks differently as it will be the same list of blocks (and cells) however it's combined.
Have you benchmarked the cross-dimensional member order? I'd be really interested to hear re any differences in performance.
Regards,
Cameron Lackpour -
Concatenate within Cross Dimensional Reference
I am trying to write a calc script in Essbase 7.1.3. I am trying to assign a value to one dimension based on a cross dimensional reference. In the CDR, I want to make it dynamic. I am trying the following. The syntax will not check. What am I doing wrong? I have checked other posts and can't find a solution. I can't make this a member property, it has to be a calc.<BR><BR>Thanks for any help!<img src="i/expressions/face-icon-small-confused.gif" border="0">
No typo. I slimmed down the calc a bit so it would be more discussion board friendly.<BR><BR>We have input currencies and reporting currencies. The data is loaded to input and translated into the reporting currencies. For example<BR><BR>CR_Loc = CR_Loc_Input + (CR_USD_Input*USD Rate)<BR> where USD rate is found using the range formula above<BR><BR>Real world example:<BR><BR>A Japan user input 100000 yen for a data point as well as 100 USD for the same data point. If we create a pure local currency view the math would be <BR><BR>100,000 Yen + (100 USD * 100 Yen/USD) so CR_LOC = 110,000<BR><BR>We use the range formula to retrieve the currency rate as stored in the data intersection for the account (1 oer currency) and the CR_USD reporting currency. So 100 is stored in CR_USD->AC_JPY_Rate.<BR><BR>I know this is probably far more detail than you needed but thought it might be useful for others if they encounter the same problem.
-
Cross Dimensional Security in Planning
Got a scenario where the customer is asking for cross dimension security in planning and not sure if it's possible
Simple Example
Assume 2 dimensions. Account and Entity
Entity has 2 members E1234 and E1235
Account has 2 members Axxx1 and Axxx2
User is User1
User should have the following access (assume it's all ReadWrite)
Axxx2 but only for E1234 (so can't ReadWrite for Axxx1 in E1234)
Axxx1 but only for E1235 (so can't ReadWrite for Axxx2 in E1235)
Based on the SecFile.txt
I could write
User1,Axxx2,ReadWrite,Member
User1,Axxx1,ReadWrite,Member
User1,E1234,ReadWrite,Member
User1,E1235,ReadWrite,Member
But I have now given him/her access to everything.....
I'm worried the answer is that you can't do it. I know you could do it in Essbase itself but can't figure out something for Planning.
My problem is actually far more complicated than this but if I could do understand this simple example I think I can do everything I need.One way to get around this issue is to physically merge the dimensions where you need cross-dimensional security. It's not a great solution, and with large dimensions can be completely impractical due to the number of potential combinations. But if one of your dimensions is small, it can work.
In our case, we wanted cross-dimensional security on Entities and Departments. We didn't have to create a member for every combination of Entity/Department, because not all combinations were valid (or had data), so we were able to limit the combined dimension's size somewhat.
- Jake -
Error while performing Risk Analysis at user level for a cross system user
Dear All,
I am getting the below error, while performing the risk analysis at user level for a cross system (Oracle) user.
The error is as follows:
"ResourceException in method ConnectionFactoryImpl.getConnection(): com.sap.engine.services.connector.exceptions.BaseResourceException: Cannot get connection for 120 seconds. Possible reasons: 1) Connections are cached within SystemThread(can be any server service or any code invoked within SystemThread in the SAP J2EE Engine), 2) The pool size of adapter "SAPJ2EDB" is not enough according to the current load of the system or 3) The specified time to wait for connection is not enough according to the pool size and current load of the system. In case 1) the solution is to check for cached connections using the Connector Service list-conns command, in case 2) to increase the size of the pool and in case 3) to increase the time to wait for connection property. In case of application thread, there is an automatic mechanism which detects unclosed connections and unfinished transactions.RC:1
Can anyone please help.
Regards,
GurugobindaHi..
Check the note # SAP Note 1121978
SAP Note 1121978 - Recommended settings to improve peformance risk analysis.
Check for the following...
CONFIGTOOL>SERVER>MANAGERS>THREADMANAGER
ChangeThreadCountStep =50
InitialThreadCount= 100
MaxThreadCount =200
MinThreadCount =50
Regards
Gangadhar -
What is the alternative for DisplayMemberPath="Value" for Windows Store applications?
I think there is a bug with Windows Store Applications when it comes to using DisplayMemberPath="Value".
Here is my code
<ComboBox Height="40" VerticalAlignment="Stretch" SelectedValuePath="Key" DisplayMemberPath="Value" x:Name="comboBox1" FontSize="25"/>
var source = new Dictionary<string, double>();
source.Add("Item1", 0.4);
source.Add("Item2", 0.3);
source.Add("Item3", 0.1);
source.Add("Item4", 0.1);
var formateDSource = new Dictionary<string, string>();
foreach (var item in source)
formateDSource.Add(string.Format("[{0}, {1}]", item.Key, item.Value), item.Key);
comboBox1.ItemsSource = source;
If you use this code in WPF in works perfectly. However if you use this code in a Windows Store Application then the Combo Box is empty and an error is thrown. So is there an alternative way to do this in Windows Store Applications and have I unearthed a
bug? Because I have researched the Web for days and found no solution to this.*please do not comment unless you have tried my code as a Windows Store App not a WPF in Visual Studios. Can Someone post an example based on my code that works in Windows Store
Apps please because this is terrible.
ThanksIt looks like you got an answer on SO:
http://stackoverflow.com/questions/29817124/what-is-the-alternative-for-displaymemberpath-value-for-windows-store-applicat
This does look like a bug.
Matt Small - Microsoft Escalation Engineer - Forum Moderator
If my reply answers your question, please mark this post as answered.
NOTE: If I ask for code, please provide something that I can drop directly into a project and run (including XAML), or an actual application project. I'm trying to help a lot of people, so I don't have time to figure out weird snippets with undefined
objects and unknown namespaces. -
What are the Flash alternatives for iphone and ipad?
Hello,
I would like to know what could be the Flash alternatives for iphone, ipod, and ipad. I would like to create iphone applications that have 3D animation I usually create with Flash.
But since Apple does not support the use of flash, I need to know what applications or programming languages I must use to create movies or animations for iphone or ipad.I would like to create iphone applications
Then you need to go here:
http://developer.apple.com/programs/iphone/ -
Getting Error In the Routine - While writing Code for the Cross Reference.
Hi,
Getting Error In the Start Routine - While writing Code for the Cross Reference from the Text table ( /BIC/TZMDES with Fields /BIC/ZMDES(Key),TXTSH ) Getting Error as [ E:Field "ZMDES" unknown ].
Transformation : IOBJ ZPRJ3(Source) -> IOBJ ZPRJC ( Target ).
The Source Fields are: 0logsys(Key),zprj3(Key),ZDOM3.
The Target Fields are : 0logsys(Key),zprjc(Key),ZDOM3, UID.
Here i am trying to Update the target Field UID by Comparing the Source Field [ zprj3(Key)] with the Text table ( /BIC/TZMDES ) and update the UID.
The Code is as below:
Global Declarations in the Start Routine:
Types: begin of itabtype,
ZMDES type /BIC/TZMDES-/BIC/ZMDES,
TXT type /BIC/TZMDES-TXTSH,
end of itabtype.
data : itab type standard table of itabtype
with key ZMDES,
wa_itab like line of itab.
Routine Code :
select * from /BIC/TZMDES into corresponding fields of table itab for
all entries in SOURCE_PACKAGE
where ZMDES = SOURCE_PACKAGE-/BIC/ZPRJ3.
READ TABLE itab INTO wa_itab
WITH KEY ZMDES = SOURCE_PACKAGE-/BIC/ZPRJ3
BINARY SEARCH.
IF SY-SUBRC = 0.
RESULT = wa_itab.
CLEAR wa_itab.
The tys_SC_1 structure is :
BEGIN OF tys_SC_1,
InfoObject: 0LOGSYS.
LOGSYS TYPE RSDLOGSYS,
InfoObject: ZPRJ3.
/BIC/ZPRJ3 TYPE /BIC/OIZPRJ3,
InfoObject: ZDOM3.
/BIC/ZDOM3 TYPE /BIC/OIZDOM3,
Field: RECORD.
RECORD TYPE RSARECORD,
END OF tys_SC_1.
TYPES:
tyt_SC_1 TYPE STANDARD TABLE OF tys_SC_1
WITH NON-UNIQUE DEFAULT KEY.
Please suggest with your valuable inputs.
Thanks in AdvanceI have split the code in two.. one for start routine.. other for field routine.. hope this helps
Types: begin of itabtype,
ZMDES type /BIC/TZMDES-/BIC/ZMDES,
TXT type /BIC/TZMDES-TXTSH,
end of itabtype.
data : itab type standard table of itabtype
with key ZMDES,
wa_itab like line of itab.
Start routine
select * from /BIC/TZMDES into corresponding fields of table itab for
all entries in SOURCE_PACKAGE
where ZMDES = SOURCE_PACKAGE-/BIC/ZPRJ3.
Sort itab.
field routine
CLEAR wa_itab.
READ TABLE itab INTO wa_itab
WITH KEY ZMDES = SOURCE_FIELD-/BIC/ZPRJ3
BINARY SEARCH.
IF SY-SUBRC = 0.
RESULT = wa_itab-<field name> -
Alternative for AT NEW --- ENDAT
Hello experts,
I am using field-symbol as internal table. I cant use AT NEW statement inside this loop.
Can u pls provide alternative for above control break statement.
Thanks in advance.
Zak.Hi,
to use control break statement, first you should sort the internal table and then you use it.
Take one example:
data: begin of it9 occurs 4,
f1,
f2,
end of it9.
it9 = '1A'. append it9. "Fill it9 with data
it9 = '3A'. append it9.
it9 = '1B'. append it9.
it9 = '2B'. append it9.
sort it9 by f1.
loop at it9.
at new f1.
write: / 'start of:', it9-f1.
endat.
at end of f1.
write: / 'end of:', it9-f1.
endat.
endloop.
free it9.
Hope it is helpful.
Regards,
Chris Gu -
HT4597 what will be the new alternatives for iWeb publishing, Idisk & photo gallery ?
what will be the new alternatives for iWeb publishing, Idisk & photo gallery ?
Thanks for the reply that there will be 3rd party support.
One of the main reasons why I went from PC to Mac was because of all these cool features.
Am dissapointed to see them leave. ( Iweb, Photogallery, Idisk... ) -
Alternative for FM 'NAMETAB_GET'
Hi ,
Can any one suggest an alternative for the FM 'NAMETAB_GET' in 4.7.
Regards
ArunHi,
You did noyt specify why you want this alternative for.
Anyways, just check out RFC_GET_NAMETAB, which is also quite similar.
Regards,
Anand Mandalika. -
hello
In standard BOM for PP in T-code eg cs01 I can write alternative. But if I want to create WBS BOM with T-code cs71 I can't see such field for alternative. I checked in help.sap.com that alternative for WBS BOM are not used. I don't know why but there is not alternative filed in CS71.
So is there any other way to get alternatives for WBS BOM like modification, exit etc.
I checked SAP notes for this but I can't find.
Any help?hello
Thank you for your answers.
I have business process where I need WBS alternative. Why? Because of history of changes. My client wants to have 2 versions of one WBS BOM. One for history only and second for operative work. After some changes in WBS BOM and finish the project my client wants to analyse historical version which is created when project starts and the last operative version of the same WBS BOM.
@Uddhab
>If we prepare two BOM for a single WBS and attach the same in the WBS, then 2 requirement will flow and there will additional >quantity in the production.
Yes, if we attach. I want to attach only one WBS BOM so I don't multiply quantity. -
Hi
I am migrating my desktop from Windows 2000 to Redhat Linux 9.
I have been using third party tool TOAD for accessing the data from the database. As TOAD does not have a Linux setup, can any one suggest an alternative for the same.
Thanks in advance.
Manojyou are posting in the wrong forum.. this forum is for the Desktop Datacenter Oracle on Linux VMware kit..
you'll get better luck in other forums or better yet, Google.. I put toad and linux as keywords and got lots of hits on TOra.. so you might research that way..
good luck,
locking.
Maybe you are looking for
-
LR-6 failed to load on my computer as it requires a 64 Bit computer.
I need LR to read my RAF files from my Fuji camera. What can I do? Nick
-
My phone went dead and I can't get it back on
I was using my cell phone and then I step away and a few minutes later we wouldn't turn on anymore. I have tried the on/volume thing, but nothing. What has caused and any suggestions on how to fix it.
-
Is there a setting to apply timestamps to my text messages for iPhone 5?
I just got the iPhone 5 yesterday and with my old phone (the Cosmos 2 from Verizon), I was able to see when each text was recieved. I feel that this feature is very useful, but the iPhone 5 doesn't have a setting for me to see that. I can only seen
-
Hello I have problem with activating your iphone 5c blue when connecting it to another macbook synchronized lot of unnecessary information in order not to delete one file, dropped all the settings and got the lock activation ID the machine I have act
-
How do I use an O2 micro sim in an iPad?