on 2016 Dec 09 3:09 PM
I need calculate this account's
([ACCOUNT].[10001210000000],[FLOW].[109],[PARTNER].[I_ALL])-([ACCOUNT].[10001210305000],[FLOW].[101],[PARTNER].[I_1000])-([ACCOUNT].[10001210305000],[FLOW].[106],[PARTNER].[I_1000])-([ACCOUNT].[10001210305000],[FLOW].[132],[PARTNER].[I_1000])-([ACCOUNT].[10001210605000],[FLOW].[101],[PARTNER].[I_1000])-([ACCOUNT].[10001210605000],[FLOW].[106],[PARTNER].[I_1000])-([ACCOUNT].[10001210605000],[FLOW].[132],[PARTNER].[I_1000])+([ACCOUNT].[10001220032300],[FLOW].[999],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[109],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[116],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[117],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[149],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[999],[PARTNER].[I_1000])+([ACCOUNT].[10001220090000],[FLOW].[999],[PARTNER].[I_ALL])-([ACCOUNT].[10001220090000],[FLOW].[109],[PARTNER].[I_ALL])-([ACCOUNT].[10001220120000],[FLOW].[149],[PARTNER].[I_ALL]), ACCOUNT = 70000000000011)
I try to use this constuction on Sqript logic, and had error
*XDIM_MEMBERSET PERIOD = %PERIOD_SET% *XDIM_MEMBERSET VERSION = %VERSION_SET% *XDIM_MEMBERSET CONS_GROUP = %CONS_GROUP_SET% *XDIM_MEMBERSET ENTITY=%ENTITY_SET% *XDIM_MEMBERSET ACCOUNT AS %ACLIST%=BAS(10000000000000) *XDIM_ADDMEMBERSET ACCOUNT = 70000000000014 *XDIM_MEMBERSET FLOW = BAS(999) *FOR %AC% = %ACLIST% *WHEN ACCOUNT *IS %AC% *REC( EXPRESSION = (([ACCOUNT].[10001210000000],[FLOW].[109],[PARTNER].[I_ALL])-([ACCOUNT].[10001210305000],[FLOW].[101],[PARTNER].[I_1000])-([ACCOUNT].[10001210305000],[FLOW].[106],[PARTNER].[I_1000])-([ACCOUNT].[10001210305000],[FLOW].[132],[PARTNER].[I_1000])-([ACCOUNT].[10001210605000],[FLOW].[101],[PARTNER].[I_1000])-([ACCOUNT].[10001210605000],[FLOW].[106],[PARTNER].[I_1000])-([ACCOUNT].[10001210605000],[FLOW].[132],[PARTNER].[I_1000])+([ACCOUNT].[10001220032300],[FLOW].[999],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[109],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[116],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[117],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[149],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[999],[PARTNER].[I_1000])+([ACCOUNT].[10001220090000],[FLOW].[999],[PARTNER].[I_ALL])-([ACCOUNT].[10001220090000],[FLOW].[109],[PARTNER].[I_ALL])-([ACCOUNT].[10001220120000],[FLOW].[149],[PARTNER].[I_ALL])), ACCOUNT = 70000000000011) *ENDWHEN *NEXT *COMMIT
Request clarification before answering.
Just to explain you the idea of correct script (simple)
You want to store the:
[ACCOUNT].[10001210000000],[FLOW].[109],[PARTNER].[I_ALL]
Where: 10001210000000 - parent, 109 - base, I_ALL - parent
into:
[ACCOUNT].[70000000000014],[FLOW].[114],[PARTNER].[I_XXX]
70000000000014 - base, 114 - base, I_XXX - base
Script will be:
*WHEN ACCOUNT
*IS BAS(10001210000000)
*WHEN FLOW
*IS 109
*WHEN PARTNER
*IS BAS(I_ALL)
*REC(EXPRESSION=%VALUE%,ACCOUNT=70000000000014,FLOW = 114,PARTNER=I_XXX)
*ENDWHEN
*ENDWHEN
*ENDWHEN
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
That is, I should like to do for each node?
eg
*WHEN ACCOUNT
*IS BAS(10001210000000)
*WHEN FLOW
*IS 109
*WHEN PARTNER
*IS BAS(I_ALL)
*REC(EXPRESSION=%VALUE%,ACCOUNT=70000000000014,FLOW = 114,PARTNER=I_XXX)
*ENDWHEN
*ENDWHEN
*ENDWHEN
*COMMIT
*WHEN ACCOUNT
*IS BAS(10001220032300)
*WHEN FLOW
*IS 109
*WHEN PARTNER
*IS BAS(I_ALL)
*REC(EXPRESSION=%VALUE%,ACCOUNT=70000000000014,FLOW = 114,PARTNER=I_XXX)
*ENDWHEN
*ENDWHEN
*ENDWHEN
You have to understand relationship between nodes and base members and create your script for correct sets of base members.
Don't use COMMIT!!!!!
Correct:
*WHEN ACCOUNT
*IS BAS(10001210000000)
*WHEN FLOW
*IS 109
*WHEN PARTNER
*IS BAS(I_ALL)
*REC(EXPRESSION=%VALUE%,ACCOUNT=70000000000014,FLOW = 114,PARTNER=I_XXX)
*ENDWHEN
*ENDWHEN
*IS BAS(10001220032300)
*WHEN FLOW
*IS 109
*WHEN PARTNER
*IS BAS(I_ALL)
*REC(EXPRESSION=%VALUE%,ACCOUNT=70000000000014,FLOW = 114,PARTNER=I_XXX)
*ENDWHEN
*ENDWHEN
*ENDWHEN
You need to have common outer WHEN/ENDWHEN loop to aggregate records! Like here.
Thanx, i understand .
I.e. my full logic must be like that
*XDIM_MEMBERSET ACCOUNT BAS(10001210000000), BAS(10001220032300), BAS(10001220120000)
*XDIM_ADDMEMBERSET ACCOUNT 10001220090000,10001210305000,10001210605000
*XDIM_MEMBERSET FLOW BAS(999)
*XDIM_ADDMEMBERSET FLOW 116,117,149,109,101,102,132
*WHEN ACCOUNT
*IS BAS(10001210000000)
*WHEN FLOW
*IS 109
*WHEN PARTNER
*IS BAS(I_ALL)
*REC(EXPRESSION=%VALUE%,ACCOUNT=70000000000014,FLOW = 114,PARTNER=I_XXX)
*ENDWHEN
*ENDWHEN
............
*WHEN ACCOUNT
*IS 10001210305000 //base level
*WHEN FLOW
*IS 110
*WHEN PARTNER
*IS BAS(I_1000)
*REC(EXPRESSION=%VALUE%*(-1),ACCOUNT=70000000000014,FLOW = 114,PARTNER=I_XXX)
*ENDWHEN
*ENDWHEN
*ENDWHEN
code is too long, there are no possibilities to count it all through the MDX, and then write down the amount of the account of ... view that there is such a construction loke this :
[ACCOUNT].[#7000000000014],[FLOW].[114],[PARTNER].[I_3100] = [account].[1],[flow].[1],[partner].[1] + [account].[2],[flow].[2],[partner].[1] + [account].[3],[flow].[1],[partner].[2]
Something like!
...
*IS 10001210305000 //base member
*WHEN FLOW
*IS 101,106,132 //base members
*WHEN PARTNER
*IS BAS(I_1000) //I_1000 is a parent???
*REC(EXPRESSION=-%VALUE%,ACCOUNT=70000000000014,FLOW = 114,PARTNER=I_XXX)
*ENDWHEN
*ENDWHEN
🙂 what for: %VALUE%*(-1) simply -%VALUE%
" *IS BAS(I_1000) //I_1000 is a parent??? - Yes it's parent in I_aLL node "
I'm beginner, that's why I use this construction :
" %VALUE%*(-1) "
Logic I can use multiple sampling like in your example :
*IS 101,106,132 ???
How corretly use it in formula must be
-([ACCOUNT].[10001210305000],[FLOW].[101],[PARTNER].[I_1000])
+ ([ACCOUNT].[10001210305000],[FLOW].[106],[PARTNER].[I_1000])
-([ACCOUNT].[10001210305000],[FLOW].[132],[PARTNER].[I_1000])
I have already told you that I can show you the full correct script ONLY if you explain everything about 3 dimensions hierarchies! Please provide full info!
*WHEN ACCOUNT
...
*IS 10001210305000 //base
*WHEN FLOW
*IS 101,132 //base - condition for negative records
*WHEN PARTNER
*IS BAS(I_1000) //parent
*REC(EXPRESSION=-%VALUE%,ACCOUNT=70000000000014,FLOW = 114,PARTNER=I_XXX)
*ENDWHEN //PAPTNER
*IS 106 //base - condition for positive records
*WHEN PARTNER
*IS BAS(I_1000) //parent
*REC(EXPRESSION=%VALUE%,ACCOUNT=70000000000014,FLOW = 114,PARTNER=I_XXX)
*ENDWHEN //PARTNER
*ENDWHEN //FLOW
*IS .... // another account
...
*ENDWHEN //ACCOUNT
In general you have to rethink the whole process:
You have to aggregate base members, not parents! To understand the relationships I need to see the hierarchy for 3 dimensions involved!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
"The amount we want to store on the base member account (700000000014), partner and flow - is base level too, unfortunately I do not understand the question about hierarchies (if I will create a new hierarchy, I will take error like that:
Base member '10001210000000' cannot be the parent of '10001210010000' in PARENTHH1"
"partner and flow - is base level too" FLOW = 114? PARTNER=????
You don't need to create any new hierarchy, please show existing!
ACCOUNT
FLOW
PARTNER
" *IS BAS(I_1000) //I_1000 is a parent??? - Yes it's parent in I_aLL node "
I'm beginner, that's why I use this construction :
" %VALUE%*(-1) "
Logic I can use multiple sampling like in your example :
*IS 101,106,132 ???
How corretly use it in formula must be
-([ACCOUNT].[10001210305000],[FLOW].[101],[PARTNER].[I_1000])
+ ([ACCOUNT].[10001210305000],[FLOW].[106],[PARTNER].[I_1000])
-([ACCOUNT].[10001210305000],[FLOW].[132],[PARTNER].[I_1000])
You are posting unreadable question - do you look on the result after you post something? Or "it's not my problem..."?
Also for questions about script logic full information has to be provided in line with:
https://blogs.sap.com/2014/01/31/how-to-ask-questions-about-script-logic-issues/
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
I'm sorry, I didn't look the result after posting. Can You help me to find error in my sqript logic.
Our company have consolidation model, which has dimension like ACCOUNT(A),AUDITID(D),CONS_GROUP(G),CURRENCY(R),CURRENCY_TRANS(R),ENTITY(E),FLOW(S),MATURING(U),PARTNER(I),PERIOD(T),VERSION(C) and i need aggregate the values posted on specific combinations of accounts , flows, and partner and the aggregated amount under alternate distination account 70000000000014, flow 114 combination.
eg amount = [account].[1],[flow].[1],[partner].[1] + [account].[2],[flow].[2],[partner].[1] + [account].[3],[flow].[1],[partner].[2]
I use this logic
*XDIM_MEMBERSET PERIOD = %PERIOD_SET%
*XDIM_MEMBERSET VERSION = %VERSION_SET%
*XDIM_MEMBERSET CONS_GROUP = %CONS_GROUP_SET%
*XDIM_MEMBERSET ENTITY=%ENTITY_SET%
*XDIM_MEMBERSET ACCOUNT=10001210000000,10001210305000,10001210605000,10001220032300,10001220090000,10001220120000,70000000000014
*XDIM_MEMBERSET FLOW=BAS(999)
*XDIM_MEMBERSET PARTNER=BAS(I_ALL)
*WHEN ACCOUNT
*IS 70000000000014
*WHEN FLOW
*IS 114
*REC( EXPRESSION = %VALUE% + (([ACCOUNT].[10001210000000],[FLOW].[109],[PARTNER].[I_ALL])-([ACCOUNT].[10001210305000],[FLOW].[101],[PARTNER].[I_1000])-([ACCOUNT].[10001210305000],[FLOW].[106],[PARTNER].[I_1000])-([ACCOUNT].[10001210305000],[FLOW].[132],[PARTNER].[I_1000])-([ACCOUNT].[10001210605000],[FLOW].[101],[PARTNER].[I_1000])-([ACCOUNT].[10001210605000],[FLOW].[106],[PARTNER].[I_1000])-([ACCOUNT].[10001210605000],[FLOW].[132],[PARTNER].[I_1000])+([ACCOUNT].[10001220032300],[FLOW].[999],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[109],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[116],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[117],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[149],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[999],[PARTNER].[I_1000])+([ACCOUNT].[10001220090000],[FLOW].[999],[PARTNER].[I_ALL])-([ACCOUNT].[10001220090000],[FLOW].[109],[PARTNER].[I_ALL])-([ACCOUNT].[10001220120000],[FLOW].[149],[PARTNER].[I_ALL])), ACCOUNT = 70000000000014, FLOW = 114)
*ENDWHEN
*ENDWHEN
*COMMIT
when I launch DM packed I have message: "0 RECORD GENERATED"
my LOG
APPLICATION:Consolidation [INFO] GET_DIM_LIST(): I_APPL_ID="Consolidation", #dimensions=13 ACCOUNT,AUDITID,CONS_GROUP,CURRENCY,CURRENCY_TRANS,ENTITY,FLOW,MATURING,MEASURES,PARTNER,PERIOD,SEGMENT,VERSION #dim_memberset=6 PERIOD:2016.05,1 in total. VERSION:V01,1 in total. ENTITY:2230,2270,2 in total. ACCOUNT:10001210000000,10001210305000,10001210605000,10001220032300,10001220090000,...7 in total. FLOW:001,101,102,103,104,...89 in total. PARTNER:1000011215,1000013180,1000013522,1000013571,1000013572,...584 in total.
REC :%VALUE% + (([ACCOUNT].[10001210000000],[FLOW].[109],[PARTNER].[I_ALL])-([ACCOUNT].[10001210305000],[FLOW].[101],[PARTNER].[I_1000])-([ACCOUNT].[10001210305000],[FLOW].[106],[PARTNER].[I_1000])-([ACCOUNT].[10001210305000],[FLOW].[132],[PARTNER].[I_1000])-([ACCOUNT].[10001210605000],[FLOW].[101],[PARTNER].[I_1000])-([ACCOUNT].[10001210605000],[FLOW].[106],[PARTNER].[I_1000])-([ACCOUNT].[10001210605000],[FLOW].[132],[PARTNER].[I_1000])+([ACCOUNT].[10001220032300],[FLOW].[999],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[109],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[116],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[117],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[149],[PARTNER].[I_ALL])-([ACCOUNT].[10001220032300],[FLOW].[999],[PARTNER].[I_1000])+([ACCOUNT].[10001220090000],[FLOW].[999],[PARTNER].[I_ALL])-([ACCOUNT].[10001220090000],[FLOW].[109],[PARTNER].[I_ALL])-([ACCOUNT].[10001220120000],[FLOW].[149],[PARTNER].[I_ALL]))
CALCULATION BEGIN:
QUERY PROCESSING DATA QUERY TIME : 1.00 ms.
0 RECORDS QUERIED OUT.
QUERY REFERENCE DATA QUERY TIME : 6.00 ms.
1137 RECORDS QUERIED OUT.
CALCULATION TIME IN TOTAL :0.00 ms.
NO RECORDS GENERATED.
CALCULATION END.
ENDWHEN ACCUMULATION: 0
RECORDS ARE GENERATED.
SCRIPT RUNNING TIME IN TOTAL:8.00 s.
LOG END TIME:2016-12-12 11:19:19 File path: \ROOT\WEBFOLDERS\T2_BPC\Consolidation\PRIVATEPUBLICATIONS\007684\tempfiles\20161212111911\006NZJ9W8EFKHZWWOUO4CGG1Y_CAPEXTEST.LOG
Actually you want to sum the following:
+[ACCOUNT].[10001210000000],[FLOW].[109],[PARTNER].[I_ALL]
-[ACCOUNT].[10001210305000],[FLOW].[101],[PARTNER].[I_1000]
-[ACCOUNT].[10001210305000],[FLOW].[106],[PARTNER].[I_1000]
-[ACCOUNT].[10001210305000],[FLOW].[132],[PARTNER].[I_1000]
-[ACCOUNT].[10001210605000],[FLOW].[101],[PARTNER].[I_1000]
-[ACCOUNT].[10001210605000],[FLOW].[106],[PARTNER].[I_1000]
-[ACCOUNT].[10001210605000],[FLOW].[132],[PARTNER].[I_1000]
+[ACCOUNT].[10001220032300],[FLOW].[999],[PARTNER].[I_ALL]
-[ACCOUNT].[10001220032300],[FLOW].[109],[PARTNER].[I_ALL]
-[ACCOUNT].[10001220032300],[FLOW].[116],[PARTNER].[I_ALL]
-[ACCOUNT].[10001220032300],[FLOW].[117],[PARTNER].[I_ALL]
-[ACCOUNT].[10001220032300],[FLOW].[149],[PARTNER].[I_ALL]
-[ACCOUNT].[10001220032300],[FLOW].[999],[PARTNER].[I_1000]
+[ACCOUNT].[10001220090000],[FLOW].[999],[PARTNER].[I_ALL]
-[ACCOUNT].[10001220090000],[FLOW].[109],[PARTNER].[I_ALL]
-[ACCOUNT].[10001220120000],[FLOW].[149],[PARTNER].[I_ALL]
And store result in:
[ACCOUNT].[70000000000014],[FLOW].[149],[PARTNER].[I_ALL]
Correct?
if I understand correctly, I have to change the start script:
*XDIM_MEMBERSET ACCOUNT BAS(10001210000000), BAS(10001220032300), BAS(10001220120000)
*XDIM_ADDMEMBERSET ACCOUNT 10001220090000,10001210305000,10001210605000
*XDIM_MEMBERSET FLOW BAS(999)
*XDIM_ADDMEMBERSET FLOW 116,117,149,109,101,102,132
The amount we want to store on the base member account (700000000014), partner and flow - is base level too, unfortunately I do not understand the question about hierarchies (if I will create a new hierarchy, I will take error like that:
Base member '10001210000000' cannot be the parent of '10001210010000' in PARENTHH1
| User | Count |
|---|---|
| 30 | |
| 6 | |
| 4 | |
| 4 | |
| 3 | |
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.