0% found this document useful (0 votes)
10 views6 pages

Zfcorrfa Ecmca 01

The document outlines the ABAP report ZFCORRFA_ECMCA_01, which is designed for processing and managing correction documents within a specified GUID. It includes data structures, selection screens for user input, and logic for selecting, deleting, and reposting documents based on user-defined parameters. The report also features a help function for selecting GUIDs and handles various database operations related to the correction process.

Uploaded by

guygrun84
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)
10 views6 pages

Zfcorrfa Ecmca 01

The document outlines the ABAP report ZFCORRFA_ECMCA_01, which is designed for processing and managing correction documents within a specified GUID. It includes data structures, selection screens for user input, and logic for selecting, deleting, and reposting documents based on user-defined parameters. The report also features a help function for selecting GUIDs and handles various database operations related to the correction process.

Uploaded by

guygrun84
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/ 6

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

*& Report ZFCORRFA_ECMCA_01


*&
*&---------------------------------------------------------------------*
*& Version 1.1
*&---------------------------------------------------------------------*

REPORT ZFCORRFA_ECMCA_01.

TABLES: RGSEL.

TYPES:
BEGIN OF TY_ZCORRF1HEAD,
GUID TYPE GUID_32,
HDCOMMENT TYPE CHAR30,
UNAME1 TYPE UNAME,
CPROG1 TYPE CPROG,
UNAME2 TYPE UNAME,
CPROG2 TYPE CPROG,
END OF TY_ZCORRF1HEAD.

TYPES:
BEGIN OF TY_ZCORRF1POS,
MANDT TYPE MANDT,
GUID TYPE GUID,
BELNR TYPE BELNR_D,
BUKRS TYPE BUKRS,
GJAHR TYPE GJAHR,
DOCCREATED TYPE DATUM,
DOCDELETED TYPE DATUM,
DOCREPOSTED TYPE DATUM,
END OF TY_ZCORRF1POS.

TYPES:
BEGIN OF TY_ECMCA1,
RLDNR TYPE RLDNR,
RDIMEN TYPE FC_DIMEN,
DOCTY TYPE DOCTY,
RITCLG TYPE FC_ITCLG,
POPER TYPE POPER,
RYEAR TYPE GJAHR,
RVERS TYPE RVERS,
DOCNR TYPE BELNR_D,
ROBUKRS TYPE BUKRS,
BELNR TYPE BELNR_D,
GJAHR TYPE GJAHR,
BUKRS TYPE BUKRS,
END OF TY_ECMCA1.

* General Data
DATA: gs_bkpf TYPE BKPF,
gs_bseg TYPE BSEG,
gd_version TYPE CHAR10,
gd_timestamp LIKE FAGLFLEXT-TIMESTAMP,
gd_header_ok TYPE CHAR1,
gd_lines TYPE SY-TABIX,
gd_all_position_selected TYPE CHAR1.

DATA gt_list_tab TYPE TABLE OF abaplist.

* Internal Tables and Structures


DATA: gt_zcorrf1pos TYPE TABLE OF ZCORRF1POS,
gs_zcorrf1pos TYPE ZCORRF1POS,
gt_ecmca TYPE TABLE OF TY_ECMCA1,
gs_ecmca TYPE TY_ECMCA1,
gs_zcorrf1head TYPE ZCORRF1HEAD.

SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE ta.

SELECTION-SCREEN BEGIN OF LINE.


SELECTION-SCREEN COMMENT 1(20) zatext01 FOR FIELD PR_BUKRS.
SELECTION-SCREEN POSITION POS_LOW.
PARAMETERS p_guid TYPE GUID_32 OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK A.

* select options for header:


SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE tb.

* Company Code
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) zatext02 FOR FIELD PR_BUKRS.
SELECTION-SCREEN POSITION POS_LOW.
SELECT-OPTIONS PR_BUKRS FOR gs_BKPF-BUKRS.
SELECTION-SCREEN END OF LINE.

* Fiscal Year
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) zatext03 FOR FIELD PR_GJAHR.
SELECTION-SCREEN POSITION POS_LOW.
SELECT-OPTIONS PR_GJAHR FOR gs_BKPF-GJAHR.
SELECTION-SCREEN END OF LINE.

* Document Number
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) zatext04 FOR FIELD PR_BELNR.
SELECTION-SCREEN POSITION POS_LOW.
SELECT-OPTIONS PR_BELNR FOR gs_BKPF-BELNR.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK B.

SELECTION-SCREEN BEGIN OF BLOCK C WITH FRAME TITLE tc.

SELECTION-SCREEN BEGIN OF LINE.


SELECTION-SCREEN COMMENT 1(20) zatext05 FOR FIELD PR_BUKRS.
SELECTION-SCREEN POSITION POS_LOW.
PARAMETERS p_test1 AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK C.
*=======================================================================
INITIALIZATION.
*=======================================================================
* Program Version of Correction Program
gd_version = '7.7'.
* Selection Texts
ta = 'GUID Selection'. "#EC NOTEXT
tb = 'Further restrictions within GUID Worklist'. "#EC NOTEXT
tc = 'Processing Options'. "#EC NOTEXT

* Parameter Texts
zatext01 = 'GUID Number'. "#EC NOTEXT
zatext02 = 'Company Code'. "#EC NOTEXT
zatext03 = 'Fiscal Year'. "#EC NOTEXT
zatext04 = 'Document Number'. "#EC NOTEXT
zatext05 = 'Test-Run'. "#EC NOTEXT

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_guid.


PERFORM F4_HELP1.

START-OF-SELECTION.

* Load Worklist
IF p_guid IS NOT INITIAL.
SELECT * FROM ZCORRF1POS INTO TABLE gt_zcorrf1pos
WHERE GUID = p_guid
AND BUKRS IN PR_BUKRS
AND GJAHR IN PR_GJAHR
AND BELNR IN PR_BELNR.
IF SY-SUBRC <> 0.
MESSAGE W016(GU) WITH 'Table ZCORRF1POS:' 'worklist is empty for Restrictions
and GUID' p_guid.
EXIT.
ENDIF.
ELSE.
EXIT.
ENDIF.

DESCRIBE TABLE gt_zcorrf1pos LINES gd_lines.


IF gs_zcorrf1head-numberofdocs <= gd_lines.
gd_all_position_selected = 'X'.
ENDIF.

* SELECT the consolidation documents for deletion

LOOP AT gt_zcorrf1pos INTO gs_zcorrf1pos.


SELECT * FROM ECMCA INTO CORRESPONDING FIELDS OF gs_ecmca
WHERE AWTYP EQ gs_zcorrf1pos-awtyp
AND AWORG EQ gs_zcorrf1pos-aworg
AND REFDOCNR EQ gs_zcorrf1pos-refdocnr
AND ROBUKRS EQ gs_zcorrf1pos-bukrs
AND LOGSYS EQ gs_zcorrf1pos-logsys.
gs_ecmca-belnr = gs_zcorrf1pos-belnr.
gs_ecmca-gjahr = gs_zcorrf1pos-gjahr.
gs_ecmca-bukrs = gs_zcorrf1pos-bukrs.
COLLECT gs_ecmca INTO gt_ecmca.
ENDSELECT.
ENDLOOP.

* Start the deletion


IF gd_all_position_selected IS NOT INITIAL.
gd_header_ok = 'X'.
ENDIF.
LOOP AT gt_ecmca INTO gs_ecmca.
SUBMIT FICDELRUDOC00
AND RETURN EXPORTING LIST TO MEMORY
WITH PA_CONTP = '1'
WITH PA_DIMEN = gs_ecmca-rdimen
WITH PA_DOCTY = gs_ecmca-docty
WITH PA_ITCLG = gs_ecmca-ritclg
WITH PA_PEF1 = gs_ecmca-poper
WITH PA_YRF1 = gs_ecmca-ryear
WITH PA_PET1 = gs_ecmca-poper
WITH PA_YRT1 = gs_ecmca-ryear
WITH PA_RVERS = gs_ecmca-rvers
WITH PA_TEST = p_test1
WITH SO_DOCNR-LOW = gs_ecmca-docnr
WITH SO_RLDNR = gs_ecmca-rldnr
WITH SO_BUKRS = gs_ecmca-robukrs.

IF p_test1 IS INITIAL.
UPDATE ZCORRF1POS SET DOCDELETED = SYST-DATUM
WHERE GUID = p_guid AND
BELNR = gs_ecmca-belnr AND
BUKRS = gs_ecmca-bukrs AND
GJAHR = gs_ecmca-gjahr.
IF SY-SUBRC <> 0.
CLEAR gd_header_ok.
ENDIF.
ENDIF.

CALL FUNCTION 'LIST_FROM_MEMORY'


TABLES
listobject = gt_list_tab
EXCEPTIONS
not_found = 1
OTHERS = 2.

IF sy-subrc = 0.
CALL FUNCTION 'WRITE_LIST'
TABLES
listobject = gt_list_tab.
ENDIF.
ENDLOOP.

LOOP AT gt_zcorrf1pos INTO gs_zcorrf1pos.


SUBMIT RGUREC10
AND RETURN EXPORTING LIST TO MEMORY
WITH APPL = 'ECCS'
WITH BUKRS = gs_zcorrf1pos-bukrs
WITH GJAHR = gs_zcorrf1pos-gjahr
WITH MM_SD = 'X'
WITH PRUEFEN = ' '
WITH RBELNR = gs_zcorrf1pos-belnr
WITH TEST = p_test1
WITH P_NOWARN = 'X'.

IF p_test1 IS INITIAL.
UPDATE ZCORRF1POS SET DOCREPOSTED = SYST-DATUM
WHERE GUID = p_guid AND
BELNR = gs_ecmca-belnr AND
BUKRS = gs_ecmca-bukrs AND
GJAHR = gs_ecmca-gjahr.
IF SY-SUBRC <> 0.
CLEAR gd_header_ok.
ENDIF.
ENDIF.

CALL FUNCTION 'LIST_FROM_MEMORY'


TABLES
listobject = gt_list_tab
EXCEPTIONS
not_found = 1
OTHERS = 2.

IF sy-subrc = 0.
CALL FUNCTION 'WRITE_LIST'
TABLES
listobject = gt_list_tab.
ENDIF.

ENDLOOP.

IF p_test1 IS INITIAL AND gd_header_ok = 'X'.


GET TIME STAMP FIELD gd_timestamp.
UPDATE ZCORRF1HEAD SET UNAME2 = SYST-UNAME
CPROG3 = SYST-CPROG
TIMESTAMP2 = gd_timestamp
WHERE GUID = p_guid.
ENDIF.

*&---------------------------------------------------------------------*
*& Form F4_HELP1
*&---------------------------------------------------------------------*
* F4 Help for guid
*----------------------------------------------------------------------*
FORM F4_HELP1.
DATA: lt_zcorrf1head TYPE TABLE OF TY_ZCORRF1HEAD,
ls_zcorrf1head TYPE TY_ZCORRF1HEAD,
ld_lines TYPE SY-TABIX.

REFRESH lt_zcorrf1head.
SELECT * FROM ZCORRF1HEAD INTO CORRESPONDING FIELDS OF TABLE lt_zcorrf1head
WHERE CPROG3 = SPACE
AND numberofdocs > 0.
RGSEL-SEL_TITLE1 = SPACE.
RGSEL-SEL_TITLE2 = SPACE.
RGSEL-DYNP_TITLE = 'GUID Numbers'.
DESCRIBE TABLE lt_zcorrf1head LINES ld_lines.
IF ld_lines > 0.
CALL FUNCTION 'G_DISPLAY_SELECTION_DYNPRO'
EXPORTING
DYNP_TITLE = RGSEL-DYNP_TITLE
SEL_TITLE1 = RGSEL-SEL_TITLE1
SEL_TITLE2 = RGSEL-SEL_TITLE2
KEY_COLUMNS = 5
NUMBER_OF_ROWS = 4
START_ROW = 2
IMPORTING
SEL_INDEX = SY-INDEX
TABLES
SEL_TABLE = lt_zcorrf1head
EXCEPTIONS
NO_LINE_PICKED = 01.
IF SY-SUBRC = 0.
READ TABLE lt_zcorrf1head INTO ls_zcorrf1head INDEX SY-INDEX.
MOVE ls_zcorrf1head-guid TO p_guid.
SELECT SINGLE * FROM ZCORRF1HEAD INTO gs_zcorrf1head
WHERE guid = ls_zcorrf1head-guid .
IF SY-SUBRC <> 0.
MESSAGE E016(GU) WITH 'Error in ZCORRF1HEAD, Guid:' ls_zcorrf1head-guid.
ENDIF.
ENDIF.
* Check if Line Iems exist / worklist is full
SELECT * FROM ZCORRF1POS INTO TABLE gt_zcorrf1pos
WHERE GUID = ls_zcorrf1head-guid.
IF SY-SUBRC <> 0.
MESSAGE I016(GU) WITH 'Attention: ' 'Worklist is empty for GUID'
ls_zcorrf1head-guid.
ENDIF.
ENDIF.
ENDFORM. "F4_HELP1

You might also like