FOX formula works wrong. Why?

Hello,
My scenario:
<b>My planning layout filled with data:</b>
0CMMT_ITEM:  0FM_AMOUNT1  0AMOUNT(data from fact cube)
<i><b> A.2.2.2____________0_____________500
       A.3.3.3____________0_____________0
       A.1.1.1____________0_____________0</b></i>
FOX Code:
DATA CI       TYPE 0CMMT_ITEM.
DATA CI_VAL_1 TYPE 0CMMT_ITEM.
DATA CI_VAL_2 TYPE 0CMMT_ITEM.
DATA K.        TYPE F.
CI_VAL_1 = 'A.2.2.2'.
CI_VAL_2 = 'A.1.1.1'.
FOREACH CI.
IF CI = CI_VAL_1.
{0FM_AMOUNT1,CI,PLANAREA}={0AMOUNT,CI,FACTAREA}.
K={0FM_AMOUNT1,CI,PLANAREA}.
ENDIF.
IF CI = CI_VAL_2.
{0FM_AMOUNT1,CI,PLANAREA}=K.
ENDIF.
ENDFOR.
After executing this planning function i get result:
0CMMT_ITEM:  0FM_AMOUNT1  0AMOUNT(data from fact cube)
<b><i> A.2.2.2 ___________500___________500
        A.3.3.3____________0_____________0
A.1.1.1____________0_____________0</i></b>
But  A.1.1.1 0FM_AMOUNT1 = 0, it should be equal to 500.
For example, if there are some data in columns, not equal to 0 in the A.1.1.1 row, everything works fine; 0FM_AMOUNT1 = 500 with commitment item A.1.1.1.
Could you give me an advice? What i am doing wrong?
Thanks in advance.
Best Regards,
Arunas Stonys

Hello, Sunil,
If i write fox code like that:
FOX Code:
DATA CI TYPE 0CMMT_ITEM.
DATA CI_VAL_1 TYPE 0CMMT_ITEM.
DATA CI_VAL_2 TYPE 0CMMT_ITEM.
DATA K. TYPE F.
CI_VAL_1 = 'A.2.2.2'.
CI_VAL_2 = 'A.1.1.1'.
*1st loop--
FOREACH CI.
IF CI = CI_VAL_1.
{0FM_AMOUNT1,CI,PLANAREA}={0AMOUNT,CI,FACTAREA}.
K={0FM_AMOUNT1,CI,PLANAREA}.
ENDIF.
ENDFOR.
*2nd loop--
FOREACH CI.
IF CI = CI_VAL_2.
{0FM_AMOUNT1,CI,PLANAREA}=K.
ENDIF.
ENDFOR.
In the first loop i get value K and in the second loop i put it into cmmt_item 'A.2.2.2', but there's the same problem: i can't see my value 500.
Value 500 in cmmt_item A.2.2.2 appears just when i manualy put some value in the same row next column.
Best Regards,
Arunas

Similar Messages

  • FOX Formula works in IP Modeler but not in BEx Workbook

    Hi, I've created a FOX function to do a series of actions.
    If I test the function with a simple filter and execute with trace in Modeler I get exactly the results I want. For example, 5 rows read, 4 rows modified, 4 rows deleted.
    If I add the function as a button on a workbook associated with a data provider (input-ready query) I only get 5 rows read but no rows modified or deleted.
    What is happening? Is there a way to know exactly why he is reading the data but not changing it as required? I think the function is reading the same set of data because it is finding 5 rows in both cases. Any ideas on how I can debug the function or find what what kind of data the function is reading or not reading so that it doesn't execute the code?

    One final question. I am trying to use the sequence in the workbook. I want the variables used by the sequence (in the planning function) to take the values that I entered in the query when entering the workbook. I am using the same variables in both places.
    CMD                                         1 EXECUTE_PLANNING_SEQUENCE
    PLANNING_SEQUENCE_NAME 1 PL06_PS01
    VAR_NAME_1                           1 FISCY
    VAR_NAME_2                           1 Y_VERSION
    VAR_NAME_3                           1 YBP_FCTR_INT
    If I execute like this I get error messages saying I am missing VAR_VALUE_1 and so on but the sequence executes as I intended. What is happening? Do I need to add the VAR_VALUE lines? I don't think so... so why the error messages if the sequence is running and working properly now?
    Additional points will be distributed for help on this issue.

  • Why won't 'IF-Statement' Formula work for an entire column?

    I am trying to make an IF formula subtract a cells value from another cells value, creating a 'balance'.  The formula is working when selecting one cell for each part of the formula, but is not working when I try to use the formula for multiple cells (entire column).  The formula I am using for single cells is as follows:
    =IF(Monthly Timeline :: F2="Citi",Monthly Timeline :: D2+1000,1000)
    The formula works with way, when I select the pop-up menu in F2 to say "Citi" it will add the value of D2 to 1000 and give me a proper solution, but when I change it to the entire column as follows:
    =IF(Type="Citi",Amount+1000,1000)
    The formula for entire columns 'Type' and 'Amount' does not produce a proper solution, it will display 1000, no matter how many values in the 'Amount" column have "Citi" selected in the pop-up menu in the 'Type' column.
    I know there is a way to make this formula work but I can't seem to figure out what I am doing wrong  any help would be greatly appreciated.
    Thanks!

    the function if() does not apply to a column.  the functions sumif() and sumifs() do apply to columns.  You can get detailed information regarding these functions in the function browser.  To open the function browser select the menu item:
    "View > Show Function Browser"
    OR dowload the free function reference from Apple here:
    http://support.apple.com/manuals/#productivitysoftware
    The document is titled "iWork '09 Formulas and Functions User Guide"
    There is also a User Duide you may find helpful: "Numbers '09 - User Guide"

  • HT2534 But now , the hole process of sign uping is changed , please remove the wrong guide its not working , and why apple not let to access the free app .!!!

    But now , the hole process of sign uping is changed , please remove the wrong guide its not working , and why apple not let to access the free app .!!!

    Try going to https//appleid.apple.com, click Manage my Apple ID and sign in with your current iCloud ID.  Tap edit next to the primary email account, tap Edit, change it back to your old email address and save the change.  Then edit the name of the account to change it back to your old email address.  You can now use your current password to turn off Find My iPhone on your device, even though it prompts you for the password for your old account ID. Then go to Settings>iCloud, tap Delete Account and choose Delete from My iDevice when prompted (your iCloud data will still be in iCloud).  Next, go back to https//appleid.apple.com and change your primary email address and iCloud ID name back to the way it was.  Now you can go to Settings>iCloud and sign in with your current iCloud ID and password.

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

  • Type error while calling function module with in FOX formula

    Hi,
    I am getting following error while calling function module from FOX Formula:
    "Types of parameter DAY_IN () and variable J_CALDAY(D) are inconsistent"
    Following is the code:
    DATA    I_CALDAY       TYPE  0CALDAY.
    DATA    N_CALDAY       TYPE  0CALDAY.
    DATA    KYF              TYPE KEYFIGURE_NAME.
    FOREACH   I_CALDAY, KYF.
       CALL FUNCTION SLS_MISC_GET_LAST_DAY_OF_MONTH
          EXPORTING
             DAY_IN  =  I_CALDAY
          IMPORTING
             LAST_DAY_OF_MONTH = N_CALDAY.
        {KYF, N_CALDAY}  =  {KYF, L_CALDAY}.
    ENDFOR.
    Import parameter DAY_IN is of type sy-datum (that inturn is data element SYDATUM of data type DATS - same as 0CALDAY). Not sure why error is being thrown. Any idea? Thanks.
    Edited by: SAP_BOY on Dec 4, 2009 5:26 PM

    Hi,
    I think It will not identify ,though you have  (data element SYDATUM of data type DATS - same as 0CALDAY).Check it out by assigning it through a variable of type D.
    Data I_CALDAY TYPE D.
    Hope it may work out.
    Regards,
    Indu

  • How to display my FOX formula result on the layout

    Hi Guru's,
    I have created one Fox Formula for OTB using the given below calculation
    Planned Open-To-Buy (Retail Price) = Sales / Retail Value +  Last Planned Stock (Retail Value) - Open Purchase Orders (Retail Value with Tax) - GR Posting Date / Vendor RtlT + Promotion Sales / Retail .
    When I am executing my Planning function (using BPS0) then it is working fine. It is showing the correct OTB value.
    I have insterted this FOX function into my layout using UPSPM tcode. When I execute the OTB calc function from UPSPM then correct data gets saved into my real-time cube. However OTB data is not getting displayed on my layout.
    Is there something else which I am supposed to do to display the result on the final layout ?
    Thanks,
    Ashu gupta.

    Hii Guys,
    Thanks a lot for your inputs. My issue has been resolved. I was not able to get the FOX formula output on the layout as the formula was not giving unique record. I have removed version char from my level and flds for selection. Now everything is working fine.
    Thanka again for your valuable time.

  • How to implement this planning function using Fox formula

    Hello,
    I am new to Fox.
    I want to implement this complex logic in a planning function
    i have A (Kf X from infoprovider Z_A), B (Kf Y from infoprovider Z_B) & moreover there is one more condition,
    If current FISCPER > variable value of FISCPER
    KF Z = KF Z1 (from Cube C1)
    Else KF Z = KF Z2 (from Cube C2).
    for a particular calender week,
    X =   ( Y * Z ) / (summation of (Y * Z)  for each week of the whole year)
    I know it is complex.
    but i have to implement this in a planning function.
    The aggreagtion level is built on a multiprovider having A, B , C1 & C2.
    Can someone help me out with the FOX formula for this? or is there any better way to do this.
    Thanks john

    Hi Gerardo,
    Thanks for that.
    I have tried something similiar to it
    DATA CHA_CALWEEK TYPE 0CALWEEK.
    DATA CHA_COMP_CODE TYPE 0COMP_CODE.
    DATA CHA_FISCPER TYPE 0FISCPER.
    DATA VAR_PERIOD  TYPE 0FISCPER.
    DATA SUM_YEAR TYPE F.
    DATA TEMP_D TYPE F.
    DATA SUM_WEEK TYPE F.
    CURRENCY IS LOCAL CURRENCY. FOR DATA SELECTION TO BE RIGHT, NECESSARY TO DERIVE FROM CC.
    DATA UN_LOC_CURRCY TYPE 0LOC_CURRCY.
    UN_LOC_CURRCY = VARV(Z_U_I100).
    CHA_COMP_CODE = VARV(Z_U_I100).
    To Calculate the D
    VAR_PERIOD = VARV(Z_U_I010).
    SUM_YEAR = 0.
    TEMP_D =0.
    IF CHA_FISCPER > VAR_PERIOD.
    TEMP_D = {ZSA_BUD2X,CHA_COMP_CODE,CHA_FISCPER,YBUDG_01X,CHA_CALWEEK}.
    FOREACH CHA_CALWEEK.
    SUM_YEAR = SUM_YEAR + TEMP_D * {ZCREENTSV,CHA_COMP_CODE,CHA_FISCPER,ZIP_RREF1} .
    ENDFOR.
    ELSE.
    TEMP_D = ({ZSAEXCUSV,CHA_COMP_CODE,CHA_FISCPER,YRT_C02X} - {ZCREENTSV,CHA_COMP_CODE,CHA_FISCPER,YRT_C02X}).
    FOREACH CHA_CALWEEK.
    SUM_YEAR = SUM_YEAR + TEMP_D * {ZIP_INDEX,CHA_COMP_CODE,CHA_FISCPER,ZIP_RREF1}) .
    ENDFOR.
    ENDIF.
    But i am getting a syntax error
    Formula error: } expected
      Syntax error in row 21, column 20
    i have marke line21 in bold. above.
    I feel it is correct, still wonder why i am getting this error.
    can you pls help ?

  • 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 using ABAP function in fox formula ?

    Hello,
    I want to launch standard function :"RSW_CURRENCY_TRANSLATION" by Fox formula. I declare this function in SAP Table :rsplf_fdir, and I can call this function by fox, with all parameters.
    But when I want to use it, I've a problem with the first parameter : "Formula error: Type RSR_CTTNM is not permitted"
    What's the solution ?
    Best regards,

    Hi Cyril,
    I read the fact that you have chosen to use CURC instead of the Function Module.
    Did you fix your exchange rate type in your CURC formula: For example:
    CURC (LCAMT,12312008,EURP,LCUR,GCUR).
    Or did you make into a variable, that can be chosen at run time?
    I'm asking because I'm trying to make the 'exchange rate type' in this formula to be more dynamic (like a local variable).For example:
    DATA EXRATE TYPE 0RTYPE.
    DATA EXRATE_V TYPE 0RTYPE.
    EXRATE_V = VARV(EXCHRATE).
    {0AMOUNT,GCUR, GCTYPE,FYPERIOD,VERSION,COSTELM,INT_ORDER} = CURC (LCAMT,12312008,EXRATE_V,LCUR,GCUR).
    But the system returns the error meesage that it doesn't recognise 'EXRATE_V' even though i have declared it earlier on. So I have a fear that the system is expecting me to enter a fixed exchnage rate type that exists in RSCUR, in this formula..!!  Is that true??
    I don't want it to be fixed in the formula, it should be chosen at time of planning. How do you have yours right now? Do you know why I get this error message, and what I need to do to in the FOX formula, to make sure it can be populated at run time?
    Thanks for your help and information in advance.

  • 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

  • Fox Formula In IP.

    Hi Friends,
    I have a problem in Executing Fox Formula.
    I want to Add all rows of the Column.  And want to Use the Total Summation Of Column in Another Column Using ForEach Loop but it is not working as Expected.
    I Posted the Following Code :
    DATA Z_MAT TYPE 0MATERIAL.
    DATA Z_COM TYPE 0COMP_CODE.
    DATA TLACTSUM TYPE F.
    FOREACH  Z_MAT, Z_COM.
    TLACTSUM = TLACTSUM + {ZTP_TOTC,Z_MAT,Z_COM }.
    { ZTP_LP2 ,ZFISC_YEAR  }= TLACTSUM.
    ENDFOR.
    My Requirement is :
    ZTP_TOTC             ZTP_LP2
    20                                140
    40                                140
    30                                140
    50                                140
    140 is addition of all the fields in Column (i.e  204030+50).
    But Output i'm getting is :
    ZTP_TOTC             ZTP_LP2
    20                                20
    40                                40
    30                                30
    50                                50
    Please Help with Answer.
    Regards,
    Girish

    Hello,
    Use this following code:
    DATA Z_MAT TYPE 0MATERIAL.
    DATA Z_COM TYPE 0COMP_CODE.
    DATA TLACTSUM TYPE F.
    TLACTSUM = 0.
    FOREACH Z_MAT, Z_COM.
    TLACTSUM = TLACTSUM + {ZTP_TOTC,Z_MAT,Z_COM }.
    ENDFOR.
    FOREACH Z_MAT, Z_COM.
    { ZTP_LP2 ,ZFISC_YEAR }= TLACTSUM.
    TLACTSUM = 0.
    ENDFOR.
    Thanks.
    With regards,
    Anand Kumar

  • 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'.

  • 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

  • Fox Formula vs ABAP

    Hi guys,
    I'm working with a Material Hierarchy (Main Group (MG)(0PRODH1), Group(G) (0PRODH2), Subgroup (0PRODH3) (SG) and Mat (0MATERIAL). In my Planning package I have a specific Hierarchy Node for 0MATERIAL.
    I need to perform a calculation in different levels: For example:
    If I use Fox Formula I can get passed a data record like:
    MG, G, SG, Mat, Qty  and  MG, #, #, #, Qty
    But If use User Exit I can only see a data record like:
    MG, G, SG, Mat, Qty  and Not  MG, #, #, #, Qty (because in this case the Mat is # (empty).
    To get around of that I put # in the Material Hierarchy for testing, but now I having problem with locking.
    Is there any other solution for that?
    I'll appreciate your comments.
    Thank you,
    Heverton

    Keep a session break-point as shown below.
    Go to se37 : Function: RSPLFC_FORMULA_EXECUTE
    Keep Session break-point at line 17
    PERFORM planf_forml IN PROGRAM (i_genprog) USING i_th_ref_data
                                                     i_s_blockline
                                                     i_guid
                                               CHANGING
                                                     lt_mesg
                                                     c_th_data.
    single step execution ( F5 ) will tke yo to FOX Code.

Maybe you are looking for