Execute script logic using data manager
Hi all,
Could anyone explain me how to run a script logic using the data manager?
The only way I get it working is adding the script logic into the defaul.lgl file and running the default formulas package via data manager.
How can I run an specific script logic without using the default.lgf file?
Thanks and regards,
Ana
HI Ana,
You will have to create a SSIS package that will run the logic for you. A good example of this is the ICELIM package that comes standard with AppShell. The easiest is way for me is to copy the package and renaming it to what you want to call it in the following folder: C:\BPC\Data\Webfolders\<AppSet>\<Application>\DataManager\PackageFiles\System Files
You will then have to organize the package list and add the package and modify the advanced properties of the package and point it to the correct logic file. I always use the lgf file rather than the lgx file, but it is up to you.
Lemme know if you need more info.
Regards,
Andries
Similar Messages
-
Script Logic VS Data Transformation File
Hi all,
I'm new to SAP BPC. I have knowledge of SAP BW.
I can see conversion file, which we are referring in data transformation file. which we can use for mapping and conversion of external data into internal data.
How data transformation file different form script logic? Are we going to refer script logis in Data transformation file for each required dimension?
Can any of you give me clarity on how to place script logic and data transformation file in BPC data management flow.
I will really applicate all your help!!!
Thanks
Ben.Nilanjan,
I have a another quick question...
suppose my bpc application has 5 dimensions. Out of the 5 dimensions, 4 dimensions data i'm getting directly from SAP BW. assume 1 dim, i need to extract by doing look up at different table which also reside in BW.
how to populate data for DIM 5.
I got your point that data transformation file purely for field mapping. suppose DIM5 if i want to populate from script logic, wht do i need map in Transformation file. I hope you got my point.
My question if how to populate a DIM in BPC using lookup approach.
Thanks,
Ben. -
Script Logic: Using a property in MDX *REC statement (BPC NW)
Hi,
Is it possible to use a Property in an MDX statement without using *LOOKUP() function? I have script successfully working but it takes 15 minutes to execute and would like to speed it up.
I understand that [DIMENSION].[MEMBER].Property is not valid syntax, and do not believe NW has any other functions to resolve the issue, except *LOOKUP which takes a long time.
Specific Example is below:
I have a piece of script that successfully splits JV Expense by customers. A Profit Share planning driver determines the percentage that each customer is entitled to. Typically this will be 100%, but could be 50% between two customers.
The PROFIT SHARE planning drivers records, and PARTNER_INCOME transactional records are below:
ACCOUNT
ENTITY
PARTNER
SIGNED DATA
PROFIT_SHARE
UK_001
PARTNER_A
0.5
PROFIT_SHARE
UK_001
PARTNER_B
0.5
PROFIT_SHARE
UK_002_PLANNING_DRIVERS
PARTNER_B
1.00
PARTNER_INCOME
UK_001
NO_PARTNER
$5,000
PARTNER_INCOME
UK_002
NO_PARTNER
$5,000
UK_001 has two partners that are each entitled to 50% of the $5,000 NET PROFIT.
For UK_002, one one single Partner is entitled to 100% of the $5,000 NET PROFIT.
Using script logic, you can scope the Profit Share account (PROFIT_SHARE) - , and use a *REC statement to multiply this by the driver. It would look like:
*XDIM_MEMBERSET ACCOUNT = PROFIT_SHARE
*WHEN ACCOUNT
IS *
*REC (EXPRESSION = %VALUE% * ([ACCOUNT].[PROFIT_SHARE],[PARTNER].[NO_PARTNER]), ACCOUNT = PARTNER_PROFIT_SHARE)
*ENDWHEN
This wouldn't be a problem if the Planning Driver is always stored on the same Entity that the Income is stored on, but for UK_002, the planning driver is stored on another Entity - which is stored in a the PLAN_DRIVER_REF property of the entity. It should use UK_002_PLAN_DRIVERS
ID (Entity)
PLAN_DRIVER_REF
UK_001
UK_002
UK_002_PLAN_DRIVERS
UK_002_PLANNING_DRIVERS
In this scenario, we need to switch out the Entity used in the MDX, however I do not believe you can use a property in MDX - can anyone confirm?
I have currently implemented the *LOOKUP functionality to loop through, changing each *LOOKUP partner for each loop.
Lookup:
*LOOKUP PLANNING_JV_US
*FOR %LOOP_ASLS% = %ASL_LOOKUP_LOOP_VARIABLE%
*DIM LOOK_%LOOP_PARTNERS%:ACCOUNT = "PROFIT_SHARE"
*DIM LOOK_%LOOP_PARTNERS%:PARTNER= %LOOP_PARTNERS%
*NEXT
*DIM ENTITY = ENTITY.PLAN_DRIVER_REF // Use PLAN_DRIVER_REF Property of Entity
*ENDLOOKUP
Scope and *REC:
*XDIM_MEMBERSET ACCOUNT = PROFIT_SHARE
*WHEN ACCOUNT
IS *
*FOR %LOOP_PARTNERS% = %PARTNER_LOOKUP_LOOP_VARIABLE% // 1000 Partners
*REC(EXPRESSION = %VALUE% * LOOKUP(LOOK_%LOOP_PARTNERS%), PARTNER= %LOOP_PARTNERS%, ACCOUNT = TCOJVSHAR_CALC, AUDIT_ID = PP_EXPENSE_BY_PARTNER)
*NEXT
*ENDWHEN
The problem with the above, is that because the Lookup is being generated for every single Partner, there are significant numbers of loops.
Does anyone know of another way this can be implemented in Script Logic? Otherwise we'll need to explore BAdI route.
Thanks,
NickHi Nick,
Use property in LOOKUP - will dramatically speed up the calculation without FOR/NEXT.
Vadim -
How to create a script logic using two applications and some conditions?
Hi All,
I am using BPC 7.0 MS
I have two applications, one called RATE (Dimensions: Category, InputCurrency, Rate, RateEntity, Time) and one called GYP (Dimensions: Category, Entity, PL, Producto, RptCurrency, Time. In the GYP application for Revenues. I have the followings products:
Product code
1-808-912-433
3-208-345-542
11-869-789-946
13-456-786-890
I need to calculate a discount using the first digits to identify the product: 1, 3, 11 and 13, based on some percentages that are in the RATE application.
I have an element in the RATE application for each one of them.
DPC1
DPC3
DPC11
DPC13
What I am trying to do in the script logic is:
*XDIM_MEMBERSET PL=Revenues
*XDIM_MEMBERSET PRODUCTO=<ALL>
*XDIM_MEMBERSET ENTITY=<ALL>
*XDIM_MEMBERSET CATEGORY=Budget
*LOOKUP RATE
*DIM D1:RATE ="DPC1"
*DIM D11:RATE ="DPC11"
*DIM D3:RATE ="DPC3"
*DIM D13:RATE ="DPC13"
*DIM RATEENTITY="Global"
*DIM INPUTCURRENCY="VEB"
*ENDLOOKUP
*WHEN PL
*IS Revenues
*REC(FACTOR=LOOKUP(D1), PL=Discount)
*ENDWHEN
*COMMIT
In the WHEN area, i would like to create some condition to identify the product and assign the correct percentage to it but i don't know how to do it?
Do you have any suggestions?
Also, because i need to key the values in the RATE application for the discounts, the logic should be run from this application?
Using RUNLOGIC like this:
*RUNLOGIC
*APP GYP
*LOGIC Discounts
*ENDRUNLOGIC
Best regards,
LuisanaHi Nilanjan,
Thanks for your prompt reply.
The special characters ("-") cannot be used. The product codes use the special character ("_").
I understand what you said about the property for the dimension Product but not for the dimension Rate. I have the lookup that has the four elements (DPC1, DPC11, DPC3, DPC13). It is not supposed to get the data from those elements directly when using the lookup?
The script logic is still not working. I created the dimension property in the product dimension and the new script logic is as follows:
*XDIM_MEMBERSET PL=Revenues
*XDIM_MEMBERSET PRODUCT=<ALL>
*XDIM_MEMBERSET ENTITY=<ALL>
*XDIM_MEMBERSET CATEGORY=Budget
*LOOKUP RATE
*DIM D1:RATE ="DPC1"
*DIM D11:RATE ="DPC11"
*DIM D3:RATE ="DPC3"
*DIM D13:RATE ="DPC13"
*DIM RATEENTITY="Global"
*DIM INPUTCURRENCY="VEB"
*ENDLOOKUP
*WHEN PRODUCT.TYPE
*IS 1
*REC(FACTOR=LOOKUP(D1), PL=Discount)
*IS 11
*REC(FACTOR=LOOKUP(D11), PL=Discount)
*IS 3
*REC(FACTOR=LOOKUP(D3), PL=Discount)
*IS 13
*REC(FACTOR=LOOKUP(D13), PL=Discount)
*ENDWHEN
*COMMIT
Could you let me know what i am doing wrong?
The calculation i would like to get is: Discount = Revenues(GYP) X DPCx(RATE)
Also, when I sent the data from the rate application I get the message "ExecuteBaseLogic::invalid application:*APP GYP". I am using a RUNLOGIC in the application RATE with the following code:
*RUNLOGIC
*APP GYP
*LOGIC Decto_en_vtas_pilot
*ENDRUNLOGIC
Kind Regards,
Luisana -
Hi everyone!
My client want to use the import package from Data Manager to upload his data.
I´m looking for a How to... than explain How to I can configure it.
Somebody can Help Me??
Thanks!!!Hi,
I'm going to try this last one tomorrow.
Now I have this little problem: If my datafile have a header with a different order, I have a warning and reject the header line.
I introduced a mapping of the cols. My TransformationFile is like this but I have the same problem.
Some suggest??
*OPTIONS
FORMAT = DELIMITED
HEADER = YES
DELIMITER = TAB
SKIP = 0
SKIPIF =
VALIDATERECORDS=YES
CREDITPOSITIVE=YES
MAXREJECTCOUNT= -1
ROUNDAMOUNT=
*MAPPING
CATEGORY=*COL(1)
ACCOUNT=*COL(2)
CECO=*COL(3)
CLIENTES=*COL(4)
CURRENCY=*COL(5)
DATASRC=*COL(6)
ENTITY=*COL(7)
INTCO=*COL(8)
ORGVENTAS=*COL(9)
PRODUCTO=*COL(10)
TIME=*COL(11)
SIGNEDDATA=*COL(12)
*CONVERSION
Thanks!
Regards -
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. -
Data records rejected while using Data Manager Packages
Hello all ,
We have configured the dimensions and applications in SAP- BPC 7.5 NW. However , while loading the data into the application using a data manager package , all the records are rejected. The following is the error :
Line 3 :Dimension: P_CC member: SALESTEAM1 is invalid or is a calculated member
Line 3 :Dimension: PRODUCT member: PRODUCTA is invalid or is a calculated member
However , these member are present in the dimensions and are processed as well !! Any help is appreciated .
THanks
VijayThe message seems to be saying you have a dimension forumula defined for those two cost centers. Please check your dimension members master data and make sure there is nothing defined in a property column called "Formula" for those two members. If there is something populated, then delete the cell contents and save and process your dimension. Then try your data manager load again.
Best regards,
[Jeffrey Holdeman|http://wiki.sdn.sap.com/wiki/display/profile/Jeffrey+Holdeman]
SAP Labs, LLC
BusinessObjects Division
Americas Applications Regional Implementation Group (RIG) -
[ASK] Error in Script Logic Using WHEN
Hello guys.
Script logic :
*XDIM_MEMBERSET CATEGORY = %CGY_PLAN%, %CGY_FORECAST%
*XDIM_MEMBERSET ACCOUNT = <ALL>
*XDIM_MEMBERSET ENTITY = <ALL>
*XDIM_MEMBERSET TIME = %YEAR_TTL%
*XDIM_MEMBERSET VEHICLE = <ALL>
*XDIM_MEMBERSET BUDGET_ACT = <ALL>
*WHEN CATEGORY
*IS %CGY_PLAN% // Error
*WHEN TIME
*IS %YEAR_TTL%
*REC(CATEGORY = %CGY_FORECAST%, TIME = %YEAR_TTL%)
*ENDWHEN
*ENDWHEN
*COMMIT
When i validate, it is error for statement : *IS %CGY_PLAN%.
But if that statement i change into : *IS %YEAR_TTL%; it isn't error.
Why is this happen ? How to correct it ?
Thank you.Hi,
You have 3 variables in your script - CGY_PLAN, CGY_FORECAST, and YEAR_TTL.
Are you passing the values to these variables through DM package? -
How to execute Script logic file
Hi,
I want to execute a "stand alone" scipt logic file only once. Simply spoken, the script should write some members from application A to application B (I would set the scope for the members that are concerned in the script itself) once. Is there a way to do this? If possible, I would like to get around customizing the DTS packages or use them in a simple way (e.g. can I simply say sth like package==mylogicfile.lgf), without learning all the DTS syntax...Hi,
There isn't much syntax to learn to get it to run really. Just copy the ICElim package and replace the ICElim.lgx with your own lgf/lgx file.
And if you are only going to do this once, why don't you just write a piece of SQL to do the copy across?
Regards,
Andires -
Script Logic using when Condition
Hi,
Im working on BPC 7.5 SP04 MS and I cant figure out how to make this logic work:
1. Cuenta members (account) with the ivaacred property, are multiplied by a certain value and stored in the account 13010A
*WHEN TIEMPO
*IS 2009.Jan, etc etc.....
*WHEN CUENTA.IVAACRED
*IS "Y"
*REC(EXPRESSION=%VALUE% * GET(METRICAS="IND.IVA"),CUENTA="13010A")
2. When the data values for the cuenta 13010A are <= 0, then multiply them by zero and post them in the same account, else leave them the same way.
*WHEN CUENTA
*IS 13010A
IS <= 0
*REC (EXPRESSION = %VALUE% * 0, CUENTA="13010A")
*ENDWHEN
Thanx in advance
VelázquezHi Karthik,
The hierarchy you understood is correct
OUTSOURCING (Parent)
s_outsourcing (Son)
O_Gastos (Son)
This is an example of our report, what we look for in our script...
We want the calc to be applied to the parent values, instead of doing the roll up.
Area= s_outsourcing
Income = 100,000
Costs = 0
EBITDA = 100,000
ISR (30%) = 30,000
Area= O_Gastos
Income = 0
Costs = -50,000
EBITDA = -50,000
ISR = 0
Outsourcing
Income = 100,000
Costs = -50,000
EBITDA = 50,000
ISR = 30,000 --> WRONG!!!
Correct answer = EBITDA * 30% = 15,000 -
Unable import to some records using Data Manager
Wanted to import a file to BPC. The file I want to import like this.
ENTITY,CATEGORY,INTCO,DATASRC,RPTCURRENCY,TIME,ACCOUNT,AMOUNT
BP01,ACTUAL,NON_INTERCO,Input,LC,2008.AUG,ExtSales,240000
BP01,ACTUAL,NON_INTERCO,Input,LC,2008.AUG,3rdParty,80000
BP01,ACTUAL,NON_INTERCO,Input,LC,2008.AUG,RawMaterials,30000
BP01,ACTUAL,NON_INTERCO,Input,LC,2008.AUG,DirectLabor,12000
BP01,ACTUAL,NON_INTERCO,Input,LC,2008.AUG,OverheadCosts,14000
BP01,ACTUAL,NON_INTERCO,Input,LC,2008.AUG,SMEXP,2400
BP01,ACTUAL,NON_INTERCO,Input,LC,2008.AUG,GAEXP,1800
BP01,ACTUAL,NON_INTERCO,Input,LC,2008.AUG,Salaries.Cat1,5400
The entity BP01 is the parent and has subsidiaries BP02,BP03,BP04, BP05. The records of all the subsidiaries are accepted but records of parent entity BP01 are rejected. Is it because of the hierarchy? Please help on this.In BPC, you may not LOAD any data or submit data to a PARENT level member. All data at the PARENTS is built by the aggregations occuring in the cube. If you have data at a Parent that is required in your design, I suggest adding another Child under the Parent with no children, but seperate name to accept the data. If the data is aggregated values from the Children, then don't include it in your extracts to be loaded, as it will be re-aggregated by the BPC application.
Hope this helps. -
How to see generated SQL when execute JPQL query using entity manager?
I want to see generated SQL query in console or in a log file. How do I do that?
I'm using GlassFish if it mattersIf you want to see SQL query that is generated from JPQL in GlassFish console you should do following:
Log on admin console.
Select 'Application Server' from tree, then select Logging tab and Log Levels sub-tab.
Log level for 'Persistence' must be set to FINE or level with more verbosity. -
Hi All,
I need to copy data from one member to multiple members (to be selected dynamically) using script logic and data manager package.
Below is the script I am using
*XDIM_MEMBERSET TIME=%TIME_SET%
*WHEN TIME
*IS *
*REC(EXPRESSION=%VALUE%,TIME=%TIME_SET%)
*ENDWHEN
I want to pass the parameters both source and destination(multiple members) to passed using data manager package.
I am stuck with data manager script, kindly provide help in resolving this issue.
Regards
MaheedharHi Maheedhar,
don't forget to add the version of BPC you are using, MS or NW.
What dimension with multiple members you need to use in the script?
Is this above the whole script?
Regards
Roberto -
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 -
How to use the current view in script logic - %DIMENSIONNAME_SET% not work
Hello,
I have the requirement to use the values from the current view in the script logic. User would like to use the members which were selected from the current view in the calculation.
We are using SAP BPC 7.0 SP06
I have prepared the following scrpit:
*XDIM_MEMBERSET TIME=$YEARS001$.NA
*XDIM_MEMBERSET ACCOUNT=BAS(PLVEH_EXP)
*SELECT(%CBU%,ID,BUSINESSAREA,[ID]='%BUSINESSAREA_SET%'")
*SELECT(%CIO%,ID,INTERNALORDER,[ID]='%INTERNALORDER_SET%'")
*RUNALLOCATION
*FACTOR=USING
*DIM BUSINESSAREA WHAT=BANA;WHERE=%CBU%;USING=<<<
*DIM INTERNALORDER WHAT=IONA;WHERE=%CIO%;USING=<<<
*DIM INDICATORS WHAT=INVEHPRI;WHERE=INPXQ;USING=INVEHQUA
*ENDALLOCATION
I have read in the sdn that it is possible to get the current values using %DIMENSIONNAME_SET% variable and use it but it returns all the members that were selected in the datapackage.
I would like to know if there is any special consideration regarging the use of variable or if there is another way to solve it.
Thanks in advance.Hi,
If you want the code to be executed for the current view selected, you can place the code in Default logic which executes the logic for what ever current view values you send the data through Input schedule.
The key word you have mentined is for script running through Data Manager which gets the value selected through user promt.
Hope this helps,
Regards,
G.Vijaya Kumar.
Maybe you are looking for
-
How do I add an already built Shopping Cart (PHP and MYSQL) (Cartweaver 4) application to a page in a Muse site? Do I have to export the Muse site as Html to dreamweaver and them use the extension to bring the shooping cart in or can I do it directl
-
PLAY I-TUNES BOUGHT SONGS, TO MY CAR CD PLAYER
I HAVE BOUGHT A LOT OF SONGS FROM I-TUNES. NOW I BURNED SOME OF THEM ON A CD. I TRIED TO PLAY THAT CD ON MY CAR CD PLAYER. IT DOES NOT PLAY. WHAT SHOULD I DO?
-
All text seems to have gone missing. Look at the login screen. I use xfce4, this started a few days ago. Xorg.0.log, journalctl etc looks fine. Whats going on here?
-
Hi, we have a client side application, on Windows and Oracle 10g R2. We use OLEDB templates from MFC (CDynamicParameterAccessor). There is a long query (4610 char) what provider return E_UNEXPECTED HRESULT (from execute, before the bind). No detailed
-
Ok, for some reason my charting app has started displaying some really weird behavior. It draws fine on the initial load, but if the user hit's reload (to look at a different time frame for example, it seems to redraw itself over and over again. If