Conditional script logic based on total value...

Hi Experts,
I have a consolidation rule scenario below wherein I have to apply the following logic since it's not possible to check the sign of data using automatic adjustment business rules.
If Investment > Share Capital record difference in Goodwill
If Share Capital > Investment record difference in RE
To simplify things since it's hard to track which Entity is active under the selected consolidation group, what I want now is to simply get the result under 9_CONSO for Elim Control since the sign convention is consistent for the elim entries. Say if TOTAL is positive then I'll record the data in RE else Goodwill. I already have a work in progress code but still I'm having a hard time getting the total. hope you could help me regarding this.
          11_UPLOAD     11_UPLOAD     22_CAPI          22_INVS          9_CONSO
          ENTITY_A     ENTITY_B     ENTITY_B     ENTITY_A     TOTAL
Share Capital     1,500          -1,500
RE
Elim Control                         1,500          -2000          -500
Goodwill
Investment     2000                              -2,000
Current Script:
*XDIM_MEMBERSET GROUPS = %GROUPS_SET%
*XDIM_MEMBERSET TIME = %TIME_SET%
*XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
*XDIM_MEMBERSET ACCOUNT = 0003100010
*WHEN DATASRC
*IS "22_CAPI"
*REC(EXPRESSION=(%VALUE% > ([ACCOUNT].[0001300010],[DATASRC].[22_INVS])? %VALUE%*-1:0),ACCOUNT="0001201010")
*REC(EXPRESSION=(%VALUE% < ([ACCOUNT].[0001300010],[DATASRC].[22_INVS])? %VALUE%*-1:0),ACCOUNT="0003300020")
*ENDWHEN
*COMMIT
*XDIM_MEMBERSET GROUPS = %GROUPS_SET%
*XDIM_MEMBERSET TIME = %TIME_SET%
*XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
*XDIM_MEMBERSET ACCOUNT = 0001300010
*WHEN DATASRC
*IS "22_INVS"
*REC(EXPRESSION=(%VALUE% < ([ACCOUNT].[0003100010],[DATASRC].[22_INVS])? %VALUE%*-1:0),ACCOUNT="0001201010")
*REC(EXPRESSION=(%VALUE% > ([ACCOUNT].[0003100010],[DATASRC].[22_INVS])? %VALUE%*-1:0),ACCOUNT="0003300020")
*ENDWHEN
*COMMIT
Thanks in advance,
Marvin

Hi Marvin,
In Consolidation, under a specific group/sub group, always there will be only one entity which will hold the method 90 (group parent) and where you suppose to post all these Goodwilll or Capital Reserve. If not, please explain your scenario.
You can also run validation after consolidation logic to post the negative amount in CR.
I hope this will help.
Anil

Similar Messages

  • Script Logic based on %value% of the Account

    Hi All
    Hope everyone is doing great. This blog has been really helpful.
    Version: BPC NW - 10, sp12
    I have a situation where I am using an account as FLAG01 and based upon the flag value input by the user, I would like the calculation to be executed.
    I have written the basic algorithm which I am looking forward to resolve:
    When FLAG01 = 0
         Do Nothing
    When FLAG01 = 1
           [ACCOUNT].[B] = [ACCOUNT].[A] * (-1)          and goes into ENTITY = "US_ELIM"
    When FLAG01 = 2
           [ACCOUNT].[B] = [ACCOUNT].[A] * (-1)          and goes into ENTITY = "NA_ELIM"
    I have written the script logic, but guess missing the syntax somewhere.
    eg:
    *WHEN "FLAG01"
    *REC(EXPRESSION = %VALUE% = 1 ? ((-1)*([ACCOUNT].[A]), 0 , ACCOUNT = "B", P_ENTITY = "US_ELIM")
    *REC(EXPRESSION = %VALUE% = 2 ? ((-1)*([ACCOUNT].[A]), 0 , ACCOUNT = "B", P_ENTITY = "NA_ELIM")
    *ENDWHEN
    Any insights are appreciated.
    Thanks
    AJ

    Worked like a charm, just had to make minor tweaks based upon details to test it and it worked.
    *WHEN ACCOUNT
    *IS EL05
    *REC(EXPRESSION = ([ACCOUNT].[EL05])==1? (-1)*([ACCOUNT].[FN-COS.1.4.1]):0, ACCOUNT = "FN-REV.1.1.3.5", P_ENTITY = "A")
    *REC(EXPRESSION = ([ACCOUNT].[EL05])==2? (-1)*([ACCOUNT].[FN-COS.1.4.1]):0, ACCOUNT = "FN-REV.1.1.3.5", P_ENTITY = "B")
    *ENDWHEN
    Really glad how the results came out in 3-4 hit and trials.
    Thanks Vadim, appreciate your help on this.
    Thanks to all who helped.
    Regards
    AJ

  • Line item pricing based on total value of the order

    Hi,
    We need to charge as a separate line item (material) 'Insurance' as a % based on the total value of the order less one line item. Our orders are created on the web and posted via a BAPI.
    (a) depending on where the customer is located, we charge a certain added shipping cost.
    (b)  the customer has the choice to ask for insurance or not.
    The actual order may be 10 lines totaling $1,000 and due to location, the BAPI slaps on an added line item of $100. If the customer chose the insurance option, the BAPI needs to slap on another line item whose value would be, say 2% of the total order, i.e. 2% of 1000 (instead of on 1000+100). Of course, if the customer doesn't choose this option he is not charges this extra line and further if the customer is not in the particular region, the 100 charge may also not be there.
    The 2% can vary time to time so needs to be driven by a condition record based on %.
    How can we achieve this in the pricing procedure? The logic of how the BAPI will function is clear to us, we are stuck on the pricing procedure configuration.
    Glad to answer any further questions you may need for clarifications.
    Many thanks!

    Ideally insurance would be levied on end customer based on Inco Terms like CIF, DDU etc.,
    So you can have an access sequence for which you can make use of tables like 033 & 034 in V/07.  In VK11, for this combination, maintain the required insurance percent.
    In condition type V/06, for this condition type, maintain "C" for Manual entries, since you have indicated that customer has the choice.  Otherwise, this can be populated automatically in sale order.
    Similarly, for shipment cost also, you can have the Inco2 as one of the combination so that based on region, this condition type will be populated in sale order.  If you have shipment cost configured, then this can be achieved.
    In your pricing procedure, you have to assign the shipment cost condition type next to insurance and assign the From-To step accordingly.
    thanks
    G. Lakshmipathi

  • Condition value of Tax condition type gets added to Total Value in Contract

    Hi All,
    I'm currently investigating an issue where there are 2 line items in an SAP Sales Contract. There is a human error in the second line where the billing end date is less than billing start date in the billing plan.  Consequently, the second line has null Outgoing target value.
    However, the header Total value in the Contract  gets wrongly calculated as Basic condition value of 1st line  + Condition value of tax condition type of line one due to this.   When I modify the billing end date for the second line item to be a date greater than the billing start date, the above problem disappears and the total value of the contract does not include the tax component.
    For eg.
    Normal Error free  Contract
    Total Value at Header =   700.00 EUR
                       Material          Outgoing Target val
    Item 0010    MAT1               450.00                          ( 450 + 50 (tax )  )
    Item 0020    MAT2               150.00   
    Contract with billing plan error in second line
    Total value at Header =   550.00 EUR 
                            MAterial       Outgoing target val          
    Item 0010         MAT1             450.00                    ( 450 + 50 (tax ) )
    Item 0020         MAT2              0.00         
    Any inputs would be most welcome.
    Regards,
    Venkatesh.
    Edited by: Venkatesh Gopalarathnam on Jan 24, 2012 9:48 AM

    No, i didn't.
    Actually, i enter condition type and amount in sales order manually.
    At that time my program which i modified at 'Define And Assign Pricing Procedures' in IMG should be run. 
    But the result of running is different from my purpose.
    To change Condition value of condition type in sales order, are there any solution?

  • Script logic to calculate average value on nodes - SAP BPC NW 10.0

    Hi experts,
    I need to have in the parent members of the dimension TIME (2014.Q1, 2014.Q2,  2014.Q3, 2014.Q4, 2014.TOTAL) the average value of  their children and not the sum. For example :
    2014.01        2014.02         2014.03        2014.Q1
        1                  2                    3                  2                                          
    2 = AVG(1, 2, 3)
    I tried the script bellow but it doesn't work , it throws the error " ReferenceError : AVG is not defined"
    *SELECT(%TIMESET%,"[ID]",TIME,"[CALC]='Y'")
    *XDIM_MEMBERSET TIME = %TIMESET%
    *XDIM_MEMBERSET MEASURES = PERIODIC
    *WHEN DIM1
    *IS C02
    *WHEN TIME
    *IS %TIMESET%
    *REC(EXPRESSION = AVG(Descendants([%TIMESET%].CURRENTMEMBER)), TIME = %TIMESET%)
    *ENDWHEN
    *ENDWHEN
    *COMMIT
    How can I achieve this ?
    Thanks
    Maha

    The best way is to enter 2 accounts: Productivity and Area, calculating by dimension member formula:
    ProductivityPerHectare=IIF([Area]=0,NULL,[Productivity]/[Area])
    If you have to enter ProductivityPerHectare and Area, then in script you can calculate Productivity:
    *WHEN ACCOUNT
    *IS Area
    *REC(EXPRESSION=%VALUE%*[ACCOUNT].[ProductivityPerHectare],ACCOUNT=Productivity)
    *ENDWHEN
    *WHEN ACCOUNT
    *IS ProductivityPerHectare  //user input
    *REC(EXPRESSION=%VALUE%*[ACCOUNT].[Area],ACCOUNT=Productivity)
    *ENDWHEN
    Then dimension member formula:
    ProductivityPerHectareCalc=IIF([Area]=0,NULL,[Productivity]/[Area])
    You can use arithmetic average of ProductivityPerHectare only if Area is always constant.
    In this case you can create some dummy account member DUMMY and fill it with 1:
    *WHEN ACCOUNT
    *IS ProductivityPerHectare  //user input
    *REC(EXPRESSION=1,ACCOUNT=DUMMY)
    *ENDWHEN
    Then dimension member formula:
    ProductivityPerHectareCalc=IIF([DUMMY]=0,NULL,[ProductivityPerHectare]/[DUMMY])
    Vadim

  • Conditional Plan Task Based on Customer Value

    Trigger Task in Plan that will route a service ticket to a different group based on Customer field
    I have a hardware request form.  I would like to route the task to a group based on the location of the customer.  Our company has approx 147 distinct locations and the request for a hardware request will get routed to approx 20 different Tier 2 groups based on the customer's location.
    First off, I am not using Request Center for service delivery.  I am using a servicelink agent to route a ticket to HP Service Desk.  I was planning on using the conditionals in the plan and create a 20 tasks for each Tier 2 group I need to route to.  The conditionals would look like this:
    Service.Data.Customer_Information.Location_Code = "ATLNTA1100" OR Service.Data.Customer_Information.Location_Code = "AUSTIN7600" OR Service.Data.Customer_Information.Location_Code = "BIRMIN3595"
    The problem is that the conditional section only allows for up to 255 characters.  There are 25+ locations that would route to one of the Tier 2 groups.
    Can someone think of a different way I could route this?

    We are doing something similar to Joshua.  In our environment, every user has a location code tied to their HR record, which we pull in through a directory integration.
    when ordering, there is a DDR on the form that looks up the location code in a SQL server table we have created.  In that table, addition to the site logistics, like street, city, stat, country and zip, we also have columns for various performer roles that exist, like desktop support, blackberry support, phone support, desktop purchasing, etc.  We pull that back into the form and then let the customer override and validate a different location if they need something for a different location. 
    We have about 2000 location codes in our system to support our 50,000 employees, many of which are just different parts of a floor or floors in a building.  We set the performer roles to the queue name that gets the work(we are using Service manager for Fulfillment).    so, we have one task, but it route to a performer based on an expression, which is the looked-up value for that support function.
    that enables us to change routing or add locations via data changes in SQL rather than  Catalog deploying a new version of a service or writing a massive client-side javascript.  We've been using this for about 3 months and it works very well.

  • Handling Ranges in Script Logic

    Hi Experts
    Is it possible to put logic to check a range of values in Script Logic.
    For example, if I need to check if the value in Quantity Account is between 200 and 800, then only some Quantity Discount is calculated against this.
    What command should one use for this
    Any input would be very helpful.
    Regards
    Krishnendu

    Hi Krishnendu,
    I believe that you can use MDX or a BADI to do this. Using MDX, for example, the following should write 100 to the QUANT_DISC account in the event that QUANTITY is greater than 200 and less than 800:
    [ACCOUNT].[QUANT_DISC] = IFF(([ACCOUNT].[QUANTITY]) > 200,IIF(([ACCOUNT].[QUANTITY])<800,100,0),0)
    This is just example MDX code - you'll have to adapt and test yourself. I suggest using the script logic tester to speed the process. Performance may be less than ideal, and you can certainly implement this in a BADI in that event.
    It would be nice if it were possible to do this using WHEN/IS statements in script logic, but at present conditional logic based on measure values is not supported in that context.
    Ethan

  • Function module for finding sales order GT total value(vbak-netwr)

    Can anyone tell which function module is used to find the Sales order  greater than the input parameter which is  total value(vbak-netwr).Output should be the details of sales order satisfying the condition.ie greater than the total value.

    Hi chandra
    I hope you are giving the logic to the ABAP'ers . By giving the input and the outputs. So here , VBAK-NETWR are related to functional consultants .
    Based on the requirement , SD,FI etc the give the logic but mostly it is related to SD consultants only
    Reagrds
    Srinath

  • Validate my script logic: reference erro LOOKUP is not defined

    Dear all,
    i want write one script logic. It use LOOKUP using FOR/NEXT.
    But when i check stament in my script logic: messesage erro: reference erro LOOKUP is not defined.Can you help me?
    My script logic
    *XDIM_MEMBERSET ACCOUNT=BS221
    *XDIM_ADDMEMBERSET CATEGORY = Actual
    *XDIM_ADDMEMBERSET ENTITY = CSO
    *SELECT(%TIME%,"[ID]",TIME,"[ID]>=2006.01 AND [ID]<=2006.02")
    *XDIM_MEMBERSET TIME = %TIME%
    *LOOKUP Rates
    *DIM  CATEGORY ="Actual"
    *DIM R_ACCOUNT ="AVG"
    *DIM R_ENTITY ="Global"
    *DIM INPUTCURRENCY="USD"
    *DIM MEASURES ="PERIODIC"
    *FOR %T% = %TIME%
    *DIM RATE_%T%: TIME =%T%  
    *NEXT
    *ENDLOOKUP
    *WHEN ACCOUNT
    *IS "BS221"
    *FOR %T1% = %TIME%
    *REC(EXPRESSION=LOOKUP(RATE_%T1%),TIME=%T%)
    *NEXT
    *ENDWHEN
    *COMMIT
    Thanks,
    Hungth

    Dear Vadim,
    I want test LOOKUP statement using FOR/NEX, then get value per member for member in LOOKUP.
    in excel add-in of Rates Model:
    Actual - Actual
    Average Rate
    Global Entity
    2006.01 - Jan 2006
    31
    2006.02 - Feb 2006
    30
    2006.03 - Mar 2006
    30
    2006.Q1 - Q1 2006
    30
    I want run my script logic above to get value from Rates Model ( 2006.01: 31, 2006.02 : 30, 2006.03: 30 ) to current model , to calculate in crurrent model.
    BS221 - Long Term Debt
    2006.01 - Jan 2006
    2006.02 - Feb 2006
    2006.03 - Mar 2006
    Actual - Actual
    31
    30
    30
    How i can write my script logic? My script logic statements is correct??
    Thanks,
    hungth

  • MEASURES in script logic

    Hi All!
    How can I use YTD measures in script logic? My aplication is PERIODIC ( YTDInput set to No) and I need in my script logic to use YTD values for some calculation. I tried following syntax
    *REC(EXPRESSION=([C_ACCT].[PLM],[MEASURES].[YTD]))
    but after validation error appears
    http://screencast.com/t/q2gChPrqbVXy.
    Please help, how to use measures dim in script logic??
    Regards,
    Justyna

    Full script not it is working fine after change *XDIM_MEMBERSET MEASURES=YTD to *XDIM_MEMBERSET MEASURES=PERIODIC
    *XDIM_MEMBERSET C_ACCT = VALCON_EN020
    *XDIM_MEMBERSET MEASURES=PERIODIC
    *WHEN_REF_DATA = MASTER_DATA
    *WHEN C_ACCT
    *IS VALCON_EN020
    *REC(EXPRESSION=([C_ACCT].[PLM],[MEASURES].[YTD]))
    *ENDWHEN
    *COMMIT

  • Error Script Logic FXTrans

    Hi All,
    Under script logic section under my application, I have maintain
    *RUN_STORED_PROCEDURE=SPRUNCONVERSION('%APP%','%CATEGORY_SET%','','GLOBAL','%SCOPETABLE%','%LOGTABLE%')
    and added below it the following
    *INCLUDE SYSTEM_CONSTANTS.LGL
    *INCLUDE SYSTEM_LIBRARY.LGL
    *SYSLIB MULTICURRENCYTRANS.LGF
    I receive the following error, " Application: FINANCE
    Logic file: FXTrans.LGF
    Validation status of executable file: Failed
    - missing file:D:\PC_MS\DATA\WebFolders\BSB\AdminApp\FINANCE\SYSTEM_LIBRARY.LGL
    Validation status of syntax: Failed
    - Invalid syntax found; see statements in red"
    The Red ones are
    - SYSTEM_LIBRARY.LGL
    - MULTICURRENCYTRANS.LGF
    Could anyone advise me how do go about on this
    Thanks
    Zan

    Hi,
    I'd like to clarify first that SPRUNCONVERNSION and MULTICURRENCYTRANS.LGL do the same thing using different methods. The first requires you to maintain appropriate business rule table called Currency Conversion and the latter is Script Logic-based functinality. Typically you do not need to maintain bot as SPRUNCONVERSION is pretty robust and should fulfil all your needs unless you have to do some truly exotic variation of the business calculation.
    So to conclude you probably only need the following in your script logic:
    *RUN_STORED_PROCEDURE=SPRUNCONVERSION('%APP%','%CATEGORY_SET%','','GLOBAL','%SCOPETABLE%','%LOGTABLE%')
    *COMMIT
    and also maintain rates in the rate application. Please refer to user guide section Business Rule Management for further details: [http://help.sap.com/saphelp_bpc75/helpdata/en/b1/f5839e6ba74a22aa4ce9470179c854/content.htm]
    In order to use script logic you will need to write the logic yourself or to use the one supplied with the system (in the SYSTEM_LIBRARY).
    The logic library is stored in the file on the server %APPSET%\System Library\Logic Library\SYSTEM_LIBRARY.LGL
    IN your script logic you need to include the library to use in your logic:
    *SYSLIB SYSTEM_LIBRARY.LGL (SYSLIB tells the system to look at the specific place in the appset folder and LGL is the extension for appset-level logic files)
    After this you need to call appropriate subprogram from that library and pass some parameters to it:
    RunFX(%APP%,%CATERGORY_SET%)
    *COMMIT
    for example.
    Hope this helps,
    Madis

  • 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 Mas

    Hi 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

  • Lookup total value in logic script

    hi experts,
    is it possible to lookup with same criteria that returns many row and fetch the total of all returning rows ? if it is possible, how ?
    you can see at attached picture, i try to lookup with same criteria (row 3 & row 5), the different only at column 3. what i want is fetch the total value of row 3 & row 5 = 1000 + 10000 = 11000
    but what i get is 1000 which means only fetch the first row (row 3).
    the code that i using in my logic script:
    *XDIM_MEMBERSET ACCOUNT = 551010
    *XDIM_MEMBERSET METRIC = PERCENTAGE
    *XDIM_MEMBERSET RPTCURRENCY = LC
    *XDIM_MEMBERSET SUBITEM1 = NO_SUB1
    *XDIM_MEMBERSET MEASURES = PERIODIC
    *XDIM_MEMBERSET SUBITEM3 = NO_SUB3
    *XDIM_MEMBERSET BUAREA = NO_BUAREA
    *XDIM_MEMBERSET ENTITY = %ENTITY_SET%
    *XDIM_MEMBERSET CATEGORY = 2014Q3
    *XDIM_MEMBERSET AUDITTRAIL = Input, OFFSET
    *XDIM_MEMBERSET INTERCO <> NO_INTERCO
    *XDIM_MEMBERSET TIME = 2014.07
    *LOOKUP Finance
    *DIM EXP_Input:AUDITTRAIL = Input
    *DIM EXP_Input:METRIC = AMOUNT
    *ENDLOOKUP
    thank you.

    Hi Yoki,
    Please, read How To: Ask questions about Script Logic issues
    Point 9! and other...
    In general it's possible to use LOOKUP to get a value of the parent node, but it's not clear what total do you want to get.
    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,
    Luisana

    Hi 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

  • 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

Maybe you are looking for

  • How do i get songs that i purchased on my iphone to show up in my itunes library

    how do i get songs that i purchased on my iphone to show up in my itunes library

  • Deleting specific scanned pages?

    After doing a text search on a large document, I have 230 pages that were pulled out.  How can I delete these pages from the original document? 

  • Error After Adding Music

    Whenever I sync my iTouch (it's the first generation [I know, I'm outdated a lot]) to add music, the music syncs perfectly. But, when I access the music app on the iPod, it will say "Updating Library: This may take a few minutes". Sometimes it will f

  • Run cron scripts at startup

    I would like to set up an apple script where I can run all cron scripts as well as repair disk permissions at startup.

  • Help with Oracle Scripting Tool

    Hello all, I am currently new to using the Oracle Scripting Tool. I can already launch the scripting author and develop some basic scripts using PL/SQL commands and test them using the scripting user responsibility. My main problem is with this one r