*&---------------------------------------------------------------------*
*& Report Z_BSEG_OUTPUT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT z_bseg_output.
PARAMETERS:
p_bukrs TYPE bukrs,
p_gjahr TYPE gjahr,
p_datab TYPE datab,
p_datai TYPE datai.
PARAMETERS:
p_path TYPE string DEFAULT '/usr/sap/tmp/' LOWER CASE.
FIELD-SYMBOLS <fs> TYPE ANY.
DATA: len(10) TYPE p.
*end new variables
TABLES: bseg, bkpf.
DATA: wa(2000),
open_file_bseg,
open_file_bkpf,
v_file_bseg(200),
v_file_bkpf(200).
CONCATENATE p_path 'bseg.txt' INTO v_file_bseg.
CONCATENATE p_path 'bkpf.txt' INTO v_file_bkpf.
SELECT *
FROM bkpf
WHERE bukrs = p_bukrs
AND gjahr = p_gjahr
AND budat BETWEEN p_datab AND p_datai.
IF open_file_bseg = space.
OPEN DATASET v_file_bseg FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc = 0.
open_file_bseg = 'X'.
ELSE.
EXIT.
ENDIF.
ENDIF.
IF open_file_bkpf = space.
OPEN DATASET v_file_bkpf FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc = 0.
open_file_bkpf = 'X'.
ELSE.
EXIT.
ENDIF.
ENDIF.
IF open_file_bkpf = 'X'.
DO.
ASSIGN COMPONENT sy-index OF
STRUCTURE bkpf TO <fs>.
IF sy-subrc <> 0. EXIT. ENDIF.
len = STRLEN( wa ).
WRITE <fs> TO wa+len LEFT-JUSTIFIED.
len = STRLEN( wa ).
WRITE '|' TO wa+len.
ENDDO.
TRANSFER wa TO v_file_bkpf.
CLEAR wa.
ENDIF.
IF open_file_bseg = 'X'.
SELECT *
FROM bseg
WHERE bukrs = p_bukrs
AND gjahr = p_gjahr
AND belnr = bkpf-belnr.
* MOVE bseg TO wa. "we don't use this anymore
DO.
ASSIGN COMPONENT sy-index OF
STRUCTURE bseg TO <fs>.
IF sy-subrc <> 0. EXIT. ENDIF.
len = STRLEN( wa ).
WRITE <fs> TO wa+len LEFT-JUSTIFIED.
len = STRLEN( wa ).
WRITE '|' TO wa+len.
ENDDO.
TRANSFER wa TO v_file_bseg.
CLEAR wa.
ENDSELECT.
ENDIF.
ENDSELECT.
IF open_file_bseg = 'X'.
CLOSE DATASET v_file_bkpf.
ENDIF.
IF open_file_bkpf = 'X'.
CLOSE DATASET v_file_bkpf.
ENDIF.