Zfcorrfa Ecmca 01
Zfcorrfa Ecmca 01
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.
* 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.
* 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
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.
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.
IF sy-subrc = 0.
CALL FUNCTION 'WRITE_LIST'
TABLES
listobject = gt_list_tab.
ENDIF.
ENDLOOP.
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.
IF sy-subrc = 0.
CALL FUNCTION 'WRITE_LIST'
TABLES
listobject = gt_list_tab.
ENDIF.
ENDLOOP.
*&---------------------------------------------------------------------*
*& 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