You are on page 1of 7

*&---------------------------------------------------------------------*

*& Report ZHCM_FM_IT0586


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZHCM_FM_IT0586
NO STANDARD PAGE HEADING LINE-SIZE 255.
DATA: BEGIN OF i_upload OCCURS 0,
pernr LIKE pa0586-pernr,
begda(10) TYPE c,
endda(10) TYPE c,
* ACOPC type pa0586-ACOPC,
pin01 LIKE pa0586-pin01,
pin02 LIKE pa0586-pin01,
pin03 LIKE pa0586-pin01,
pin04 LIKE pa0586-pin01,
pin05 LIKE pa0586-pin01,
pin06 LIKE pa0586-pin01,
pin07 LIKE pa0586-pin01,
pin08 LIKE pa0586-pin01,
pin09 LIKE pa0586-pin01,
* pin10 LIKE pa0586-pin01,
pin11 LIKE pa0586-pin01,
pin12 LIKE pa0586-pin01,
pin13 LIKE pa0586-pin01,
pin14 LIKE pa0586-pin01,
* pin15 LIKE pa0586-pin01,
pin16 LIKE pa0586-pin01,
pin17 LIKE pa0586-pin01,
pin18 LIKE pa0586-pin01,
pin19 LIKE pa0586-pin01,
pin20 LIKE pa0586-pin01,
pin21 LIKE pa0586-pin01,
pin22 LIKE pa0586-pin01,
pin23 LIKE pa0586-pin01,
pin24 LIKE pa0586-pin01,
pin25 LIKE pa0586-pin01,
pin26 LIKE pa0586-pin01,
ain01 LIKE pa0586-ain01,
ain02 LIKE pa0586-ain01,
ain03 LIKE pa0586-ain01,
ain04 LIKE pa0586-ain01,
ain05 LIKE pa0586-ain01,
ain06 LIKE pa0586-ain01,
ain07 LIKE pa0586-ain01,
ain08 LIKE pa0586-ain01,
ain09 LIKE pa0586-ain01,
* ain10 LIKE pa0586-ain01,
ain11 LIKE pa0586-ain01,
ain12 LIKE pa0586-ain01,
ain13 LIKE pa0586-ain01,
ain14 LIKE pa0586-ain01,
* ain15 LIKE pa0586-ain01,
ain16 LIKE pa0586-ain01,
ain17 LIKE pa0586-ain01,
ain18 LIKE pa0586-ain01,

ain19 LIKE pa0586-ain01,


ain20 LIKE pa0586-ain01,
ain21 LIKE pa0586-ain01,
ain22 LIKE pa0586-ain01,
ain23 LIKE pa0586-ain01,
ain24 LIKE pa0586-ain01,
ain25 LIKE pa0586-ain01,
ain26 LIKE pa0586-ain01,
END OF i_upload.
DATA: BEGIN OF p586 OCCURS 0,
icode LIKE pa0586-itc01,
pinvt LIKE pa0586-pin01,
ainvt LIKE pa0586-ain01,
END OF p586.
DATA: p0586 LIKE p0586 ,
ia586 LIKE pa0586 OCCURS 0 WITH HEADER LINE,
return LIKE bapireturn1,
pin_ainvt TYPE pin_ainvt.
************************************************************************
* S E L E C T I O N - S C R E E N D E F I N I T I O N *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_file LIKE rlgrap-filename OBLIGATORY,
p_begda LIKE pa0586-begda OBLIGATORY,
p_endda LIKE pa0586-endda OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
************************************************************************
* E V E N T H A N D L I N G - B E G I N *
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM get_file USING p_file.
************************************************************************
* START OF SELECTION - B E G I N *
************************************************************************
START-OF-SELECTION.
DATA: lines LIKE sy-index.
*Getting the file data.
PERFORM upload USING p_file.
LOOP AT i_upload.
ia586-pernr = i_upload-pernr.
ia586-endda = p_endda.
ia586-begda = p_begda.
PERFORM col_row.
PERFORM do.
APPEND ia586.
CLEAR : ia586,p586.
REFRESH : p586.
ENDLOOP.
LOOP AT ia586.
MOVE-CORRESPONDING ia586 TO p0586.
CALL FUNCTION 'HR_EMPLOYEE_ENQUEUE'
EXPORTING
number = p0586-pernr
IMPORTING
RETURN
= RETURN.
if return-message is initial.

write :/ p0586-pernr.
else.
write :/ p0586-pernr,': Error ',return-message color 5.
endif.
clear return.
CALL FUNCTION 'HR_INFOTYPE_OPERATION'
EXPORTING
infty
= '0586'
number
= p0586-pernr
lockindicator = ''
validityend = p_endda
validitybegin = p_begda
record
= p0586
operation
= 'INS' "or MOD or del
nocommit
= ''
tclas
= 'A'
IMPORTING
return
= return
EXCEPTIONS
OTHERS
= 0.
if return-message is initial.
write :/' Record uploaded.'.
else.
write :/'Error ',return-message color 6.
endif.
CALL FUNCTION 'HR_EMPLOYEE_DEQUEUE'
EXPORTING
number = p0586-pernr.
CLEAR RETURN.
if return-message is NOT initial.
write :/' Error ',return-message color 5.
endif.
CLEAR : p0586,
return.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form GET_FILE
*&---------------------------------------------------------------------*
* Show "Open File" dialog box on F4
*----------------------------------------------------------------------*
* -->P_W_FILE Name of the file selected by the user
*----------------------------------------------------------------------*
FORM get_file USING p_w_file.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
CHANGING
file_name
= p_w_file
EXCEPTIONS
mask_too_long = 1
OTHERS
= 2.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. "GET_FILE
*&---------------------------------------------------------------------*
*& Form UPLOAD

*&---------------------------------------------------------------------*
* Upload the file into the internal table for processing
*----------------------------------------------------------------------*
* -->P_LOADFILE Name of file to upload
*----------------------------------------------------------------------*
FORM upload USING p_loadfile.
* Read the file into the Internal Table
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = p_loadfile
filetype = 'DAT'
TABLES
data_tab = i_upload.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. "UPLOAD
*&---------------------------------------------------------------------*
*&
Form col_row
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM col_row .
IF i_upload-ain01 IS NOT INITIAL OR i_upload-pin01 IS NOT INITIAL.
p586-icode = '01'.
p586-pinvt = i_upload-pin01.
p586-ainvt = i_upload-ain01.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain02 IS NOT INITIAL OR i_upload-pin02 IS NOT INITIAL.
p586-icode = '02'.
p586-pinvt = i_upload-pin02.
p586-ainvt = i_upload-ain02.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain03 IS NOT INITIAL OR i_upload-pin03 IS NOT INITIAL.
p586-icode = '03'.
p586-pinvt = i_upload-pin03.
p586-ainvt = i_upload-ain03.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain04 IS NOT INITIAL OR i_upload-pin04 IS NOT INITIAL.
p586-icode = '04'.
p586-pinvt = i_upload-pin04.
p586-ainvt = i_upload-ain04.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain05 IS NOT INITIAL OR i_upload-pin05 IS NOT INITIAL.
p586-icode = '05'.
p586-pinvt = i_upload-pin05.
p586-ainvt = i_upload-ain05.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain06 IS NOT INITIAL OR i_upload-pin06 IS NOT INITIAL.

*
*
*
*
*
*
*

p586-icode = '06'.
p586-pinvt = i_upload-pin06.
p586-ainvt = i_upload-ain06.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain07 IS NOT INITIAL OR
p586-icode = '07'.
p586-pinvt = i_upload-pin07.
p586-ainvt = i_upload-ain07.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain08 IS NOT INITIAL OR
p586-icode = '08'.
p586-pinvt = i_upload-pin08.
p586-ainvt = i_upload-ain08.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain09 IS NOT INITIAL OR
p586-icode = '09'.
p586-pinvt = i_upload-pin09.
p586-ainvt = i_upload-ain09.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain10 IS NOT INITIAL
p586-icode = '10'.
p586-pinvt = i_upload-pin10.
p586-ainvt = i_upload-ain10.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain11 IS NOT INITIAL
p586-icode = '11'.
p586-pinvt = i_upload-pin11.
p586-ainvt = i_upload-ain11.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain12 IS NOT INITIAL
p586-icode = '12'.
p586-pinvt = i_upload-pin12.
p586-ainvt = i_upload-ain12.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain13 IS NOT INITIAL
p586-icode = '13'.
p586-pinvt = i_upload-pin13.
p586-ainvt = i_upload-ain13.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain14 IS NOT INITIAL
p586-icode = '14'.
p586-pinvt = i_upload-pin14.
p586-ainvt = i_upload-ain14.

i_upload-pin07 IS NOT INITIAL.

i_upload-pin08 IS NOT INITIAL.

i_upload-pin09 IS NOT INITIAL.

OR i_upload-pin10 IS NOT INITIAL.

OR i_upload-pin11 IS NOT INITIAL.

OR i_upload-pin12 IS NOT INITIAL.

OR i_upload-pin13 IS NOT INITIAL.

OR i_upload-pin14 IS NOT INITIAL.

*
*
*
*
*
*
*

APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain15 IS NOT INITIAL
p586-icode = '15'.
p586-pinvt = i_upload-pin15.
p586-ainvt = i_upload-ain15.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain16 IS NOT INITIAL OR
p586-icode = '16'.
p586-pinvt = i_upload-pin16.
p586-ainvt = i_upload-ain16.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain17 IS NOT INITIAL OR
p586-icode = '17'.
p586-pinvt = i_upload-pin17.
p586-ainvt = i_upload-ain17.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain18 IS NOT INITIAL OR
p586-icode = '18'.
p586-pinvt = i_upload-pin18.
p586-ainvt = i_upload-ain18.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain19 IS NOT INITIAL OR
p586-icode = '19'.
p586-pinvt = i_upload-pin19.
p586-ainvt = i_upload-ain19.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain20 IS NOT INITIAL OR
p586-icode = '20'.
p586-pinvt = i_upload-pin20.
p586-ainvt = i_upload-ain20.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain21 IS NOT INITIAL OR
p586-icode = '21'.
p586-pinvt = i_upload-pin21.
p586-ainvt = i_upload-ain21.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain22 IS NOT INITIAL OR
p586-icode = '22'.
p586-pinvt = i_upload-pin22.
p586-ainvt = i_upload-ain22.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain23 IS NOT INITIAL OR

OR i_upload-pin15 IS NOT INITIAL.

i_upload-pin16 IS NOT INITIAL.

i_upload-pin17 IS NOT INITIAL.

i_upload-pin18 IS NOT INITIAL.

i_upload-pin19 IS NOT INITIAL.

i_upload-pin20 IS NOT INITIAL.

i_upload-pin21 IS NOT INITIAL.

i_upload-pin22 IS NOT INITIAL.

i_upload-pin23 IS NOT INITIAL.

p586-icode = '23'.
p586-pinvt = i_upload-pin23.
p586-ainvt = i_upload-ain23.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain24 IS NOT INITIAL OR i_upload-pin24 IS NOT INITIAL.
p586-icode = '24'.
p586-pinvt = i_upload-pin24.
p586-ainvt = i_upload-ain24.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain25 IS NOT INITIAL OR i_upload-pin25 IS NOT INITIAL.
p586-icode = '25'.
p586-pinvt = i_upload-pin25.
p586-ainvt = i_upload-ain25.
APPEND p586.
CLEAR p586.
ENDIF.
IF i_upload-ain26 IS NOT INITIAL OR i_upload-pin26 IS NOT INITIAL.
p586-icode = '26'.
p586-pinvt = i_upload-pin26.
p586-ainvt = i_upload-ain26.
APPEND p586.
CLEAR p586.
ENDIF.
ENDFORM. " col_row
*&---------------------------------------------------------------------*
*&
Form do
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM do .
DATA: loop_itc(11) VALUE 'IA586-ITC01',
loop_pin(11) VALUE 'IA586-PIN01',
loop_ain(11) VALUE 'IA586-AIN01',
index(2) TYPE p VALUE 1,
unpacked_index(2).
FIELD-SYMBOLS: <itc>, <pin> , <ain>.
LOOP AT p586.
UNPACK index TO unpacked_index.
loop_itc+09(2) = unpacked_index.
loop_pin+09(2) = unpacked_index.
loop_ain+09(2) = unpacked_index.
ASSIGN (loop_itc) TO <itc>.
ASSIGN (loop_pin) TO <pin>.
ASSIGN (loop_ain) TO <ain>.
<itc> = p586-icode.
<pin> = p586-pinvt.
<ain> = p586-ainvt.
ADD 1 TO index.
ENDLOOP.
ENDFORM. " do

You might also like