Allocations with Script Logic
Hi Experts,
We're trying to run script logic for allocations, but aren't able to sum to values to one Costelement.
In the Account dimension we have:
- Costelements (CE)
- Keyfigures (KF)
- Prices (PR)
What we want to do is:
write (KF_A * PR_A) + (KF_B * PR_B) to CE_A
Any suggestions on the right syntax would be very welcome.
Regards,
Vincent
Hi,
Can you explain me clearly so that i can give you solution.
Regards,
Naresh.K
Similar Messages
-
Incorrect value with Script Logic
Hello,
From initial value called 2008.ORC we want to calculate for each month the percentage , from child DIASMES.
Now, with the script logic ( I´ll put down later) we have an incorrect value in the column 2008.TOTAL.
In other words, I´m sure I´m wrong with "WHAT" or "WHERE sentence or maybe the operation "FACTOR=USING/TOTAL" fails because the crossing between dimensions it´s incorrect.
*RUNALLOCATION
*FACTOR = USING/TOTAL
*DIM FABRICA_MAQ WHAT=BAS(FABRICAFF); WHERE=BAS(FABRICAFF); USING=BAS(FABRICAFF);
*DIM PRODUTOS WHAT=BAS(TOTALPROD); WHERE=BAS(TOTALPROD); USING=SP;
*DIM TIME WHAT=2008.ORC;WHERE=BAS(2008.TOTAL); USING=BAS(2008.TOTAL);
*DIM TIPO WHAT=BAS(TOT); WHERE=BAS(TOT); USING=ST;
*DIM VARIAVEIS WHAT=MIXACABADA; WHERE=MIXACABADA; USING=DIASMES;
*DIM DATASRC WHAT=INPUT; WHERE=INPUT; USING=INPUT;
*DIM VERSAO WHAT=BUDGET; WHERE=BUDGET; USING=BUDGET;
*ENDALLOCATION
*COMMIT
The Key is to see in the column 2008.TOTAL ( when we selected "BAS") the value of parent divided into "DIASMES" !
Thanks !!Your factor statment references a TOTAL, but you don't reference the total in your DIM statements. If you look at the debug log carefully, you should notice that there's no calculation of a TOTAL value.
Try something like this. The only reason I move some dimensions from the *RUNALLOCATION up to the *XDIM's is for legibility, since the allocation makes no shifts to these dimensions. The logic should produce the same results, either way.
// These dimensions have no shift of data.
*XDIM_MEMBER VERSAO=BUDGET
*XDIM_MEMBER DATASRC=INPUT
// I'm assuming here that FACRICAFF is the top member of this dimension.
*XDIM_MEMBERSET FABRICA_MAQ = <ALL>
*RUNALLOCATION
*FACTOR = USING/TOTAL
*DIM PRODUTOS WHAT=BAS(TOTALPROD); WHERE=BAS(TOTALPROD); USING=SP; TOTAL=<<<
*DIM TIME WHAT=2008.ORC;WHERE=BAS(2008.TOTAL); USING=BAS(2008.TOTAL); TOTAL=<<<
*DIM TIPO WHAT=BAS(TOT); WHERE=BAS(TOT); USING=ST; TOTAL=<<<
*DIM VARIAVEIS WHAT=MIXACABADA; WHERE=MIXACABADA; USING=DIASMES; TOTAL=<<<
*ENDALLOCATION
*COMMIT -
Hello friends,
I am getting an error with running currency conversion in an app, the error says Invalid dimension "C_Category". Here is the script logic, I dont see C_Category anywhere. For the record, the name of dimension is category.
*RUN_PROGRAM CURR_CONVERSION
CATEGORY = %C_CATEGORY_SET%
GROUP = %GROUPS_SET%
TID_RA = %TIME_SET%
RATEENTITY = GLOBAL
OTHER = [ENTITY=%ENTITY_SET%]//For More than one other scope parameters: OTHER = [ENTITY=%ENTITY_SET%;INTCO=%INTCO_SET%...]
*ENDRUN_PROGRAMHello,
Variable %C_CATEGORY_SET% means set of members selected for Dimension C_CATEGORY. So, if you want to use CATEGORY instead replace it with %CATEGORY_SET%, but if are running Consolidations I think you need C_CATEGORY Dimension.
Regards,
Gersh -
Problem with Script logic logs
Hi Experts,
I am using BPC 7.5M with SQL Server 2008, I am looking into script logic log but found one very strange statement "(More than 300,000 records. Details are not being logged)", Earlier it was not showing this statement and was showing all the entries to be posted, Is there any setting we need to do for having all the entries in the log file.
Status log file showing as of now:
App: HEADCOUNT - Records to be posted are 310875 (calc diff = 0)
(More than 300,000 records. Details are not being logged)
Time to validate records: 100.3 sec.
Post Record Status
Submit count : 100001
Accept count : 100001
Reject count : 0
Post Record Status
Submit count : 200002
Accept count : 200002
Reject count : 0
Post Record Status
Submit count : 300003
Accept count : 300003
Reject count : 0
Post Record Status
Submit count : 310875
Accept count : 310875
Reject count : 0
Posting ok
Time to post records:325.4 sec.
Please Advice
Thanks & Regards,
RohitHi Rohit,
This is not a problem.
If the resultant number of records is more than 300,000, then the records are not logged.
This can be controlled by the UNLIMIT_PRINT_LOG appset parameter. By default, this is set as NO. This will allow only 300k records to be logged.
You can set the above parameter as YES to log all the records for the execution of all logics across the appset in all applications.
Warning:
Of course, it will add slow down the logic execution. Logging the records will always slow down the execution. The system has to open the file and keep writing all the records in the flatfile, which is a slow process. You can increase the speed of your logics by disabling this logging completely by using the CALCULATE_DIFFERENCE statement in your script logic for each commit section. You can reduce the logic execution time by disabling this logging.
Karthik AJ -
CSA: Use with Script Logic
Has anybody used CSA to protect a Script logic server. With so many remote applications attempting access to the script logic server and files, what method do you find is best to keep this server protected without opening up too many holes?
Thanks!
-WyleyI would make a group of servers that are allowed to talk to the Script login server and either turn off alerts for them or just make them informational.
Also create another protection policy if you want even more protection on that server. -
Package with script logic CANCELLED
Hi everybody,
I am trying to implement a very simple script logic that removes negative values from the Units account.
*XDIM_MEMBERSET C_CATEGORY=%C_CATEGORY_SET%
*XDIM_MEMBERSET TIEMPO=%TIEMPO_SET%
*XDIM_MEMBERSET MERCADO=%MERCADO_SET%
*XDIM_MEMBERSET ORG_VENTAS=%ORG_VENTAS_SET%
*XDIM_MEMBERSET CUSTOMER=BAS(TOTALCUSTOMERS)
*XDIM_MEMBERSET PRODUCT=BAS(00001)
*XDIM_MEMBERSET P_DATASRC=DRIVER
*XDIM_MEMBERSET ACCOUNT_SIM=Unit
*XDIM_MEMBERSET TIPO_CLIENTE=BAS(TOTAL_TOP)
[ACCOUNT_SIM].[#Unit]=IIF(([ACCOUNT_SIM].[Unit])*(-1)<0, 0, [ACCOUNT_SIM].[Unit])
*COMMIT
When I execute it with the Data Manager the result of the package is "Cancelled". I have one large dimension ("Customer" with more than 2000 elements) but there are not too many records in the database now. However, when I restrict the number of elements, the package works fine. It seems like a memory issue, I don't know... We are using SAP BPC NW 7.0 SP5
Any idea out there? Is our logic not 'optimized' for BPC?
Thanks a lot,
Mr. Albert MasHi Albert,
I think you're running into a dimensionality limit. I believe this was fixed in SP06.
In any case, it's easy to fix. Just add
*XDIM_MAXMEMBERS CUSTOMER = 1
after your other *XDIM statements.
You should be able to up this number a fair amount, depending on the number of members in other dimensions. In the script logic evaluation, there is code that multiplies the number of members in your memberset in each dimension and then attempts to assign the result to an INT datatype. I don't remember the size of the INT, but if you look at the short dump in ST22 of the SAP GUI, you'll see the code.
Hopefully that helps.
Ethan -
Declaration issues with script logic
we use to write the logic as below in 5.1
*MEMEBERSET(%PRODUCT%,"Desendents(PRODUCT_LTERM.TOT_PROD,999,LEAVES)")
*XDIM_MEMBERSET ACCOUNT_LTERM=100000000_D,110000000_D,120000000_D,130200000_D,
*XDIM_MEMBERSET DATASRC=INPUT
*XDIM_MEMBERSET ENTITY_LTERM=%ENTITY_LTERM_SET%
*XDIM_MEMBERSET PRODUCT_LTERM=%PRODUCT%
*XDIM_MEMBERSET RPTCURRENCY=LC
*XDIM_MEMBERSET SCENARIO=%SCENARIO_SET%
*XDIM_MEMBERSET TIME_LTERM=CY,CY+1
*WHEN *
*IS *
*REC(EXPRESSION=0)
*ENDWHEN
As we know that sql based keywords are not used now in thi new version 7.0
I want to know the replacement in 7.0 for *MEMBERSET() COMMAND and also
How * in when command for specificing consideratrion of all the declaration is replaced in 7.0Hi sheldon,
Thanks for your time in replying to the question. Chennuru and I are working together.
Let me give you a clear picture of our issue.
1. *memberset() command which is used to retrieve a list of members of a particular dimension, is not being recognised in 7.0NW version.
We want to know if we have any replacement or other format for this command.
2. After declaring the dimensions using XDIM_MEMBERSET statements for all the existing dimensions, if we need to manipulate on all the existing combinations we use
WHEN *
IS *
REC(EXPRESSION=0)
*ENDWHEN
In this case, the star to the right of the when is not recognised. Even if we replace * with <ALL> the result is not achieved.
We would like to know what must be used to select all the existing dimensions. -
Hi All
I am trying to write the following script
*INCLUDE ..\finance\system_constants.lgl
*XDIM_MEMBERSET RATE=AVG,END
*SELECT(%IP_Currencies%, "[ID]", "INPUTCURRENCYDIM", "[MD] = 'D' OR [MD]= 'M'") )
*XDIM_MEMBERSET INPUTCURRENCY= %IP_Currencies%
*XDIM_MEMBER RATESRC=RATEINPUT
*WHEN INPUTCURRENCY.MD
*IS "D"
*REC(EXPRESSION=ROUND(1/%VALUE%,6),RATESRC="RATECALC")
*ELSE
*REC(RATESRC="RATECALC")
*ENDWHEN
*CLEAR_DESTINATION
*DESTINATION RATESRC=RATECALC
My LGX file looks like this.
*XDIM_MEMBERSET RATE=AVG,END
*XDIM_MEMBERSET INPUTCURRENCY= DZD,USD,ARS,AUD,ATS,BSD,BBD,BEF,BMD,BRL,GBP,BGN,CAD,CLP,CNY,CYP,CZK,DKK,XCD,EGP,EUR,FJD,FIM,FRF,DEM,XAU,GRD,HKD,HUF,ISK,INR,IDR,IEP,ILS,ITL,JMD,JPY,JOD,LBP,LUF,MYR,MXN,NZD,NOK,NLG,PKR,PHP,XPT,PLN,PTE,ROL,RUR,SAR,XAG,SGD,SKK,ZAR,KRW,ESP,XDR,SDD,SEK,CHF,TWD,THB,TTD,TRL,VEB,ZMK
*XDIM_MEMBER RATESRC=RATEINPUT
*WHEN INPUTCURRENCY.MD
*IS "D"
*REC(EXPRESSION=ROUND(1/%VALUE%,6),RATESRC="RATECALC")
*ELSE
*REC(RATESRC="RATECALC")
*ENDWHEN
*CLEAR_DESTINATION
*DESTINATION RATESRC=RATECALC
It gets validated fine and it also runs successfully through DPM. But the problem i am facing is that the above script is only running and posting data for USD in RATECALC where as I have lot many currencies listed in "INPUTCURRENCYDIM". It does not execute for any other currency except for USD. I want to run it for all the currencies.
Please suggest.
Diksha.
Edited by: Diksha Chopra on Jun 3, 2010 9:23 PMHi Diksha,
Please check in your inputcurrency dimension, how many members are there with the property MD as D?
I would suggest you to change your scritp to
*INCLUDE ..\finance\system_constants.lgl
*XDIM_MEMBERSET RATE=AVG,END
*XDIM_MEMBER RATESRC=RATEINPUT
*WHEN INPUTCURRENCY.MD
*IS "D"
*REC(EXPRESSION=ROUND(1/%VALUE%,6),RATESRC="RATECALC")
*IS "M"
*REC(RATESRC="RATECALC")
*ENDWHEN
*COMMIT
*CLEAR_DESTINATION
*DESTINATION RATESRC=RATECALC
Hope this helps. -
*Prior statement in script logic
Hi,
I'm getting started with script logic and I'm trying to create a record that will be the result of the current amount in a specific account minus the amount for the same account in the previous period.
I was thinking to use a "prior" statement, but not really sure how to do that. Do somebody could write me an example that would sbustract my current amount minus the amount from the previous period where the account is the same in a sql logic?
Thanks
MartinHi,
This should do the trick.
*INCLUDE SYSTEM_CONSTANTS.LGL
*XDIM_MEMBERSET TIMEDIM=PRIOR,%TIME_SET%
*XDIM_Member DataSrc=INput
*WHEN *
*IS *
*REC(EXPRESSION=GET(DATASRC="INPUTSAP",TIME=PRIOR)-GET(DATASRC="INPUTSAP"),NOADD,DATASRC="Movement")
*ENDWHEN
*commit
Cheers,
AvdB
Edited by: Gert Andries van den Berg on Aug 12, 2009 9:14 AM -
Script logic folder empty!
Hello every body,
After installing Patch1 of BPC MS 7.5 SP04 I had a problem with script logic folder when expanding the Legal application in the Admin console. The folder is empty, no Logic found, even the Default.LGF!!!
When I try to create a new one through the "Create New Logic" link in the Action Pane, I get this error displayed:
System.IO.DirectoryNotFoundException: Could not find a part of the path 'E:\BPC\Data\Webfolders\<AppSet>\AdminApp\Legal(my application)'
When I tried to access this path I didn't find it, I found: 'C:\PC_MS\Data\Webfolders\<AppSet>\AdminApp\Legal' instead.
PS:I performed an update for the client with an Admin Account, after installing the patch.
Any help?
Thank you in advance.Hello,
Thank you nilanjan for your reply
We have resolved the issue.
The problem was that on the BPC server on OS level the folder E:\BPC was not shared and we have added the everyone group to have access to the folder and now all the users that are using the BPC client can see the content of the Script logic in BPC Admin.
The File Share Server was pointing to E:\BPC\Data but the folder BPC was not shared and we have added the group: Domain Users to access the network path. Now we can see all the files in the appset Production \ Application \Legal\ Script Logic . We can create a new Script logic with success.
Thank you. -
Script Logic wrong results in migration to BPC 7.5M
Hi Experts,
We have an issue with Script Logic calculation after migration of BPC 7.0M to BPC 7.5M. At the beginning we thought that was the issue mentioned in SAP note 1515973, because we had SP03.
Now we have SP07 and the problems persist. The result of a simply product between two numbers is wrong. For example in the next Default Script Logic:
*WHEN TIME.GROUP
*IS INPUT
*WHEN CATEGORY
*IS <> "ACTUAL","B_ACTUAL"
*WHEN ACCOUNTP
*IS "M_SALES"
*REC(FACTOR=GET(ACCOUNTP="PRCT_SALES_BASIC"),ACCOUNTP="700200")
*REC(FACTOR=GET(ACCOUNTP="PRCT_SALES_PROMO"),ACCOUNTP="700230")
*REC(FACTOR=GET(ACCOUNTP="PRCT_SALES_LIMITED"),ACCOUNTP="700235")
*ENDWHEN
*ENDWHEN
*ENDWHEN
*COMMIT
Input: M_SALES = -195,75933
Input: PRCT_SALES_BASIC = 1
Result: 700200 = -195
Are there some application parameter that defins de presicion of logic calculations?
Some ideas? Thanks in advance.
Best Regards
AlbertHi Jörg,
We changed to a new server with a multi-server architecture 64 bit (BPC Server and DB Server).
Did you have the same problem? How do you resolve it?
Thanks in advance.
Best regards,
Albert -
Script logic using Dimension.Property
Hello, Gurus!
I have next problem with script logic:
Dimension Company
Company1
Company2...
Dimension Document
Document1
Document2...
Dimension Document has property PCompany, where there is Company ID.
I need to summation all data for Company=Company2 (for example).
How can I choose records from Dimension Document for PCompany=Company2 with BPC script logic?
Thanks!
Regards,
Svetlana.Hello Gersh!
Thank you very much. It's worked.
I should clarify the question
I have several company which I choose with property of Company (for example, INTERCOMP=Y)
So, I have :
*SELECT(%COMPANY%,ID,COMPANY,INTERCOMP=Y)
*WHEN Document.PCompany
*IS %COMPANY%
*ENDWHEN
This construction doesn't work.
Regards,
Svetlana. -
BPC 7.5 NW SP 4 - ERRORVALIDATION SCRIPT LOGIC WITH PROGRAM CURR_CONVERSION
Hi Gurus
I´m copying script logic for currency conversion for consolidation application, but when I want to validate this code
*RUN_PROGRAM CURR_CONVERSION
*ENDRUN_PROGRAM
the system generate this error "run program error, message number:""
is very strange because when i run without "N" or any other letter, the validation is correct, for example:
**RUN_PROGRAM CURR_CONVE
*ENDRUN_PROGRAM
is sensitive when I write CURR_CONVERSION
do you have any idea what happend with this?
thanks in advanceLucio,
This is not a valid currency conversion call:
*RUN_PROGRAM CURR_CONVERSION
*ENDRUN_PROGRAM
You need to provide the necessary argument parameters. I assume that it is validating "correctly" when you remove letters because it can't find the program and just assumes that it will show up at runtime. These other permutations won't work either.
Please search the forum and take a look at help.sap.com for examples of currency conversion. There are a lot of good examples out there.
Ethan -
Problems with "GET" in a Script Logic
Hi,
I created a Script Logic in BPC NW with the following code:
*WHEN *
*IS *
*REC(GET(CONCEPTO=M30121),CONCEPTO=M213)
*ENDWHEN
And I click "Validate and Save" and I get this error:
Validation Error
Unknown Dimension Name in Keyword: "*:
What's happening?
Regards,
Miguel.Thanks, but my problem is with "GET" function in Script Logic. You don't look at what I do with the code because it's an example. The problem is that the GET function doesn't work.
I created a Script Logic in BPC NW with the following code:
*WHEN CONCEPTO
*IS M30121
*REC(FACTOR=GET(CONCEPTO=M213),CONCEPTO=M30121)
*ENDWHEN
And I click "Validate and Save" and I get this error:
Validation Error
Unknown Dimension Name in Keyword: "M213):
And if the code is like this:
*WHEN CONCEPTO
*IS "M30121"
*REC(FACTOR=GET(CONCEPTO="M213"),CONCEPTO=M30121)
*ENDWHEN
The error is this:
Validation Error
Unknown Dimension Name in Keyword: ""M213"):
Regards,
Miguel. -
How to copy applications using script logic with conditions
Hi,
I have two copy data between application A to application B, but only i want to copy the March's Data of Application A. Dimensions are the same in both applications
I'm going to use this script logic, ¿this script will work?
*WHEN TIME
*IS "2009.MAR"
*DESTINATION_APP=B
Thanks in advance
Regards,
JuanHi all,
Finally I solved the issue, the problem was that i haven't add this line in the script logic:
TASK(Execute formulas,USER,%USER%)
But now i need to pass in the script logic as an input: entity and time. Below is the code I prepare, it has no error but it doesn't work. ¿any idea?
Thanks in advance
Regards,
Juan
*SSIS PACKAGE *
'DEBUG(ON)
PROMPT(RADIOBUTTON,%CHECKLCK%,"Select whether to check work status settings when running logic.",1,{"Yes, check for work status settings before running logic","No, do not check work status settings"},{"1","0"})
PROMPT(SELECTINPUT,,,"Please select entity and time to copy data from LegalAppNceu to LegalApp",%ENTITY_DIM%%TIME_DIM%)
TASK(Execute formulas,USER,%USER%)
TASK(Execute formulas,APPSET,%APPSET%)
TASK(Execute formulas,APP,%APP%)
TASK(Execute formulas,LOGICFILE,%APPPATH%..AdminApp%APP%CopyApplication.lgx)TASKTASK(Execute formulas,RUNMODE,1)
TASK(Execute formulas,LOGICMODE,1)
TASK(Execute formulas,CHECKLCK,%CHEKCLCK%)
SCRIPTLOGIC
*DESTINATION_APP=LEGALAPP
*SKIP_DIM= COSTCENTER
*WHEN ENTITY
*IS "%ENTITY_DIM%"
*WHEN TIME_DIM
*IS "%TIME_DIM%"
*REC(FACTOR=1)
*ENDWHEN
*ENDWHEN
*COMMIT
Maybe you are looking for
-
When I plug my iPod in to my computer iTunes crashes!
HELP!!! I've owned this iPod Mini for three months and now when I plug my iPod Mini in to my Mac labtop computer iTunes crashes and there isn't any more music on my iPod!!! What can I do????????
-
Have a new iPad 5 Mini with the iOS 6.1.3 Trying to open up a webpage in safari and keep getting the message "You do not have permission to view "ArWx" " along with a No Permission title on the tab. My cookies are set to always accept. Anything th
-
Two finger swipe on trackpad with control key works fine for zooming screen, but it does not remain in force -- something turns it off, & I have to log out and back in to get it to work again. 10.7, 2.8GHz Intel Core i7, 8GB RAM.
-
When I have picked the horse or horses I wish to bet on and entered the amount of money I wish to bet and click on Bet now nothing happens it will also NOT clear the beting slip. I have been useing Firefox for about 10 years and this is the first pro
-
Formating in NTFS or ext3?
I just bought a media player and it won't recognize my Apple formatted hard drive. When I contacted support, they told me that most media players won't recognize Apple format (Wow!!!). They told me I should format in NTFS or ext3. How can this be don