Ignoring characteristics in a BPS FOX formula

Hello,
I have a multiplanning area consisting of two planning areas. In the first one there are yearly data. In the second one there are monthly data. I have a FOX formula distributing the yearly data by a set of periodization keys into the planning area with monthly data.
Now we have introduced a new characteristic "Resource class" in the planning area with yearly data. It has not been added to the planning area with monthly data, as it is not relevant there.
My original assumption was that the FOX formula didn't have to be modified as "Resource class" should not be taken into consideration during the periodization. This proved to be wrong. It seems only data with no resource class are periodized. So it seems the system keeps the values of all characteristics not in the "Fields to be changed" and ignores the data if a characterstic value can't be stored in the destination planning area because the characteristic doesn't exist in that planning area. Even if the characteristic is not in the planning level.
I want data to be periodized regardless of resource class. One way to do it is to loop over all resource classes and then periodize the total value. The FOX formula is however already quite complicated. Is there a simpler way to make the system completely ignore the resource class and run the existing FOX formula with values aggregated on resource class?
Best regards,
Christoffer Owe

If you are using a distribution function for distributing the yeraly data to monthly data then  try unchecking the 'resource class' characteristic in the 'to be changed fields'.

Similar Messages

  • Using variable in fox formula containing several characteristics

    Hi @all,
    is it possible to use a variable in fox containing more than one characteristic? I need to have some additional information for a few 0SEM_POSITs but don't want to create an attribute.
    I've created variable ZSCV25 containing characteristics 0SEM_POSIT and ZSCADVDEL but wasn't able to get any data by using VARI.
    Anybody an idea? Thanks for your help.
    Regards,
    Thomas

    <FONT FACE = "Tahoma", Font Color = "Blue">
    Dear Thomas<br>
    I don't think FOX Formula Variable can contain more than one characteristic value. <br><br>However I can suggest you to try one thing. Create an Exit Variable and in its ABAP Code refer to the master data table of base variable and retrieve the value of its desired attribute. <br><br>For example, let us assume that you have a characteristic 0COMP_CODE and 0COUNTRY is its attribute. Now you want that depending on the value of 0COMP_CODE selected by User in another variable ZCOMP_CODE , 0COUNTRY should be automatically populated in variable ZCOUNTRY. So in this case, please make ZCOUNTRY as an Exit Variable and write ABAP Code for that. In the ABAP Code, get the value of 0COMP_CODE which is entered by User in the other variable ZCOMP_CODE. Then write a select statement in ABAP and retrieve the value of 0COUNTRY from the master data table of 0COMP_CODE where Company Code value is equal to value of variable ZCOMP_CODE.<br>
    I hope I am getting you and you are getting me :-)<br>
    <br>Please let me know in case of any confusion.
    <br><br>
    Hope it helps.<br><br>
    Cheers Abhijit<br>
    </FONT><FONT FACE = "Verdana", Font Color = "Red">
    Removed
    </FONT>

  • Using BPS numberic variables in the FOX formula???

    Hi all,
    Can someone tell me how to use one variable (<b>the variable type is 'numberic'</b>) in the FOX formula? Thank you.
    FOX formula example:
    <b>Inventory $= inventory unit * inventory (per unit) * depreciation monthS (<u>this is a numberic variable</u>.</b>
    J.

    Hi John,
       You can use the VARV function to get the value of the numeric variable in FOX.
       Lets say your variable for depreciation months is ZDEPMTS.In your FOX, you
       can say: Inventory $= inventory unit * inventory (per unit) * VARV(ZDEPMTS).
       Hope this helps.
    Cheers
    Srini

  • Fox formula - Copy variable value to a characteristic in IP

    Hi All,
    I have to copy the value of a variable to a characteristic in Fox formula in IP. In this scenario I am forecasting data using copy function. Whenever new data is copied I need to save it as a new version. So in the fox formula I have mentioned only 'version' as the field to be changed. I get the value of version automatically from a function module. In BPS I think it is possible but I am using IP.
    Example.
    Copied data
    Customer Material Version Year Qty
    c1            m1          0           2012  10
    c2            m2          0           2012  20
    c3            m3          0           2012   15
    This is the reference data got as a result of copy function. In the code I get the version computed from a function module in variable fm_version.
    I wrote the logic like this.
    data lv_version type version.
    foreach lv_version.
    {0quant_b, lv_version} = {0quant_b, fm_version}
    endfor.
    When it is execute it is showing error as records changed and deleted.
    Is it the correct method or is there any other workaround.
    I would realyt appreciate your time and effort.
    Thanking you,
    Jerry Jerome

    Hello,
    You can use either standard copy function or fox formula.
    So here I need to make the version as 1 since it is forecasted for the first time. I am trying to do it with a fox formula. In the fox formula I am trying to change the characteristic value of version from 0 to 1.
    You can not change the characteristic value of version from 0 to 1. The copy function or fox formula will copy the key figures from version 0 to 1.
    For example:
    The transaction data contains data like -
    customer     material            year     version    qty
    c1                 m1            2012     0           10
    c2                 m2            2012     0            5
    After copy you will get both version like this
    customer     material            year     version    qty
    c1                 m1            2012        0        10
    c2                 m2            2012        0         5
    c1                 m1            2012        1        10
    c2                 m2            2012        1         5
    Thanks.
    With regards,
    Anand Kumar

  • Problem with Nested loop in Fox-Formula

    Dear Experts,
    Let s share the scenario :
    MaterialGroups with following Keys for Example AAAA, BBBB, CCCC..., Materialgroups are selected in the 1st input ready query, which is assigned to DataProvider DP_1 in a  webtemplate.
    every Materialgroup has several Materials, for instance:
    Materialgroup AAAA has following Materials: AAAA10, AAAA11, AAAA12, AAAA13...
    Materials are  selected in a second  input ready Query, which is assigned to a second DataProvider DP_2 in the Same Webtemplate as the query 1.
    Both Materialgroup and Material are based on the same Aggreagtion level and same real time cube.
    I want to copy the input values for every  MaterialGroup ( 1st query, DP_1) only to it s own Materials (2cond Query, DP_2).
    To resolve this Issue i wrote the following Fox Formula code with a nested loop, however it does not work properly. when I m debugging the code, i could release that the second Loop was ignored.but wehn i replace the second loop (nested loop) with a fixed value it s seems to work properly
    DATA MG1 TYPE MATG.<------ MaterialGroup
    DATA MT1 TYPE MAT.<----
    Material
    DATA S1 TYPE STRING.
    DATA S2 TYPE STRING.
    DATA S3 TYPE STRING
    DATA K TYPE F.
    DATA Z TYPE F.
    FOREACH MG1.
    To check Materialgroup in debugger
    S1= MG1.
    BREAK-POINT.
    K = {KEYfIG, #, MG1}.
    BREAK-POINT.
    FOREACH  MT1.   <----- if i set MT1 to a fixed value like AAAA11 then S3 get the wished value namely AAAA
    S2 = MT1.
    BREAK-POINT.
    S3 =  SUBSTR (MT1, 0, 4).  
    BREAK-POINT.
    IF S1 = S3.
    {KEYFIG, MT1, #} = K.
    following Statement is only used To check in debugger if Material has become the same Materialgroup value
    Z = {KEYFIG, MT1, #}.
    BREAK-POINT.
    ENDIF.
    ENDFOR.
    ENDFOR.
    Thakns for any help
    Frank
    Edited by: FRYYYBM on Mar 17, 2011 10:54 PM
    Edited by: FRYYYBM on Mar 17, 2011 11:06 PM

    Hi,
    Please try this way.
    DATA MG1 TYPE MATG.<------ MaterialGroup
    DATA MT1 TYPE MAT.<----
    Material
    DATA S1 TYPE STRING.
    DATA S2 TYPE STRING.
    DATA S3 TYPE STRING
    DATA K TYPE F.
    DATA Z TYPE F.
    FOREACH MT1.
    FOREACH MG1.
    To check Materialgroup in debugger
    S1= MG1.
    BREAK-POINT.
    K = {KEYfIG, #, MG1}.
    BREAK-POINT.
    FOREACH MT1. <----- if i set MT1 to a fixed value like AAAA11 then S3 get the wished value namely AAAA
    S2 = MT1.
    BREAK-POINT.
    S3 = SUBSTR (MT1, 0, 4).
    BREAK-POINT.
    IF S1 = S3.
    {KEYFIG, MT1, #} = K.
    following Statement is only used To check in debugger if Material has become the same Materialgroup value
    Z = {KEYFIG, MT1, #}.
    BREAK-POINT.
    ENDIF.
    ENDFOR.
    ENDFOR.
    ENDFOR.
    Thanks.
    With regards,
    Anand Kumar

  • How to Write a FOX Formula in Intergrated Planning Functions?

    HI BI-IP Experts,
    I have just written a FOX formula to call an ABAP Function Module which will execute a Process CHain to run.
    Here is what I wrong in the FOX formula in the Planning Function ZPF_FOX_CALL_PC.
    Call Function Z_CALL_PROC_CHAIN
    = * 1.
    I had to add in this line otherwise the system do not allow me to save the FOX.
    In the Function Module Z_CALL_PROC_CHAIN, it contains the following codes:
        SUBMIT rsprocess
               WITH type    = 'CHAIN'
               WITH variant = 'Process chain name'
               AND RETURN.
    Next I created a workbook with a button that executes this Planning Function ZPF_FOX_CALL_PC.
    The button contains 3 lines:
    CMD => Execute Planning Function
    Planning Function Name => ZPF_FOX_CALL_PC
    CMD => SAVE_AREA.
    After I clicked on the button, my excel seems to be running and I waited for very long but nothing happens.
    And it seems to be running and running and won't stop.
    Is it because the program is running in a loop because I missed out some codes in the FOX?
    Thanks,
    Shunhui.

    hi,
    Since you have not given any condition, the fox formula is being executed for all the number of records...thats why you are seeing the loop.
    example if you have 10 records in your BPS template, the formula is getting executed 10 times for each
    you need to select the field for condition which will make 1 entry, so the function module gets executed just once..
    or.. in the function module when you trigger the process chain, make an entry in a database table... when the 2nd row starts, it will check the table... if the entry exists, it will skip the scheduling of process chain... so on..
    In the process chain.. at the end, delete the entry from the database..
    so your code in the function module should be like this ... assume you have 10 records..
    select * from table zlock  where process chain name = pc name  
    (this is to check if the process chain is already running, if yes skip, if no trigger the process chain)
    if sy-subrc eq = 0.
    exit
    else.
    DATA: number           TYPE tbtcjob-jobcount,
          name             TYPE tbtcjob-jobname VALUE 'JOB_TEST',
          print_parameters TYPE pri_params.
    CALL FUNCTION 'JOB_OPEN'
      EXPORTING
        jobname          = name
      IMPORTING
        jobcount         = number
      EXCEPTIONS
        cant_create_job  = 1
        invalid_job_data = 2
        jobname_missing  = 3
        OTHERS           = 4.
    (this will trigger the process chain in background)
    IF sy-subrc = 0.
      SUBMIT rsprocess
      WITH type = 'CHAIN'
      WITH variant = 'PC name'
      VIA JOB name NUMBER number
                        AND RETURN.
    (after the process chain started, make an entry in the lock table.. so it will not be executed again)
    insert entry in table zlock
    ENDif.
    endif.
    I understand this is complex, but I think its one solution I can think of.

  • Message in fox formula

    Hi,
    I have a fox formula, I write a red message code
    MM = VARI(ZVALID, 1).
    IF MM <> #.
    MESSAGE E001(ZBW).
    ELSE.
    if the variable A has not the value # send the message.
    That works fine, but the message appears by each subset,  and also appear other messages in green/yellow color.
    how can I write the code to send only one red message, and not one message by each subset or green/yellow messages?
    Regards
    Victoria

    Hi Victoria,
    to show this message only one time it is needful to put all characteristics of your planning level in the fields to be changed of the corresponding planning function. This means, that the system will generate only one data-package including all data of your planning-level-selection and now the fox-coding is called only <b>one</b> time !
    In GUI it is not so easy to suppress the green and yellow system-SAP-messages, in the Web-Interface-Builder you can supress all messages with a special method.
    Bye Gil

  • How to realize special scenario with FOX formula - FOREACH, variables

    Hello,
    we want to use the integrated planning for the following thing within the portal:
    A salesman should add manual values (planned turnover) for his top 10 customers. The rest of his yearly budget should be distributed automatically and equally to the rest of his customers.
    I thought a lot about it and arrived at the conclusion that:
    - we have somehow to put the salesman number into a variable maybe also the year for which the planning should be done -- Which possibilities are given to do this?
    - We need an additional flag that tells if this customer has to be planned / was planned manually.
    After the manual planning a planning function (FOX formula) has to be executed in order to
    1. get the budget that was already planned manually
        use of FOREACH in combination with an IF clause
        -- Which kind of FOREACH do I have to use?
    2. calculated total budget - manual planned budget = budget that has to be distributed
        after FOREACH
    3. count on how many customers the distribution has to be done and calculate the
        turnover per customer (rest budget / counted customers)
        use of another FOREACH loop which counts every value that hasn't got the flag set
    4. distribute the remaining budget on the customers that weren't planned manually
        -- Can it be done with something like turnover=value that should be assigned ?
    Maybe it's simple to realize this scenario but I'm a absolute "newbie" on that theme.
    Thanks
    Bettina

    Hi,
    I have been following this thread for quite long, here's my take on this
    1. Please create all the master data like sales man, customers in BI. for the key customers  add an attribute to key customer which can be a single character field.
    2. Add Sales man as an attribute to customer master and maintain values for each customer.
    3. Create an exit variable for customer number, this should read value from the sales man variable and populate all the key customers.
    4. Create an agg level with the above 2 and the required time characteristic. There will be 3 variables on the input ready query a. sales man number b. key customer exit variable c. some time period variable.
    5. Create a planning function of type generate combination for the agg level created in the above step. Add this function to the work book or the web template.
    6. Now salesman will be able to go in and create his budget for the key customers.
    Annual budget entry
    1. Create an agg level without customer, add salesman and time characteristics.
    2. create a query which will allow to enter data (yearly budget) for the salesman.
    Allocation to non key customers
    1. Create an agg level that should create the missing combinations sales man and non key customers. If designed properly the first agg level can also be used for this function.
    2. Create a fox function which with foreach loop for customer and sales man if the amount is 0 add 1 to counter, also read the value wtih customer as blank (yearly budget), lastly if the amount is not blank sum up the amount. This will help in getting the balance amount.
    3. get balance figure as total - allocated. One more foreach loop same as above if the amount is blank then amount = balance / counter.
    Tried to answer
    thanks

  • Variables in FOX formulas in IP

    Hi All!
    I would like to create FOX planning function that will be based on variables.
    So, we have 2 variables AA and BB based on characteristics:
    1. For 0CALMONTH with tech. name AA
    2. For ZPROJECT with tech, name BB
    I have a query, where at the first screen I make a selection for ready-for-input variables AA and BB. Then, at the second screen I execute planning function via button.
    The sense of PF is copy all values of key figure ZKEYFIGURE from ZPROJECT = '0', 0CALMONTH = selected value of variable AA to ZKEYFIGURE of ZPROJECT = selected value of variable BB, 0CALMONTH = selected value of variable AA.
    In master data of characteristic ZPROJECT we have different projects. but 1 is with technical name 0. This is the first master data in table.
    DATA VAR1 TYPE 0CALMONTH.
    DATA VAR2 TYPE ZPROJECT.
    DATA VAR3 TYPE ZPROJECT.
    VAR1= VARV(AA).
    VAR2 = VARV(BB).
    VAR3 = VARI(BB, 1).
    {ZKEYFIGURE, VAR1,VAR2}={ZKEYFIGURE,VAR1,VAR3}.
    After execution I see , that records were read, but 0 generated, 0 changed.
    Maybe someone can advice what I do wrong?

    Firstly,for 0calmonth,the from and to value is same as you are using the selected values of variable AA.
    So no change in the value of 0CALMONTH
    Secondly, in the fox formula,  for zproject, you are using the same variables. Hence the fox formula understands that there is no change in the value.
    Define two variables for zproject, lets say proj1 and proj2.
    Assign proj1 ='0'.
    I have modified your fox code, give a shot with the following code, hopefully you might get the results as you want.
    DATA VAR1 TYPE 0CALMONTH.
    DATA PROJ1 TYPE ZPROJECT.
    DATA PROJ2 TYPE ZPROJECT.
    VAR1= VARV(AA).
    PROJ1 = 0.
    FOR EACH 0CALMONTH IN VARIABLE VAR1.
    PROJ2 = VARI(BB,1).
    {ZKEYFIGURE, PROJ2}={ZKEYFIGURE,PROJ1}.
    Endfor.

  • Calculating a Leap Year with a FOX Formula

    Hi to everybody.
    Is it posible to calculate a leap year using BPS in BW 3.5 with a FOX formula?
    The code i need to write is something like this:
    if ((year % 4 == 0) AND ((year % 100 != 0) OR (year % 400 == 0)) then
      it is a leap year;
    else
      it isn´t a leap year;
    endif;
    The problem i have is that my variable year is an standard type 0CALYEAR and I cannot do i.e.
    Year MOD 4, and save this value to an integer because 0CALYEAR and INTEGER are different types of variables.
    Any idea?
    Thanks in advance!
    Edited by: Ivan Lopez on Jan 15, 2008 5:24 PM
    Edited by: Ivan Lopez on Jan 15, 2008 5:24 PM

    Hi,
    Eventhough variable is on the characteristic 0CALYEAR, you can assign the variable value to an integer in FOX.
    Declare a local variable of type integer.
    DATA YEAR TYPE I.
    YEAR = VARV(variable).
    Now you can do MOD operations on YEAR.
    Regards,
    Bindu

  • How to Write Fox Formula in bw 3.5?

    Hi All,
    What is fox formula? and were can i use the fox formula in bw bps 3.5?
    Can anyone explain me the use of fox formula?
    Thanks
    pooja

    Hi Pooja,
    I am not sure about FOX formula, but the below links will help you.
    http://help.sap.com/saphelp_sem320bw/helpdata/en/c4/9057425ca611d4b2e30050dadfb23f/frameset.htm
    https://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/6b80d590-0201-0010-7f84-d57f4adc5a3c&overridelayout=true
    Hope this helps.
    Veerendra.

  • Error in syntax FOX Formula

    Hello all !!
    I have a problem when I execute fox formulas in BPS0 in version 7.0, becuase they don't work.
    The company migrated BW-BPS to 7.0 version.
    The problem occurs when I execute the formulas in BPS0 in the quality environment, which is working with 7.0 version, but we are using 3.5 version in the productive environment; besides we are working with 7.0 version in BW.
    I was wondering if the syntax of the FOX formulas between version is diferrent.....any idea??
    I appreciate your help!!!

    Hi Arlene,
    please check [Re: Foxformula].
    Regards Matthias Nutt
    SAP Consulting Switzerland

  • The fox formula doesnt appear while i create a parameter group?

    Hi all,
    I am not able to get the editior where in i would be able to apply my logic in the FOX FORMULA IN BW. 3.5 BPs.
    Thanks
    Pooja

    1. Click on Planning Area
    2. Highlight Planning Level
    3. Right click on thr Planing Function that shows in the below tab
    4. Select Create Planning Function
    5. Expand All Function
    6. Select Formula, provide tech name and description
    7. Click ok
    8. Select the fileds to change and fields for condition
    9. Right Click on the function name
    10. Select Parameter group, this will open the FOX Editor..
    Regards, Rishi

  • FOX Formula does not calculate ratio

    Dear guys,
    We are customizing the process for calculation of data which will be used for elimination of profit/loss in stock and revenue and expenses during consolidation of manufacturing companies group's financials.
    At the moment we're customizing a FOX Formula for calculation of share of revenue from (source) materials sold to other companies inside the group and used for production of other (target) materials and total revenue received for each of these source products.
    We use the following key figures and characteristics in the level:
    0CS_VERSION     Consolidation (End-Result) Version
    0CURKEY_GC     Currency Key for Group Currency
    0FISCPER3     Posting period
    0FISCVARNT     Fiscal year variant
    0FISCYEAR     Fiscal year
    0MOVE_TYPE     Movement Type
    MPZZFKOD     Source Material Consolidation Code
    PRODUCER     Company - Producer
    SL_TYPE          Sales Location Type: Export/Domestic
    TRG_COMP     Target Company
    ZZFKOD          Target Material Consolidation Code
    COGSGGC     COGS Gross GC
    SREVENGC     Revenue Statistical GC
    VS_SUPSH     VS Supplier Share
    MPZZFKOD ZZFKOD     TRG_COMP  COGSGGC    SREVENGC      VS_SUPSH
    2651     #      #           0             10.070.099     0,00000
    2651     2703      3           21.000              0                     0,00000
    2651     2704      3           19.116              0                     0,00000
    We need to calculate a ratio of COGSGGC for each ZZFKOD and total SREVENGC. (21.000/10.070.099 and 19.116/10.070.099).
    Below is a program code:
    DATA SUM_KF TYPE F.
    DATA SHARE  TYPE F.
    DATA FLAG   TYPE I.
    DATA KEYFIG TYPE F.
    DATA L_ENTRIES TYPE I.
    *DATA L_ZZFKOD TYPE  ZZFKOD.
    *L_ZZFKOD = VARV(TMCONSCD).
    *DATA L_MPZZFKOD TYPE MPZZFKOD.
    DO.
    IF FLAG > 1.
    EXIT.
    ENDIF.
    ENDDO.
    L_ENTRIES = VARC(VERSION).
    *SUM_KF = 0.
    *FOREACH L_MPZZFKOD.
    SUM_KF = SUM_KF +
    *{SREVENGC,'#','#'}.
    *ENDFOR.
    *SUM_KF = SUM_KF + {SREVENGC,'#','#'}.
    *FOREACH L_MPZZFKOD.
    SHARE = {COGSGGC,L_MPZZFKOD,'#'} / SUM_KF.
    {VS_SUPSH,L_MPZZFKOD,'#'} = SHARE.
    *ENDFOR.
    *SUM_KF = SUM_KF + {SREVENGC,'#'}.
    *FOREACH L_ZZFKOD.
    *SUM_KF = SUM_KF + {SREVENGC,L_ZZFKOD}.
    *ENDFOR.
    *DO.
    *IF FLAG > 1.
    *EXIT.
    *ENDIF.
    *ENDDO.
    *FOREACH L_ZZFKOD.
    *SHARE = {COGSGGC,L_ZZFKOD} / SUM_KF.
    *{VS_SUPSH,L_ZZFKOD} = SHARE.
    *ENDFOR.
    Could you help us to understand the reason the program does not work?
    Mila

    Mila,
    I see some issues with your logic:
    1. you are not using fiscal period at all but you declared it.  Is it in your field to be changed or just in your field for condition or package / filter?  Also version 0CS_VERSION?
    2. What is the purpose of Flag > 1?
    3. You are very confused in your looping logic...  You need to think more logically about what you want to do
    4. What is the 3rd items in your fields to be changed?  If you don't use it or change based on it in the FOX, remove it from fields to be changed.
    You want to process for each source material MPZZFKOD (I persume for each fiscal period) and within each source material MPZZFKOD, you want to loop through each target material ZZFKOD.
    Note: the items in the {} depends on the order of your to be changed characteristics
    Give this (or a similar version to this) a whirl.
    DATA SUM_KF TYPE F.
    DATA SHARE TYPE F.
    DATA L_MPZZFKOD TYPE MPZZFKOD.
    DATA L_ZZFKOD TYPE ZZFKOD.
    FOREACH L_MPZZFKOD.
      SUM_KF = {SREVENGC,L_MPZZFKOD,'#'}.
      FOREACH L_ZZFKOD.
         SHARE = {COGSGGC,L_MPZZFKOD,L_ZZFKOD} / SUM_KF.
         {VS_SUPSH,L_MPZZFKOD,L_ZZFKOD} = SHARE.
      ENDFOR.
    ENDFOR.
    You can even do without the share if you map it directly.
         {VS_SUPSH,L_MPZZFKOD,L_ZZFKOD}
                = {COGSGGC,L_MPZZFKOD,L_ZZFKOD} / SUM_KF.
    Hope this helps.  Sounds like you need to read up on some documents on FOX and/or practice with it.
    Mary

  • Multiplanning area FOX Formula

    Hi everyone,
    I’m trying to implement a Fox’s formula with multi-areas through integrated Planning, but the function does not bring any result,  it just says that has read 24 records, but it hasn’t modified nor created any record, when, in fact, are at least 4 thousand.
    The client request is that apply a correction factor over last year operation amounts. The correction factor is in a different Infocube than the others amounts.
    All the characteristics of the aggregation level are set as “characteristic to be changed”, which are all relevant fields of both infocubes, including the field "Infoprovider". Therefore when I want to reference a key figure I use them all, so, when one of the fields is not in the key figure’s Infoprovider, I declare  it (or set it) with the value "#", Is that procedure correct?.
    Ex. Characteristics in bold are not in the key figure's Infoprovider
    {Key Figure, 0COMP_CODE, 0COSTCENTER, 0COSTELMNT, 0CO_AREA, 0CURRENCY, 0FISCPER, 0FISCPER3, 0FISCVARNT, 0FISCYEAR, 0INFOPROV, 0PROFIT_CTR, 0VERSION, 0VTYPE, Z1AVERSIO, ZVAR_EC}
    Then, the string to reference this key figure is:
    { Z1AINDDVA, #, #, #, #, #, DAT_FYP1, DAT_FPER, VAR_FSCV, DAT_YBAS, ZBPS_VAR, #, VAR_VIPC, VAR_TVIE, VAR_IPCV , VAR_VREC}
    This is my FOX formula code:
    DATA CHA_CELM TYPE 0COSTELMNT.
    DATA CHA_CMCO TYPE 0COMP_CODE.
    DATA CHA_CECO TYPE 0COSTELMNT.
    DATA CHA_CURR TYPE 0CURRENCY.
    DATA CHA_COAR TYPE 0CO_AREA.
    DATA CHA_CEBE TYPE 0PROFIT_CTR.
    DATA DAT_YBAS TYPE 0FISCYEAR.
    DATA DAT_YDER TYPE 0FISCYEAR.
    DATA DAT_FPER TYPE 0FISCPER3.
    DATA DAT_FPR1 TYPE 0FISCPER3.
    DATA DAT_FYP1 TYPE 0FISCPER.
    DATA DAT_FYP2 TYPE 0FISCPER.
    DATA DAT_FYP3 TYPE 0FISCPER.
    DATA INF_PROV TYPE 0INFOPROV.
    DATA FLO_IPC TYPE F.
    DATA FLO_BASE TYPE F.
    DATA FLO_DERV TYPE F.
    DATA VAR_VDBA TYPE 0VERSION.
    DATA VAR_VDAA TYPE 0VERSION.
    DATA VAR_VIPC TYPE 0VERSION.
    DATA VAR_VREC TYPE ZVAR_EC.
    DATA VAR_AREF TYPE 0FISCYEAR.
    DATA VAR_MODI TYPE 0FISCYEAR.
    DATA VAR_TVDB TYPE 0VTYPE.
    DATA VAR_TVIE TYPE 0VTYPE.
    DATA VAR_TVDM TYPE 0VTYPE.
    DATA VAR_IPCV TYPE Z1AVERSIO.
    DATA VAR_FSCV TYPE 0FISCVARNT.
    DAT_YBAS = TMVL( VAR_AREF, 0, VAR_FSCV).
    DAT_YDER = TMVL( VAR_MODI, 0, VAR_FSCV).
    DAT_FPER = '012'.
    DAT_FYP1 = CONCAT ( DAT_YBAS, DAT_FPER).
    DAT_FYP2 = CONCAT ( DAT_YDER, DAT_FPER).
    FLO_IPC = 1.
    FLO_BASE = 0.
    FLO_DERV = 0.
    FLO_BASE = { Z1AINDDVA, #, #, #, #, #, DAT_FYP1, DAT_FPER, VAR_FSCV, DAT_YBAS, ZBPS_VAR, #, VAR_VIPC, VAR_TVIE, VAR_IPCV , VAR_VREC}.
    FLO_DERV = { Z1AINDDVA, #, #, #, #, #, DAT_FYP2, DAT_FPER, VAR_FSCV, DAT_YDER, ZBPS_VAR, #, VAR_VIPC, VAR_TVIE, VAR_IPCV, VAR_VREC}.
    IF FLO_BASE <> 0 AND FLO_DERV <> 0.
    FLO_IPC = 1 + ( FLO_BASE / FLO_DERV ).
    ENDIF.
    FOREACH CHA_CMCO, CHA_CECO, CHA_CELM, CHA_COAR, CHA_CURR.
    IF CHA_COAR = 1000.
    IF VAR_VREC = CL01.
    { 0AMOUNT, CHA_CMCO, CHA_CECO, CHA_CELM, CHA_COAR, CHA_CURR, DAT_FYP3, DAT_FPR1, VAR_FSCV, DAT_YDER, ZSEM_C18, CHA_CEBE, VAR_VDAA, VAR_TVDM, #, # } =
    { 0AMOUNT, CHA_CMCO, CHA_CECO, CHA_CELM, CHA_COAR, CHA_CURR, DAT_FYP3, DAT_FPR1, VAR_FSCV, DAT_YDER, ZSEM_C18, CHA_CEBE, VAR_VDAA, VAR_TVDM, #, # } * FLO_IPC.
    ELSE.
    { 0AMOUNT, CHA_CMCO, CHA_CECO, CHA_CELM, CHA_COAR, CHA_CURR, DAT_FYP3, DAT_FPR1, VAR_FSCV, DAT_YDER, ZSEM_C18, CHA_CEBE, VAR_VDAA, VAR_TVDM, #, # } =
    { 0AMOUNT, CHA_CMCO, CHA_CECO, CHA_CELM, CHA_COAR, CHA_CURR, DAT_FYP3, DAT_FPR1, VAR_FSCV, DAT_YDER, ZSEM_C18, CHA_CEBE, VAR_VDAA, VAR_TVDM, #, # } * 1.
    ENDIF.
    ELSEIF  CHA_COAR = 2000 OR CHACOAR = 3000.
    { 0AMOUNT, CHA_CMCO, CHA_CECO, CHA_CELM, CHA_COAR, CHA_CURR, DAT_FYP3, DAT_FPR1, VAR_FSCV, DAT_YDER, ZSEM_C18, CHA_CEBE, VAR_VDAA, VAR_TVDM, #, # } =
    { 0AMOUNT, CHA_CMCO, CHA_CECO, CHA_CELM, CHA_COAR, CHA_CURR, DAT_FYP3, DAT_FPR1, VAR_FSCV, DAT_YDER, ZSEM_C18, CHA_CEBE, VAR_VDAA, VAR_TVDM, #, # } * 1.
    ENDIF.
    ENDFOR.
    Finally, when I try to debug the formula,  it doesn’t bring any value to the correction factor and exits without continue executing the next part of the code in which it should apply the correction factor over the amounts.
    I have some question about this kind of FOX formula:
    1.- How I resolve this issue in order to get my correction factor to be applied over the amounts.
    2.- Is there a way to make a direct reference in order to read each Infoprovider?
    3.- When is right to use all of the fields in the aggregation level (as “characteristic to be changed”) and when is not?.
    4.- If I don't use all multiprovider’s fields in the aggregation level, the update is over all of the records and its combinations?
    I hope you can help me with this.
    Thanks in advance and best regards
    Inge Eichhorns

    Hi Inge,
    See my response below for your perusal.
    How can i make a direct reference in order to read each Infoprovider?
    **When you have a combination of InfoProviders...you need to advise the system to pick up the appropriate InfoProvider. Either you will make the selection a constant or will assign a variable. By selecting or identifying the InfoProvider your function will write to the appropriate Key Figure.**
    When is right to use all of the fields in the aggregation level (as “characteristic to be changed”) and when is not?
    **It depends on the requirement. Having said that...**
    **You will select all the characteristics in the cube when you are  planning to copy one year/one period data to other periods keeping all other characteristics as constant.**
    ***You will select characteristics based on the functionality that affects the changes on the InfoProvider.
    Hope I addressed your requirement.
    Should you have any further concerns please let me know.
    Regards
    Srinivas
    Thanks.

Maybe you are looking for