Download Employee Data

*&---------------------------------------------------------------------*
*& Report  ZTEST_PILLAR
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ztest_pillar.

INFOTYPES: 0000, 0001, 0007, 0008, 0121, 0615.
NODES: pernr.
TABLES: t001p.

TYPES: BEGIN OF t_employee,
*        INCLUDE STRUCTURE hrms_biw_io_occupancy.
  begda  TYPE begda,
  endda  TYPE endda,
  pernr  TYPE pernr_d,
  rfpnr  TYPE rfpnr,
  bukrs  TYPE bukrs,
  werks  TYPE persa,
  btrtl  TYPE btrtl,
  persg  TYPE persg,
  persk  TYPE persk,
  orgeh  TYPE orgeh,
  stell  TYPE stell,
  plans  TYPE plans,
  kokrs  TYPE mast_coar,
  kostl  TYPE mast_cctr,
  abkrs  TYPE abkrs,
  molga  TYPE molga,
  trfar  TYPE trfar,
  trfgb  TYPE trfgb,
  trfkz  TYPE trfkz,
  trfgr  TYPE trfgr,
  trfst  TYPE trfst,
  bsgrd  TYPE bsgrd,
  ansal  TYPE ansal_15,
  ancur  TYPE ancur,
  empct  TYPE empct,
  stat2  TYPE stat2,
  ncsdate     TYPE hiredate,
  sltyp  TYPE p_sltyp,
  slreg  TYPE p_slreg,
  slgrp  TYPE p_slgrp,
  sllev  TYPE p_sllvl,
  ansvh  TYPE ansvh,
  vdsk1  TYPE vdsk1,
  sname  TYPE smnam,
 END OF t_employee.
DATA: it_employee TYPE STANDARD TABLE OF t_employee INITIAL SIZE 0,
      wa_employee TYPE t_employee.

TYPES: BEGIN OF t_emptexts,
*        INCLUDE STRUCTURE hrms_bw_txt_employee.
  datefrom  TYPE rsdatefrom,
  dateto  TYPE rsdateto,
  pernr  TYPE persno,
  txtmd  TYPE emnam,
 END OF t_emptexts.
DATA: it_emptexts TYPE STANDARD TABLE OF t_emptexts INITIAL SIZE 0,
      wa_emptexts TYPE t_emptexts.

TYPES: BEGIN OF t_contract,
*        INCLUDE STRUCTURE pa0615.
  pernr TYPE p0615-pernr,
  begda TYPE p0615-begda,
  endda TYPE p0615-endda,
  aedtm TYPE p0615-aedtm,
  ctype TYPE p0615-ctype,
  cbeg  TYPE p0615-cbeg,
  cend  TYPE p0615-cend,
 END OF t_contract.
DATA: it_contract TYPE STANDARD TABLE OF t_contract INITIAL SIZE 0,
      wa_contract TYPE t_contract.

DATA: it_tabemp TYPE filetable,
      gd_subrcemp TYPE i,
      it_tabempt TYPE filetable,
      gd_subrcempt TYPE i,
      it_tabcont TYPE filetable,
      gd_subrccont TYPE i.

DATA: gd_downfile TYPE string.

SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.
PARAMETERS: p_emp   LIKE rlgrap-filename,
            p_empt  LIKE rlgrap-filename,
            p_cont LIKE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK block1.

***********************************************************************
*at selection-screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_emp.

  REFRESH: it_tabemp.
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title      'Select File'
      default_filename  '*.xls'
      initial_directory 'C:\'
      multiselection    ' '  "No multiple selection
    CHANGING
      file_table        it_tabemp
      rc                gd_subrcemp.

  LOOP AT it_tabemp INTO p_emp.
  ENDLOOP.

***********************************************************************
*at selection-screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_empt.

  REFRESH: it_tabemp.
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title      'Select File'
      default_filename  '*.xls'
      initial_directory 'C:\'
      multiselection    ' '  "No multiple selection
    CHANGING
      file_table        it_tabempt
      rc                gd_subrcempt.

  LOOP AT it_tabempt INTO p_empt.
  ENDLOOP.

***********************************************************************
*at selection-screen
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_cont.

  REFRESH: it_tabcont.
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title      'Select File'
      default_filename  '*.xls'
      initial_directory 'C:\'
      multiselection    ' '  "No multiple selection
    CHANGING
      file_table        it_tabcont
      rc                gd_subrccont.

  LOOP AT it_tabcont INTO p_cont.
  ENDLOOP.

************************************************************************
*START-OF-SELECTION.
START-OF-SELECTION.

GET pernr.
* Selecting the latest infotype record
  rp_provide_from_last p0000 space pn-begda pn-endda.
  rp_provide_from_last p0001 space pn-begda pn-endda.
  rp_provide_from_last p0007 space pn-begda pn-endda.
  rp_provide_from_last p0008 space pn-begda pn-endda.
  rp_provide_from_last p0121 space pn-begda pn-endda.
  rp_provide_from_last p0615 space pn-begda pn-endda.

  MOVE-CORRESPONDING p0001 TO wa_employee.
  wa_employee-rfpnr p0121-rfp01. "?????

  MOVE-CORRESPONDING p0007 TO wa_employee.
  MOVE-CORRESPONDING p0008 TO wa_employee.
  MOVE-CORRESPONDING p0000 TO wa_employee.

  SELECT SINGLE molga
    FROM t001p
    INTO wa_employee-molga
   WHERE werks EQ p0001-werks AND
         btrtl EQ p0001-btrtl.

  SELECT SINGLE trfkz
    FROM t503
    INTO wa_employee-trfkz
   WHERE persg EQ p0001-persg AND
         persk EQ p0001-persk.

  CALL FUNCTION 'HR_ENTRY_DATE'
    EXPORTING
      persnr                     pernr-pernr
*   RCLAS                      =
*   BEGDA                      = '18000101'
*   ENDDA                      = '99991231'
*   VARKY                      =
   IMPORTING
      entrydate                  wa_employee-ncsdate
* TABLES
*   ENTRY_DATES                =
 EXCEPTIONS
   entry_date_not_found       1
   pernr_not_assigned         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.

* append employee data
  APPEND wa_employee TO it_employee.
  CLEAR: wa_employee.

  wa_emptexts-datefrom p0001-begda.
  wa_emptexts-dateto   p0001-endda.
  wa_emptexts-pernr    p0001-pernr.
  wa_emptexts-txtmd    p0001-ename.

* append employee texts data
  APPEND wa_emptexts TO it_emptexts.
  CLEAR: wa_emptexts.

  MOVE-CORRESPONDING p0615 TO wa_contract.
* append employee contract data
  APPEND wa_contract TO it_contract.
  CLEAR: wa_contract.

************************************************************************
*END-OF-SELECTION.
END-OF-SELECTION.

* download employee data
  IF NOT p_emp IS INITIAL.
    gd_downfile p_emp.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        filename              gd_downfile
        filetype              'ASC'
        write_field_separator 'X'
      TABLES
        data_tab              it_employee.
    IF sy-subrc EQ 0.
      WRITE:'Employee file downloaded to',
              gd_downfile.
    ELSE.
      WRITE:'There was an error downloading Employee file to',
              gd_downfile.
    ENDIF.
  ENDIF.

* download employee texts data
  IF NOT p_empt IS INITIAL.
    gd_downfile p_empt.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        filename              gd_downfile
        filetype              'ASC'
        write_field_separator 'X'
      TABLES
        data_tab              it_emptexts.
    IF sy-subrc EQ 0.
      WRITE:'Employee text file downloaded to',
              gd_downfile.
    ELSE.
      WRITE:'There was an error downloading Employee text file to',
              gd_downfile.
    ENDIF.
  ENDIF.

* download contract data
  IF NOT p_cont IS INITIAL.
    gd_downfile p_cont.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        filename              gd_downfile
        filetype              'ASC'
        write_field_separator 'X'
      TABLES
        data_tab              it_contract.
    IF sy-subrc EQ 0.
      WRITE:'Employee contract file downloaded to',
              gd_downfile.
    ELSE.
WRITE:'There was an error downloading Employee contract file to',
              gd_downfile.
    ENDIF.
  ENDIF.

 

文章转自于:http://www.abap-tutorials.com/2009/12/11/abap-hr-program-to-download-employee-data/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值