Finding Manger for an employee

Hi Friends,
How can i find the manger for an employee?
Suppose if the employee has BU_Manager and FUNC_Manger and HR Business partner.
it would me most useful if you send the logic for it.......
Thanks in Advance,
Chandra.

In order to get the Manager or Supervisor we need to get the position           *
and organization unit of the manager for the person entered on the selection    *
screen by using the certain relations from the hrp1001 with the below fields    *
objid----Object ID                                                              *
otype--Object Type          ( O>org unit S>position P>persion  )        *
rsign--Relationship Specification ( A>bottom up  B-->top down      )        *
relat--Relationship Between Objects ( 002->Reports  to                      *
                                         003--->Belongs to                       *
                                         008--->Holder                           *
                                         012--->Manages                 )        *
sclas--Type of Related Object ( O>org unit S>position P>persion c-->job)*
sobid----ID of Related Object                                                   *
Then we need to get the personnel number from that we need to get the details   *
of the manager by the infotype PA0002 by passing Personnel number               *
REPORT  ygetsupervisor MESSAGE-ID zmsg.
               database tables used
TABLES:pa0001,       "Infotype 0001 (Org. Assignment)
       hrp1001,      "Infotype 1001
       pa0002.       "Infotype 0002 (Personal Data)
               internal tables declaration
*----internal tables for holding
DATA: t1001          LIKE p1001 OCCURS 0 WITH HEADER LINE,
      t1002          LIKE p1001 OCCURS 0 WITH HEADER LINE,
      t1003          LIKE p1001 OCCURS 0 WITH HEADER LINE,
      t1004          LIKE p1001 OCCURS 0 WITH HEADER LINE,
      t0001          LIKE p0001 OCCURS 0 WITH HEADER LINE,
      t0002          TYPE p0002 OCCURS 0 WITH HEADER LINE.
              variable declaration
*---0 to capture the id of the object "may be orgunit, position, persion.
DATA: g_sobid1  LIKE p1001-objid,
      g_sobid2  LIKE p1001-objid,
      g_sobid3  LIKE p1001-objid,
*--to capture the personnel number
      g_pernr LIKE pa0002-pernr.
              selection screen paramters
*----enter a valid personnel number
PARAMETERS:p_pernr LIKE pa0002-pernr.
             start of selection
START-OF-SELECTION.
*-- Get the Position for entered Personnel number
*----RH_READ_INFTY function module is used for the OM infotypes ..starting with HRP
  CALL FUNCTION 'RH_READ_INFTY'
    EXPORTING
      plvar                = '01'
      otype                = 'P'
      objid                = p_pernr
      infty                = '1001'
      subty                = 'B008'
      begda                = sy-datum
      endda                = sy-datum
    TABLES
      innnn                = t1001
    EXCEPTIONS
      all_infty_with_subty = 1
      nothing_found        = 2
      no_objects           = 3
      wrong_condition      = 4
      wrong_parameters     = 5
      OTHERS               = 6.
  IF sy-subrc <> 0.
    MESSAGE i000 WITH 'this number is not maintained in hrp1001'.
  ENDIF.
*-- Get the latest record reading T1001 with following values
  SORT t1001 BY begda DESCENDING .
  READ TABLE t1001 WITH KEY objid = p_pernr   "personnel number
                            otype = 'P'       "Person
                            rsign = 'B'       "hirarchy top down
                            relat = '008'     "Holder
                            sclas = 'S'.      "Position
  IF NOT t1001[] IS INITIAL.
    g_sobid1 = t1001-sobid.                  "ID of Related Object
*-- Get Org unit for the position obtained from above
    CALL FUNCTION 'RH_READ_INFTY'
      EXPORTING
        plvar = '01'
        otype = 'S'
        objid = g_sobid1
        infty = '1001'
        subty = 'A003'
        begda = sy-datum
        endda = sy-datum
      TABLES
        innnn = t1002.
  ENDIF.
  SORT t1002 BY begda DESCENDING .
  READ TABLE t1002 WITH KEY objid = g_sobid1
                            otype = 'S'      "Position
                            rsign = 'A'      "bottom up
                            relat = '003'    "Belongs to
                            sclas = 'O'.     "org unit
  IF NOT t1002[] IS INITIAL.
    g_sobid2 = t1002-sobid.
*-- Get position for the Org unit (Manager)
    CALL FUNCTION 'RH_READ_INFTY'
      EXPORTING
        plvar = '01'
        otype = 'O'
        objid = g_sobid2
        infty = '1001'
        subty = 'B012'
        begda = sy-datum
        endda = sy-datum
      TABLES
        innnn = t1003.
  ENDIF.
  SORT  t1003 BY objid.
  READ TABLE t1003 WITH KEY objid = g_sobid2
                            otype = 'O'      "org unit
                            rsign = 'B'      "hirarchy top down
                            relat = '012'    "Manages
                            sclas = 'S'.     "Position
  IF NOT t1003[] IS INITIAL.
    g_sobid3 = t1003-sobid.
*-- Get Personnel number for the Manager
    CALL FUNCTION 'RH_READ_INFTY'
      EXPORTING
        plvar = '01'
        otype = 'S'
        objid = g_sobid3
        infty = '1001'
        subty = 'A008'
        begda = sy-datum
        endda = sy-datum
      TABLES
        innnn = t1004.
  ENDIF.
  READ TABLE t1004 WITH KEY objid = g_sobid3
                            otype = 'S'      "Position
                            rsign = 'A'      "bottom up
                            relat = '008'    "Holder
                            sclas = 'P'.     "Person
  IF NOT t1004[] IS INITIAL.
    g_pernr = t1004-sobid+0(8).
*--Get name of Manager(Supervisor)
    CALL FUNCTION 'HR_READ_INFOTYPE'
      EXPORTING
        pernr     = g_pernr
        infty     = '0002'
      TABLES
        infty_tab = t0002.
    SORT t0002 BY pernr begda.
    READ TABLE t0002 INDEX 1.
    IF NOT t0002[] IS INITIAL.
      FORMAT COLOR 7 .
      SKIP 3.
      WRITE:/1(101) sy-uline .
      WRITE:/1 sy-vline,
             2 'manager personnel number',
             30 sy-vline,
             31 'manager first name' ,
             60 sy-vline,
             61 'manager lastname',
             101 sy-vline.
      FORMAT COLOR OFF.
      WRITE:/1(101) sy-uline .
      WRITE:/1 sy-vline,
             2  t0002-pernr  COLOR 4,
             30 sy-vline,
             31 t0002-vorna COLOR 4,
             60 sy-vline,
             61  t0002-nachn COLOR 4,
             101 sy-vline.
      WRITE:/1(101) sy-uline .
    ENDIF.
  ENDIF.

Similar Messages

  • Hr-abap,regarding finding mangers for an employee for the particular period

    hi,
    i am new to hr-abap.
    my requriement is i have to fetch the managers of an employee for a particular peroid of time.Can any one provide me this coding?

    this FM will find the current manager...
    FUNCTION ZGILL_APPROVER.
    ""Local interface:
    *"  IMPORTING
    *"     REFERENCE(PERNR) TYPE  PERSNO
    *"  EXPORTING
    *"     REFERENCE(NAME) TYPE  PAD_CNAME
    *"  EXCEPTIONS
    *"      NO_DATA
    DATA: ls_sobid1 TYPE sobid,
          ls_sobid2 TYPE sobid,
          ls_sobid3 TYPE sobid,
          vorna type PAD_VORNA,
          nachn type PAD_NACHN.
      SELECT SINGLE sobid FROM hrp1001 INTO ls_sobid1
       WHERE otype = 'P'
       and   plvar = '01'
       AND   objid = pernr
       AND   endda >= sy-datum
       AND   begda <= sy-datum
       AND   rsign = 'B'
       AND   relat = '008'.
    IF sy-subrc EQ 0.
    SELECT SINGLE sobid FROM hrp1001 INTO ls_sobid2
       WHERE otype = 'S'
       and   plvar = '01'
       AND   objid = ls_sobid1
       AND   endda >= sy-datum
       AND   begda <= sy-datum
       AND   rsign = 'A'
       AND   relat = '002'.
    IF sy-subrc EQ 0.
    SELECT SINGLE sobid FROM hrp1001 INTO ls_sobid3
       WHERE otype = 'S'
       and   plvar = '01'
       AND   objid = ls_sobid2
       AND   endda >= sy-datum
       AND   begda <= sy-datum
       AND   rsign = 'A'
       AND   relat = '008'.
    IF sy-subrc EQ 0.
    SELECT SINGLE vorna nachn from pa0002 INTO (vorna , nachn)
       WHERE pernr = ls_sobid3
       AND   endda >= sy-datum
       AND   begda <= sy-datum.
    IF sy-subrc EQ 0.
    Concatenate vorna nachn into name separated by SPACE.
    condense name.
    else.
    Raise NO_DATA.
    endif.
    else.
    Raise NO_DATA.
    endif.
    else.
    Raise NO_DATA.
    endif.
    else.
    RAISE no_data.
    endif.
    ENDFUNCTION.

  • Manger wants to create a leave request for inactive employee

    is this requirement possible ?
    my client is asking that the manger wants to create a leave request for inactive employee on his behalf
    when the manger is trying to create a leave request it is throwing the error message as Invalid personal number.
    Comments required from the experts

    Hi solomon,,
    I dont know the reason behind
    the inactive employee is showing under the mss Home page of manger.
    Is there something wrong functionally/technically ?
    I Know what would be the status of inactive employee. I tried to convenience my client,but no luck
    Requirement is in this way :
    Manger wants to create a leave request for inactive employee( on the behalf of inactive employee, the manger wants to create a leave request ) in manager self service tab from Home

  • How to find the previous changed pay for an employee

    Hi,
    I have to get the previous changed pay for an employee.
    The problem is if the user enters a date range and if there is no change in the pay rate then i need to get the previous pay which is different from the current pay.
    HR experts please help on this.

    Please, read this weblog....
    <a href="/people/alvaro.tejadagalindo/blog/2006/02/19/how-to-deal-with-hr-payroll-reports to deal with HR Payroll reports</a>
    Greetings,
    Blag.

  • .v2.XMLParseException:Can not find definition for element 'descriptor'

    I am getting the following error, while running 'empps.jsp' ...when executing the tutorial given at
    ERROR Details:
    500 Internal Server Error
    javax.servlet.jsp.JspException: javax.faces.el.EvaluationException: Error getting property 'employees' from bean of type jsftoplink.model.EmployeesClient: Exception [TOPLINK-25004] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): oracle.toplink.exceptions.XMLMarshalExceptionException Description: An error occurred unmarshalling the documentInternal Exception: Exception [TOPLINK-27101] (Oracle TopLink - 10g Release 3 (10.1.3.1.0) (Build 061004)): oracle.toplink.platform.xml.XMLPlatformExceptionException Description: An error occurred while parsing the document.Internal Exception: oracle.xml.parser.v2.XMLParseException: Can not find definition for element 'class-descriptor-type'     at com.sun.faces.taglib.html_basic.DataTableTag.doEndTag(DataTableTag.java:501)     at emps.jspService(_emps.java:629)
    Pls help me in resolving this issue.

    I am still gettng the same error. The xml file is now
    <?xml version="1.0" encoding="UTF-8"?>
    <CUSTOMER xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="" ID="568945">
    <FIRSTNAME>Arnold</FIRSTNAME>
    <LASTNAME>McEriccson</LASTNAME>
    <ADDRESS>
    <LINE1>31, Nomadic Avevnue</LINE1>
    <LINE2>Pasadena Clove</LINE2>
    <CITY>WoolTown, MT</CITY>
    <ZIP>45263</ZIP>
    </ADDRESS>
    <BIRTHDATE>1967-08-13</BIRTHDATE>
    </CUSTOMER>
    The xsd file is:
    <?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="CUSTOMER">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="FIRSTNAME" type="xs:string"/> <xs:element name="LASTNAME" type="xs:string"/> <xs:element name="ADDRESS"> <xs:complexType>
    <xs:sequence>
    <xs:element name="LINE1" type="xs:string"/> <xs:element name="LINE2" type="xs:string"/> <xs:element name="CITY"/>
    <xs:element name="ZIP" type="xs:int"/> </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="BIRTHDATE" type="xs:date"/> </xs:sequence>
    <xs:attribute name="ID" type="xs:double"/> </xs:complexType>
    </xs:element>
    </xs:schema>
    There seems to be something fairly obvious that i am missing.

  • Issue while creating Absence Quota for one employee

    Hi Friends,
    Our customer has a weird issue. When time evaluation is run, One Absence Quota type (Leave in Bank) is not getting generated for Only One Employee.
    This leave type has been updated with quota in IT 2006 after running PT60 for all other employees in the PA. The issue is only with one employee.
    This absence quota is assigned "Increase" in table V_556A_B (Permit Generation of Quotas in Time Evaluation)
    Can any one please suggest how to generate the missing quota for this employee. Thank you !!

    Hi
    Thanks for your replies !!
    Please find the screenshots attached.
    Leave in Bank Absence type which is valid for 2014 is missing in IT 2006 instead This absence quota valid upto 31.12.9999 is present.
    Current requirement is to remove the quota which is valid upto 31.12.9999 and replace the quota which is valid upto 31.12.2014.
    I have checked for some PERNRs with same EG/ESG/PA/PSA combination. They have the absence quota valid upto 31.12.2014 Only.

  • Retropay by element run Errors for one employee

    When i am running retropay for 3711 employees one of them errors out and the retropay by element process ends as Incomplete.
    The following is the error for the assignment:
    Error ORA-01427: single-row subquery returns more than one row has occurred in table pay_element_entries_f at location 4502
    Cause: an oracle error has occurred. The failure was reported on table pay_element_entries_f at location
    The log file for that it appears as follows:
    Payroll: Version : 12.0.0
    Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
    RETROELE module: RetroPay By Element
    Current system time is 15-APR-2010 16:26:51
    ===============================================================================
    Oracle Human Resources Generic Process
    Started at : 15-APR-2010 16:26:51
    Chunk Size : 20
    Threads : 1
    Logging Category :
    User Messaging : N
    Interlock : N
    Trace : N
    RR Buffer Size : 500
    RRV Buffer Size : 500
    Bal Buffer Size : 500
    EE Buffer Size : 500
    Logging Area :
    Assignment ID for Start:
    Assignment ID for End o:
    HR_6881_HRPROC_ORA_ERR
    SQLERRMC ORA-01427: single-row subquery returns more than one row
    SQL_NO 4502
    TABLE_NAME pay_element_entries_f
    APP-PAY-06881: Error ORA-01427: single-row subquery returns more than one row
    has occurred in table pay_element_entries_f at location 4502
    Cause: an oracle error has occurred. The failure was reported on table pay_element_entries_f at location 4502 with the error text ORA-01427: single-row subquery returns more than one row
    Action: Please contact your support representative.
    Ended processing at : 15-APR-2010 21:50:07
    Total Assignment count : 3711
    Total Action count : 3711
    Successfully processed : 3710
    Skipped : 0
    Unprocessed : 0
    Errored : 1
    ===============================================================================
    PL/SQL Output
    PL/SQL Output
    Executing request completion options...
    ------------- 1) PRINT   -------------
    Printing output file.
    Request ID : 595012      
    Number of copies : 1      
    Printer : noprint
    APP-FND-00092: Routine PRINT_OUTPUT cannot find the file /data/oracle/PRD/inst/apps/PRD_hrmsprod/logs/appl/conc/out/o595012.out to print.
    Check if the file exists. Check if the person who started the concurrent manager has read privileges on the directory and on the file. Contact your system administrator to assign read privileges.
    Finished executing request completion options.
    Concurrent request completed
    Current system time is 15-APR-2010 21:50:08
    Please can some one help me to troubleshoot so that i can rectify this error for 1 employee?
    Edited by: 594647 on Apr 16, 2010 10:46 AM

    you can delete the retro assignment action for the moment, so you can launch the run for all employees.
    As such, you have some more time to debug the issue.
    I would activate some payroll tracing, so you know which fast formula throws this error. And then you should dig further, so you can identify the sql retruning multiple rows.
    Or you do a sql*trace. That one will also point you to the offensive sql.

  • Thinking about using Mac Mini's as desktops for 20 employee business.  Pro's Vs. Con's

    Thinking about using Mac Mini's as desktops for 20 employee business.  Pro's Vs. Con's

    Your best bet would be to buy a single 2012 MacMini Server model that you can use to manage the balance of the other machines. Either that or upgrade one of the MM's to OS X Yosemite Server . You can find information about the Server edition at:
    https://www.apple.com/osx/server/
    However I would STRONGLY recommend visiting your local Apple Store and ask to speak to their business specialist, they are trained to manage customer needs such as yours.
    The major advantage of using Macs over any PC is the stability of OS X itself and the overall quality of support that you will never get with HP.

  • Finding Manager for a pernr

    Hi Everyone,
    Can anyone plz. help me how to find manager for a given PERNR?

    Re: Finding the manager
    Re: find the manager for pirticular emp
    Re: How to get this relation of Employee ID and Manager ID

  • 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

  • T-code for repor "Employee Action Report"

    Dear Guru,
    There is a report for getting "employee Actions List". The program name is  RPLACTJ0 (standard report)  but i dont find the Tcode for this report.
    I cheked the T.Code through SYSTEM---STATUS.  (its saying SA38.) which is ABAP program execution.
    How to find the T.code for this report. if not, can i assign the T.code for the standard program?
    Thanks.
    Manju

    Hi Purnima,
    Thanks for ur updation.
    I have tried in all possible ways, but system giving error msg "No value found"
    Tcode : se16n ---TSTC    = No value found.
    Tcode : se16   ---TSTC    = No value found.
    se11 :  its table dictionary.  I think here we cant execute any program.
    Regards
    Manjula.

  • Is there a price discount for Ipad 2 for federal employees if they make their purchase from Federal employee store?

    Hi all,
    I am sorry but I seem to not find any where else to ask this question so I have it here. Apple do have the Federal employee store that provides special price for federal employee but when I go there I do not see any discount price for ipad 2. Am I missing anything? Thanks.

    The computers are discounted, but the mobile devices (iPad, iPod, iPhone) are not discounted (never have been to my memory).  You guy online just as always.  When using the education store, I've never had to prove my affiliation, but I don't know about the government store.
    You can also get the same discount in a birck-n-mortar Apple Store, you just have to ask for it.

  • Documents of Record doesnt display for all employees inCustom Responsiblity

    Hi
    I have created custom responsibility with function of Documents of Record. I have enabled the Passport and Visa Information under this custom responsibility, it is not displaying the icon fro searching employees, default it is showing the same employee Passport and Visa Information.
    If i log in with UAE HRMS Manager, it is displaying the Search button for all employees where as new custom responsibility is displaying only one employee.
    Can you please guide on this.
    Regards
    Arjun
    [email protected]

    I haven't done any work related to IP-camera. So, sorry I can't help you with
    reading images from IP camera and generating a movie. But I guess, you might
    find a solution in some posts of this forum or if I remember correctly,
    in the book "Killer Java Games", there's a chapter discussing this issue
    of making movies in Java.
    I just happened to work on a project that requires reading images from
    a MJPEG stream. Unfortunately, it is a commercial project and I'd be very
    unprofessional if I expose some code of that project here even though
    I wrote the code myself. Anyway, I used a algorithm similar to what you
    guys did in this thread ((I implemented it abit differently, though)
    http://forum.java.sun.com/thread.jspa?threadID=494920&start=0&tstart=0
    One thing I noticed is that after I read the first image successfully, there were
    still some data, which I haven't got time to investigate what kind of data they
    are, before I encountered the boundary between successive images and other
    customized header lines. So after reading an image, I just read each line of
    data and check if it starts with the boundary string. If I got to the boundary,
    then I start to read (and remove other header lines) before I start reading the
    next image. Again, similar to the post mentioned above, this method
    requires you read the server manual (or print out the boundary and header
    lines in case you don't have such document available). But it does give you
    easy access to custom header lines.
    Alternatively, you can detect the start of the raw JPEG data like one guy in the
    above post did.
    Good luck, mate!

  • Enrolling benefits for an employee

    Hi all,
      Please can anyone provide me the screen-shots for enrolling benifit plans for an employee using T-code 'HRBEN0001'.
    TKS in advance,
    Dharani

    Hi Dharani,
    HRBEN0001 is for Enrolling an employee to the Benefit Plans configured in the System.
    Screenshot for enrolments? anyway, you can google to find tonnes of information on the same..
    Best of Luck !!!
    Kumarpal Jain.

  • Maintaining qualifications for an employee

    We are having problems on a new system (customer site) to maintain qualifications.
    When trying to create a new qual. for an employee we get the message 'Action was cancelled'.  I have double checked the customizing tables and can't find anything wrong.  But I must be missing something.
    Any ideas?

    Hi
    We faced this problem while upgrading the system to ECC 5.0. It was possible to assign qualifications via search term but not from the catalogue. We were getting the same error message (PQ022). We resolved this by applying OSS note 855853.
    Hope this helps.
    Regards,
    Vikas Bhatia

Maybe you are looking for

  • Getting error in event handler method onPlugFromStartView

    Hi,        I am getting error in event handler method onPlugFromStartView java coding. The error message is u201CThe method wdGetwelcome componentcontroller() is undefined for the IPrivatevieew. Plese explain how to resolve this error to deploy the w

  • V 3.2 v2 now has problems with layouts, displays images fine in IE10, Firefox but not in Chrome...

    Images placed in a page are not displaying in the same places in the design view on the rendered Chrome page, they are perfect in IE 10 and Firefox but not chrome / safari (ipad)? In other words I cant get all the browsers to render the same, in orde

  • Acrobat pro Extended | Passing variable value with Querystring

    Hi, We are facing issue with opening a web link with passing a variable value as query string parameter. We have added a form button on the pdf page, on click of it we have opened a web page and we want to pass a variable value in the query string. W

  • Rest service DELETE doesn't work with OSB

    Hi, I am using OSB 11g, I am using OSB proxy to monitor external rest services call. I've created a business service that point to the external rest service and I created a proxy that is routed to my business service. I modified the flow by adding a

  • Dynamic Actions in Select List of Tabular Form

    I have a tabular form in my application and one of the column A is Select List with lot of values. My requirement is, there is another column B in the same tabular column like Display text, which should appear when a user select A, B or C in the sele