[SAP ABAP] - HR Funtion Module for Get Job History

SE11 -> Structure


  • ZSAPIST_SOPERNR



Field Data Element Data Type  Length Decimal Label Name
SIGN CHAR1 CHAR 1 0 Single-Character Indicator
OPTION CHAR2 CHAR 2 0 Version Number Component
LOW PERNR_D NUMC 8 0 Personnel Number
HIGH PERNR_D NUMC 8 0 Personnel Number


  • ZSAPIST_JOBHIST



Field Data Element Data Type  Length Decimal Label Name
PERNR PERNR_D NUMC 8 0 Personnel Number
BEGDA BEGDA DATS 8 0 Start Date
ENDDA ENDDA DATS 8 0 End Date
ARBGB VORAG CHAR 60 0 Name of employer
ORT01 ORT01 CHAR 25 0 City
LAND1 LAND1 CHAR 3 0 Country Key
LANDX50 LANDX50 CHAR 50 0 Country Name (Max. 50 Characters)
BRANC BRSCH CHAR 4 0 Industry key
BRTXT TEXT1_016T CHAR 20 0 Description of the industry key
TAETE TAETE NUMC 8 0 Job at former employer(s)
LTEXT LTEXT CHAR 40 0 Long Text
ANSVX ANSVX CHAR 2 0 Work Contract - Other Employers
ANSTX ANSTX CHAR 15 0 Work Contract Text

FUNCTION zsapifm_jobhist.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(E_HISTORY) TYPE  CHAR1
*"  TABLES
*"      FT_PERNR STRUCTURE  ZSAPIST_SOPERNR
*"      FT_JOBHIST STRUCTURE  ZSAPIST_JOBHIST
*"----------------------------------------------------------------------


  DATA : lt_t016t LIKE t016t OCCURS 0 WITH HEADER LINE,
         lt_t513c LIKE t513c OCCURS 0 WITH HEADER LINE,
         lt_t542s LIKE t542s OCCURS 0 WITH HEADER LINE.

  DATA : ld_begda LIKE pa0001-begda,
         ld_endda LIKE pa0001-endda.

  ld_begda = '18000101'.
  ld_endda = '99991231'.

  SELECT * FROM t016t INTO TABLE lt_t016t
           WHERE spras = sy-langu.

  SELECT * FROM t513c INTO TABLE lt_t513c
           WHERE spras = sy-langu.

  SELECT * FROM t542s INTO TABLE lt_t542s
           WHERE spras = sy-langu.

  IF e_history EQ 'X'.
    SELECT * FROM pa0023
    INTO CORRESPONDING FIELDS OF TABLE ft_jobhist
      WHERE pernr IN ft_pernr AND
            begda GE ld_begda AND
            endda LE ld_endda.
  ELSE.
    SELECT * FROM pa0023
    INTO CORRESPONDING FIELDS OF TABLE ft_jobhist
      WHERE pernr IN ft_pernr AND
            endda EQ ld_endda.
  ENDIF.

  IF ft_jobhist[] IS NOT INITIAL.

    LOOP AT ft_jobhist.

      CLEAR : lt_t016t, lt_t513c, lt_t542s.

      READ TABLE lt_t016t WITH KEY brsch = ft_jobhist-branc.
      IF sy-subrc = 0.
        ft_jobhist-brtxt = lt_t016t-brtxt.
      ENDIF.

      READ TABLE lt_t513c WITH KEY taete = ft_jobhist-taete.
      IF sy-subrc = 0.
        ft_jobhist-ltext = lt_t513c-ltext.
      ENDIF.

      READ TABLE lt_t542s WITH KEY ansvx = ft_jobhist-ansvx.
      IF sy-subrc = 0.
        ft_jobhist-anstx = lt_t542s-anstx.
      ENDIF.

      MODIFY ft_jobhist.
      CLEAR ft_jobhist.

    ENDLOOP.

  ENDIF.

ENDFUNCTION.



Comments