Two payroll run for employee in same month

Hello Experts,
Iam having one issue.Client requirement is,if a employee get transferred to other location in mid of the month,in that case his payroll should run say 15 days for previous location & 15 days for new location.Client says since ESI will be location wise so ,two payroll calcultion for a single month & cumulated result will be amount paid to Employee.Also when transferred employee should get new ESI esi code location wise but PF code will be same.
is that possible in system?
Please suggest some inputs.
Thanks in advance

Thanks sadhar,
It means that...nothing new config to be done..it will happen automatically.Please explain a bit.
Regards

Similar Messages

  • Suprisingly two Processes running for one database

    Hi all,
    Today morning in one of our database servers, we see two processes running for one database.
    COBLpo05 11949 1187 0 Mar 25 ? 37:50 ora_smon_BLINDEA1
    COBLpo05 7789 1187 0 Mar 25 ? 5:35 ora_smon_BLINDEA1
    Can anybody suggest me what is the reason behind it and what to do in this case?
    Thanks in Advance.

    The ORACLE_HOME may have been set twice with differents values in it (i.e. extra slash) before starting twice the same db.
    Please, have a look to this article from Ivan Kartik :
    http://ivan.kartik.sk/index.php?show_article=40
    And depending of your OS, you could check what ORACLE_HOME is used for each process :
    How to Check the Environment Variables for an Oracle Process*
    Doc ID:  373303.1*
    Nicolas.
    added the metalink note ref.
    Edited by: N. Gasparotto on Sep 4, 2009 11:34 AM

  • Wrongly payroll run for one employee, who left company several month ago

    Hi all,
    There is one case.
    One employee left company several months ago and his payroll data was also determined in the system. But the month payroll run included this guy not correctly. And also there are not any change found for his info type data with pc00_m16_uaud. But system shows the payroll administer, who run the payroll this month, changed his payroll master data in infotype 3.
    Any suggestion about this case will be appreciated.
    Julian

    Hi Jullian
    A Retro payroll runs if  "Earl.pers. RA date" is changed in Infotype 3. This also changes if there is any master data change in any payroll related Infotype like 8, 14, 15 etc. Please check if any data has changed for the employee to cause Retro payroll run.
    Thanks

  • Comapre two day run for a process chain

    Hi BIs
    Is there any transaction or steps to compare any two independent run of a process chain.If so please expalin me how?
    thanks in advance
    Bala

    Hi
    Goto se38.
    execute program /ssa/bwt.
    When you get the "Process Chain Analysis Chain"
    Cleick on the Process chains button
    Give the chain name in the Chain Id field
    Now suppose you want to compare the runs on 5th and 11th of a month
    In the start date give 5th and in the end date give 11th.
    You will get the logs of all the selected dates.
    Now select only the 5th and the 11th run.
    Click the button Compare runtimes.
    It will the comparison of runtime of each individual step in the PC.
    You can comapre as many runs together as you want
    Hope this helps
    Regards
    Shilpa

  • We are  run for dep in every month

    but i am selecting for the plannaed dep run ,and iam seleting for text run also, excute the program, but  dep is not running ,after iam seleting for the unplanned dep run dep is running , whty what is problem in planned dep plz exp

    Hi,
    Please check these ares,
    1 asset class determintion,
    2 what is the previous posted dep month
    3 and what is fiscal year for asset accounting
    these three ares will be effect at the time of dep
    bye....

  • Two macs running garageband at the same time

    Hi. I am using GarageBand on two Mac's at the same time and would like to know how I can record both parts of the tracks, I guess I'll have to use an external recording device of some sort but I do not know which or how I would set this up. Basically, I am playing a part of the song on one Mac and the other part on the other Mac and would like the two Mac's to be liked up to a seperate recording system so I can record the mix, hopw someone can help, thanks.

    The biggest problem you are going to have is sync. There is no way to keep these two computers in sync unless you hook up some kind of KVM USB splitter for your keyboard. Both machines would need to be identical in setup or this will not work. Playback and record buttons need to be pressed at the exact same time. The mouse can be used to trigger events (such as record enable) to each computer. It is not a very elegant or pragmatic way of gaining more tracks.
    The better way is to use a dual G5 with a big monitor.

  • Reading payroll results for an employee from ABAP-HR?

    Hi,
       I dont know whether i must post this question in this category ? but i had a problem in reading of the payroll data for employees.
        I used the function of PYXX_READ_PAYROLL_RESULT and passed the PERNR(employee number), SEQNR, RELID(clusterid) for a given period of say PN-BEGDA AND PN-ENDDA. And i took the payroll structure of germany (its PAYDE_RESULT). program is showing the exceptions since between the selected periods i had many different country employees other than germany DE. how can i solve that problem ? if i use PAY99_RESULT then i cant read the National wage types? how to solve this problem?
        which function i must use so that i must get all the payroll data of the employees between the given period with inter/national payroll details and also which structure(like PAYDE_RESULT) i must use for holding the payroll data that is unique?
       please help me.
       ***Ratings are must for a possible answer.

    Hi KK,
    In this sample code...you will find the use of the method i meantioned.
    REPORT zgratuity_ipcl MESSAGE-ID zh.
    TABLES : pernr , pa0001, pa0008 , pa0000 , t569v.
    TYPE-POOLS: slis.
    CONSTANTS:
    gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
    INFOTYPES: 0008 ,0001,0002,0000.
    DATA : period(6),
           pay_period(6),
           c_period(6).
    DATA: number LIKE pc261-seqnr.
    DATA : refdt LIKE p0000-begda.
    DATA: ason_yr LIKE p0347-scryy,
          ason_mon LIKE p0347-scrmm.
    DATA : BEGIN OF it_0000 OCCURS 100,
           pernr LIKE pa0000-pernr,
           stat2 LIKE pa0000-stat2,
           massn LIKE pa0000-massn,
           begda LIKE pa0000-begda,
           endda LIKE pa0000-endda,
           END OF it_0000.
    DATA : g_molga LIKE t512t-molga.
    DATA: BEGIN OF package,
            lga LIKE p0008-lga01,
            bet LIKE p0008-bet01,
          END OF package.
    DATA : BEGIN OF rgdir OCCURS 0.
            INCLUDE STRUCTURE pc261.
    DATA : END OF rgdir.
    DATA : BEGIN OF rx-key OCCURS 0.
            INCLUDE STRUCTURE pc200.
    DATA : END OF rx-key.
    DATA : BEGIN OF crt OCCURS 0.         "result table
            INCLUDE STRUCTURE pc208.
    DATA : END OF crt.
    DATA : b_date LIKE sy-datum,
           e_date LIKE sy-datum.
    DATA : darate LIKE t539j-gwcht.
    DATA : gamt TYPE p.
    DATA : BEGIN OF it_0001 OCCURS 100,
           pernr LIKE pa0000-pernr,
           ename LIKE pa0001-ename,
           bukrs LIKE pa0001-bukrs,
           persk LIKE pa0001-persk,
           persg LIKE pa0001-persg,
           werks LIKE pa0001-werks,
           END OF it_0001.
    **start of mod by tejas on 31.05.06
    DATA : BEGIN OF it_final_sup OCCURS 100,
           pernr LIKE pa0001-pernr,  "PL No
           ename LIKE pa0001-ename,  "NAME
           persg LIKE pa0001-persg,  "EMP GROUP
           persk LIKE pa0001-persk,  "ESG
           zzpla LIKE pa0001-zzpla,  "PLANT/BUSINESS
           orgeh LIKE pa0001-orgeh,  "ORG UNIT
           orgtx LIKE t527x-orgtx,   "ORG UNIT TEXT
           gbdat LIKE pa0002-gbdat,  "DOB
           termn LIKE pa0019-termn,  "DOJ
           zzrtdt LIKE pa0002-zzrtdt,"DOR
           sepdt LIKE pa0000-begda,
           no_years TYPE i,          "SERVICE YEARS
           stat2 LIKE pa0000-stat2,  "STATUS
           s_text(15),               "STATUS TEXT
           basic LIKE pa0008-bet01,  "BASIC
           da LIKE pa0008-bet01,     "DA
           total LIKE pa0008-bet01,  "TOTAL
           crt LIKE pc207-betrg,     "GRTUITY
           massn LIKE pa0000-massn,
           begda LIKE pa0000-begda,
           ason(6) ,
          dates LIKE pa0002-zzrtdt,
           END OF it_final_sup.
    DATA : BEGIN OF it_final_nonsup OCCURS 100,
           pernr LIKE pa0001-pernr,  "PL No
           ename LIKE pa0001-ename,  "NAME
           persg LIKE pa0001-persg,  "EMP GROUP
           persk LIKE pa0001-persk,  "ESG
           zzpla LIKE pa0001-zzpla,  "PLANT/BUSINESS
           orgeh LIKE pa0001-orgeh,  "ORG UNIT
           orgtx LIKE t527x-orgtx,   "ORG UNIT TEXT
           gbdat LIKE pa0002-gbdat,  "DOB
           termn LIKE pa0019-termn,  "DOJ
           zzrtdt LIKE pa0002-zzrtdt,"DOR
           sepdt LIKE pa0000-begda,
           no_years TYPE i,          "SERVICE YEARS
           stat2 LIKE pa0000-stat2,  "STATUS
           s_text(15),               "STATUS TEXT
           basic LIKE pa0008-bet01,  "BASIC
           da LIKE pa0008-bet01,     "DA
           total LIKE pa0008-bet01,  "TOTAL
           crt LIKE pc207-betrg,     "GRTUITY
           massn LIKE pa0000-massn,
           begda LIKE pa0000-begda,
           ason(6) ,
          dates LIKE pa0002-zzrtdt,
           END OF it_final_nonsup.
    DATA : BEGIN OF it_final OCCURS 100,
           pernr LIKE pa0001-pernr,  "PL No
           ename LIKE pa0001-ename,  "NAME
           persg LIKE pa0001-persg,  "EMP GROUP
           persk LIKE pa0001-persk,  "ESG
           zzpla LIKE pa0001-zzpla,  "PLANT/BUSINESS
           orgeh LIKE pa0001-orgeh,  "ORG UNIT
           orgtx LIKE t527x-orgtx,   "ORG UNIT TEXT
           gbdat LIKE pa0002-gbdat,  "DOB
           termn LIKE pa0019-termn,  "DOJ
           zzrtdt LIKE pa0002-zzrtdt,"DOR
           sepdt LIKE pa0000-begda,
           no_years TYPE i,          "SERVICE YEARS
           stat2 LIKE pa0000-stat2,  "STATUS
           s_text(15),               "STATUS TEXT
           basic LIKE pa0008-bet01,  "BASIC
           da LIKE pa0008-bet01,     "DA
           total LIKE pa0008-bet01,  "TOTAL
           crt LIKE pc207-betrg,     "GRTUITY
           massn LIKE pa0000-massn,
           begda LIKE pa0000-begda,
           ason(6) ,
          dates LIKE pa0002-zzrtdt,
           END OF it_final.
    **end of mod by tejas on 31.05.06
    DATA : f_pabrj LIKE t549s-pabrj,
           f_pabrp LIKE t549s-pabrp.
    DECLARATIONS FOR ALV DISPLAY
    DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
          gs_layout   TYPE slis_layout_alv ,
          gs_print    TYPE slis_print_alv,
          gt_filter   TYPE slis_t_filter_alv,
          gt_sp_group TYPE slis_t_sp_group_alv,
          gt_alv_graphics TYPE dtc_t_tc,
          gt_excluding  TYPE slis_t_extab ,
          gt_events   TYPE slis_t_event,
          gt_print TYPE slis_print_alv.
    DATA: gt_list_top_of_page TYPE slis_t_listheader.
    DATA: g_boxnam TYPE slis_fieldname VALUE  'BOX',
          p_f2code LIKE sy-ucomm       VALUE  '&ETA',
          p_lignam TYPE slis_fieldname VALUE  'LIGHTS',
          g_save(1) TYPE c VALUE 'X',
          g_default(1) TYPE c VALUE 'X',
          g_exit(1) TYPE c,
          gx_variant LIKE disvariant,
          g_variant LIKE disvariant,
          g_repid LIKE sy-repid.
    DATA : result TYPE pay99_result.
    DATA : crt_header TYPE LINE OF hrpay99_crt.
    INITIALIZATION.
      SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.
      SELECT-OPTIONS : sstat2 FOR pa0000-stat2.
      SELECTION-SCREEN: END OF BLOCK b2.
    *SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    *SELECTION-SCREEN : SKIP.
    *PARAMETERS : P_STAT2 LIKE PA0000-STAT2.
    *SELECTION-SCREEN : SKIP.
    *SELECTION-SCREEN : END OF BLOCK B1.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF screen-name = 'PNPABKRS-LOW'.
          screen-required = 1.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
    AT SELECTION-SCREEN." on pnppabrj.
      IF pnptimr9 = 'X'.
        CONCATENATE  pnpdispj pnpdispp INTO period.
        CONCATENATE  pnpdispp pnpdispj INTO  pay_period.
      ELSE.
        CONCATENATE  pnppabrj pnppabrp INTO period.
        CONCATENATE  pnppabrp pnppabrj INTO  pay_period.
      ENDIF.
      IF period < '200505'.
        MESSAGE e001 WITH
        'Gratuity report is for period after month Auguest 2005' .
        STOP.
      ENDIF.
      SELECT SINGLE * FROM t569v
      WHERE abkrs = pnpxabkr.
      CONCATENATE t569v-pabrj t569v-pabrp INTO c_period.
      IF period > c_period.
        MESSAGE e001 WITH 'Payroll for this period is not yet processed' .
        STOP.
      ENDIF.
    CONCATENATE  pnppabrj pnppabrp INTO period.
    CONCATENATE  pnppabrp pnppabrj INTO  pay_period.
    IF period =< '200505'.
       MESSAGE e001 WITH 'Program is not valid for this period' pnppabrj
    *pnppabrp.
    ENDIF.
    START-OF-SELECTION.
    GET pernr.
      PERFORM  fill_data.
    END-OF-SELECTION.
      PERFORM final_data.
      PERFORM display_data.
    *&      Form  FILL_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM fill_data.
      SORT p0000 BY pernr.
      SORT p0001 BY pernr.
      SORT p0002 BY pernr.
      SORT p0008 BY pernr.
    start mod made by kinjal for payroll dates
      IF pnptimr9 = 'X'.
        CALL FUNCTION 'HR_GB_PERIOD_DATES'
             EXPORTING
                 abkrs            = pnpxabkr
            PERMO            =
                  pabrj            = pnpdispj
                  pabrp            = pnpdispp
            IMPORTING
                  begda            = b_date
                  endda            = e_date .
       EXCEPTIONS
            PERIOD_NOT_FOUND = 1
            OTHERS           = 2
      ELSE.
        CALL FUNCTION 'HR_GB_PERIOD_DATES'
            EXPORTING
                abkrs            = pnpxabkr
            PERMO            =
                 pabrj            = pnppabrj
                 pabrp            = pnppabrp
           IMPORTING
                 begda            = b_date
                 endda            = e_date
       EXCEPTIONS
            PERIOD_NOT_FOUND = 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.
      ENDIF.
    CONCATENATE  pnppabrj pnppabrp '01' INTO b_date.
    CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'
          EXPORTING
               iv_date             = b_date
         IMPORTING
            EV_MONTH_BEGIN_DATE =
              ev_month_end_date   = e_date.
    end of modification
    *DATA FETCHING FOR SUPERVISOR EMPLOYEES
      LOOP AT p0001 WHERE begda <= e_date AND
                          endda >= e_date AND
                              persg = 'R' OR
                              persg = 'P'
                            AND
                              ( persk >= '11' AND
                                persk <= '17'
                              OR
                              ( persk >= 'IA' AND
                                persk <= 'IJ'
        MOVE-CORRESPONDING p0001 TO it_final_sup.
        READ TABLE p0002 WITH KEY pernr = p0001-pernr BINARY SEARCH.
        IF sy-subrc = 0.
          MOVE-CORRESPONDING p0002 TO it_final_sup.
        ENDIF.
      LOOP AT p0000 WHERE pernr = p0001-pernr AND begda <= e_date AND endda
                    >= e_date AND stat2 IN sstat2.
          SELECT SINGLE orgtx INTO it_final_sup-orgtx FROM t527x
          WHERE sprsl = 'EN'
          AND   orgeh = p0001-orgeh.
          SELECT SINGLE text1 INTO it_final_sup-s_text FROM t529u
          WHERE sprsl = 'EN'
          AND statn = '2'
          AND   statv = p0000-stat2.
          MOVE-CORRESPONDING p0000 TO it_final_sup.
          IF p0000-massn = 'A6'.
            MOVE p0000-begda TO it_final_sup-zzrtdt.
          ELSE.
            it_final_sup-zzrtdt = '          '.
          ENDIF.
        ENDLOOP.
        IF sy-subrc <> 0.
          CONTINUE.
        ENDIF.
        SELECT SINGLE termn INTO it_final_sup-termn FROM pa0019
        WHERE pernr = p0001-pernr
        AND  tmart = '06'.
        IF sy-subrc = 0.
          CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'
               EXPORTING
                    date1                   = sy-datum
                    date2                   = it_final_sup-termn
                   output_format           = '05'
              IMPORTING
                   years                   = ason_yr
                   months                  = ason_mon
            DAYS                    =
              EXCEPTIONS
                   invalid_dates_specified = 1
                   OTHERS                  = 2
          IF ason_mon > 6.
            ason_yr = ason_yr + 1.
          ENDIF.
          MOVE ason_yr TO it_final_sup-no_years.
        ENDIF.
        IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        LOOP AT p0008 WHERE begda <= e_date AND endda >= e_date AND pernr =
                            p0001-pernr.
         DO 20 TIMES VARYING  package-lga FROM p0008-lga01 NEXT p0008-lga02
                      VARYING package-bet FROM p0008-bet01 NEXT p0008-bet02.
            CASE package-lga.
              WHEN '0010'.
                it_final_sup-basic = package-bet + it_final_sup-basic.
              WHEN '0I10'.
                it_final_sup-da = package-bet + it_final_sup-da.
            ENDCASE.
          ENDDO.
          it_final_sup-total = it_final_sup-basic + it_final_sup-da.
        ENDLOOP.
       BREAK-POINT.
    start mod made by kinjal
        it_final_sup-zzrtdt = it_final_sup-zzrtdt - 1.
        CALL FUNCTION 'HR_PAYROLL_PERIODS_GET'
             EXPORTING
                  get_begda       = it_final_sup-zzrtdt
            GET_ENDDA       =
                 get_permo        = '67'
             IMPORTING
                 get_pabrj       = f_pabrj
                 get_pabrp       = f_pabrp
       TABLES
            GET_PERIODS     =
            EXCEPTIONS
                 no_period_found = 1
                 no_valid_permo  = 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.
        IF it_final_sup-stat2 <> '3'.
         CONCATENATE  it_final-dates+4(2) INTO period.
          CONCATENATE f_pabrj f_pabrp INTO period.
          it_final_sup-ason = period.
        ENDIF.
    end of mod
        rx-key-pernr = p0001-pernr.
        CALL FUNCTION 'CU_READ_RGDIR'
             EXPORTING
                  persnr          = p0001-pernr
             IMPORTING
                  molga           = g_molga
             TABLES
                  in_rgdir        = rgdir
             EXCEPTIONS
                  no_record_found = 1
                  OTHERS          = 2.
        LOOP AT rgdir  WHERE fpper = period AND inper = period.
        ENDLOOP.
      With this Seq. number as a key for cluster Key
    we can read the RT table from the cluster/..
    IF 2
        IF sy-subrc EQ 0.
          rx-key-seqno = rgdir-seqnr.
          IMPORT crt FROM DATABASE pcl2(in) ID rx-key.
          IF NOT crt[] IS INITIAL.
            PERFORM resultstab.
          ENDIF.
          APPEND it_final_sup.
          CLEAR it_final_sup.
        ENDIF.
    LOOP AT rgdir WHERE
             inper = period AND
             srtza = 'A'.
       rx-key-seqno = rgdir-seqnr.
       number = rgdir-seqnr.
       CLEAR rt.
       REFRESH rt.
    Importing Result table cluster
       IMPORT rt FROM DATABASE pcl2(in) ID rx-key.
       IF NOT rt[] IS INITIAL.
         PERFORM resultstab.
       ENDIF.
    ENDLOOP.
       APPEND it_final.
       CLEAR IT_FINAL.
      ENDLOOP.
    RP-PROVIDE-FROM-LAST P0008 SPACE B_DATE E_DATE.
    BREAK-POINT.
       DO 10 TIMES varying  PACKAGE-LGA from p0008-lga01 next p0008-lga02
                   varying package-bet from p0008-bet01 next p0008-bet02.
         compute itab-gross = itab-gross + package-bet.
         IF sy-index = 10.
           itab-pernr = p0008-pernr.
           append itab.
         endif.
       enddo.
    *DATA FETCHING FOR NON SUPERVISOR EMPLOYEES
      LOOP AT p0001 WHERE begda <= e_date AND
                          endda >= e_date AND
                              persg = 'R' OR
                              persg = 'P'
                            AND
                              persk >= 'IL' AND
                              persk <= 'IV'
        MOVE-CORRESPONDING p0001 TO it_final_nonsup.
        READ TABLE p0002 WITH KEY pernr = p0001-pernr BINARY SEARCH.
        IF sy-subrc = 0.
          MOVE-CORRESPONDING p0002 TO it_final_nonsup.
        ENDIF.
      LOOP AT p0000 WHERE pernr = p0001-pernr AND begda <= e_date AND endda
                    >= e_date AND stat2 IN sstat2.
          SELECT SINGLE orgtx INTO it_final_nonsup-orgtx FROM t527x
          WHERE sprsl = 'EN'
          AND   orgeh = p0001-orgeh.
          SELECT SINGLE text1 INTO it_final_nonsup-s_text FROM t529u
          WHERE sprsl = 'EN'
          AND statn = '2'
          AND   statv = p0000-stat2.
          MOVE-CORRESPONDING p0000 TO it_final_nonsup.
          IF p0000-massn = 'A6'.
            MOVE p0000-begda TO it_final_nonsup-sepdt.
            MOVE p0000-begda TO refdt.
          ELSE.
           MOVE it_final_nonsup-zzrtdt TO refdt.
            MOVE e_date TO refdt.
          ENDIF.
        ENDLOOP.
        IF sy-subrc <> 0.
          CONTINUE.
        ENDIF.
        SELECT SINGLE termn INTO it_final_nonsup-termn FROM pa0019
        WHERE pernr = p0001-pernr
        AND  tmart = '06'.
        IF sy-subrc = 0.
          CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'
               EXPORTING
                    date1                   = refdt
                    date2                   = it_final_nonsup-termn
                   output_format           = '05'
              IMPORTING
                   years                   = ason_yr
                   months                  = ason_mon
            DAYS                    =
              EXCEPTIONS
                   invalid_dates_specified = 1
                   OTHERS                  = 2
          IF ason_mon > 6.
            ason_yr = ason_yr + 1.
          ENDIF.
          MOVE ason_yr TO it_final_nonsup-no_years.
        ENDIF.
        IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        LOOP AT p0008 WHERE begda <= refdt AND endda >= refdt AND
       LOOP AT p0008 WHERE begda <= e_date AND endda >= e_date AND
                            pernr = p0001-pernr.
         DO 20 TIMES VARYING  package-lga FROM p0008-lga01 NEXT p0008-lga02
                      VARYING package-bet FROM p0008-bet01 NEXT p0008-bet02.
            CASE package-lga.
              WHEN '0010'.
                it_final_nonsup-basic = package-bet.
            ENDCASE.
          ENDDO.
        ENDLOOP.
        IF it_final_nonsup-massn = 'A6'.
          SELECT SINGLE gwcht FROM t539j
          INTO darate
          WHERE molga = '40'
          AND bwlga = '0I10'
          AND begda <= it_final_nonsup-begda
          AND endda >= it_final_nonsup-begda.
        ELSE.
          SELECT SINGLE gwcht FROM t539j
          INTO darate
          WHERE molga = '40'
          AND bwlga = '0I10'
          AND begda <= e_date
          AND endda >= e_date.
        ENDIF.
        it_final_nonsup-da = ( it_final_nonsup-basic * darate ) / 100.
        it_final_nonsup-total = it_final_nonsup-basic + it_final_nonsup-da.
        gamt = 0.
        gamt = ( it_final_nonsup-total * 15 * it_final_nonsup-no_years )
                / 26.
        IF gamt >= 350000.
          gamt = 350000.
        ENDIF.
        MOVE gamt TO it_final_nonsup-crt.
        CLEAR gamt.
        CLEAR refdt.
        APPEND it_final_nonsup.
        CLEAR it_final_nonsup.
    LOOP AT rgdir WHERE
             inper = period AND
             srtza = 'A'.
       rx-key-seqno = rgdir-seqnr.
       number = rgdir-seqnr.
       CLEAR rt.
       REFRESH rt.
    Importing Result table cluster
       IMPORT rt FROM DATABASE pcl2(in) ID rx-key.
       IF NOT rt[] IS INITIAL.
         PERFORM resultstab.
       ENDIF.
    ENDLOOP.
       APPEND it_final.
       CLEAR IT_FINAL.
      ENDLOOP.
    ENDFORM.                    " FILL_DATA
    " GET_GRATUITY
    *&      Form  RESULTSTAB
          text
    -->  p1        text
    <--  p2        text
    FORM resultstab.
      LOOP AT crt WHERE lgart = '9GRA' AND cumty = 'U'.
        it_final_sup-crt = abs( crt-betrg ).
      ENDLOOP.
    ENDFORM.                    " RESULTSTAB
    *&      Form  DISPLAY_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM display_data.
      IF it_final[] IS INITIAL.
        MESSAGE i001 WITH 'No data found'.
        STOP.
      ENDIF.
      g_repid = sy-repid.
      PERFORM e01_fieldcat_init  USING gt_fieldcat[].
      PERFORM eventtab_build CHANGING gt_events.
      PERFORM e04_comment_build USING gt_list_top_of_page[].
      PERFORM display_report.
    ENDFORM.                    " DISPLAY_DATA
    *&      Form  E01_FIELDCAT_INIT
          text
         -->P_GT_FIELDCAT[]  text
    FORM e01_fieldcat_init USING   e01_lt_fieldcat TYPE slis_t_fieldcat_alv.
      DATA: ls_fieldcat TYPE slis_fieldcat_alv.
      gs_layout-group_change_edit = 'X'.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'PERNR'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'Pers No'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'ENAME'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'Name'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'PERSK'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'ESG Cd'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'ZZPLA'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'Plant/Business'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'ORGTX'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'Org.Unit'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'GBDAT'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'Dt.Of Birth'.
      ls_fieldcat-datatype = 'DATS'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'TERMN'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'Dt.Of Joining'.
      ls_fieldcat-datatype = 'DATS'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'ZZRTDT'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'Superannuation Dt'.
      ls_fieldcat-datatype = 'DATS'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'SEPDT'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'Dt.Of Seperation'.
      ls_fieldcat-datatype = 'DATS'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'NO_YEARS'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'Service Years'.
      ls_fieldcat-datatype = 'CHAR'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'S_TEXT'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'Status'.
      ls_fieldcat-datatype = 'CHAR'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'BASIC'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'Basic'.
      ls_fieldcat-datatype = 'CHAR'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'DA'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'DA'.
      ls_fieldcat-datatype = 'CHAR'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'TOTAL'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'Total'.
      ls_fieldcat-datatype = 'CHAR'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
      CLEAR ls_fieldcat.
      ls_fieldcat-fieldname    = 'CRT'.
      ls_fieldcat-tabname    = 'IT_FINAL'.
      ls_fieldcat-seltext_l    = 'Gratuity'.
      ls_fieldcat-datatype = 'CHAR'.
      ls_fieldcat-no_zero = 'X'.
      APPEND ls_fieldcat TO e01_lt_fieldcat.
    ENDFORM.                    " E01_FIELDCAT_INIT
    *&      Form  EVENTTAB_BUILD
          text
         <--P_GT_EVENTS  text
    FORM eventtab_build CHANGING lt_events TYPE slis_t_event.
      CONSTANTS:
      gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                i_list_type = 0
           IMPORTING
                et_events   = lt_events.
      READ TABLE lt_events WITH KEY name = slis_ev_top_of_page
      INTO ls_event.
      IF sy-subrc = 0.
        MOVE gc_formname_top_of_page TO ls_event-form.
        APPEND ls_event TO lt_events.
      ENDIF.
    ENDFORM.                    " EVENTTAB_BUILD
    *&      Form  E04_COMMENT_BUILD
          text
         -->P_GT_LIST_TOP_OF_PAGE[]  text
    FORM e04_comment_build USING   e04_lt_top_of_page TYPE slis_t_listheader
      DATA: ls_line TYPE slis_listheader.
      DATA : v_text(100) TYPE c,
             v_text1(100) TYPE c,
             date1(10),
             date2(10).
            v_pernrlines TYPE i,
            v_pernrchar(5).
    DESCRIBE TABLE it_pernr LINES v_pernrlines.
    MOVE v_pernrlines TO v_pernrchar.
      CONCATENATE b_date6(2) '.' b_date4(2) '.' b_date+0(4) INTO date1.
      CONCATENATE e_date6(2) '.' e_date4(2) '.' e_date+0(4) INTO date2.
      CONCATENATE 'Gratuity Information for ' date1 'to' date2
      INTO v_text SEPARATED BY space.
      CLEAR ls_line.
      ls_line-typ  = 'H'.
      ls_line-info = v_text.
      APPEND ls_line TO e04_lt_top_of_page.
    CLEAR ls_line.
    ls_line-typ  = 'H'.
    ls_line-info = v_text1.
    APPEND ls_line TO e04_lt_top_of_page.
    ENDFORM.                    " E04_COMMENT_BUILD
    *&      Form  DISPLAY_REPORT
          text
    -->  p1        text
    <--  p2        text
    FORM display_report.
      gs_layout-colwidth_optimize = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
               i_background_id         = 'ALV_BACKGROUND'
                i_callback_program      = g_repid
               i_callback_user_command = 'USER_COMMAND'
               i_structure_name        = 'IT_FINAL'
                is_layout               = gs_layout
                it_fieldcat             = gt_fieldcat
               it_special_groups       = gt_sp_group[]
               it_sort                 = gt_sort[]
               it_filter               = gt_filter[]
               i_save                  = g_save
               is_variant              = g_variant
                it_events               = gt_events
               is_print                = gs_print
               it_alv_graphics         = gt_alv_graphics[]
               it_excluding            = gt_excluding
           TABLES
                t_outtab                = it_final.
    ENDFORM.                    " DISPLAY_REPORT
          FORM top_of_page                                              *
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
               i_logo             = 'ENJOYSAP_LOGO'
                it_list_commentary = gt_list_top_of_page.
    ENDFORM   .                    "TOP_OF_PAGE
    FORM user_command USING g_ucomm TYPE sy-ucomm
                            g_field TYPE slis_selfield.
      CASE g_ucomm.
        WHEN '&IC1'.
      ENDCASE.
    ENDFORM.                    "USER_COMMAND
    *&      Form  FINAL_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM final_data.
      LOOP AT it_final_sup.
        MOVE-CORRESPONDING it_final_sup TO it_final.
        APPEND it_final.
        CLEAR it_final.
      ENDLOOP.
      LOOP AT it_final_nonsup.
        MOVE-CORRESPONDING it_final_nonsup TO it_final.
        APPEND it_final.
        CLEAR it_final.
      ENDLOOP.
      SORT it_final BY pernr.
    ENDFORM.                    " FINAL_DATA
    <b>Reward if useful,</b>
    Regards,
    Tejas

  • Two Travel Expenses for Meals in the same day

    Hi SAP Gurus,
    simple question for you, but I'm quite a newbie with Travel...
    Actually I'm not allowed to insert two Travel Expenses (not Reimbursement) for Meals in the same day, the system give me a blocking error message.
    Where have I to customize this function? I need to insert two Travel Expenses for Meals the same day, one for lunche and one for dinner.
    Thank you very much, bye!
    Stefano

    Hai..
    Can u pls let me know where ur trying to enter the travel expenses.. i mean in which infotype???
    PLS MENTION INFOTYPE NUMBER
    Edited by: Ram Manohar on Mar 25, 2008 4:15 PM

  • Off-Cycle Payroll Run with reason Absence.

    Hello
    We are trying to execute Off-Cycle Payroll Run with reason Absence, however the /559 and /560 are showing Zero amount.
    We are running it via Offcycle workbench. Would it really make a difference?
    Here are the main configurations I have done:
    1. We have executed the regular payroll run for past one month (Jan 2010).
    2. We have maintained a 10 days absence for next month (Feb 2010)
    3. The Absence valuation is configured to generate WT 3000, in which I am able to pull the number of absence hours.
    My question is how to I get the per hour rate multipled by number of absence hours AUTOMATICALLY. I am looking to do it with configuration instead of PCR. Any thoughts?
    Scenario: Current month (Jan) regular payroll is over, and employee applied for half month leave in next month(Feb). Now, employee wants to take salary for those 15 leave days before going for leaves.
    Thanks
    Yash

    Hi Yash,
    I am not sure, if this functionality can be achieved without a PCR.
    I guess you need to write a PCR for this....
    Still you can try this using constants dependent on wage types path is IMG ->Payroll->Time Wage Type Valuation->Valuation Bases->Constant Valuation Bases->Constants Dependent on wage types.
    I have a question here, if you are paying the employee for the half month of absence before he took the leave, how will the system know when you run the regular payroll for him at the end of the month that employee already got paid for the half month absence?
    You should make sure that system doesnt pay him twice......
    Thanks,
    Janga K.

  • Prepayment - payroll run link

    How to link the prepayment to the payroll run?  Meaning I run the payroll run for adhoc payments multiple times in a month, and for each payroll run, I need to run the prepayment and send the payment file to the bank each time, I got all the info needed for the bank in the prepayment table, but how do I link this with the payroll run?

    I'm not sure about GB legislation but typically the Magnetic Transfer is run after the Pre-Payments process. This will generate a bank output file in a secure directory and you can use it to process bank transfers for your employees.
    As far as the payroll_action_id is concerned, you should find this information in the table pay_action_interlocks.

  • Termination error during Offcycle payroll run

    Hi All,
    Please help me with this error:
    when I do off cycle payroll run for one of employees I am getting the following error.
    Termination in operation ERROR                                             
    00000010                                                                   
    UNE1********* <    ERROR     #          =NEG YTD IN= TCRT NOT =ALLOWED   = 
    Basic entry in IT :                                                        
    Thanks in advance
    Gopi

    Hi,
    Even Net check amount is coming zero ,You have to adjust some amount(by changing sign as negative or positve) within that IT 221 .
      Make sure while adjusting amount Net check Amount should be ZERO only.
    When you run payroll in payroll log you will able to find for which WT system is giving error.
    That WT must have -ve value in TCRT tabel.
    Match this amount with all the WT you have maintain in IT 221 .
    Once you get the WT which have the same amount ,change its sign and try to run offcycle .
    Thanks,
    Pradeep.

  • Retro payroll processing for org unit cost centre changes

    Dear All,
    We have created some new cost centres and assigned  it to relevant org units . when we run payroll , retro run is happening from the period we changed the cost center and assigned the new cost centre to the org units . please suggest a solution
    regards
    Tressya

    Hi Tressya,
    changes in IT0003 won't affect retro calculation, since you have already created result periods for retro calculation. The payroll programm will detect this and allways will repeat the retro unless you delete those results first.
    Try TR PU01 during correction - then clear Earl.pers. RA date  by PU03 (PA30 won't work here)
    After that you hou'll have to repeat payroll run for effected employees to get new results for actual period only.
    regards
    J.

  • CRT results are not appearing after successful payroll run

    CRT results are not appearing after successful run of US payroll, however, RT results are appearing.
    Please suggest ideas to find the results of CRT.

    Hi Rémi Corriveau,
    Thank you for spending your time to answer my question.
    Here are the answers to your questions . . . .
    QUESTION: Did you run a Payroll Simulation or a live Payroll Calculation ?
    ANSWER: We did a LIVE payroll run for a period of 3 months.
    QUESTION: Did you use t-code pc_payresults ?
    ANSWER: Yes, we used the t-code pc_payresults but still it doesn't show the CRT results.
    QUESTION: Did you check Processing Class 30 and 70 for your WTs ?
    ANSWER: As per the process, we copied the SAP standard (model) Wage Type M010 to
    our customized Wage Type, hence, hope that it wouldn't disturb any of the standard SAP settings.
    However, we did check the Processing Class 30, but did not check the processing class 70.
    Shall update you once PC 70 is also checked.
    Please educate, if there are any particular specifications that need to be entered while checking
    for our WTs in PC 30 & PC 70.

  • Data from Infotypr 9 is not reflecting in BT table after payroll run

    Hi All,
    When we are running the Payroll Run for a period the data for bank details is not reaching correctly in BT table.
    Infact the Bank key is coming wrong in BT table this is causing wrong Bank Name getting printed on the Renumeration slip.
    Can you please suggest is there a setting from where these details are picked from. Or what can be other problem areas.
    Regards,
    Vidya.

    Hi,
    You can go to tcode FBZP and click on house bank. You can see the banks maintaned here.
    Reward If Useful

  • Payroll Run TDS Business Place/Sec Code Updattion  In FI Doc TDS Line Item

    Hi Experts
    Can any one please guide me how the tds section code will be picked up in payroll run for posting a FI document.  Why because if business place / section code is not updated in FI Document Line Item Level system will not pick those line items in Tcode : J1INCHLN Execution.
    How we have to go about this. 
    Please suggest me on this.
    Thanks
    Kiran

    Hi,
    Based on the Wage type.
    Good Luck
    Om
    Reward it ,if helpful.

Maybe you are looking for

  • Follow-up: beasys.User vs. theory.Customer

    Hi, In one of the previous postings there was mentioned that Personalization server and Commerce Server do have user management functionality overlap. Indeed it would have been nice to have a single point of user info persistence and management. The

  • How Can I Get All The Telemarketers To Stop Calling And Texting My Cellphone?

    My number is on the Do Not Call List, has been since its inception.  I file complaints, and it seems I get more calls after I file a complaint.  Right now there are 8 different numbers that call constantly, selling a Home Security system and it is a

  • The mouse on my Macbook Pro is acting like a maniac, moving around on it's own, and clicking on it's own!

    This happened completely out of the blue when I started my computer this morning. At first I just noticed that the touchpad wasn't responding very well. Then the cursor started moving on it's own, and clicking completely randomly at times as well. I

  • Problems to delete big *.tif files

    I have problems to delete big *.tif filese. At first Windows delete it, but if i pressed F5 then the files are not deleted. I have tryed to delete it with and without Shift + Del its always the same. When i delete this file many times then it would b

  • Problem installing Adobe Reader

    Hello. When installing Adobe Reader, more specifically when the process is "extracting files" suddenly appears "Error 13042". Finding out in the internet i found that the problem may be because of a corrupted installer file, but that file i downloade