Simple Allocation Logic

I am trying to copy a data from company u201CGLOBALu201D to all other companies. Below is my code. When I execute it, the value is added to itself (GLOBAL). Am I missing anything here?
*XDIM_MEMBERSET ENTITY=<ALL>
*RUNALLOCATION
     *NAME=Alloc1
     *FACTOR=1
     *DIM ENTITY               WHAT=GLOBAL;       WHERE<>GLOBAL;       USING=GLOBAL   
*ENDALLOCATION
*COMMIT
Thanks in advance.

Hi,
Basically here's your problem:
*DIM ENTITY WHAT=GLOBAL; WHERE=GLOBAL; USING=GLOBAL
WHAT - take value on GLOBAL
WHERE - add WHAT value to what already is on GLOBAL
Typically you would want to take the global value and allocate it to some other entities such as BAS(ALL_ENTITY)

Similar Messages

  • Script logic - how to use a selection variable within an allocation logic

    Hi,
    I want to implement a simple top-down distribution to distribute values from a yearly budget (Y20xx.TOTAL) to a quarter budget (Q20xx.Q1, ... Q20xx.Q4) using the actuals of the previous year as reference.
    If we hard code the members it works fine:
    *RUNALLOCATION
    *FACTOR=USING/TOTAL
    *DIM ACCOUNT WHAT=ACC_NOT_ASSIGNED; WHERE=BAS(FIN); USING=<<<; TOTAL=<<<
    *DIM TIME WHAT=Y2009.TOTAL; WHERE=BAS(Q2009.TOTAL); USING=BAS(Q2008.TOTAL); TOTAL=<<<
    *DIM CATEGORY WHAT=SBO; WHERE=<<<; USING=ACTUAL; TOTAL=<<<
    *ENDALLOCATION
    Of course, we want to make this dynamic, using the values inputted in the selection screen of the package: time, entity and category.
    So if we start with write the following logic, it does not work anymore:
    *RUNALLOCATION
    *FACTOR=USING/TOTAL
    *DIM ACCOUNT WHAT=ACC_NOT_ASSIGNED; WHERE=BAS(FIN); USING=<<<; TOTAL=<<<
    *DIM TIME WHAT=%TIME_DIM%; WHERE=BAS(Q2009.TOTAL); USING=BAS(Q2008.TOTAL); TOTAL=<<<
    *DIM CATEGORY WHAT=%CATEGORY_DIM%; WHERE=<<<; USING=ACTUAL; TOTAL=<<<
    *ENDALLOCATION
    So, how to use the selection variables in this allocation logic? %TIME%, %CATEGORY% also did not work ...
    regards
    Dries
    solved it ...
    Edited by: Dries Paesmans on Feb 22, 2009 8:31 PM

    Hi Dries,
    Looks like you solved this, but if I can just add a small point -- when you use syntax like this:
    *DIM ACCOUNT WHAT=ACC_NOT_ASSIGNED; WHERE=BAS(FIN);
    *DIM TIME WHAT=Y2009.TOTAL; WHERE=BAS(Q2009.TOTAL);
    each time the logic runs, it will scan through the dimension from the FIN and Q2009.TOTAL members, one level at a time, until it reaches the base members (where calc = 'n'). This may happen very quickly, if the dimension has very few levels, but could take a bit of extra time if it's a particularly deep dimension. (By which I mean many levels of hierarchy -- not some 1970's Pink Floyd musical reference.)
    You may speed things up by using a member property instead of the BAS(xyz). Flag all the base members using a specific property value, and that way the logic engine can pick up the complete list of members in the WHERE clause, in a single query.
    *DIM Account What=ACC_NOT_ASSIGNED; Where=[FloydProperty]="DarkSideOfTheMoon"; ...
    This adds some maitenance work in the dimension, which may be problematic if your admins are changing it regularly (and will cause problems if they forget to update this particular property).
    I can't predict how much time this will save you (maybe not much at all), but anyway I figure you'd want to know exactly what work you're asking the system to perform.
    Regards,
    Tim

  • BPC 7.5NW Allocation Logic

    Hello Gurus,
    Suppose we need to allocate rent 1000(source) to 2 entities A & B ( ex: 500,500).. After send & refresh in input schedule , the source will become zero. Now, for some other purpose, we once agn press send & refresh button to enter some other data. But, when we do so, our allocation logic should not execute. If it is executed, then ZERO will b allocated to both entities as zero is current source value. So, how can we do this in allocation logic. Can I have the code plz. Its urgent

    Hello,
    You can achieve this by utilizing additional Dimensions in your RUNALLOCATION, like DataSrc. Idea is, that you have your initial value in Account  = C, DataSrc = Manual, but when you make Account 'C' zero you post it to DataSrc  = Posted.
    In report you keep DataSrc = Manual if you need to show the old value or DataSrc = <ALL> if you need to show value zero.
    This way RUNALLOCATION will post only values user entered without taking into affect offsets posted.
    Hope you got the idea.
    Regards,
    Gersh

  • Error when running allocation logic

    I am running the following allocation logic and get the following error:
    *RUNALLOCATION
    *FACTOR=USING/TOTAL
    *DIM P_ACCT WHAT=CE0004010; WHERE=CE0004020; USING=CE0004030; TOTAL=<<<
    *DIM ENTITY WHAT=A1000; WHERE=<<<; USING=<<<; TOTAL=<<<
    *DIM TIME WHAT=2009.JAN; WHERE=>>>; USING=BAS(2009.TOTAL); TOTAL=<<<
    *ENDALLOCATION
    UJP_RULE_EXCEPTION:Missing [] on property name: WHAT=CE0004010. I get this error when executing the script using the program "UJK_SCRIPT_LOGIC_TESTER". I also get a similar error when running it via the data manager package.
    Any thoughts on why this error is happening?

    Hi Sanjay,
    I think you are using formula property for any of the dimension member used in the Allocation logic.
    FYI Allocation will not work fine for the dimension members which is calculated using the formula written in the formula Property.
    There is no problem with your script it looks fine.
    Hope this might help you.
    Regards,
    G.Vijaya Kumar

  • Addition of values after allocation logic instead of overwrite 7.50.05 NW

    Hi Gurus
    I am writing an allocation logic where I am allocating some values in a ratio of sales. but there is already some value in the fields i am allocating into and after this logic, the new vales are overwriting the existing one. But my requirement is to add those values in exsting values. Please let me know how to do it.
    as a work around, I am copying the values into a differnt account, then running the allocation on that one and then adding this into the original account. is there any easier way for this.
    Regards
    Swathi

    Hi Swathi,
    Overwriting is the nature of planning. So, not only allocation overwrites results - all planning functions do this. The only exception is if you do multiple calculations in same construct - those will be added. Reason for this is, that user can run same planning function multiple times and you don't want those results to add up.
    So, if you want to summarize what was there before allocation and after you have to have additional Dimension, DataSrc for example, and have values in that Dimension different in existing data and in allocated. This will keep them separate. In report, do not show break-down by that additional Dimension and you'll see total of the old value and the new one.
    Please let me know if this is not what you were looking for.
    Gersh

  • BPC Run Allocation Logic

    Dear All,
    I am new in BPC world so i want ur help in solving one error
    when running allocation logic, it is not accepting more than 1 member in the denominator
    the factor i am using is 1/using
    can u pls help on this
    thanks.

    Can you please post the logic and the error you are getting?
    Thanks,
    John

  • NW BPC7.5 Allocation logic issue

    Dear all,
    I have an allocation logic for OPEX on diffrent entities
    *FOR %CURRACCT%=BAS(P0000011)
    *RUNALLOCATION
    *FACTOR=USING/100
    *DIM P_ACCT WHAT=%CURRACCT%; WHERE=%CURRACCT%; USING=OPEXSHARE
    *DIM P_DataSrc WHAT=MANUAL; WHERE=MANUAL; USING=GLOBALASSUMPTIONS
    *DIM P_ENTITY WHAT=C001; WHERE=C002; USING =C002
    *DIM P_CostCtr WHAT=100010; WHERE=200010; USING=100010
    *ENDALLOCATION
    *NEXT
    the logic validated is succesflly.
    The problem is when ever i enter data in any of the account in BAS(P0000011) , the data is allocating all the members of BAS(P0000011).
    My requirement is for which account i enter data allocate to the specific account under BAS(P0000011) based on company allocation rate.
    Please help on it.

    Sorry, I mis-read your script. I tough that you have a FOR/NEXT loop an base-members of P0000011. I don't see what your FOR/NEXT loop is doing in that form. Definitely it will take from total of all accounts under P0000011 and post it to ALL of them; and this IS were MS and NW versions are different.
    If you want to allocate data from 1 Account under P0000011 to same account, you should define a variable that is a list of BAS(P0000011)  account and use that variable in FOR/NEXT loop. This way ALLOCATION will take amount only form that Account and post it to same account without touching other accounts.
    Gersh

  • Using property value in Allocation Logic.

    Hi All,
    Can we use a property value from one dimension as ID for different dimension in the Allocation Logic?
    I have a category Actual which has a value of 2011 in the property YEAR.
    I need to use 2011 in DIM TIME statement.If somehow i can get the 2011 value into a variable then i can use that variable in the DIM TIme statement.
    EX:
    *SELECT(%TIMEYEAR%,"ID",.....................................)   (This is where i need help ..in writing the statement)
    DIM TIME WHAT = [YEAR]=%TIMEYEAR%;  WHERE = %TIMEYEAR%(1).INP;   USING = %TIMEYEAR%(1).INP;
    This would mean:
    DIM TIME WHAT=[YEAR]=2011;   WHERE=2012.INP;   USING=2012.INP;
    Can we get this to work in Allocation Logic?I need to know if i can get the value of the property into the variable?
    Any help is appreciated.
    Thanks,
    KK

    Hi
    I believe using the category property "YEAR" in the logic may not be a good idea. In case of next year, you need to change the property value "YEAR" to 2012...... and so on.
    If you want to bring the current year as variable you can use system variable %YEAR%
    %YEAR% - Returns current calendar year
    DIM TIME WHAT = YEAR=%YEAR%; WHERE = %YEAR%(1).INP; USING = %YEAR%(1).INP;
    Try and let me know
    Thanks

  • Introducing own allocation logic

    Hi,
    I have a requirement in which I need to allocate notification activity to a particular user by using own allocation logic as soon as the notification activity is spawned.
    Please let me know is it possible and how?
    Reds,
    KS

    Hi,
    Yes - adding any activity to a workflow will include extra overhead, both in terms of processing time and data storage. This is particularly important if the activity is going to be revisited a number of times, since the previous states are also archived within the workflow schema.
    To be honest, I wouldn't worry too much about it - adding an extra activity which determines the recipient has to be done at some stage, and should not be too costly in terms of either performance or storage.
    If you notice a difference, even through careful monitoring of the system, I'd be surprised - assuming that the logic to determine the recipient is fairly straightforward.
    HTH,
    Matt
    WorkflowFAQ.com - the ONLY independent resource for Oracle Workflow development
    Alpha review chapters from my book "Developing With Oracle Workflow" are available via my website http://www.workflowfaq.com
    Have you read the blog at http://thoughts.workflowfaq.com ?
    WorkflowFAQ support forum: http://forum.workflowfaq.com

  • ALLOCATION LOGIC Issue

    Hi,
         I have a scenario where I need to do allocation from one account to multiple accounts.  I have data for DEC.2009 for Account :017, Costcenter1  in ACTUAL(10,000) and I want to allocate the data to DEC.2010 to all accounts(015,016,017) to all cost centers under the parent CostCenter Group1 based on the actual history data posted to account(015,016,017)  and cost centers (1,2 & 3) for Dec 2009.
    Account :
    Account Dimension :
       AIRTRAVEL (Parent)
               015
               016
               017   (Eg: 10,000$)
    Entity Dimension(Cost Center Group 1)
    Cost Center Group 1
          1
          2     
          3
    ACTUAL : 2009. DEC
      Accounts                   015       016            017      AIRTRAVEL(Parent)
    CostCenter1       1,000       6,000       10,000       (17,000)
    CostCenter2       2,000       6,000                        (8,000)
    CostCenter3       5,000       8,000       9,000       (22,000)
    CCenterGroup 1 8,000       20,000       19,000       (47,000)
    *XDIM_MEMBERSET TIME = 2009.DEC,2010.DEC
    *XDIM_MEMBERSET D_ACCT = AIRTRAVEL
    *XDIM_MEMBERSET D_VERSION  = PLAN,ACTUAL
    *XDIM_MEMBERSET D_COSTCENTER  = CC_GRP1
    *RUNALLOCATION
    //    *FACTOR = USING/TOTAL
        *DIM D_ACCT  WHAT= 017;   WHERE=BAS(AIRTRAVEL);  USING=BAS(AIRTRAVEL)
        *DIM D_COSTCENTER  WHAT=150027;   WHERE=BAS(CC_GRP1);  USING=BAS(CC_GRP1);
        *DIM TIME          WHAT=2009.DEC; WHERE=2010.DEC;  USING=2009.DEC; TOTAL=<<<
        *DIM D_VERSION     WHAT=ACTUAL;   WHERE=PLAN;  USING=ACTUAL; TOTAL=<<<
    *ENDALLOCATION
    *COMMIT

    Thanks Gersh for  your detailed response.
    I have updated my logic to
    *RUNALLOCATION
        *FACTOR = USING/100
        *DIM D_ACCT  WHAT= 017;   WHERE=BAS(AIRTRAVEL);  USING=<<<; TOTAL=<<<
        *DIM D_COSTCENTER  WHAT=150027;   WHERE=BAS(CC_GRP1);  USING=<<<; TOTAL=<<<
        *DIM TIME          WHAT=2009.DEC; WHERE=2010.DEC;  USING=2009.DEC; TOTAL=<<<
        *DIM D_VERSION     WHAT=ACTUAL;   WHERE=PLAN;  USING=ACTUAL; TOTAL=<<<
    *ENDALLOCATION
    *COMMIT
    If I use the *FACTOR , I am getting a shortdump and thats the reason I had to comment the factor. So not sure if there is a problem with our system and I need to open a support message or need to update the script logic. If I comment the factor, then the logic is updating all the Costcenters and all the accounts with 10,000.
       Account
    CC1 10,000       10,000       10,000       (30,000)
    CC2 10,000       10,000       10,000       (30,000)
    CC3 10,000       10,000       10,000       (30,000)
            30,000       30,000       30,000       (90,000)
        What I am expecting is  All the accounts (1,2 & 3) for each cost center should be added and each account's percentage would be account/all acount total for each cost center.
    From my actual data
    ACTUAL : 2009. DEC
    Accounts      015       016      017      AIRTRAVEL(Parent)
    CostCenter1       1,000       6,000       10,000       (17,000)
    CostCenter2       2,000       6,000                        (8,000)
    CostCenter3       5,000       8,000       9,000       (22,000)
    CCenterGroup 1 8,000       20,000       19,000       (47,000)
    Account 015 for costcenter should have a percentage    1000/8000 , so that would be 0.125 and the allocation amount is 10,000, so the output plan value should be 0.125 * 10,000 = 1250
    Thanks,

  • ALLOCATION LOGIC ERROR

    Hi Friends
    can you pl. identify any error in the following Allocation Code at the time of execution.
    *RUNALLOCATION
    *FACTOR=USING/100
    *DIM P_ENTITY WHAT=PARENT; WHERE=BAS(CHILDREN); USING=P_ENTITY.ALLOC_PERCENT;
    *DIM P_TIME WHAT=2008.JAN; WHERE=2009.JAN; USING=2008.JAN; 
    *DIM P_CATEGORY WHAT=ACTUAL; WHERE=PLAN; USING=ACTUAL; 
    *ENDALLOCATION
    I Want to copy with percentages maintained in entity.
    srin

    Hi Srin,
    Have you tried running that script in transaction UJKT? Usually it provides much better diagnostics than just looking at the script:).
    But just from looking at your script it seems like USING = P_ENTITY.ALLOC_PERCENT is not valid. RUNALLOCATION can allocate results proportionally to values in Application, not in Dimension (P_ENTITY).
    You should either use WHEN/REC for your data model or keep those percentages in Application on a specific Account (or some other Dimension that you don't have now in RUNALLOCATION).
    Please let me now if I misunderstood something.
    Regards,
    Gersh

  • Simple Script Logic Help - Unit Conversion

    Hello Gurus, I am trying to prove some capability of BPC and need to write a Logic for doing it:
    The scenario is like this:
    I have a cube that will host Sales forecast information :
       Product:  A
       Month:     MM01
       Unit :       X
       Signed Data  :10
    I have a property in the Product y that contains the conversion rate for converting values to another unit. In this case 0.5
    What I need is :
    1. Read Product Dimension and get the Conversion Rate.
    2. Multiply Signed Data by COnversion Rate-
    3. Generate a new record :
       Product:  A
       Month:     MM01
       Unit :       Z
       Signed Data  :(10 * Conversion Rate )
    Could you provide a Sample code for this?
    Thanks in Advance.
    Sergio

    Try:
    *WHEN *
    *IS *
    REC(EXPRESSION=%VALUE%FLD(PRODUCT.Y), UNIT="Z")
    *ENDWHEN
    *COMMIT
    You will have to make sure the correct records  have been scoped.
    Thanks,
    John

  • CAR MOUNT / CHARGER THAT IS SIMPLE AND LOGICAL ?????

    Here's the deal... obviously most newer car stereos have an aux input. And if not, almost all aftermarket radios do. What good is an UGLY suction cup mount with a seperate wire for power ? What good is a cigarette lighter mount with no power ? Why can't someone make a simple mount that plugs into the cigarette lighter and powers the phone while holding it in place ? THAT'S ALL ! A small wire could then connect the phone to the aux jack or even the cassette if you want to go back to the 90's. We all know FM transmitters SUCK, but they insist on only offering these things with the stupid transmitter on it ! Does anyone PLEASE have a link to a car mount for the iphone that plugs into the cigarette lighter, holds it there in a mount, and provides power ?????????!!!!!!!
    Thanks.

    Belkin HAD exactly what you want and I WAS using it with my Touch. But, of course it WON'T work with the 3G. They don't seem to be on track to replace it with anything simmilar and everything I've seen is clunky in comparison.
    Here it is on Amazon:
    http://www.amazon.com/Belkin-Auto-iPod-Connector-White/dp/B00009KAPX/ref=pdbbs_sr1?ie=UTF8&s=electronics&qid=1219509454&sr=8-1
    Too bad it was great while it lasted. It has a little mini plug on the underside of the plug so mini to whatever cable goes to your input AND it has a volume control so it acts like a preamp so you can keep a balance among your device and built in radio. Sigh: What are all these manufactures thinking, when something is Made For iPod why isn't it really??
    Edit: I missed the mount part, I use a cupholder mount originaly designed for HP Ipaq (ebay) that fits great. I didn't want to put that much weight on the lighter socket, it would wear it down in time.
    Message was edited by: Joe221

  • Simple Script Logic

    Hi all,
    Is it possible execute a script logic when i execute the import package? i added in the DEFAULT.LGF the code:
    WHEN *
    is *
    REC(Expression=get(account="ccp0001")*get(account="ccq0001"), account="ccv0001")
    endwhen
    commit
    The idea is calculate value = price * quantity and put in a new rec when i load the data.
    value =ccv0001
    price = ccp0001
    quantity = ccq0001
    i dont know whats wrong but thats calculate nothing.

    Unfortunately you really don't exactly know if a scope is exactly right, unless you work out the tuples specific to each calculation and the define independent script calcs for each tuple set.  A fancy way of saying, breaking down the calculation to each basic account by all the other dimension members that are to get together in a calculation.
    There is a way of testing the script starting in version 7.0SP4 ithink, called the logic debugger.  This process actually has you define some form of scope in order to test the calculations as a dry run, but not run based on an import, rather based on your request to run.
    There are also various rules used during the logic calculation process, such as the engine will query all Accounts for values in the DB that match your inbound data set, or scope. Category, Time and Entity play an critical role in any caluclation, and the processing of values.  And remember that logic that works in default may not look the same as when data is loaded, based onthe sets of data that are used during the passing of inbound detals to the engine for the logic processing.
    hope this helps.

  • Allocation Logic

    Hello Gurus, I am trying to test the allocation in BPC.
    I have this scenario:
    1. I have a dimention called SKU that has all SKUs that the company sells. Also I have a Hierarchy that represent Product Family.
    2. User will imput data at Product Family level, so that I will have a dimension with all the Product Family.
    3. I need to allocate the data inputted into all the corresponding SKUs that corresponign to that hierarchy level?
    Any idea on how to deal with this?
    Thanks
    Sergio

    Hi Sergio,
    Could you please be more specific re the data to be allocated. I'd assume that you enter data to NO_SKU/ PRDOLINE1, PRODLINE2 &c intersections and may need to allocate using last year's actual figures.
    In this case something along the following lines:
    FACTOR=USING/TOTAL
    DIM SKU WHAT=NO_SKU; WHERE<>NO_SKU; USING=<<<; TOTAL=<<<
    DIM PRODLINE WHAT=BAS(TOTAL); WHERE=<<<; USING=<<<; TOTAL=<<<
    DIM CATEGORY WHAT=PLAN; WHERE=<<<; USING=ACTUAL; TOTAL=<<<
    DIM TIME WHAT=BAS(%YEAR%.TOTAL); WHERE=<<<; USING=BAS(%YEAR%(-1).TOTAL); TOTAL=<<<
    Hope this helps
    Madis

Maybe you are looking for