Factoring based on Gross pay

Dear Experts,
We have a bit complex scenario regarding mid month joining and separation proration. Its like, Gross salary is reduced by the total absence amount.
Formula is like: {Prorated Housing (Housing/30days x no.of days no worked)/Hourly Rate (Basic/195) + Total no. of hours not worked}/195 * Gross salary.
I have been able to segregate this proration calculation of basic and housing by using factor 1 and 3 respectively and both individually has been reduced as per the formula given above i.e. Prorated Housing (Housing/30days x no.of days no worked), Hourly Rate (Basic/195 x number of hours worked).
Now issue is how we can achieve this reduction on Gross salary scenario with our reduction factors, which is basically assigned wagetype wise in Pr.class 10.

Hi Promod,
Yes i can try by reducing directly /101, but issue is here, how we can achieve the reduction formula like
{Prorated Housing (Housing/30days x no.of days not worked)/Hourly Rate (Basic/195) + Total no. of hours not worked}/195 * Gross salary.
Prorated Housing (Housing/30days x no.of days not worked)/Hourly Rate (Basic/195)= This is basically calculating absence hours for housing + basic which is again being added with Actual absence hours.
Please help
Regards
Tandrima

Similar Messages

  • Report for employees net and gross pay for a pay period

    Hi Gurus
    How should I approach to write a report which gives employees net pay, gross pay and cost center  for a pay period?
    Do i have to use cluster tables?
    As I am new to this module any help will be appreciated.
    Thanks in Advance

    Unless you store your payroll results in Infotypes then yes you would have to retrieve this information from the PCL2 Cluster. The Cost Center information would come from the WPBP table and the Gross and Net Pay from the RT table.

  • Gross Pay Modification

    Hi Gurus,
    I need help again.
    For certain group of employees, there is a condition where in 12% of the gross pay for THAT pay-period is added and this is the total gross (upon which taxes will be calculated). For e.g.: Say $200 is the gross earning (because he worked 10 hours for $20/hour). Now, 12% of 200 which is 24, is added and the total gross for that pay-period becomes $224. This $224 is then taxed. Can you please help writing a rule for this condition and where will you insert the same in the schema.
    Thanks for the help,

    I was also wondering incase the number 12 changes, do I have to make the change at 2 places:
    In this case please try to have  a  Constant  in V_T511P and Maintain the Rate* for the constant so when ever there is a change in the Percent we can change the constant value
    No need to change the rule just change the Constant value from 12 % to 15 % like that
    The user does not want to enter the 12 on IT0015. Can we just do it with the PCR itself without entering anything on IT0015?
    Something like this:
    1
    AMT = 0
    AMT = /101*12
    AMT = AMT/100
    /101 = /101 + AMT
    Please Change the PCR like this
    1
    AMT=0
    AMT+   MB10  (note like this u have to include all the wage components which are in part of Gross just giving /101 will not serve
    AMT*KZCON   (this is the constant which we defined in V_T511P )
    AMT/100
    ADDWT *
    Yes there is a way without maintaining in Inofytpe we can make a Wage type  generate in the RT
    Instead of useing PIT  use ACTIO keep it in Sub Schema UAL0
    I also need the amount value of 12% (which is $24 in our example) as a separate line item on the rem statement for each pay-period. How is this possible?
    Will let u know abt this

  • GROSS PAY AND NET PAY

    hello
    can anyone help in getting gross and net salary using a sql for an employee..what are the tables i might need..
    thanks
    kp

    You can use the following query:
    SELECT prb.balance_value
      FROM pay_run_balances prb,
           per_all_assignments_f paaf,
           pay_assignment_actions paa,
           pay_payroll_actions ppa,
           pay_defined_balances pdb,
           pay_balance_types pbt,
           pay_balance_dimensions pbd
    WHERE paaf.assignment_id = prb.assignment_id
       AND paaf.assignment_number = :emp_no                           
       AND TRUNC (SYSDATE) BETWEEN paaf.effective_start_date AND paaf.effective_end_date
       AND paaf.primary_flag = 'Y'
       AND paaf.assignment_type = 'E'
       AND paa.assignment_action_id = prb.assignment_action_id
       AND ppa.payroll_action_id = paa.payroll_action_id
       AND ppa.action_type IN ('R', 'Q')
       AND ppa.effective_date BETWEEN :st_dt AND :ed_dt
       AND prb.defined_balance_id = pdb.defined_balance_id
       AND pdb.balance_type_id = pbt.balance_type_id
       AND pbt.balance_name = :b_name
       AND pdb.balance_dimension_id = pbd.balance_dimension_id
       AND pbd.dimension_name = '_ASG_RUN'use the bind variable :b_name as Net Pay and Gross Pay to get the values. Net Pay and Gross Pay are balances.
    Hope this helps

  • ADP project - Gross Pay IDOC format  - Urgent

    Hi guys,
    I'm working on an ADP project, and I really need to see a Gross Pay IDOC format to understand it, then, I will create a custom program to convert this format into EPIP
    format.
    So, I have 2 questions:
    1) How SAP Created File with GROSS pay in IDOC ? Is any SAP standard program for this
    2) I need a program to convert IDOC to EPIP format
    If you know any thing of this please let me know ASAP, full 10 points will be given to any useful contribution. Thank you all!
    Message was edited by:
            Kevin Nguyen
    null

    Hi Venu,
      Try with this code.
      If vbrp-netwr = 0.
    <b>  WHEN 'E1EDP26.
      CASE ta_e1edp26-qualf.
    ta_e1edp26 = int_edidd-sdata.
    WHEN '011'.
    PERFORM append_int_edidd TABLES t_int_edidd
    USING 'e1edp26'
    ta_e1edp26.
    int_edidd[] = t_int_edidd[].
    ENDCASE.</b>
    ENDIF.
    Thanks
    Manju.

  • ADP project - Gross Pay IDOC format

    Hi guys,
    I'm working on an ADP project, and I really need to see a <b>Gross Pay IDOC</b> format to understand it, then, I will create a custom program to convert this format into EPIP
    format.
    If you know any thing of this please let me know as soon as possible, full points will be given to any useful contribution. Thank you all!

    Here are errors:
    ----jGRASP exec: javac -g E:\java\Payroll3.java
    Payroll3.java:33: cannot find symbol
    symbol : variable payroll
    location: class Payroll3
         while (payroll.hasNext())
         ^
    Payroll3.java:35: inputData(java.lang.StringBuffer,DoubleClass,DoubleClass,DoubleClass,double,double,double) in Payroll3 cannot be applied to (java.lang.StringBuffer,DoubleClass,DoubleClass,DoubleClass,double,double)
              inputData(employeeName, hourlyRate, hoursWorked, taxRate, grossAmount, netAmount);
              ^
    Payroll3.java:71: operator > cannot be applied to DoubleClass,double
         if (hoursWorked > FULL_TIME)
         ^
    Payroll3.java:77: double cannot be dereferenced
         System.out.println(String.format("%-20s%10.2f%10.2f%10.2f%10.2f%9.2f%4s",employeeName, hourlyRate, hoursWorked, taxRate, grossAmount.getNum(), netAmount.getNum(),overTime));
         ^
    Payroll3.java:77: double cannot be dereferenced
         System.out.println(String.format("%-20s%10.2f%10.2f%10.2f%10.2f%9.2f%4s",employeeName, hourlyRate, hoursWorked, taxRate, grossAmount.getNum(), netAmount.getNum(),overTime));
         ^
    Payroll3.java:83: cannot find symbol
    symbol : variable inFile
    location: class Payroll3
         employeeName = inFile.next();
         ^
    Payroll3.java:84: cannot find symbol
    symbol : variable inFile
    location: class Payroll3
         hourlyRate = inFile.nextDouble();
         ^
    Payroll3.java:85: cannot find symbol
    symbol : variable inFile
    location: class Payroll3
         hoursWorked = inFile.nextDouble;
         ^
    Payroll3.java:86: cannot find symbol
    symbol : variable inFile
    location: class Payroll3
         taxRate = inFile.nextDouble;
         ^
    Payroll3.java:87: double cannot be dereferenced
         grossAmount.setNum();
         ^
    Payroll3.java:88: double cannot be dereferenced
         netAmount.setNum();
         ^
    11 errors
    ----jGRASP wedge2: exit code for process is 1.
    ----jGRASP: operation complete.

  • Employee Gross Pay Data Source

    Hi,
    I am fairly new to HR Reporting area in BW.
    Is there any business content data source that provides Employee Gross Pay (Weekly & Monthly) ...my requirement is to drilldown gross pay by employee and by Pay month.
    Thanks in advance

    Hi,
    That will be
    0EMPLOYEE_ATTR
    and
    0HR_PA_OS_1
    Udo

  • PE51 Gross PAy not appearing  in Payslip

    Hi Gurus,
    An employee is a new joinee from previous month.
    When his calculation is done for the current month and his payslip is generated, we can see in the gross only for the current month, while the gross of the previous month is not getting added.........
    But after calculation , the net pay is displayed correctly.. that is considering the gross of the previous months also .
    So how to add the gross of the previous month with the gross of the current month for display in the payslip...
    Hope anybody can help me
    Thanks & Regards
    SRM

    Hi,
    This can be done in Transaction PE51 and in cumulation IDs you can add the wage types for the retro accountiong /553 and other wage types depending upon your requirements  and that will appear in the salary slip.
    Warm Regards,
    Kapil Kaushal

  • Prop Factors based on Like Model

    I got a Product A , which uses history of 3 SKU's B, C and D with Like Profile.  When i generate Prop Factors for A, system not able generate Propfactors.  Is it not possible to generate propfactors based on a Like Profile. Any help is appreciated.
    thx
    Jeff

    Thx Dan for your input.  The problem is, When i generate the forecast of Like Model assigned product.  The time based disagg is not working properly.  In a month, if u got 4 full weeks and 1 partial week, the data getting disaggregating equally among all the weeks, including split week.  System is considering the split week also as a full week( With 7 days) and allocating quantity accordingly.  Our disaggregation logic for time based disagg is APODPDANT.  This error we are seeing only for Like Model assigned products only. If i use any regular products, the disaggregation is working fine.  Even though we got the same setting in Test environment and production, the data is getting disaggregating correctly in quality, but its not the same case in Production.  I am not able to come up any logic, why this is happening.
    I tried different options, like,  zeroed out the stat fcst and copied prop factors from different SKU and then generated forcast, still the disagg logic is not working.
    System behaviour:
    Feb 09 got 28 days, the total quantity is 2800, Feb1st is a single day in that split week.  Instead of getting 100, its getting 2800/5 = 560
    Any input is appreciated.
    thx
    Jeff

  • Factoring based on 26 days

    Hi friends
    The client requirement is to calculate payroll based on 26 days flat.  I am sure we will face issues in the month of February where we have only 24 working days and month like March(27 days), April(25 days), May(27 days) and August(27 days). Could anyone please adivse me on the possibile problems which can occur if we go for this.  Would like to understand the scenarios in case if some employees leaves or joins in the middle of the month and what would be the payroll calculation.
    Friends please help.
    Santhosh.S

    Hi
    Could you please help me with an example like if the employee join on 12th Feb what would be his salary for that month likewise if an employee resigns in the month of March. 
    Regards
    Santhosh.S

  • Net Pay calculation is wrong, allowance wage type is not getting added to net amount..

    Hi Dears,
    We are doing payroll configurations for one of our client in india, Regarding our requirement ,we jus tried in test system, we have written a pcr rule stating 01st feb 2015, new allowance need to paid to employees belonging to L&T1 pa and LT ESG.. Allowance will be percent based on gross pay..allowance percentage differs according to the ESG..
    Before writing the PCR, Allowance percentage has been maintained in T511K.. And have configured as payroll constant ZTST 1 should be calculated with a value 2%.
    i have created a new wage type 9021 allowance wage type and this wage type amount should be automatically generated in payslip based on the pcr i have written while running payroll for an employee.
    EARNINGS                                                       DEDUCTIONS
    l&t basic pay 9000             54838.71                    INCOME TAX
    l&t conveyance 9100            2741.94                   12394.00
    l&t hra           9200               4387.10
    l&t allownace 9021                1239.36
    TOTAL Gross amount          63,207.11              Take Home pay (net pay)  49,573.75
    But the actual net amount should be 50,813.11..Based on the allowance wagetype i have created which is automatically generting using the pcr i have written , is getting calculated in the gross amount..
    but not getting added in net amount .so please help me out guys on how to solve this issue???
    Regards,
    Surya Prabha

    Hi Remi,
    Thanks for your kind reply, yes these values are taken from the remuration statement of a  particular pernr whom am running the payroll..
    i have checked the processing classs and i have maintained 5 and 70 which add this new allowance amount to my net amount.  now the net amount is proper.
    EARNINGS                                                       DEDUCTIONS                   perks/other income/exemptions
    l&t basic pay 9000             54838.71                NCOME TAX                       l&t leave encashment    1239.36
    l&t conveyance 9100         2741.94                   12416.00
    l&t hra           9200               4387.10
    TOTAL Gross amount          61,967.75             Take Home pay (net pay)  50 791.11
      Regards,
    Surya Prabha

  • Using AppleScript to create a text file, based on an OCR'd file's content

    Hey guys, I've got an interesting situation.
    I was wondering if there would be anyway to use something like AppleScript (or the like) to create a text document and fill it with information based on what is found in an already OCR'd file?
    For example: I have a paycheck stub. The stub contains the words "Gross Pay" and the value "$xxxx.xx" on one line. Using Hazel to identify paychecks (based upon filenames), could I then use something like AppleScript, to create a new text file, and then pull the text from the line that contains the word's "Gross Pay" and insert it into the text file's next line?
    Ex:
    March 26,2012      
    Gross Pay                   $xxxx.xx
    April 6,2012
    Gross Pay                   $xxxx.xx
    Kind of how TurboTax's iPhone app pulls text from an image, then uses the values to insert it into the app's appropriate fields?
    I know this may be a lot to ask, but any help is appreciated. Thanks!

    StevenD: FYI, I did NOT give you the one star rating. I would never do that!
    StevenD wrote:
    Ow. Someone is grumpy today.
    Well, this is an assignment, so it is probably homework.
    Why else would anyone give HIM such an assigment, after all he has no LabVIEW experience and the tutorials are too hard for him?
    This would make no sense unless all of it was just covered in class!
    This is not a free homework service with instant gratification.
    OK! Let's do it step by step. I assume you already have a VI with the digital indicators.
    "...but have no idea where to begin".
    open notepad.
    decide on a format, possibly one line per indicator.
    type the document.
    close notepad.
    open LabVIEW.
    Open the existing VI with all the indicators.
    (are you still following?)
    look at the diagram.
    Who made the program?
    Does the code make sense so far?
    Is it a statemachine or just a bunch of crisscrossed wires?
    Where do you want to add the file read?
    How should the file be read (after pressing a read button, at the start of the program ,etc.)
    See how far you get!
    Message Edited by altenbach on 06-24-2008 11:23 AM
    LabVIEW Champion . Do more with less code and in less time .

  • Net/Gross Sales Price vs Gross/Net Purchase Price

    If I'm not mistaken, in SD,
    Net SP does not include any taxes.
    Gross SP includes all possible taxes.
    Gross SP is calculated based on Net SP.
    however, in MM,
    Gross PP does not include any discounts or surcharges.
    Net PP includes all possible discounts or surcharges.
    Net PP is calculated based on Gross PP.
    Why are they calculated inversely?

    Dear Vitthavat,
    There r simple defns of the Net Price n Gross Price (irrespective of it being Selling ot Purchasing 1):
    Thus Gross Price is what the end customer pays whereas the Net Price is what the manufacturer receives:
    Thus when we r talking from SD point of view then we want to tell the customer the Price he / she needs to pay which as per d defn is the "Gross Price". Thus from Net Price we calculate the Gross Price 4 d customer.
    Whereas frm the MM side, though we pay the Gross Price but we actually want 2 know the cost of the product we r paying sans taxes, levies etc thus v derive "Net Price" from the "Gross Price".
    Hope it clarifies ur doubt.
    Thnk u

  • Error in Proportional Factor Calculation Program

    Hi ,
    I have developed an ABAP Program to calculate Proportional Factor(PF) as below.
    Generally,to calculate the PF for a period , we need to use transaction /sapapo/sdp94 to create a profile .After doing that , to calculate PF we need to go transaction /sapapo/mv8v .
    Now,the given program has three options :-
    1)Create : To create the selection-ID by taking ‘areabasepackRS’ as name of the selection-ID . Here we need to give the excel sheet that is used to load data into /sapapo/mc8v to calculate PF.
    2)Calculate PF : This option is used to calculate proportional factor.
       Now if we try to calculate PF ,I get an error message saying there are no
       plannable characteristic combinations .
    3) Delete : This option is used to delete the selection profile.
    I am getting an error in this program which I have explained with the document attached in this mail .
    Please could anyone help me out with this .
    The program is as below:-
    <b>report ZRSNORMS_PPF
           no standard page heading line-size 255.</b>
    *include bdcrecx1.
    INCLUDE ZAPO_DATA_DECLARATION_PPF.
    INCLUDE Z_APO_FORMS_PPF.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
       EXPORTING
         program_name        = syst-repid
      DYNPRO_NUMBER       = SYST-DYNNR
         field_name          = p_file1
      STATIC              = ' '
      MASK                = ' '
        CHANGING
          file_name           = p_file1
    EXCEPTIONS
      MASK_TOO_LONG       = 1
      OTHERS              = 2
      IF sy-subrc <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    start-of-selection.
      PERFORM READ_DATA TABLES I_PROFILE
                               I_EXEL
                               IT_PROFILE_NAME
                        USING P_FILE1
                        CHANGING W_SUBRC.
      PERFORM SAVE_SELECTION TABLES I_EXEL
                                    IT_SAVE_SEL
                                    IT_PROFILE_NAME.
      IT_GRP-OBJNAM = 'ZRSBASPCK'.
      APPEND IT_GRP.
      LOOP AT IT_GRP INTO W_GROUP.
        APPEND W_GROUP TO IT_GROUP.
      ENDLOOP.
      G_PAREAID = 'ZRSPAHPC'.
      G_MVIEW = 'ZRSPAHPC'.
      G_COUNT = 0.
    IF CREATE = 'X'.
      LOOP AT IT_SAVE_SEL INTO W_SEL_SAVE.
        IF W_SEL_SAVE-IOBJNM = '9AVERSION' AND SY-TABIX > 1.
          G_COUNT = G_COUNT + 1.
          READ TABLE IT_PROFILE_NAME INDEX G_COUNT.
          G_NAME = IT_PROFILE_NAME-F_NAME.
          CALL FUNCTION '/SAPAPO/MCPSH_SELECTION_SAVE'
            EXPORTING
      IV_SELID                       =
      IV_FLG_USED_FOR                =
              IV_PAREAID                     = G_PAREAID
             IV_MVIEW                       =  G_MVIEW
             IV_SEL_DESCRIPTION             = G_NAME
             IT_SELECTION                   = IT_SEL_SAVE
      IT_OBJECTS                     =
             IT_SEL_GROUP                   = IT_GROUP
      IV_POPUP_SEL_DESCRIPTION       =
    IMPORTING
      EV_SELID                       =
      EV_SEL_DESCRIPTION             =
    EXCEPTIONS
      DUPLICATE_SELECTION            = 1
      MULTIPLE_SELECTION             = 2
      INCONSISTENT_DATABASE          = 3
      DUPLICATE_DESCRIPTION          = 4
      INVALID_DESCRIPTION            = 5
      NO_PERMISSION                  = 6
      SELID_INVALID                  = 7
      OTHERS                         = 8
          IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
          CLEAR IT_SEL_SAVE[].
          APPEND W_SEL_SAVE TO IT_SEL_SAVE.
        ELSEIF W_SEL_SAVE-IOBJNM = '9AVERSION' AND SY-TABIX = 1.
          APPEND W_SEL_SAVE TO IT_SEL_SAVE.
        ELSE.
          APPEND W_SEL_SAVE TO IT_SEL_SAVE.
        ENDIF.
      ENDLOOP.
      G_COUNT = G_COUNT + 1.
      READ TABLE IT_PROFILE_NAME INDEX G_COUNT.
      G_NAME = IT_PROFILE_NAME-F_NAME.
      CALL FUNCTION '/SAPAPO/MCPSH_SELECTION_SAVE'
        EXPORTING
      IV_SELID                       =
      IV_FLG_USED_FOR                =
          IV_PAREAID                     = G_PAREAID
         IV_MVIEW                       =  G_MVIEW
         IV_SEL_DESCRIPTION             = G_NAME
         IT_SELECTION                   = IT_SEL_SAVE
      IT_OBJECTS                     =
         IT_SEL_GROUP                   = IT_GROUP
      IV_POPUP_SEL_DESCRIPTION       =
    IMPORTING
      EV_SELID                       =
      EV_SEL_DESCRIPTION             =
    EXCEPTIONS
      DUPLICATE_SELECTION            = 1
      MULTIPLE_SELECTION             = 2
      INCONSISTENT_DATABASE          = 3
      DUPLICATE_DESCRIPTION          = 4
      INVALID_DESCRIPTION            = 5
      NO_PERMISSION                  = 6
      SELID_INVALID                  = 7
      OTHERS                         = 8
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      IV_GROUP = 'ZRSBASPCK'.
      LOOP AT IT_SEL_SAVE INTO w_confirm_sel.
        APPEND w_confirm_sel TO it_confirm_sel.
      ENDLOOP.
      CALL FUNCTION '/SAPAPO/MSDP_SH_OBJ_LIST_BUILD'
        EXPORTING
          IV_PAREAID           = G_PAREAID
         IV_MVIEW             = G_MVIEW
        IV_DVIEW             =
        IV_FROMDATE          =
        IV_ENDDATE           =
        IV_NO_POPUPS         =
      IMPORTING
        ET_SH_OBJECTS        =
      EXCEPTIONS
        INVALID_INPUT        = 1
        INTERNAL_ERROR       = 2
        OTHERS               = 3
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    CLEAR IT_SEL_SAVE[].
    ENDIF.
    if calc_ppf = 'X'.
      PERFORM CALC_PPF TABLES I_EXEL
                              BDCTAB
                              IT_PROFILE_NAME.
    ENDIF.
    if del_prof = 'X'.
    LOOP AT I_EXEL.
    concatenate i_exel-area I_EXEL-BASE INTO DEL_NAME.
    SELECT SINGLE * FROM /SAPAPO/TS_SELKO INTO IT_TS_SELKO
    WHERE SEL_DESRCIPTION = DEL_NAME.
    DEL_PROFILE = IT_TS_SELKO-SELECTIONID.
    CALL FUNCTION '/SAPAPO/MCPSH_SELECTION_DELETE'
      EXPORTING
        IV_SELID                    = DEL_PROFILE
      IV_FLG_CONFIRM_TRANS        = 'X'
    EXCEPTIONS
      NO_ENTRY                    = 1
      NO_AUTHORITY                = 2
      DELETION_NOT_POSSIBLE       = 3
      OTHERS                      = 4
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDLOOP.
    ENDIF.
    <b>INCLUDE   ZAPO_DATA_DECLARATION_PPF .</b>
    types: t_ts_selpo type /sapapo/ts_selpo.
    TYPES: BEGIN OF T_EXEL,
           PROF_DATFRM TYPE DATS,
           PROF_DATTO TYPE DATS,
           FORCAST_FROM TYPE DATS,
           FORCAST_TO TYPE DATS,
           AREA(60),
           BASE(60),
           POPID(60),
           RATING(60),
           RS(60),
           END OF T_EXEL.
    types: begin of t_profile,
           obj(30),
           val(60),
           end of t_profile.
    TYPES: begin of t_profile_name,
           f_name(60),
           end of t_profile_name.
    DATA: G_COUNT TYPE I VALUE 0.
    *TYPES: T_SAVE_SEL LIKE IT_SELECTION.
    data: w_subrc TYPE sy-subrc,
          I_TS_SELPO TYPE Table of t_ts_selpo with header line,
          I_EXEL TYPE Table of t_EXEL with header line.
    DATA: IV_GROUP TYPE /SAPAPO/IOBJNM.
    DATA: IT_PROFILE_NAME TYPE TABLE OF T_PROFILE_NAME WITH HEADER LINE.
    data: i_profile type table of t_profile with header line.
    */sapapo/ts_iobj_selection_tab.
    data: IT_SEL_SAVE TYPE /sapapo/ts_iobj_selection_tab,
          w_SEL_SAVE type /SAPAPO/TS_IOBJ_SELECTION.
    DATA: IT_CONFIRM_SEL TYPE /SAPAPO/SH_SEL_RANGE_TAB,
          W_CONFIRM_SEL TYPE /SAPAPO/SH_SEL_RANGE_STR.
    TYPES: BEGIN OF T_SAVE_SEL,
           IOBJNM(30),
           SIGN,
           OPTION(2),
           LOW(60),
           HIGH(60),
           END OF T_SAVE_SEL.
    DATA: IT_SAVE_SEL TYPE TABLE OF T_SAVE_SEL WITH HEADER LINE.
    TYPES: BEGIN OF T_GRP,
          OBJNAM(30),
          END OF T_GRP.
    DATA: IT_GRP TYPE TABLE OF T_GRP WITH HEADER LINE.
    DATA DECLARATION FOR FUNC MODULE **************
    DATA: IT_GROUP TYPE /SAPAPO/TS_GROUP_BY_TAB,
          W_GROUP TYPE /SAPAPO/TS_GROUP_BY_STR.
    DATA: G_PAREAID TYPE /SAPAPO/TS_PAREAID,
          G_MVIEW TYPE /SAPAPO/PB_MVIEW,
          G_NAME TYPE /SAPAPO/TS_SEL_DESCR.
    BDC TABLES ***************************
    DATA: bdcdata LIKE bdcdata  OCCURS 0 WITH HEADER LINE.
    DATA: it_messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
    DATA : BDCTAB like BDCDATA occurs 0 with header line.
    DATA : w_file type string.
    ****************BDC ERROR TAB ***************************
    DATA : xcount1 TYPE i,
           xstat TYPE i,
           xmsgv1 LIKE balm-msgv1,
           xmsgv2 LIKE balm-msgv2,
           xmsgv3 LIKE balm-msgv3,
           xmsgv4 LIKE balm-msgv4,
           xmessage(80) TYPE c.
    DATA : BEGIN OF t_errlog OCCURS 0,
            sno TYPE i,
            message(80) TYPE c,
            END OF t_errlog.
    DATA: DEL_PROFILE TYPE /SAPAPO/SELECTIONID2,
          DEL_NAME(60).
    ************DUPLICATE NAME TAB **************************
    DATA: IT_NOT_PROCESSED TYPE TABLE OF /SAPAPO/TS_SELPO WITH HEADER LINE.
    DELETE TAB *****************************
    DATA: IT_TS_SELKO TYPE TABLE OF /SAPAPO/TS_SELKO WITH HEADER LINE.
    SELECTION-SCREEN : BEGIN OF BLOCK b1.
    parameters: p_file1 TYPE rlgrap-filename.
    parameters: create type c radiobutton group g1,
                calc_ppf type c radiobutton group g1,
                del_prof type c radiobutton group g1.
    SELECTION-SCREEN END OF BLOCK b1.
    Include           Z_APO_FORMS_PPF
    *&  Include           Z_APO_FORMS_PPF
    *&      Form  READ_DATA
          text
         -->P_I_PROFILE  text
         -->P_I_EXEL  text
         -->P_IT_PROFILE_NAME  text
         -->P_P_FILE1  text
         <--P_W_SUBRC  text
    FORM READ_DATA  TABLES   P_I_PROFILE STRUCTURE I_PROFILE
                             P_I_EXEL STRUCTURE I_EXEL
                             P_IT_PROFILE_NAME STRUCTURE IT_PROFILE_NAME
                    USING    P_P_FILE1
                    CHANGING P_W_SUBRC.
    DATA : iexcel LIKE zexcel_read OCCURS 0 WITH HEADER LINE,
             G_DATE TYPE DATS.
    data: l_name(60).
      CLEAR  p_w_subrc.
      CALL FUNCTION 'ZALSM_EXCEL_TO_INTERNAL_TABLE'
        EXPORTING
          filename    = p_p_file1
          i_begin_col = 1
          i_begin_row = 1
          i_end_col   = 62
          i_end_row   = 50000
        TABLES
          intern      = iexcel.
       EXCEPTIONS
         inconsistent_parameters = 1
         upload_ole              = 2
         OTHERS                  = 3.
      IF sy-subrc <> 0.
        p_w_subrc = 0 .
    endif.
       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      LOOP AT iexcel WHERE row > 1.
        IF iexcel-col = '0001'.
        PERFORM CONVERT_DATE CHANGING G_DATE iexcel-value.
        p_i_EXEL-PROF_DATFRM = G_DATE.
        ENDIF.
        IF iexcel-col = '0002'.
        PERFORM CONVERT_DATE CHANGING G_DATE iexcel-value.
          p_i_EXEL-PROF_DATTO  = G_DATE.
           ENDIF.
        IF iexcel-col = '0003'.
        PERFORM CONVERT_DATE CHANGING G_DATE iexcel-value.
          p_i_EXEL-FORCAST_FROM = G_DATE.
        ENDIF.
        IF iexcel-col = '0004'.
        PERFORM CONVERT_DATE CHANGING G_DATE iexcel-value.
          p_i_EXEL-FORCAST_TO = G_DATE.
        ENDIF.
        IF iexcel-col = '0005'.
          p_i_EXEL-AREA = iexcel-value.
          p_i_profile-obj = 'ZRSAREA'.
          p_i_profile-VAL = iexcel-value.
          append p_i_PROFILE.
          clear p_i_PROFILE.
        ENDIF.
        IF iexcel-col = '0006'.
          p_i_EXEL-BASE = iexcel-value.
          p_i_profile-obj = 'ZRSBASPCK'.
          p_i_profile-VAL = iexcel-value.
             append p_i_PROFILE.
          clear p_i_PROFILE.
        ENDIF.
        IF iexcel-col = '0007'.
          p_i_EXEL-POPID = iexcel-value.
          p_i_profile-obj = 'ZRSPOPULN'.
          p_i_profile-VAL = iexcel-value.
             append p_i_PROFILE.
          clear p_i_PROFILE.
        ENDIF.
        IF iexcel-col = '0008'.
        p_i_EXEL-RATING = iexcel-value.
        ENDIF.
        IF iexcel-col = '0009'.
          p_i_EXEL-RS = iexcel-value.
          p_i_profile-obj = 'ZRSCUSTMR'.
          p_i_profile-VAL = iexcel-value.
          append p_i_PROFILE.
          clear p_i_PROFILE.
        ENDIF.
        at end of row.
          append p_i_EXEL.
          clear p_i_EXEL.
        endat.
      endloop.
    loop at P_I_EXEL.
    concatenate P_I_EXEL-AREA P_I_EXEL-BASE INTO L_NAME.
    P_it_profile_name-f_name = l_name.
    append P_it_profile_name.
    ENDLOOP.
    ENDFORM.                    " READ_DATA
    *&      Form  CONVERT_DATE
          text
         <--P_G_DATE  text
         <--P_IEXCEL_VALUE  text
    FORM CONVERT_DATE  CHANGING P_G_DATE
                                P_IEXCEL_VALUE.
                                CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
      EXPORTING
        DATE_EXTERNAL                  = p_iexcel_value
      ACCEPT_INITIAL_DATE            =
    IMPORTING
       DATE_INTERNAL                  = p_g_date
    EXCEPTIONS
      DATE_EXTERNAL_IS_INVALID       = 1
      OTHERS                         = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.                    " CONVERT_DATE
    *&      Form  SAVE_SELECTION
          text
         -->P_I_EXEL  text
         -->P_IT_SAVE_SEL  text
         -->P_IT_PROFILE_NAME  text
    FORM SAVE_SELECTION  TABLES   P_I_EXEL STRUCTURE I_EXEL
                                  P_IT_SAVE_SEL STRUCTURE IT_SAVE_SEL
                                  P_IT_PROFILE_NAME STRUCTURE IT_PROFILE_NAME.
    DATA: L_PAREAID(40).
    loop at p_i_exel.
    p_it_save_sel-iobjnm = '9AVERSION'.
    p_it_save_sel-SIGN = 'I'.
    p_it_save_sel-OPTION = 'EQ'.
    p_it_save_sel-LOW = '000'.
    APPEND P_IT_SAVE_SEL.
    CLEAR P_IT_SAVE_SEL.
    p_it_save_sel-iobjnm = 'ZRSAREA'.
    p_it_save_sel-SIGN = 'I'.
    p_it_save_sel-OPTION = 'EQ'.
    p_it_save_sel-LOW = P_I_EXEL-AREA.
    APPEND P_IT_SAVE_SEL.
    CLEAR P_IT_SAVE_SEL.
    IF NOT P_I_EXEL-BASE IS INITIAL.
    p_it_save_sel-iobjnm = 'ZRSBASPCK'.
    p_it_save_sel-SIGN = 'I'.
    p_it_save_sel-OPTION = 'EQ'.
    p_it_save_sel-LOW = P_I_EXEL-BASE.
    ENDIF.
    APPEND P_IT_SAVE_SEL.
    CLEAR P_IT_SAVE_SEL.
    IF NOT P_I_EXEL-POPID IS INITIAL.
    p_it_save_sel-iobjnm = 'ZRSPOPULN'.
    p_it_save_sel-SIGN = 'I'.
    p_it_save_sel-OPTION = 'EQ'.
    p_it_save_sel-LOW = P_I_EXEL-POPID.
    APPEND P_IT_SAVE_SEL.
    CLEAR P_IT_SAVE_SEL.
    ENDIF.
    IF NOT P_I_EXEL-RS IS INITIAL.
    p_it_save_sel-iobjnm = 'ZRSCUSTMR'.
    p_it_save_sel-SIGN = 'I'.
    p_it_save_sel-OPTION = 'EQ'.
    p_it_save_sel-LOW = P_I_EXEL-RS.
    APPEND P_IT_SAVE_SEL.
    CLEAR P_IT_SAVE_SEL.
    ENDIF.
    write 'hi'.
    *CLEAR P_IT_SAVE_SEL[].
    ENDLOOP.
    *submit
    ENDFORM.                    " SAVE_SELECTION
    *&      Form  CALC_PPF
          text
         -->P_I_EXEL  text
         -->P_BDCTAB  text
         -->P_IT_PROFILE_NAME  text
    FORM CALC_PPF  TABLES   P_I_EXEL STRUCTURE I_EXEL
                            P_BDCTAB STRUCTURE BDCTAB
                            P_IT_PROFILE_NAME STRUCTURE IT_PROFILE_NAME.
    DATA: PERIOD_FROM TYPE /SAPAPO/BASIS_VON_BIS,
          PERIOD_TO TYPE /SAPAPO/BASIS_VON_BIS,
          TRANSFER_FORM TYPE /SAPAPO/TARGET_VON_BIS,
          TRANSFER_TO TYPE /SAPAPO/TARGET_VON_BIS,
          SEL_PROFILE TYPE /SAPAPO/SEL_TXT.
    DATA: SEL_NAME(60).
    DATA : L_TEMP TYPE SY-DATUM,
           L_TEMP1 TYPE SY-DATUM,
           L_TEMP2 TYPE SY-DATUM,
           L_TEMP3 TYPE SY-DATUM.
    LOOP AT P_I_EXEL.
    L_TEMP0(2) = P_I_EXEL-FORCAST_FROM6(2). "passed date
    L_TEMP2(2) = P_I_EXEL-FORCAST_FROM4(2). "passed Month
    L_TEMP4(4) = P_I_EXEL-FORCAST_FROM0(4). "passed year
    L_TEMP10(2) = P_I_EXEL-FORCAST_TO6(2). "passed date
    L_TEMP12(2) = P_I_EXEL-FORCAST_TO4(2). "passed Month
    L_TEMP14(4) = P_I_EXEL-FORCAST_TO0(4). "passed year
    L_TEMP20(2) = P_I_EXEL-PROF_DATFRM6(2). "passed date
    L_TEMP22(2) = P_I_EXEL-PROF_DATFRM4(2). "passed Month
    L_TEMP24(4) = P_I_EXEL-PROF_DATFRM0(4). "passed year
    L_TEMP30(2) = P_I_EXEL-PROF_DATTO6(2). "passed date
    L_TEMP32(2) = P_I_EXEL-PROF_DATTO4(2). "passed Month
    L_TEMP34(4) = P_I_EXEL-PROF_DATTO0(4). "passed year
    PERIOD_FROM = L_TEMP2.
    PERIOD_TO = L_TEMP3.
    transfer_form = L_TEMP.
    TRANSFER_TO = L_TEMP1.
    concatenate P_I_EXEL-AREA P_I_EXEL-BASE INTO SEL_NAME.
    SEL_PROFILE = SEL_NAME.
    perform bdc_dynpro      using '/SAPAPO/RMDP_SHARE_VERSION_M' '1000'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'BPAREAID'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ONLI'.
    perform bdc_field       using 'PAREAID'
                                  'ZRSPAHPC'.
    perform bdc_field       using 'FLG_AREA'
                                  'X'.
    perform bdc_field       using 'BPAREAID'
                                  'ZRSPAHPC'.
    perform bdc_dynpro      using '/SAPAPO/RMDP_SHARE_MANAGER' '1000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=UCOMM1'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'Z_DATE-HIGH'.
    perform bdc_field       using 'B_VER'
                                  '000'.
    perform bdc_field       using 'B_KENN'
                                  '9AVCORHIST'.
    perform bdc_field       using 'B_DATE-LOW'
                                  PERIOD_FROM.
    perform bdc_field       using 'B_DATE-HIGH'
                                  PERIOD_TO.
    perform bdc_field       using 'VERSION'
                                  '000'.
    perform bdc_field       using 'Z_DATE-LOW'
                                  transfer_form.
    perform bdc_field       using 'Z_DATE-HIGH'
                                  TRANSFER_TO.
    perform bdc_field       using 'FLG_ONE'
                                  'X'.
    perform bdc_dynpro      using '/SAPAPO/RMDP_SHARE_MANAGER' '1000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ONLI'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'SEL_TXT'.
    perform bdc_field       using 'SEL_TXT'
                                   SEL_PROFILE.
    perform bdc_dynpro      using '/SAPAPO/RMDP_SHARE_MANAGER' '1000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EE'.
    perform bdc_dynpro      using '/SAPAPO/RMDP_SHARE_VERSION_M' '1000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ONLI'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EE'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'PAREAID'.
    *perform bdc_transaction using '/SAPAPO/MC8V'.
    SELECT SINGLE * FROM /SAPAPO/TS_SELKO INTO IT_TS_SELKO
    WHERE SEL_DESRCIPTION = sel_NAME.
    if sy-subrc = 0.
    call transaction '/SAPAPO/MC8V'
             using bdctab
             mode 'A'
             update 'L'
             messages into it_messtab.
    describe table  it_messtab lines xcount1.
    read table it_messtab index xcount1.
    LOOP AT it_messtab WHERE msgtyp = 'E'
                                     OR msgtyp = 'A'.
                MOVE It_messtab-msgv1 TO xmsgv1.
                MOVE It_messtab-msgv2 TO xmsgv2.
                MOVE It_messtab-msgv3 TO xmsgv3.
                MOVE It_messtab-msgv4 TO xmsgv4.
          CALL FUNCTION 'MESSAGE_PREPARE'
            EXPORTING
             LANGUAGE                     = sy-langu
              msg_id                       = It_messtab-msgid
              msg_no                       = It_messtab-msgnr
             MSG_VAR1                     = xmsgv1
             MSG_VAR2                     = xmsgv2
             MSG_VAR3                     = xmsgv3
             MSG_VAR4                     = xmsgv4
           IMPORTING
             MSG_TEXT                     = xmessage
           EXCEPTIONS
             FUNCTION_NOT_COMPLETED       = 1
             MESSAGE_NOT_FOUND            = 2
             OTHERS                       = 3
          IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
          MOVE sy-tabix TO t_errlog-sno.
          MOVE xmessage TO t_errlog-message.
                APPEND t_errlog.
                CLEAR t_errlog..
              ENDLOOP.
    CLEAR BDCTAB[].
    CLEAR SEL_NAME.
    CLEAR P_I_EXEL.
    endif.
    ENDLOOP.
    ENDFORM.                    " CALC_PPF
    *&      Form  bdc_dynpro
          text
         -->P_0424   text
         -->P_0425   text
    FORM bdc_dynpro  USING PROGRAM DYNPRO.
    CLEAR bdcTAB.
      bdcTAB-program  = program.
      bdcTAB-dynpro   = dynpro.
      bdcTAB-dynbegin = 'X'.
      APPEND bdcTAB.
    ENDFORM.                    " bdc_dynpro
    *&      Form  bdc_field
          text
         -->P_0494   text
         -->P_TRANSFER_FROM  text
    FORM bdc_field  USING FNAM FVAL.
      CLEAR bdcTAB.
      bdcTAB-fnam = fnam.
      bdcTAB-fval = fval.
      APPEND bdcTAB.
    ENDFORM.                    " bdc_field

    Hi,
    As I have not been able to attach the document, I will explain  the problem in full as below:-
    Business scenario - Consider a factory having 5 different customers (which is known as Customer_rs). We need to supply stock to each of them based on their past consumption. So to forecast this, we calculate a factor known as proportional factor based on the data we have for previous months.
    So to calculate the PF for a period, we need to create a profile in /sapapo/sdp94 .
    After creating the profile, the profile can be seen by clicking on SPD94 and going to selection-screen button .
    Then to calculate PF , we need to go to transaction /sapapo/mv8v .
    Here we will have to give the selection id that was saved in SDP94.
    All this process has to be automated and a program has been created to do this.
    A description of how the program works  is as given below.
    When we try to calculate the proportional factor with this program , the following error is obtained :-
    ‘There are no plannable characteristic combinations.’
    We are passing the same parameters that were passed by the SDP94 transaction to the standard function module for saving the selection ids. This is shown in the below screenshots.
    In spite of this we are getting the error.
    Now to delete the selection ids,click on delete option in the program .
    But the problem is even if we click on delete , the PPF data will be stored in the database inspite of deleting the selection profiles .
    Please can anyone help me out with  this .
    Regards,
    Sushanth H.S.
                                                                                    Now we will have to give the selection description
    Now the profile can be seen by going to SDP94 and clicking on selection profile button.
    Now to calculate PF, go to transaction /sapapo/mv8v
    Click on execute and give following inputs
    This will forecast the PF for the period 01.09.2007 to 21.02.2007 based on data from 21.04.2007 to 20.05.2007
    Click on other settings
    Here we will have to give the selection id that was saved in SDP94.
    Click on execute.
    All this process has to be automated and a program was created to do this.
    A description of how the program is given below.
    Program zrsnorms_ppf
    Execute.
    Give file path of excel sheet.
    Execute.
    This will create the selection id by taking “ areabasepackRS” as name of id.
    This is the excel sheet that is used to load data into /sapapo/mc8v to calculate the PF.
    Upon executing, the ids have been created
    The new selection ids can be seen by going to /sapapo/sdp94
    And clicking on selection profile.
    Parameters passed to standard function module in order to save the selection id.
    Now if we try to calculate PF using the program, the following happens
    When executed,
    BDC is called to input data to transaction /sapapo/mc8v to calculate ppf.
    An error screen is generated with the message ‘There are no plannable characteristic combinations.’
    We are passing the same parameters that were passed by the SDP94 transaction to the standard function module for saving the selection ids. This is shown in the below screenshots.
    In spite of this we are getting the error.
    When IV_POPUP_SEL_DESCRIPTION is passed, a popup will be displayed where the selection description will have to be entered. I am passing the same selection description here as is picked by the program.( H3HPCDEL00110096, H3HPCDEL00110063)
    To avoid this, we need to go to SDP94 and after going to selection window, we need to save the selections as shown in the following screenshots.
    Select the selection id one by one.
    Click on save selection
    Click on save.
    Do the same for all ids created by the program.
    Now if we try to calculate the PF using the program, it is seen to work
    So what needs to be done is that we need to avoid going to SDP94 in order to save the selections after the ids are created by the program.
    How the Program works
    Se38
    Program zrsnorms_ppf
    Execute.
    Give file path of excel sheet.
    Execute.
    This will create the selection id by taking “ areabasepackRS” as name of id.
    The new selection ids can be seen by going to /sapapo/sdp94
    And clicking on selection profile.
    Now the selection has to be saved. For that, follow the following procedure.
    Click on selection window.
    Click on load selection.
    Select the ids.
    Select and then press “save”.
    Do the same for every id.
    Only then can proportional factor be calculated.
    Now go to program and select Calc_ppf, with filepath to excel sheet as the sel_ids will be pulled from the excel.
    When executed,
    BDC is called to input data to transaction /sapapo/mc8v to calculate ppf.
    Now go to sdp94 and load the selection
    Click on load data.
    And make sure, data view is TDP_VIEW_PROP as shown
    PPF will be shown for the period chosen in the excel sheet.
    Now to delete the selection ids.
    Go to the program and give file path of the excel sheet and execute.
    The selection profiles will be deleted as shown.
    But PPF data will be stored in the database inspite of deleting the selection profiles. And ppf can be shown by selecting the basepack and the sales area.
    Click load data.
    Business scenario - Consider a factory having 5 different customers (which is known as Customer_rs). We need to supply stock to each of them based on their past consumption. So to forecast this, we calculate a factor known as proportional factor based on the data we have for previous months.
    So to calculate the PF for a period, we need to create a profile in /sapapo/sdp94
    How it is done in standard transaction /SAPAPO/SDP94
    Important pushbuttons and their functions
    Click on selection window.
    Give the selections
    Click on save selection
    A break-point has been set in the standard program to show what all parameters are being passed to the standard function module /SAPAPO/MCPSH_SELECTION_SAVE used to save the selection
    Now we will have to give the selection description
    Now the profile can be seen by going to SDP94 and clicking on selection profile button.
    Now to calculate PF, go to transaction /sapapo/mv8v
    Click on execute and give following inputs
    This will forecast the PF for the period 01.09.2007 to 21.02.2007 based on data from 21.04.2007 to 20.05.2007
    Click on other settings
    Here we will have to give the selection id that was saved in SDP94.
    Click on execute.
    All this process has to be automated and a program was created to do this.
    A description of how the program is given below.
    Program zrsnorms_ppf
    Execute.
    Give file path of excel sheet.
    Execute.
    This will create the selection id by taking “ areabasepackRS” as name of id.
    This is the excel sheet that is used to load data into /sapapo/mc8v to calculate the PF.
    Upon executing, the ids have been created
    The new selection ids can be seen by going to /sapapo/sdp94
    And clicking on selection profile.
    Parameters passed to standard function module in order to save the selection id.
    Now if we try to calculate PF using the program, the following happens
    When executed,
    BDC is called to input data to transaction /sapapo/mc8v to calculate ppf.
    An error screen is generated with the message ‘There are no plannable characteristic combinations.’
    We are passing the same parameters that were passed by the SDP94 transaction to the standard function module for saving the selection ids. This is shown in the below screenshots.
    In spite of this we are getting the error.
    When IV_POPUP_SEL_DESCRIPTION is passed, a popup will be displayed where the selection description will have to be entered. I am passing the same selection description here as is picked by the program.( H3HPCDEL00110096, H3HPCDEL00110063)
    To avoid this, we need to go to SDP94 and after going to selection window, we need to save the selections as shown in the following screenshots.
    Select the selection id one by one.
    Click on save selection
    Click on save.
    Do the same for all ids created by the program.
    Now if we try to calculate the PF using the program, it is seen to work
    So what needs to be done is that we need to avoid going to SDP94 in order to save the selections after the ids are created by the program.
    How the Program works
    Se38
    Program zrsnorms_ppf
    Execute.
    Give file path of excel sheet.
    Execute.
    This will create the selection id by taking “ areabasepackRS” as name of id.
    The new selection ids can be seen by going to /sapapo/sdp94
    And clicking on selection profile.
    Now the selection has to be saved. For that, follow the following procedure.
    Click on selection window.
    Click on load selection.
    Select the ids.
    Select and then press “save”.
    Do the same for every id.
    Only then can proportional factor be calculated.
    Now go to program and select Calc_ppf, with filepath to excel sheet as the sel_ids will be pulled from the excel.
    When executed,
    BDC is called to input data to transaction /sapapo/mc8v to calculate ppf.
    Now go to sdp94 and load the selection
    Click on load data.
    And make sure, data view is TDP_VIEW_PROP as shown
    PPF will be shown for the period chosen in the excel sheet.
    Now to delete the selection ids.
    Go to the program and give file path of the excel sheet and execute.
    The selection profiles will be deleted as shown.
    But PPF data will be stored in the database inspite of deleting the selection profiles. And ppf can be shown by selecting the basepack and the sales area.
    Click load data.

  • Rule for Adoption Pay in UK payroll

    Hi All,
    Need your help to solve an issue.
    My Business Scenario: Need to calculate an adoption pay for employee based on Average Weekly payment of 2 pay periods. I have to pay adoption pay for an employee only for 6 weeks. The date from which it has to be start will be in P0088.
    Consider the scenario:
    01.2014 - 01.01.2014 - 29.01.2014
    02.2014 - 30.01.2014 - 18.02.2014
    If the adoption pay start date is mentioned in P0088 is 01.01.2014 then it should give the pay based on the avg. weekly salary for 4 weeks on 1st pay period and for the next period it should provide it only for 2 weeks.
    For Example:
    Avg weekly pay for 4 weeks (based on 2 pay periods): 2250
    I came to know that using PCR I can do it. My query is how to write PCR based on date (P0088) and check how many weeks it covered in before period (4 weeks in my first period) and in current period (2 weeks in my 2nd period) .
    Note: I am newbie to payroll functional part, it will be helpful if you mention in detail to achieve the scenario. Let me know if you any input.
    With Regards,
    Giriesh M

    Hi Giriesh,
    unless your customer is doing some really wierd and possible illegal things, writing your own PCRs from scratch is almost certainly leading you into a dead end.
    You should build onto the standard functionality of PY-GB for absence schemes. It may even work out of the box with standard config. If you are not familiar with UK absence schemes, it's paramount you familiarise yourself with that topic before taking it any further.
    Apologies, if I misunderstood your question, but it sounds to me as if you're trying to solve this without having considered standard absence scheme functionality.
    kind regards
    Sven

Maybe you are looking for

  • Creative Zen 4GB bad memory sector

    "Creative Zen 4GB bad memory sectork After a few months benI'venoticing that trying to load more media into my Zen gives errors like "Not enough space on disk" or "An unknown erroroccurred". This happened when I load files, it gets to around the 2.GB

  • Storing an object to be read in by a shell command

    Hm, sorry if i got the subject wrong bcos i seriously duno how to phrase it.. I got a java application with a GUI as a configuration manager i got a shell command running in the back ground the shell will read in my java class... (which will contain

  • LDAP list of DB Services contains duplicate name, with wrong connect detail

    Sqldeveloper 2.1.1.64 (running on Vista, or Linux) Using LDAP to define a db connection, connection to the ldap server is successful and returns a list of ~360 database entries. Within this list 2 database names appear twice with the next db name is

  • Number range object for mm

    Hi, Pls provide me the complete number range objects which are related to MM  (exclude CIN). ie for PR, PO, Migo and Miro. I tried in SNUM, there are so many objects, . so pls provide , if anyone has for mm related objects. thanks in advance

  • Relating a sequence to a table

    hi there i have a table "Employee" for which I have an index column emp_no (Primary Key). i want to write a sequence for this column, such that it starts at 1 and gets incremented by 1 everytime I insert a row in "Employee" Any help will be great. Ma