0% found this document useful (0 votes)
15 views13 pages

Zgputr Delete Any Pa Infty Rec

The document describes a utility program (ZGPUTR_DELETE_ANY_PA_INFTY_REC) designed to delete incorrectly loaded PA infotype data through direct table updates. Created by Indrajit Ghosh for IBM, it includes selection screens for user input and authorization checks to ensure only specific users can execute it. The program also features a confirmation popup before proceeding with deletions and provides feedback on the success of the operations performed.

Uploaded by

Ravindra A
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views13 pages

Zgputr Delete Any Pa Infty Rec

The document describes a utility program (ZGPUTR_DELETE_ANY_PA_INFTY_REC) designed to delete incorrectly loaded PA infotype data through direct table updates. Created by Indrajit Ghosh for IBM, it includes selection screens for user input and authorization checks to ensure only specific users can execute it. The program also features a confirmation popup before proceeding with deletions and provides feedback on the success of the operations performed.

Uploaded by

Ravindra A
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 13

************************************************************************

* PROGRAM ID : ZGPUTR_DELETE_ANY_PA_INFTY_REC *
* PROGRAM TITLE : Utility Program to Delete incorrect infoype data *
* AUTHOR : Indrajit Ghosh *
* SUPPLIER : IBM *
* DATE : 07/21/2009 *
* DEVELOPMENT ID : N/A *
* TRANSPORT NUMBER: ECDK905333 *
* Description : This program will delete incorrectly loaded PA info*
* type data by direct table update. Created on demand*
* of conversion team. *
*=======================================================================
* CHANGE HISTORY LOG *
*----------------------------------------------------------------------*
* MOD. ID| DATE | NAME | TRANSPORT # | CHANGE REF. # *
************************************************************************

REPORT ZGPUTR_DELETE_ANY_PA_INFTY_REC NO STANDARD PAGE HEADING


MESSAGE-ID ZUT.

***********************************************************************
*INCLUDES
***********************************************************************
INCLUDE ZGPUTR_DELETE_ANY_PA_INFTY_TOP. "Top Include
INCLUDE ZGPUTR_DELETE_ANY_PA_INFTY_SEL. "Selection Screen Include
INCLUDE ZGPUTR_DELETE_ANY_PA_INFTY_FRM. "Subroutine Include

*************************************************************************
** At Selection Screen
*************************************************************************
AT SELECTION-SCREEN.

IF SY-UCOMM = 'ONLI'.
IF SY-UNAME NE 'DBARDHAN'
AND SY-UNAME NE 'IGHOSH'
AND SY-UNAME NE 'PPAWAR'
AND SY-UNAME NE 'BTAJO'
AND SY-UNAME NE 'CONVERSION01'
AND SY-UNAME NE 'CONVERSION02'
AND SY-UNAME NE 'CONVERSION03'
AND SY-UNAME NE 'CONVERSION04'
AND SY-UNAME NE 'CONVERSION05'
AND SY-UNAME NE 'CONVERSION06'
AND SY-UNAME NE 'CONVERSION07'
AND SY-UNAME NE 'CONVERSION08'
AND SY-UNAME NE 'SSANAM'
AND SY-UNAME NE 'AKOLHARKAR'
AND SY-UNAME NE 'THSIUNG'
and sy-uname NE 'BSHAH'
and sy-uname NE 'RANAGANI'.

MESSAGE E001(00) WITH 'You are not authorized to run this program'.

ELSE.

PERFORM POPUP_TO_CONFIRM CHANGING V_ANSWER.

IF V_ANSWER = '2' OR V_ANSWER = 'A' .


LEAVE SCREEN.
ENDIF.
ENDIF.
ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_SUBTY-LOW.


* Search help for Subtype
IF NOT P_INFTY IS INITIAL.
V_INFTY = P_INFTY.
* Form PA table name from infotype number
SHIFT V_INFTY RIGHT DELETING TRAILING SPACE.
OVERLAY V_INFTY WITH '0000'.
* CONCATENATE 'PA' V_INFTY INTO L_V_PANAME .

SELECT SUBTY INTO TABLE I_SUBTY FROM T591A


WHERE INFTY = V_INFTY .
REFRESH FIELD_TAB[].
REFRESH RETURN_TAB[].
FIELD_TAB-FIELDNAME = 'SUBTY'.
FIELD_TAB-TABNAME = 'T591A'.
APPEND FIELD_TAB.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'


EXPORTING
RETFIELD = FIELD_TAB-FIELDNAME
TABLES
VALUE_TAB = I_SUBTY
FIELD_TAB = FIELD_TAB
RETURN_TAB = RETURN_TAB
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 2
OTHERS = 3.
IF SY-SUBRC = 0.
S_SUBTY-LOW = RETURN_TAB-FIELDVAL.
ENDIF.

ENDIF.

START-OF-SELECTION.

IF NOT RB_DI IS INITIAL.


* Retrieve data dynamically
PERFORM GET_DATA USING P_INFTY
CHANGING V_PANAME
I_INFTY.
ENDIF.

END-OF-SELECTION.

CLEAR : V_INFTY.
IF NOT RB_DI IS INITIAL.
PERFORM PROCESS_DATA USING V_PANAME
I_INFTY.
ELSE.
PERFORM DELETE_USING_HR_INF_OPERATION USING P_INFTY.
ENDIF.
***********************************************************************************
********
ZGPUTR_DELETE_ANY_PA_INFTY_TOP
***********************************************************************************
*******
************************************************************************
* PROGRAM ID : ZGPUTR_DELETE_ANY_PA_INFTY_REC *
* PROGRAM TITLE : Utility Program to Delete incorrect infoype data *
* AUTHOR : Indrajit Ghosh *
* SUPPLIER : IBM *
* DATE : 07/21/2009 *
* DEVELOPMENT ID : N/A *
* TRANSPORT NUMBER: ECDK905333 *
* Description : This program will delete incorrectly loaded PA info*
* type data by direct table update. Created on demand*
* of conversion team. *
*=======================================================================
* CHANGE HISTORY LOG *
*----------------------------------------------------------------------*
* MOD. ID| DATE | NAME | TRANSPORT # | CHANGE REF. # *
************************************************************************

TYPES: BEGIN OF TY_SUBTY,


SUBTY TYPE SUBTY,
END OF TY_SUBTY.
DATA: I_SUBTY TYPE STANDARD TABLE OF TY_SUBTY.

DATA DYFIELDS LIKE DYNPREAD OCCURS 1 WITH HEADER LINE.


DATA: L_V_PANAME TYPE TABNAME.
DATA :FIELD_TAB LIKE DFIES OCCURS 0 WITH HEADER LINE.
DATA : RETURN_TAB LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE. DATA : X TYPE STRING.

data: V_INFTY type infty.

types: begin of ty_infty,


PERNR type PERSNO,
SUBTY type SUBTY_591A,
OBJPS type OBJPS,
ENDDA type ENDDA,
BEGDA type BEGDA,
SEQNR type SEQNR,
AEDTM type AEDAT,
UNAME type AENAM,
end of ty_infty,

ty_t_infty type standard table of ty_infty.

DATA: dy_table TYPE REF TO data,


dy_line TYPE REF TO data,
xfc TYPE lvc_s_fcat,
ifc TYPE lvc_t_fcat,
v_answer.

data: i_infty type standard table of ty_infty.

data: V_PANAME type TABNAME16.


data: v_pernr type pa0000-pernr,
v_subty type subty,
v_OBJPS type SUBTY_591A,
v_ENDDA type ENDDA,
v_BEGDA type BEGDA,
v_SEQNR type SEQNR,
v_AEDTM type AEDAT,
v_UNAME type AENAM.
***********************************************************************************
*****
ZGPUTR_DELETE_ANY_PA_INFTY_SEL
***********************************************************************************
********
************************************************************************
* PROGRAM ID : ZGPUTR_DELETE_ANY_PA_INFTY_REC *
* PROGRAM TITLE : Utility Program to Delete incorrect infoype data *
* AUTHOR : Indrajit Ghosh *
* SUPPLIER : IBM *
* DATE : 07/21/2009 *
* DEVELOPMENT ID : N/A *
* TRANSPORT NUMBER: ECDK905333 *
* Description : This program will delete incorrectly loaded PA info*
* type data by direct table update. Created on demand*
* of conversion team. *
*=======================================================================
* CHANGE HISTORY LOG *
*----------------------------------------------------------------------*
* MOD. ID| DATE | NAME | TRANSPORT # | CHANGE REF. # *
************************************************************************

SELECTION-SCREEN: BEGIN OF BLOCK second WITH FRAME TITLE text-001.


PARAMETERS: p_infty TYPE infty OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK second.

SELECTION-SCREEN: BEGIN OF BLOCK first WITH FRAME TITLE text-002.

SELECT-OPTIONS: s_pernr FOR v_pernr,


s_subty FOR v_subty,
S_begda for v_begda,
S_endda for v_endda,
S_objps for v_objps,
S_seqnr for v_seqnr,
S_AEDTM for v_AEDTM,
S_UNAME for v_UNAME default sy-uname.

SELECTION-SCREEN: END OF BLOCK first.

SELECTION-SCREEN: BEGIN OF BLOCK three WITH FRAME TITLE text-003.


PARAMETERS: rb_Di TYPE c RADIOBUTTON group abc default 'X',
rb_fm TYPE c RADIOBUTTON group abc.
SELECTION-SCREEN: END OF BLOCK three.

***********************************************************************************
***************
ZGPUTR_DELETE_ANY_PA_INFTY_FRM
************************************************************************
* PROGRAM ID : ZGPUTR_DELETE_ANY_PA_INFTY_REC *
* PROGRAM TITLE : Utility Program to Delete incorrect infoype data *
* AUTHOR : Indrajit Ghosh *
* SUPPLIER : IBM *
* DATE : 07/21/2009 *
* DEVELOPMENT ID : N/A *
* TRANSPORT NUMBER: ECDK905333 *
* Description : This program will delete incorrectly loaded PA info*
* type data by direct table update. Created on demand*
* of conversion team. *
*=======================================================================
* CHANGE HISTORY LOG *
*----------------------------------------------------------------------*
* MOD. ID| DATE | NAME | TRANSPORT # | CHANGE REF. # *
************************************************************************
FORM GET_DATA USING FP_INFTY TYPE INFTY
CHANGING FP_V_PANAME TYPE TABNAME16
FP_I_INFTY TYPE TY_T_INFTY.

DATA: L_PA_TABLENAME TYPE TABNAME16.


DATA: L_V_INFTY TYPE INFTY.
L_V_INFTY = FP_INFTY .
* Form PA table name from infotype number
SHIFT L_V_INFTY RIGHT DELETING TRAILING SPACE.
OVERLAY L_V_INFTY WITH '0000'.
CONCATENATE 'PA'
L_V_INFTY
INTO FP_V_PANAME.
CONDENSE FP_V_PANAME NO-GAPS.

* Select Data from table.


SELECT PERNR
SUBTY
OBJPS
ENDDA
BEGDA
SEQNR
AEDTM
UNAME
INTO TABLE FP_I_INFTY
FROM (FP_V_PANAME)
WHERE PERNR IN S_PERNR
AND SUBTY IN S_SUBTY
AND OBJPS IN S_OBJPS
AND ENDDA IN S_ENDDA
AND BEGDA IN S_BEGDA
AND SEQNR IN S_SEQNR
AND AEDTM IN S_AEDTM
AND UNAME IN S_UNAME .

IF SY-SUBRC IS INITIAL.
SORT FP_I_INFTY .
ENDIF.

ENDFORM. "get_data
*&---------------------------------------------------------------------*
*& Form WRITE_OUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PROCESS_DATA USING FP_V_PANAME TYPE TABNAME16
FP_I_INFTY TYPE TY_T_INFTY .

IF FP_I_INFTY IS NOT INITIAL.

SKIP 1.
FORMAT COLOR 6 INTENSIFIED ON INVERSE ON FRAMES ON.
WRITE:/2 'Infotype Table selected :', FP_V_PANAME .
WRITE:/2 'Deletion Program Executed By :', SY-UNAME .
IF RB_DI = 'X'.
WRITE:/2 'Infotype Deletion Method selected : Direct Table Update'.
ELSE.
WRITE:/2 'Infotype Deletion Method selected : Using FM
''HR_INFOTYPE_OPERATION'' '.
ENDIF.
SKIP 2.

WRITE:/2 SY-ULINE(174).
FORMAT COLOR 1 INVERSE OFF.
WRITE:/2 SY-VLINE,
5 'PERNR' ,
16 SY-VLINE,
19 'SUBTY',
26 SY-VLINE,
29 'OBJPS',
35 SY-VLINE,
38 'ENDDA',
52 SY-VLINE,
55 'BEGDA',
66 SY-VLINE,
69 'SEQNR',
75 SY-VLINE,
78 'AEDTM',
89 SY-VLINE,
92 'UNAME',
107 SY-VLINE,
109 'STATUS',
117 SY-VLINE,
120 'COMMENT',
175 SY-VLINE.

FORMAT COLOR COL_NORMAL.


WRITE:/2 SY-ULINE(174).

PERFORM DELETE_USING_DIRECT_UPDATE USING FP_V_PANAME


FP_I_INFTY .

ELSE.
MESSAGE I000(ZPA) WITH 'No data matches selection criteria'.
ENDIF.

ENDFORM. " WRITE_OUT


*&---------------------------------------------------------------------*
*& Form POPUP_TO_CONFIRM
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_V_ANSWER text
*----------------------------------------------------------------------*
FORM POPUP_TO_CONFIRM CHANGING FP_V_ANSWER.

CALL FUNCTION 'POPUP_TO_CONFIRM'


EXPORTING
TITLEBAR = 'Deletion Confirmation'
TEXT_QUESTION = 'Continue Deletion ?'
TEXT_BUTTON_1 = 'YES'
ICON_BUTTON_1 = 'ICON_OKAY'
TEXT_BUTTON_2 = 'NO'
ICON_BUTTON_2 = 'ICON_CANCE'
IMPORTING
ANSWER = FP_V_ANSWER
EXCEPTIONS
TEXT_NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE E000(ZPA) WITH 'Error while calling function POP_UP_TO_CONFIRM'.
ENDIF.

ENDFORM. " POPUP_TO_CONFIRM


*&---------------------------------------------------------------------*
*& Form DELETE_USING_DIRECT_UPDATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_FP_V_PANAME text
* -->P_FP_I_INFTY text
*----------------------------------------------------------------------*
FORM DELETE_USING_DIRECT_UPDATE USING FP_V_PANAME TYPE TABNAME16
FP_I_INFTY TYPE TY_T_INFTY .

DATA: L_WA_INFTY TYPE TY_INFTY,


L_WA_BAPIRETURN1 TYPE BAPIRETURN1.
DATA: L_CNT_TOTAL(6) TYPE I,
L_CNT_SUCCESS(6) TYPE I,
L_CNT_ERROR(6) TYPE I.

DESCRIBE TABLE FP_I_INFTY LINES L_CNT_TOTAL.


* Write out data from table.
LOOP AT FP_I_INFTY INTO L_WA_INFTY.

CALL FUNCTION 'BAPI_EMPLOYEET_ENQUEUE'


EXPORTING
NUMBER = L_WA_INFTY-PERNR
VALIDITYBEGIN = L_WA_INFTY-BEGDA
IMPORTING
RETURN = L_WA_BAPIRETURN1.

IF NOT L_WA_BAPIRETURN1-TYPE CA 'EA'.

DELETE FROM (FP_V_PANAME)


WHERE PERNR = L_WA_INFTY-PERNR
AND SUBTY = L_WA_INFTY-SUBTY
AND OBJPS = L_WA_INFTY-OBJPS
AND ENDDA = L_WA_INFTY-ENDDA
AND BEGDA = L_WA_INFTY-BEGDA
AND SEQNR = L_WA_INFTY-SEQNR
AND AEDTM = L_WA_INFTY-AEDTM
AND UNAME = L_WA_INFTY-UNAME.
IF SY-SUBRC = 0.
L_CNT_SUCCESS = L_CNT_SUCCESS + 1.
WRITE:/2 SY-VLINE,
5 L_WA_INFTY-PERNR,
16 SY-VLINE,
19 L_WA_INFTY-SUBTY,
26 SY-VLINE,
29 L_WA_INFTY-OBJPS,
35 SY-VLINE,
38 L_WA_INFTY-ENDDA,
52 SY-VLINE,
55 L_WA_INFTY-BEGDA,
66 SY-VLINE,
69 L_WA_INFTY-SEQNR,
75 SY-VLINE,
78 L_WA_INFTY-AEDTM,
89 SY-VLINE,
92 L_WA_INFTY-UNAME,
107 SY-VLINE,
112 'S',
117 SY-VLINE,
120 'Records Deleted Successfully',
175 SY-VLINE.
WRITE:/2 SY-ULINE(174).
ELSE.
WRITE:/2 SY-VLINE,
5 L_WA_INFTY-PERNR,
16 SY-VLINE,
19 L_WA_INFTY-SUBTY,
26 SY-VLINE,
29 L_WA_INFTY-OBJPS,
35 SY-VLINE,
38 L_WA_INFTY-ENDDA,
52 SY-VLINE,
55 L_WA_INFTY-BEGDA,
66 SY-VLINE,
69 L_WA_INFTY-SEQNR,
75 SY-VLINE,
78 L_WA_INFTY-AEDTM,
89 SY-VLINE,
92 L_WA_INFTY-UNAME,
107 SY-VLINE,
112 'E',
117 SY-VLINE,
120 'Error While Executing Delete Statement',
175 SY-VLINE.
WRITE:/2 SY-ULINE(174).

ENDIF.
ELSE.
WRITE:/2 SY-VLINE,
5 L_WA_INFTY-PERNR,
16 SY-VLINE,
19 L_WA_INFTY-SUBTY,
26 SY-VLINE,
29 L_WA_INFTY-OBJPS,
35 SY-VLINE,
38 L_WA_INFTY-ENDDA,
52 SY-VLINE,
55 L_WA_INFTY-BEGDA,
66 SY-VLINE,
69 L_WA_INFTY-SEQNR,
75 SY-VLINE,
78 L_WA_INFTY-AEDTM,
89 SY-VLINE,
92 L_WA_INFTY-UNAME,
107 SY-VLINE,
112 'E',
117 SY-VLINE,
120 L_WA_BAPIRETURN1-MESSAGE,
175 SY-VLINE.
WRITE:/2 SY-ULINE(174).

ENDIF.
ENDLOOP.
L_CNT_ERROR = L_CNT_TOTAL - L_CNT_SUCCESS.
SKIP 2.
FORMAT COLOR 6 INTENSIFIED ON INVERSE ON FRAMES ON.

WRITE:/2 'Total Number of Records Meet Selection Criteria :', L_CNT_TOTAL.


WRITE:/2 'Total Number of Records Successfully Deleted :', L_CNT_SUCCESS.
WRITE:/2 'Total Number of Records Are in Error :', L_CNT_ERROR.

ENDFORM. " DELETE_USING_DIRECT_UPDATE


*&---------------------------------------------------------------------*
*& Form DELETE_USING_HR_INF_OPERATION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_FP_V_PANAME text
*----------------------------------------------------------------------*
FORM DELETE_USING_HR_INF_OPERATION USING FP_P_INFTY TYPE INFTY.
* FP_I_INFTY TYPE TY_T_INFTY .

DATA: L_WA_BAPIRETURN1 TYPE BAPIRETURN1.


DATA: L_CNT_TOTAL(6) TYPE I,
L_CNT_SUCCESS(6) TYPE I,
L_CNT_ERROR(6) TYPE I.

DATA:
L_V_INFTY TYPE INFTY,
W_TABLE TYPE DD02L-TABNAME.

FIELD-SYMBOLS:
<FSYM_ITAB> TYPE STANDARD TABLE, " Field symbol for internal table
<FSYM_WAREA_PA> TYPE ANY, " Field symbol for work area
<FSYM_WAREA_P> TYPE ANY, " Field symbol for work area
<FS_FIELD_BEGDA> TYPE ANY,
<FS_FIELD_PERNR> TYPE ANY,
<FS_FIELD_SUBTY> TYPE ANY,
<FS_FIELD_ENDDA> TYPE ANY,
<FS_FIELD_SEQNR> TYPE ANY,
<FS_FIELD_AEDTM> TYPE ANY,
<FS_FIELD_UNAME> TYPE ANY.

DATA:
REF_TABLETYPE TYPE REF TO CL_ABAP_TABLEDESCR, " Internal table type ref
to RTTS
REF_ROWTYPE_PA TYPE REF TO CL_ABAP_STRUCTDESCR, " Rowtype ref to RTTS
REF_ROWTYPE_P TYPE REF TO CL_ABAP_STRUCTDESCR. " Rowtype ref to RTTS

DATA:
REF_ITAB TYPE REF TO DATA, " Declaration of internal table instance
REF_WA_PA TYPE REF TO DATA, " Declaration of work area instance
REF_WA_P TYPE REF TO DATA. " Declaration of work area instance

L_V_INFTY = FP_P_INFTY.
* Form PA table name from infotype number
SHIFT L_V_INFTY RIGHT DELETING TRAILING SPACE.
OVERLAY L_V_INFTY WITH '0000'.
CONCATENATE 'P'
L_V_INFTY
INTO W_TABLE.
CONDENSE W_TABLE NO-GAPS.

* Create row type and tabletype by RTTC technique


REF_ROWTYPE_P ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( W_TABLE ).

CLEAR L_V_INFTY.
L_V_INFTY = FP_P_INFTY.
* Form PA table name from infotype number
SHIFT L_V_INFTY RIGHT DELETING TRAILING SPACE.
OVERLAY L_V_INFTY WITH '0000'.
CONCATENATE 'PA'
L_V_INFTY
INTO W_TABLE.
CONDENSE W_TABLE NO-GAPS.

REF_ROWTYPE_PA ?= CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME( W_TABLE ).


REF_TABLETYPE = CL_ABAP_TABLEDESCR=>CREATE( P_LINE_TYPE = REF_ROWTYPE_PA ).

* Object type created by RTTC.


CREATE DATA REF_WA_PA TYPE HANDLE REF_ROWTYPE_PA.
CREATE DATA REF_WA_P TYPE HANDLE REF_ROWTYPE_P.
CREATE DATA REF_ITAB TYPE HANDLE REF_TABLETYPE.

* Type assignment
ASSIGN REF_ITAB->* TO <FSYM_ITAB>.
ASSIGN REF_WA_PA->* TO <FSYM_WAREA_PA>.
ASSIGN REF_WA_P->* TO <FSYM_WAREA_P>.

* Value assignment to the internal table


SELECT *
FROM (W_TABLE)
INTO TABLE <FSYM_ITAB>
WHERE MANDT EQ SY-MANDT
AND PERNR IN S_PERNR
AND SUBTY IN S_SUBTY
AND OBJPS IN S_OBJPS
AND ENDDA IN S_ENDDA
AND BEGDA IN S_BEGDA
AND SEQNR IN S_SEQNR
AND AEDTM IN S_AEDTM
AND UNAME IN S_UNAME .

IF NOT <FSYM_ITAB> IS INITIAL.

SKIP 1.
FORMAT COLOR 6 INTENSIFIED ON INVERSE ON FRAMES ON.
WRITE:/2 'Infotype Table selected :', W_TABLE .
WRITE:/2 'Deletion Program Executed By :', SY-UNAME .
IF RB_DI = 'X'.
WRITE:/2 'Infotype Deletion Method selected : Direct Table Update'.
ELSE.
WRITE:/2 'Infotype Deletion Method selected : Using FM
''HR_INFOTYPE_OPERATION'' '.
ENDIF.
SKIP 2.

WRITE:/2 SY-ULINE(174).
FORMAT COLOR 1 INVERSE OFF.
WRITE:/2 SY-VLINE,
5 'PERNR' ,
16 SY-VLINE,
19 'SUBTY',
26 SY-VLINE,
29 'OBJPS',
35 SY-VLINE,
38 'ENDDA',
52 SY-VLINE,
55 'BEGDA',
66 SY-VLINE,
69 'SEQNR',
75 SY-VLINE,
78 'AEDTM',
89 SY-VLINE,
92 'UNAME',
107 SY-VLINE,
109 'STATUS',
117 SY-VLINE,
120 'COMMENT',
175 SY-VLINE.

FORMAT COLOR COL_NORMAL.


WRITE:/2 SY-ULINE(174).

describe table <FSYM_ITAB> lines l_cnt_total.

* Perform Operation
LOOP AT <FSYM_ITAB> INTO <FSYM_WAREA_PA>.

ASSIGN COMPONENT 'PERNR' OF STRUCTURE <FSYM_WAREA_PA> TO <FS_FIELD_PERNR>.


ASSIGN COMPONENT 'BEGDA' OF STRUCTURE <FSYM_WAREA_PA> TO <FS_FIELD_BEGDA>.
ASSIGN COMPONENT 'ENDDA' OF STRUCTURE <FSYM_WAREA_PA> TO <FS_FIELD_ENDDA>.
ASSIGN COMPONENT 'SUBTY' OF STRUCTURE <FSYM_WAREA_PA> TO <FS_FIELD_SUBTY>.
ASSIGN COMPONENT 'SEQNR' OF STRUCTURE <FSYM_WAREA_PA> TO <FS_FIELD_SEQNR>.
ASSIGN COMPONENT 'AEDTM' OF STRUCTURE <FSYM_WAREA_PA> TO <FS_FIELD_AEDTM>.
ASSIGN COMPONENT 'UNAME' OF STRUCTURE <FSYM_WAREA_PA> TO <FS_FIELD_UNAME>.
CALL FUNCTION 'BAPI_EMPLOYEET_ENQUEUE'
EXPORTING
NUMBER = <FS_FIELD_PERNR>
VALIDITYBEGIN = <FS_FIELD_BEGDA>
IMPORTING
RETURN = L_WA_BAPIRETURN1.

IF NOT L_WA_BAPIRETURN1-TYPE CA 'EA'.


MOVE-CORRESPONDING <FSYM_WAREA_PA> TO <FSYM_WAREA_P>.

CALL FUNCTION 'HR_INFOTYPE_OPERATION'


EXPORTING
INFTY = L_V_INFTY
NUMBER = <FS_FIELD_PERNR>
validityend = <FS_FIELD_ENDDA>
validitybegin = <FS_FIELD_BEGDA>
RECORD = <FSYM_WAREA_P>
OPERATION = 'DEL'
IMPORTING
RETURN = L_WA_BAPIRETURN1 .

IF NOT L_WA_BAPIRETURN1-TYPE CA 'EA'.


L_CNT_SUCCESS = L_CNT_SUCCESS + 1.
WRITE:/2 SY-VLINE,
5 <FS_FIELD_PERNR>,
16 SY-VLINE,
19 <FS_FIELD_SUBTY>,
26 SY-VLINE,
35 SY-VLINE,
38 <FS_FIELD_ENDDA>,
52 SY-VLINE,
55 <FS_FIELD_BEGDA>,
66 SY-VLINE,
69 <FS_FIELD_SEQNR>,
75 SY-VLINE,
78 <FS_FIELD_AEDTM>,
89 SY-VLINE,
92 <FS_FIELD_UNAME>,
107 SY-VLINE,
112 'S',
117 SY-VLINE,
120 L_WA_BAPIRETURN1-MESSAGE,
175 SY-VLINE.
WRITE:/2 SY-ULINE(174).
ELSE.
WRITE:/2 SY-VLINE,
5 <FS_FIELD_PERNR>,
16 SY-VLINE,
19 <FS_FIELD_SUBTY>,
26 SY-VLINE,
35 SY-VLINE,
38 <FS_FIELD_ENDDA>,
52 SY-VLINE,
55 <FS_FIELD_BEGDA>,
66 SY-VLINE,
69 <FS_FIELD_SEQNR>,
75 SY-VLINE,
78 <FS_FIELD_AEDTM>,
89 SY-VLINE,
92 <FS_FIELD_UNAME>,
107 SY-VLINE,
112 'E',
117 SY-VLINE,
120 L_WA_BAPIRETURN1-MESSAGE,
175 SY-VLINE.
WRITE:/2 SY-ULINE(174).

ENDIF.
ELSE.
WRITE:/2 SY-VLINE,
5 <FS_FIELD_PERNR>,
16 SY-VLINE,
19 <FS_FIELD_SUBTY>,
26 SY-VLINE,
35 SY-VLINE,
38 <FS_FIELD_ENDDA>,
52 SY-VLINE,
55 <FS_FIELD_BEGDA>,
66 SY-VLINE,
69 <FS_FIELD_SEQNR>,
75 SY-VLINE,
78 <FS_FIELD_AEDTM>,
89 SY-VLINE,
92 <FS_FIELD_UNAME>,
107 SY-VLINE,
112 'E',
117 SY-VLINE,
120 L_WA_BAPIRETURN1-MESSAGE,
175 SY-VLINE.
WRITE:/2 SY-ULINE(174).

ENDIF.
ENDLOOP.

L_CNT_ERROR = L_CNT_TOTAL - L_CNT_SUCCESS.


SKIP 2.
FORMAT COLOR 6 INTENSIFIED ON INVERSE ON FRAMES ON.

WRITE:/2 'Total Number of Records meet Selection Criteria :', L_CNT_TOTAL.


WRITE:/2 'Total Number of Records Successfully Deleted :', L_CNT_SUCCESS.
WRITE:/2 'Total Number of Records Are in Error :', L_CNT_ERROR.

ELSE.
MESSAGE I000(ZPA) WITH 'No data matches selection criteria'.

ENDIF.

ENDFORM. " DELETE_USING_HR_INF_OPERATION

You might also like