Академический Документы
Профессиональный Документы
Культура Документы
"Cancel Indicator
"Reture Date
"For Output
"For Output
"For Output
"Doc no
"Payment date for sorting
"output
*** M3
ACCDATE(10) TYPE C,
*** M3
"For Output
END OF ITAB.
DATA : BEGIN OF ERRTAB OCCURS 0.
INCLUDE STRUCTURE ITAB.
DATA : MSG(60) TYPE C,
END OF ERRTAB.
DATA : BEGIN OF FLISTTAB OCCURS 0,
LINE(1023),
END OF FLISTTAB.
"<<Insert M1
"<<Insert M1
"<<Insert M1
TYPE
TYPE
TYPE
LIKE
TYPE
LIKE
C VALUE 'advpay-',
C VALUE '.txt',
C VALUE '|',
TSTC-TCODE VALUE 'FB01',
C VALUE 'N',
APQI-GROUPID VALUE 'EGOADV'.
SELECTION-SCREEN SKIP .
PARAMETERS P_TEST AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK A.
TOP-OF-PAGE.
PERFORM PAGE_HEADER.
END-OF-PAGE.
PERFORM GET_OUTPUT_LIST.
"<<Insert M1
"<<Insert M1
START-OF-SELECTION.
PERFORM READ_FILE.
LOOP AT FILES.
PERFORM VALIDATIONS USING FILES-NAME.
PERFORM BUILD_BDC USING FILES-NAME.
PERFORM MOVE_FILE USING FILES-NAME.
ENDLOOP.
PERFORM OUTPUT.
PERFORM OUTPUT_TO_SERVER.
*&---------------------------------------------------------------------*
*&
Form READ_FILE
*&---------------------------------------------------------------------*
FORM READ_FILE.
DATA : DIRNAME LIKE EPSF-EPSDIRNAM.
DIRNAME = P_IFILE.
CALL FUNCTION 'EPS_GET_DIRECTORY_LISTING'
EXPORTING
DIR_NAME
= DIRNAME
TABLES
DIR_LIST
= FILES
EXCEPTIONS
INVALID_EPS_SUBDIR
= 1
SAPGPARAM_FAILED
= 2
BUILD_DIRECTORY_FAILED = 3
NO_AUTHORIZATION
= 4
READ_DIRECTORY_FAILED = 5
TOO_MANY_READ_ERRORS = 6
EMPTY_DIRECTORY_LIST = 7
OTHERS
= 8.
LOOP AT FILES.
IF FILES-NAME(7) NE PREFIX.
DELETE FILES.
ENDIF.
SELECT SINGLE * FROM ZZ609 WHERE BUKRS = P_BUKRS
AND REPID = SY-REPID
AND FILE = FILES-NAME.
IF SY-SUBRC EQ 0.
MOVE-CORRESPONDING FILES TO PFILES.
APPEND PFILES. CLEAR PFILES.
DELETE FILES.
CONTINUE.
ENDIF.
ENDLOOP.
IF FILES[] IS INITIAL.
MESSAGE I037 WITH P_IFILE.
ENDIF.
"Insert M2
LOOP AT FILES.
CLEAR FILENAME.
CONCATENATE P_IFILE FILES-NAME INTO FILENAME.
CONDENSE FILENAME.
OPEN DATASET FILENAME IN TEXT MODE.
IF SY-SUBRC NE 0.
MESSAGE E034 WITH FILENAME.
ENDIF.
DO.
CLEAR RECORD.
READ DATASET FILENAME INTO RECORD.
IF SY-SUBRC EQ 0 AND RECORD NE SPACE.
CNT_TAB-TOTAL_RECS = CNT_TAB-TOTAL_RECS + 1.
SPLIT RECORD AT SEPARATOR
INTO ITAB-TRANS ITAB-BUDAT ITAB-BLART
ITAB-ADVFOR ITAB-NEWKO ITAB-WAERS
ITAB-BKTXT
ITAB-SGTXT ITAB-WRBTR ITAB-PAYAC
ITAB-ZUONRP ITAB-PAYRT ITAB-ZUONRR
ITAB-KOSTL ITAB-STORN
*** M3
ITAB-RDATE.
*** M3
ITAB-FILE = FILES-NAME.
CONCATENATE ITAB-BUDAT+6(4) ITAB-BUDAT+3(2) ITAB-BUDAT(2)
INTO ITAB-PDATE.
APPEND ITAB. CLEAR ITAB.
ELSE.
EXIT.
ENDIF.
ENDDO.
CNT_TAB-FILE = FILES-NAME.
APPEND CNT_TAB. CLEAR CNT_TAB.
CLOSE DATASET FILENAME.
ENDLOOP.
" READ_FILE
*&---------------------------------------------------------------------*
*&
Form VALIDATIONS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM VALIDATIONS USING VALUE(FNAME).
READ TABLE CNT_TAB WITH KEY FILE = FNAME.
CLEAR INDEX.
INDEX = SY-TABIX.
LOOP AT ITAB WHERE FILE = FNAME.
ITAB-AMOUNT = ITAB-WRBTR.
IF ITAB-STORN = 'Y'.
ITAB-AMOUNT = 0 - ITAB-AMOUNT.
ENDIF.
MODIFY ITAB.
*CHECK DOCUMENT TYPE
IF ITAB-BLART NE 'CV' AND ITAB-BLART NE 'VV' AND ITAB-BLART NE 'VP'.
PERFORM ERR_REC USING CNT_TAB ITAB TEXT-001.
DELETE ITAB.
CONTINUE.
ENDIF.
*CHECK GL ACCOUNT
IF ITAB-NEWKO IS INITIAL.
PERFORM ERR_REC USING CNT_TAB ITAB TEXT-026.
DELETE ITAB.
CONTINUE.
ENDIF.
*CHECK AMOUNT
IF ITAB-AMOUNT = 0.
PERFORM ERR_REC USING CNT_TAB ITAB TEXT-027.
DELETE ITAB.
CONTINUE.
ENDIF.
*CHECK CANCEL INDICATOR
IF ITAB-STORN NE 'N' AND ITAB-STORN NE 'Y'.
PERFORM ERR_REC USING CNT_TAB ITAB TEXT-003.
DELETE ITAB.
CONTINUE.
ENDIF.
*CHECK COST CENTER
CLEAR VALDT.
IF VALDT IS INITIAL.
VALDT = SY-DATUM.
ELSE.
VALDT(4) = ITAB-BUDAT+6(4).
VALDT+4(2) = ITAB-BUDAT+3(2).
VALDT+6(2) = ITAB-BUDAT(2).
ENDIF.
SELECT SINGLE * FROM CSKS WHERE KOKRS = P_BUKRS
AND KOSTL = ITAB-KOSTL
AND DATBI GE VALDT
AND DATAB LE VALDT.
IF SY-SUBRC EQ 0.
ITAB-GSBER = CSKS-GSBER.
MODIFY ITAB.
ELSE.
CONCATENATE TEXT-002 ITAB-KOSTL INTO MTEXT SEPARATED BY SPACE.
PERFORM ERR_REC USING CNT_TAB ITAB MTEXT.
DELETE ITAB.
CONTINUE.
ENDIF.
ENDLOOP.
MODIFY CNT_TAB INDEX INDEX.
ENDFORM.
" VALIDATIONS
*&---------------------------------------------------------------------*
*&
Form BUILD_BDC
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM BUILD_BDC USING VALUE(FNAME).
CLEAR INDEX.
READ TABLE CNT_TAB WITH KEY FILE = FNAME.
INDEX = SY-TABIX.
LOOP AT ITAB WHERE FILE = FNAME.
REFRESH BDCTAB. CLEAR BDCTAB.
CLEAR: POSTKEY, REFNO_BANK, REFNO_ACCT,
*** M3
POSTING_DATE,
*** M3
GL, TEXT, DCKEY, NEWKO.
IF ITAB-STORN = 'N'.
*** M3
POSTING_DATE = ITAB-BUDAT.
*** M3
REFNO_BANK = ITAB-ZUONRP.
NEWKO
= ITAB-PAYAC.
DCKEY
= '50'.
IF ITAB-BLART = 'CV'.
IF ITAB-ADVFOR = 'B'.
"Business Trip
POSTKEY = '01'.
GL = ''.
ELSE.
POSTKEY = '09'.
GL
= 'B'.
ENDIF.
REFNO_ACCT = ITAB-TRANS.
ELSEIF ITAB-BLART = 'VV'.
POSTKEY = '29'.
GL
= 'J'.
REFNO_ACCT = ITAB-BKTXT.
ELSEIF ITAB-BLART = 'VP'.
POSTKEY = '29'.
GL
= 'A'.
REFNO_ACCT = ITAB-TRANS.
ENDIF.
ELSEIF ITAB-STORN = 'Y'.
DCKEY
= '40'.
NEWKO
= ITAB-PAYRT.
*** M3
POSTING_DATE = ITAB-RDATE.
*** M3
REFNO_BANK = ITAB-ZUONRR.
IF ITAB-BLART = 'CV'.
IF ITAB-ADVFOR = 'B'.
"Business Trip
POSTKEY = '12'.
GL = ''.
ELSE.
POSTKEY = '19'.
GL
= 'B'.
ENDIF.
REFNO_ACCT = ITAB-TRANS.
ELSEIF ITAB-BLART = 'VV'.
POSTKEY = '39'.
GL
= 'J'.
REFNO_ACCT = ITAB-BKTXT.
ELSEIF ITAB-BLART = 'VP'.
POSTKEY = '39'.
GL
= 'A'.
REFNO_ACCT = ITAB-TRANS.
ENDIF.
ENDIF.
CONCATENATE ITAB-BKTXT ITAB-SGTXT INTO: BKTXT SEPARATED BY SPACE,
TEXT SEPARATED BY SPACE.
ITAB-ACCOUNT = NEWKO.
*** M3
ITAB-ACCDATE = POSTING_DATE.
*** M3
ITAB-ACCREF = REFNO_BANK.
MODIFY ITAB.
IF P_TEST IS INITIAL.
PERFORM BDC_DYNPRO USING : 'SAPMF05A'
'0100'.
*** M3
*
PERFORM BDC_FIELD USING : 'BKPF-BLDAT' ITAB-BUDAT,
*
'BKPF-BUKRS' P_BUKRS,
*
'BKPF-BUDAT' ITAB-BUDAT,
PERFORM BDC_FIELD
*** M3
'BKPF-BLART' ITAB-BLART,
'BKPF-WAERS' ITAB-WAERS,
'BKPF-BKTXT' BKTXT,
'BKPF-XBLNR' ITAB-TRANS,
'RF05A-NEWBS' POSTKEY,
'RF05A-NEWKO' ITAB-NEWKO,
'RF05A-NEWUM' GL,
'BDC_OKCODE' '/00'.
IF GL = 'A'.
"Down payment screen
PERFORM BDC_DYNPRO USING : 'SAPMF05A'
'0304'.
PERFORM BDC_FIELD USING : 'BSEG-WRBTR' ITAB-WRBTR,
'BSEG-MWSKZ' 'IO',
'BSEG-GSBER' ITAB-GSBER,
'BSEG-ZUONR' REFNO_ACCT,
'BSEG-SGTXT' TEXT,
'RF05A-NEWBS' DCKEY,
'RF05A-NEWKO' NEWKO,
'BDC_OKCODE' '/00'.
ELSEIF GL = ''.
PERFORM BDC_DYNPRO USING : 'SAPMF05A'
'0301'.
PERFORM BDC_FIELD USING : 'BSEG-WRBTR' ITAB-WRBTR,
'BSEG-GSBER' ITAB-GSBER,
'BSEG-ZUONR' REFNO_ACCT,
'BSEG-SGTXT' TEXT,
'RF05A-NEWBS' DCKEY,
'RF05A-NEWKO' NEWKO,
'BDC_OKCODE' '/00'.
ELSE.
PERFORM BDC_DYNPRO USING : 'SAPMF05A'
PERFORM BDC_FIELD USING : 'BSEG-WRBTR'
'BSEG-GSBER'
*** M3
*
'BSEG-ZFBDT'
'0303'.
ITAB-WRBTR,
ITAB-GSBER,
ITAB-BUDAT,
'BSEG-ZFBDT' POSTING_DATE,
*** M3
'BSEG-ZUONR'
'BSEG-SGTXT'
'RF05A-NEWBS'
'RF05A-NEWKO'
'BDC_OKCODE'
REFNO_ACCT,
TEXT,
DCKEY,
NEWKO,
'/00'.
ENDIF.
PERFORM BDC_DYNPRO USING : 'SAPMF05A'
PERFORM BDC_FIELD USING : 'BSEG-WRBTR'
*** M3
*
'BSEG-VALUT'
'BSEG-VALUT'
*** M3
'BSEG-ZUONR'
'BSEG-SGTXT'
'BDC_OKCODE'
'0300'.
ITAB-WRBTR,
ITAB-BUDAT,
POSTING_DATE,
REFNO_BANK,
TEXT,
'=BU'.
PERFORM CLOSE_SESSION.
ENDIF.
ENDFORM.
" BUILD_BDC
*&---------------------------------------------------------------------*
*&
Form BDC_DYNPRO
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING
VALUE(PROGRAM)
VALUE(SCREEN).
CLEAR BDCTAB.
BDCTAB-PROGRAM = PROGRAM.
BDCTAB-DYNPRO = SCREEN.
BDCTAB-DYNBEGIN = 'X'.
APPEND BDCTAB.
ENDFORM.
" BDC_DYNPRO
*&---------------------------------------------------------------------*
*&
Form BDC_FIELD
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM BDC_FIELD USING
VALUE(FIELDNAME)
VALUE(FIELDVALUE).
CLEAR BDCTAB.
BDCTAB-FNAM = FIELDNAME.
BDCTAB-FVAL = FIELDVALUE.
APPEND BDCTAB.
ENDFORM.
" BDC_FIELD
*&---------------------------------------------------------------------*
*&
Form CREATE_BDC_SESSION
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM CREATE_BDC_SESSION TABLES P_BDCTAB STRUCTURE BDCTAB.
IF SESSION_OPEN IS INITIAL.
PERFORM OPEN_SESSION.
ENDIF.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE
= TCODE
TABLES
DYNPROTAB
= P_BDCTAB.
ENDFORM.
" CREATE_BDC_SESSION
*&---------------------------------------------------------------------*
*&
Form OPEN_SESSION
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM OPEN_SESSION.
DATA GROUP LIKE APQI-GROUPID.
" OPEN_SESSION
*&---------------------------------------------------------------------*
*&
Form CLOSE_SESSION
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM CLOSE_SESSION.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN
= 1
QUEUE_ERROR = 2
OTHERS
= 3.
CLEAR SESSION_OPEN.
ENDFORM.
" CLOSE_SESSION
*&---------------------------------------------------------------------*
*&
Form OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM OUTPUT.
IF NOT PFILES[] IS INITIAL.
WRITE:/1 TEXT-028.
WRITE:/1 SY-ULINE(44).
SKIP.
LOOP AT PFILES.
WRITE:/5 PFILES-NAME.
ENDLOOP.
ENDIF.
SKIP 3.
LOOP AT CNT_TAB.
IF SY-TABIX GT 1.
PERFORM GET_OUTPUT_LIST.
"<< Insert M1
NEW-PAGE.
ENDIF.
WRITE:/5 'Test Run', 45 P_TEST.
WRITE:/5 'Input File Name'(006), 45 CNT_TAB-FILE.
WRITE:/5 'Total No of Records'(007), 45 CNT_TAB-TOTAL_RECS.
WRITE:/5 'Number of Rejected Records'(008), 45 CNT_TAB-ERR_RECS.
WRITE:/5 'Number of Posting Errors'(009), 45 CNT_TAB-FAIL_RECS.
WRITE:/5 'Number of Transactions Posted'(010), 45 CNT_TAB-OK_RECS.
SKIP 3.
READ TABLE ERRTAB WITH KEY FILE = CNT_TAB-FILE.
IF SY-SUBRC EQ 0.
WRITE:/1 'Rejected Records (Data Error)'(024).
WRITE:/1 SY-ULINE(30).
SKIP.
WRITE:/119 TEXT-020.
WRITE:/1 'Trx Number'(011),
15 'Payment Dt'(012),
26 'Type'(013),
31 'Account'(014),
45 'Pay To'(015),
75 'Curr'(016),
89 'Amount'(017),
100 'BArea'(018),
106 'Bank A/c'(019),
119 TEXT-021,
134 'Error Message'(022).
WRITE:/ SY-ULINE(170).
LOOP AT ERRTAB WHERE FILE = CNT_TAB-FILE.
IF ERRTAB-GSBER IS INITIAL.
ERRTAB-GSBER = ERRTAB-KOSTL+2(4).
ENDIF.
IF ERRTAB-STORN = 'Y'.
*** M3
ERRTAB-ACCDATE = ERRTAB-RDATE.
*** M3
ERRTAB-ACCOUNT = ERRTAB-PAYRT.
ERRTAB-ACCREF = ERRTAB-ZUONRR.
ELSE.
*** M3
ERRTAB-ACCDATE = ERRTAB-BUDAT.
*** M3
ERRTAB-ACCOUNT = ERRTAB-PAYAC.
ERRTAB-ACCREF = ERRTAB-ZUONRP.
ENDIF.
WRITE:/1 ERRTAB-TRANS,
*** M3
*
15 ERRTAB-BUDAT,
15 ERRTAB-ACCDATE,
*** M3
26 ERRTAB-BLART,
31 ERRTAB-NEWKO,
45 ERRTAB-BKTXT,
75 ERRTAB-WAERS,
80 ERRTAB-AMOUNT,
100 ERRTAB-GSBER,
106 ERRTAB-ACCOUNT,
119 ERRTAB-ACCREF(14),
134 ERRTAB-MSG.
ENDLOOP.
ENDIF.
READ TABLE FAILTAB WITH KEY FILE = CNT_TAB-FILE.
IF SY-SUBRC EQ 0.
SKIP 3.
WRITE:/1 'Posting Errors (Check & Re-run BDC Session)'(030).
WRITE:/1 SY-ULINE(45).
SKIP.
WRITE:/119 TEXT-020.
WRITE:/1 'Trx Number'(011),
15 'Payment Dt'(012),
26 'Type'(013),
31 'Account'(014),
45 'Pay To'(015),
75 'Curr'(016),
89 'Amount'(017),
100 'BArea'(018),
106 'Bank A/c'(019),
119 TEXT-021,
134 'Error Message'(022).
WRITE:/ SY-ULINE(170).
LOOP AT FAILTAB WHERE FILE = CNT_TAB-FILE.
WRITE:/1 FAILTAB-TRANS,
*** M3
*
15 FAILTAB-BUDAT,
15 FAILTAB-ACCDATE,
*** M3
26 FAILTAB-BLART,
31 FAILTAB-NEWKO,
45 FAILTAB-BKTXT,
75 FAILTAB-WAERS,
80 FAILTAB-AMOUNT,
100 FAILTAB-GSBER,
106 FAILTAB-ACCOUNT,
119 FAILTAB-ACCREF(14),
134 FAILTAB-MSG.
ENDLOOP.
ENDIF.
SKIP 3.
WRITE:/1 'Transactions Posted'(023).
WRITE:/1 SY-ULINE(23).
SKIP.
WRITE:/119 TEXT-020.
WRITE:/1 'Trx Number'(011),
15 'Payment Dt'(012),
26 'Type'(013),
31 'Account'(014),
45 'Pay To'(015),
75 'Curr'(016),
89 'Amount'(017),
100 'BArea'(018),
106 'Bank A/c'(019),
119 'Ref/Bank Ref'(021),
140 'Document No'.
WRITE:/ SY-ULINE(170).
LOOP AT ITAB WHERE FILE = CNT_TAB-FILE.
WRITE:/1 ITAB-TRANS,
*** M3
*
15 ITAB-BUDAT,
15 ITAB-ACCDATE,
*** M3
26 ITAB-BLART,
31 ITAB-NEWKO,
45 ITAB-BKTXT,
75 ITAB-WAERS,
80 ITAB-AMOUNT,
100 ITAB-GSBER,
106 ITAB-ACCOUNT,
119 ITAB-ACCREF,
140 ITAB-BELNR.
ENDLOOP.
ENDLOOP.
SKIP 2.
WRITE:/ 'END OF REPORT'.
PERFORM GET_OUTPUT_LIST.
ENDFORM.
"<< Insert M1
" OUTPUT
*&---------------------------------------------------------------------*
*&
Form PAGE_HEADER
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM PAGE_HEADER.
DATA PAGENO TYPE I.
PAGENO = SY-PAGNO.
WRITE:/ 'SEP'(004), 120 SY-REPID, 129 '/', 130 SY-UNAME.
WRITE:/ 'EGO Advance Payment Interface'(005),
120 SY-DATUM ,
132 'Page: ', PAGENO LEFT-JUSTIFIED.
WRITE:/ SY-ULINE(170).
SKIP.
ENDFORM.
" PAGE_HEADER
*&---------------------------------------------------------------------*
*&
Form MOVE_FILE
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM MOVE_FILE USING VALUE(FNAME).
DATA: PFILE LIKE RLGRAP-FILENAME,
IFILE LIKE RLGRAP-FILENAME.
CLEAR: PFILE, IFILE.
CHECK P_TEST IS INITIAL.
CONCATENATE P_PFILE FNAME INTO PFILE.
CONDENSE PFILE.
CONCATENATE P_IFILE FNAME INTO IFILE.
CONDENSE IFILE.
OPEN DATASET IFILE IN TEXT MODE.
OPEN DATASET PFILE FOR OUTPUT IN TEXT MODE.
IF SY-SUBRC NE 0.
MESSAGE E035 WITH PFILE.
EXIT.
ENDIF.
DO.
CLEAR RECORD.
READ DATASET IFILE INTO RECORD.
IF SY-SUBRC EQ 0.
CONCATENATE RECORD ENTER INTO RECORD.
TRANSFER RECORD TO PFILE.
IF SY-SUBRC NE 0.
MESSAGE E036 WITH PFILE.
EXIT.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
CLOSE DATASET PFILE.
CLOSE DATASET IFILE.
DELETE DATASET IFILE.
*Log To Table
CLEAR ZZ609.
ZZ609-BUKRS =
ZZ609-REPID =
ZZ609-FILE =
ZZ609-PDATE =
ZZ609-PTIME =
ZZ609-UNAME =
INSERT ZZ609.
ENDFORM.
P_BUKRS.
SY-REPID.
FNAME.
SY-DATUM.
SY-UZEIT.
SY-UNAME.
"Insert M2
" MOVE_FILE
*&---------------------------------------------------------------------*
*&
Form ERR_REC
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM ERR_REC USING
P_CNT_TAB LIKE CNT_TAB
P_ITAB
LIKE ITAB
VALUE(TEXT).
MOVE-CORRESPONDING P_ITAB TO ERRTAB.
MOVE TEXT TO ERRTAB-MSG.
APPEND ERRTAB. CLEAR ERRTAB.
P_CNT_TAB-ERR_RECS = P_CNT_TAB-ERR_RECS + 1.
ENDFORM.
" ERR_REC
*&---------------------------------------------------------------------*
*&
Form OUTPUT_TO_SERVER
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM OUTPUT_TO_SERVER.
DATA ABAP_LIST LIKE ABAPLIST OCCURS 1.
DATA: BEGIN OF LISTTAB OCCURS 1,
LINE(1023),
END OF LISTTAB.
CHECK P_TEST = ''.
"XXX
IF SY-BATCH NE 'X'.
"<< Insert M1
CLEAR FLISTTAB. REFRESH FLISTTAB.
"<< Insert M1
CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
LIST_INDEX
= SY-LSIND
TABLES
LISTASCI
= FLISTTAB
LISTOBJECT
= ABAP_LIST
EXCEPTIONS
EMPTY_LIST
= 1
LIST_INDEX_INVALID = 2
OTHERS
= 3.
ENDIF.
"<< Insert M1
CONCATENATE P_RFILE SY-REPID '-' SY-DATUM '-' SY-UZEIT INTO P_RFILE.
CONDENSE P_RFILE.
OPEN DATASET P_RFILE FOR OUTPUT IN TEXT MODE.
IF SY-SUBRC NE 0.
MESSAGE E035 WITH P_RFILE.
EXIT.
ENDIF.
LOOP AT FLISTTAB.
CONCATENATE FLISTTAB ENTER INTO FLISTTAB.
TRANSFER FLISTTAB TO P_RFILE.
IF SY-SUBRC NE 0.
MESSAGE E036 WITH P_RFILE.
EXIT.
ENDIF.
ENDLOOP.
CLOSE DATASET P_RFILE.
ENDFORM.
" OUTPUT_TO_SERVER
= SY-LSIND
= LISTTAB
= ABAP_LIST
= 1
= 2
= 3.
" GET_OUTPUT_LIST
M1