Default Script Logic Execution
hi friends
I created script logic & placed in default logic. I created Input Schedule and saved, but default script logic is not executed
BPC 7.0NW version.
What might be the reason?
Joe
Save the input schedule means you just saved an excel file into file server. Nothing else will happen.
You have to send data from that input schedule or from other.
Every time when you send data defaul logic is executed. Save of a excel file doesn't means send data.
Regards
Sorin Radulescu
Edited by: Sorin Radulescu on Nov 2, 2010 11:50 AM
Similar Messages
-
Multiple script logics in default logic... can you control execution ?
Hi Gurus,
My default logic consists of two .LGF files both of which do two different Logics functions e.g. A and B
For one input template when the user saves the data I would like Logic A be run and not Logic B.
For the second input template I would like the Logic B to be executed and not Logic A.
Is there a way to achieve this ?
thanksHi Daniel,
The point is that his question not seems related to the data itself but to the screen, maybe a special operation for a screen?
First scenario where the data itself have the reference of the operation. He might be then be able to distinguish even in a scriptlogic.
Second scenario: The calculation is driven by the screen itself. Then he have several oportunities.
1) Add extra information if possible in one unused dimension for the purpose of this calculation and use this information to distinguish the operation
2) trigger the calculation on the default script logic of another application and bypass the calculation with a change of destination_app
3) In a routing schema in a BADI you will still need to implement one of the two above points or as you know drive the operations through the dimension file ;).
Best regards,
Philippe
Edited by: Martin, Philippe on Mar 30, 2010 3:45 PM -
Line numbers in Script Logic editor
Hi everybody,
when using the default Script Logic editor in BPC NW I can not see any Line Numbers (or Column Numbers) in the edited script.
When an error is detected by the system after validating the script, the error message sometimes refers to a certain Line Number where the error occured.
Is there a better way than manually counting the lines from the top (which can be quite a task when editing, say 500 lines) ?
Do I miss something here or are you all using alternative editors ?
Please give me some input.
Regards.
WolfgangHi Nilanjan,
thanks for the quick answer.
That would mean that I always need to switch from BPC frontend Script Editor into BW and start a transacion and program there. I would have hoped, that simole line numbers would be a standard feature in the BPC frontend editor itself. Nevertheless...
Best regards.
Wolfgang -
Test script logic file - Errror "Invalid Dimension Account"
Hi BPC Experts,
I am a new bee in BPC and have developed HCM applicaton in BPC 5.1. The Appset contains Finance, Rate & HCM applications.
I am working on HCM and wants to write a script logic file for HCM and it is giving an ERROR "Invalid Dimensin Account".
I have following dimensions in HCM Application:
account_hc --> type A
category_hc --> type C
company_hc --> type E
time_hc --> time t
costcenter_hc --> type u
datasrc_hc --> type d
employerole_hc --> type u
geography_hc --> type u
rptcurrency_hc --> type r.
I had defined Dimensions in system_cnstants file as mentioned below.
// application constants
*FUNCTION CATEGORYDIM =CATEGORY_HC
*FUNCTION TIMEDIM =TIME_HC
*FUNCTION CURRENCYDIM =RPTCURRENCY_HC
*FUNCTION ENTITYDIM =COMPANY_HC
*FUNCTION ACCOUNTDIM =ACCOUNT_HC
*FUNCTION INTCODIM =INTCO
*FUNCTION CATEGORYDIM =CATEGORY
*FUNCTION TIMEDIM =TIME
*FUNCTION CURRENCYDIM =RPTCURRENCY
*FUNCTION ENTITYDIM =ENTITY
*FUNCTION ACCOUNTDIM =ACCOUNT
// This part is needed when a RATE cube
// is associated to the application
// (FX = single or multi currency)
*FUNCTION THISAPP =HCM
*FUNCTION RATEAPP =RATE
*FUNCTION RATEENTITYDIM =RATESRC
*FUNCTION RATEACCOUNTDIM =RATE
*FUNCTION INPUTCURRENCYDIM =INPUTCURRENCY
*FUNCTION RATEENTITYMBR =RATEINPUT
*FUNCTION RATESRCCALCMBR =RATECALC
*FUNCTION AVGRATEID=AVG
*FUNCTION ENDRATEID=END
I tried to validate and save standard default script logic. But it gives me an error " NO match defined for lookup dimension Category"
So I could not use default logic file to write my script logic. Hence I have created HCM logic file. and Given the following script logic.
*XDIM_MEMBERSET ACCOUNT = XYZ_INC_RetPlan
*WHEN ACCOUNT
*IS XYZ_INC_RetPlan
*REC(FACTOR = 1.1, ACCOUNT)
*ENDWHEN
*COMMIT
While validat & save, I get an error "Invalid Dimension Account".
I do not understand why these errors occuring.
I have checked Category & Account dimensions checked. Every thing is ok. I have created Input schedules and they are working ok. It means the dimensions are fine.
Then why the error ?
Can you guys please guide me.
Appreciate your kind help.Eswara,
try to close down BPC for ExCEl in case your IS/Reports are trying to access the APPlication.And also any other BPC ADmin screens accessing the same Application/Dimension.
1)try to only do a "process " on the account dimension without including the processing for Applications...
2)then try to do a process on the application.
Now your script should be able to recognize Account dimension and validate fine..
hope this helps... -
Hi
Pl. verify following code: I did not get any error but the result is not derived ,
*WHEN ACCOUNT
*IS "BS115"
*WHEN CATEGORY
*IS "Actual"
*WHEN TIME
*IS "2011.04"
*REC(FACTOR = 1, ACCOUNT = "BS114",CATEGORY = "Actual",TIME = "2011.05")
*ENDWHEN
*ENDWHEN
*ENDWHEN
*COMMIT
I want to copy from BS115 april to BS114 MAY ACTUAL
pl. verify any mistake in the above code
rgds
srinathHi
My issue is resolved.
Actuall the problem is once saved data is not displaying (after running default script logic)
But some time times result is displaying immd. after save without refresh.
I refreshed & i got my result.
Thanks
Srinath -
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 -
Copying the data and ignoring the Script logic
Hi,
I have some data in Actual category for 2010.APR and I would like to COPY the same
(through DM) to Budget category with my default script logic file. When I am trying to
Do the same it is copying the same data into Budget category, ignoring my script logic
Actually it should increase the value.
Can anybody help me in this regard.
Thanks in adv.
Raghu B.S.The problem it is into script logic.
When you insert records you are inserting records with category Budget.
But your default script logic is inserting new recotrds just in case if the input has category Actual.
So you just to do a correction into your script logic to change the statement
*WHEN CATEGORY
*IS "ACTUAL"
with
*WHEN CATEGORY
*IS "BUDGET"
In this way the default script logic will be executed and after the copy you will have also the records generated by script logic.
Regards
Sorin Radulescu
Edited by: Sorin Radulescu on Aug 5, 2010 2:15 PM -
Hi,
I have a situation where I need to perform two activities...
i) Perform a multiplication operation on the data input by the user - Script Logic A
ii) Send the data at a summary level to another application. - Script Logic B
Both Script logics are in the Default Logic
User opens an input template and makes changes to a few Products (more than 1). I want the script logicA to execute completely (i.e. for all the models) and THEN Script Logic B to execute since Script Logic B summarises the data
It seems like this is not how the system works.. Rather it goes thru Script Logic A and Script LogicB for the 1st Product, then the 2nd Product and so on...
I tried using a commit after Script Logic A / before Script logic B and a few other options but to no avail... Any suggestions ???
The other option is not to put Script Logic B in the Default Logic but to execute it separately... Worse case situation I'll use that option..
thanksHi,
Have you defined the scope of the product for the two logics independently.
Try that by including commit after the first logic. This should work.
*XDIM_MEMBERSET PRODUCT=BAS(ALL)
Script 1
*COMMIT
*XDIM_MEMBERSET PRODUCT=BAS(ALL)
Script 2
*COMMIT
Hope this helps,
Regards,
G.Vijaya Kumar -
Dimension Formula versus Script Logic that runs on default
Hi Experts,
Which is better to use dimension formula or script logic that runs on default? We have a lot of dimension formulas and when noticed that it has a huge impact in the performance of our AppSet. When we try to remove them, the performance seems better. We we're thinking of transforming these dimension formulas into script logic which will run by default instead. Right now I'm hesitant with two things, 1.) Will there be improvement in performance if I all these formulas are run at default via script logic? 2.) The maintenance seems to be much more complex for the user if we use script logic.
Thanks,
MarvinHi Marvin,
Actually you pointed very well the advantage and disantavage regarding dimension formula.
Dimension formula are executed into run time which means that value are not calculated. Of course this will have an impact regarding performances.
Usually our recommendation is to use dimension formula just when yoiu have KPI's to calculate which will be very difficult to be implemented into SQL scrip logic or when you have very simple calculation like Account A = Account B+ Account C.
For other calculation we advice our customer to use script logic.
But attention:
Default formula should not become very heavy because you will arrive into other issue with performances.
When you will send data if default formula script will be heavy you will arrive into situation to wait may be minutes just to send one figure and of course this will be not acceptable for users.
So you have to use script logic but you have to run into batch mode (schedule package) that script logic.
Into default formula you have to keep just minimum (you have to calculate just figures which have importance for user imediat, real time).
Also you have to be aware that moving dimension formula into scrip logic actually your fact table will grow a lot because the number of records generated will be probably 3-4 times bigger than number of records from fact table with dimension formula.
Maintenance of script logic is more complex than dimension formula and you pointed very well this.
So it is a balance and I tried o provide you suggestions or best practice when you have to use dimesnion formula and you have to avoid dimension formula.
I hope this will help you to arrive to best combination for your application.
Kind Regards
Sorin Radulescu -
Hello
How to include script logic in default logic?There are two ways:
1. Direclty write the script in the default logic and the validate and save.
2. Create a new script and write the scipt code in that and the add that script name in default logic . e.g: * include (your script name).lgf -
Include within Default.lgf Script Logic does not run
Dear Gurus,
I wrote a WHEN function in Script Logic which is supposed to multiply a input % (INP01) value (growth) with the absolute figure of the previous year. I works fine in the Backend Debugger. Then I put it in the default logic because I want it to run everytime somebody sends data. However it doesn't run? Has anybody had a problem like this?
When running the default formulas out of the data manager it works just fine.
default:
*INCLUDE CALCULATE_KPI.LGF
Calculate KPI:
*XDIM_MEMBERSET ULOB=D00000
*XDIM_MEMBERSET UCHANNEL=VD0001
*XDIM_MEMBERSET RPTCURRENCY=EUR
*WHEN TIME
*IS "2008.SUM"
*WHEN CATEGORY
*IS "ACTUAL"
*WHEN P_ACCT
*IS "I001"
REC(EXPRESSION=%VALUE%(1+([P_ACCT].[INP01],[ TIME].[2010.INP],[CATEGORY].[PLAN])),CATEGORY=V302,TIME=2010.INP,P_ACCT=I0000001)
*ENDWHEN
*ENDWHEN
*ENDWHEN
Thank you so much in Advance
Edited by: Cora Boettger on Oct 19, 2009 3:59 PMHi Cora,
Are you sure that your default logic isn't running and that the *WHEN just isn't being triggered? This has happened to me when members used in *XDIM_MEMBERSET or *WHEN are not base-level. I'm a bit suspicious about 2008.SUM with regards to this.
You can test by replacing what you have with something like
*WHEN CATEGORY
*IS *
*REC(FACTOR=1.1)
*ENDWHEN
If this results in your written back values being multiplied by 1.1 into the TEST category, then your default logic is running and your issue is that the *WHEN is not getting triggered. At that point your should be able to head into the script logic tester and keep trying different scripts until you find one that works.
Good luck!
Ethan -
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 -
Hi all,
I have write a script logic.
I have got this values like transactional data.
First data: how many vehicle that we need to produce in jan, feb?
ACCOUNT--VEHICLE NOMATERIAL NOTIME--
VALUE
1)D003--142NAJAN--
4
2)D003--142NAFEB--
10
3)D003--940NAJAN--
3
4)D003--940NAFEB--
5
Secod data: which material and how many that we need for to form one vehicle.
ACCOUNT--VEHICLE NOMATERIAL NOTIME--
VALUE
5)E001--142142OTONA--
100
6)E001--940142OTONA--
100
7)E001--14258RSNA--
60
8)E001--94058RSNA--
60
9)E001--94054RSNA--
40
Third, to calculate data: how many material that we need in Jan or Feb.
ACCOUNT--VEHICLE NOMATERIAL NOTIME--
VALUE
10)F001--NA142OTOJAN--
700
11)F001--NA58RSJAN--
420
12)F001--NA54RSJAN--
120
For example 142OTO: 700(10)=100(5)4(1)+100(6)3(3)
(The numbers in parenthesis are line numbers.)
How can i write this logic?
Thanks in advance.
Edited by: boguner on Jun 22, 2010 10:49 AMHi 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 -
Automate excel circular references - script logic - BPC
Hi,
I need to automate in BPC the calculation of financial debt that contains excel circular references, so you have to enable the calculation Automatic iterations properly to work.
I would like to automate the process through a script logic.
I appreciate any help or suggestions.
Regards,
Fernando Chávez.Dear Fernando Chávez,
I just want to give you simple suggestions because I don't know your case exactly. The script logic is similiar with SQL script. You could put your logic script in default.lgf or make new file .lgf through BPC Administration Console. If you put it in default.lgf, the SAP BPC will execute it when user sent values through BPC Excel. You also could run the script logic through Data Manager Packages, its runs depend on user execution.
If we are talking about circular and complex formulas in Ms.Excel, I suggest you put your calculation in another worksheet and send values through BPC Excel. Before you define a script logic, the number one is you should to consider performance because its really critical.
Kind Regards,
Wandi Sutandi -
Greater Than Function in Script Logic File
BPC Experts,
I've got a pretty simple script logic file to calculate salary amounts, overtime, etc. The purpose of this logic is for forecasting. I have two referenced dimensions, TIME and SCENARIO, where TIME.MONTHNUM is equal to its relative month number (eg: Jan monthnum = 1), and SCENARIO.CURRMONTH is equal to the relative amount of actual months data, (eg Jan currmonth = 0, Feb = 1) because if you are completing a February forecast, you have one month of actual.
The ACTUAL scenario is never touched, but after a month closes, we copy the ACTUAL data to, for example, FEB_FCST. So, after January closes, its actuals are copied to the FEB_FCST scenario so we can complete an actual/forecast (one month actual, 11 months forecast).
Currently, the default logic skips anything in the ACTUAL scenario, by stating "*WHEN SCENARIO, *IS <> "ACTUAL" yada yada yada.
However, when the default logic runs on the forecast scenarios, it takes the same inputs from the months that are copied over from the ACTUAL scenario and adds to the original amount, essentially doubling the value--ultimately causing an incorrect actuals number in the forecast scenario.
My script right now looks like this:
*XDIM_MEMBERSET DATASRC=INPUT
*XDIM_MEMBERSET PRODUCT=NO_PRODUCT
*XDIM_MEMBERSET SHIFT=NO_SHIFTS
*XDIM_MEMBERSET MEASURES=PERIODIC
*WHEN SCENARIO
*IS <> "ACTUAL"
*WHEN TIME.MONTHNUM
*IS > SCENARIO.CURRENTMNTH
*WHEN ACCOUNT
*IS "SALARIED_MANPOWER"
*REC(EXPRESSION=((([ACCOUNT].[SALARIED_AVG_WAGE] * (1 + [ACCOUNT].[SALARY_TIMEAHALF]))* [ACCOUNT].[SALARIED_MANPOWER])),ACCOUNT="01100")
*ENDWHEN
*ENDWHEN
*ENDWHEN
*COMMIT
When it hits line 9 (*IS > SCENARIO.CURRENTMNTH) during validation, it errors. How can I use a "greater than" function to dictate whether or not a given scenario should run default logic on a specific month?
If not, is there a different/better way to do it?
Thank you!
ABFHi Alex
Take this sample logic, check the properties in your Time dimension to trouble shoot your issue.
*SELECT(%CAT_VAR%, "ID", CATEGORY, ID= PLAN_APRIL)
*XDIM_MEMBERSET CATEGORY = ACTUAL, PLAN, %CAT_VAR%
*SELECT(%CATMTH%, "STARTMTH", CATEGORY, ID= %CAT_VAR%)
*SELECT(%ACT_PERIOD%, "ID", TIME, MONTHNUM < %CATMTH% AND LEVEL = MONTH AND YEAR = 2010)
*SELECT(%PLAN_PERIOD%, "ID", TIME, MONTHNUM >= %CATMTH% AND LEVEL = MONTH AND YEAR = 2010)
*XDIM_MEMBERSET TIME= %ACT_PERIOD%
*XDIM_MEMBERSET CATEGORY=ACTUAL
*WHEN CATEGORY
*IS ACTUAL
*REC(EXPRESSION=%VALUE%, CATEGORY = %CAT_VAR%)
*ENDWHEN
*XDIM_MEMBERSET TIME= %PLAN_PERIOD%
*XDIM_MEMBERSET CATEGORY=PLAN
*WHEN CATEGORY
*IS PLAN
*REC(EXPRESSION=%VALUE%, CATEGORY = %CAT_VAR%)
*ENDWHEN
Thanks
Maybe you are looking for
-
We have a 4 node Rac, oracle root.sh is failing on the First Node. when I looked at the logs I found the oc4j is timeout to start on Node1 whereas it is able to start on all other nodes with in 2 mins. this is causing to fail root.sh. Can you please
-
I just updated my iphone and it deleted all my contacts- help!
i just updated my iphone and afterwards all my contacts have disappeared! how do i get them all back?? please help
-
Hi All I have below requirement Please suggest some solution on HOW SHOULD I PROCEDE. I Have below Info : 1)<b>Aim :</b> I have to create an Interface from Legacy system to SAP for Purchase Order creation. 2)Legacy system will send a ASCII file, hav
-
Computer will not load OSX Just Vista
I installed vista on my imac and now it will not start OSX. The bootcamp software should ask whitch one I will like to start up, but for some reason it just starts vista only and does not give me a choice. HELP!
-
Batching TIF to PNG - metadata lost
For many years now (since the days of PS7) I have used some carefully crafted actions to prepare entire directories of up to 1,000 images for publishing to the Internet. Or it may be that I am running a series of tonal adjusting commands and saving