SQL Server administration and T-SQL development, Web Programming with ASP.NET, HTML5 and Javascript, Windows Phone 8 app development, SAP Smartforms and ABAP Programming, Windows 7, Visual Studio and MS Office software Kodyaz SAP and ABAP Programming Tutorials
Development resources, articles, tutorials, samples, codes and tools for .Net, SQL Server, Windows, Windows Phone, SAP and ABAP, like SAP UI5, Screen Personas, etc.




CRM Companies List
Web Based CRM Software


Export SAP Data to Fixed Length Text File

Using WS_DOWNLOAD ABAP function module to export data from SAP to text file is a common method of transferring data from SAP to external systems. Writing data to text file from internal table in ABAP program is easy. In this ABAP tutorial, I'll share source codes of an ABAP report which reads data from SAP tables and write contents of table data in a text file. ABAP function module WS_DOWNLOAD can be used to create text file in a specific file folder and write contents of the internal table into text file.

Below ABAP program query SAP VBRP Sales document items table for SAP sales invoices for a given range of invoice numbers. This is just to insert sample SAP data into an ABAP internal table. Since I'll not place all table columns into text file first I create a TYPE object and created a structure and an table instance for thi type.

The OSQL SELECT statement insert sample items by reading from VBRP Sales document item table to internal table gt_vbrp. Within an ABAP LOOP statement, I concatenate related columns into a single field text structure which is big enough to store all desired table fields.

The structure with single text field which has the string concatenation of all related table fields is type of ty_vbrp formed of 1000 characters long C field. ABAP developers can store the CONCATENATE function output into gs_text structure for single row. And all concatenated rows are stored in an internal table named gt_text

Although this tutorial is concentrated on fixed length output field values on exported text file, I used a seperator character "|" between table fields. Of course the ABAP programmer can remove the SEPARATED BY clause from the CONCATENATE command since all fields have known length values. Since length of each column is already known, it will be easy for the programmer who will parse the exported SAP data in text file.

The main trick in CONCATENATE statement that provides fixed length in output text is RESPECTING BLANKS statement. This prevents auto trim of spaces in character fields by Concatenate command. You can test by removing RESPECTING BLANKS clause from the Concatenate statement and compare both execution results to see the affect in action.

I also added a row end character ";" to indicate the end of each row. Of course this is again optional just like field seperator between column values. You can ommit this code block if you don't need a row seperator.

REPORT z_export_data_to_text_file.

TYPES:
 BEGIN OF ty_vbrp,
  vbeln LIKE vbrk-vbeln,
  posnr LIKE vbrp-posnr,
  matnr LIKE vbrp-matnr,
  ean11 LIKE vbrp-ean11,
  fkimg LIKE vbrp-fkimg,
  vrkme LIKE vbrp-vrkme,
  erdat LIKE vbrk-erdat,
  netwr LIKE vbrp-netwr,
 END OF ty_vbrp,
 BEGIN OF ty_text,
  text(1000) TYPE c,
 END OF ty_text.

DATA c_separator TYPE c1 VALUE '|'.
DATA gs_vbrp TYPE ty_vbrp.
DATA gt_vbrp TYPE TABLE OF ty_vbrp.
DATA gs_text TYPE ty_text.
DATA gt_text TYPE TABLE OF ty_text.
DATA:
 lv_fkimg(17) TYPE c,
 lv_netwr(21) TYPE c.

SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_vbrp FROM vbrp
 WHERE vbeln BETWEEN '0030000130' AND '0030000140'.

LOOP AT gt_vbrp INTO gs_vbrp.

 CLEAR gs_text.

 WRITE gs_vbrp-fkimg TO lv_fkimg DECIMALS 3.
 WRITE gs_vbrp-netwr TO lv_netwr DECIMALS 2.

 CONCATENATE
  gs_vbrp-vbeln
  gs_vbrp-posnr
  gs_vbrp-matnr
  gs_vbrp-ean11
  lv_fkimg
  gs_vbrp-vrkme
  gs_vbrp-erdat
  lv_netwr
  INTO gs_text
  RESPECTING BLANKS
  SEPARATED BY c_separator.
 CONCATENATE gs_text ';' INTO gs_text.

 APPEND gs_text TO gt_text.
ENDLOOP.

DATA filename LIKE rlgrap-filename .
filename = '\\kodyaz\c$\abap-codes\invoice-items.txt'.

CALL FUNCTION 'WS_DOWNLOAD'
 EXPORTING
  filename = filename
  filetype = 'ASC'
 TABLES
 data_tab = gt_text.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

Following ABAP codes are related with WS_DOWNLOAD ABAP function call. First of all we need a network share or file folder that we can write text file as the output of WS_DOWNLOAD ABAP function module. This file folder is provided as the value of "filename" as an input parameter to ws_download function module.

And the last part of the sample ABAP code in this ABAP tutorial is the ABAP function module WS_DOWNLOAD which write internal table contents into text file. This is extremely and easy method to export SAP data to text file for ABAP developers.

In below screenshot, I showed the output of the text file exported from SAP system VBRP table data and written in text file on a given folder or network share.

export SAP data into text file using ABAP function module






SAP Tutorials

SAP Tutorial

SAP Forums

SAP Tools

SAP Transaction Codes Table






Related Articles and Tutorials(http://www.kodyaz.com/sap-abap/fixed-length-data-export-to-text-file.aspx)
SAPScript Transaction Codes
Complex Conditions in SAP Smartform with AND/OR
How to Execute SAP Program in Background Task
ABAP LOOP Statement with At New and At End
Free Adobe LiveCycle Designer Download
Change Output Condition Records
Check Existence using ABAP SELECT
Convert Smartform to PDF in Print Preview Mode
Connect SAP from Eclipse using ABAP Project
Create Business Object in SAP
Delete All Data from SAP Database Table
How to Find Internal Table Row Count in ABAP
Export SAP Data to Fixed Length Text File
How to Debug Popup Screen in ABAP
Complete List of SAP Modules
ABAP Tutorial - SAP Split and ABAP Split String Function
How to Upload Data to SAP from Excel File using alsm_excel_to_internal_table Function Module
ABAP - Create Hierarchy Tree List using rs_tree_construct, rs_tree_list_display and snodetext
ABAP Tutorial - ABAP String Split Example Code
Upload Data from Excel File in ABAP using TEXT_CONVERT_XLS_TO_SAP
Create CL_GUI_ALV_GRID ALV Grid Column Header using ABAP Data Element
Email Spool Request using SAPOffice - Spool to PDF
How to Create SAPScript Text using SO10 Transaction Code
How to Display SAP Graphics using SE78 Transaction Code
SAP Invoice Output ZZZZ is not Defined
ABAP Tutorial for SET and GET PARAMETER ID Command
How to Set Start Transaction in SAP GUI
ALV Grid Color - Table Row Background Color in ALV List
SAP ABAP Tutorial - ALV Grid Example with cl_gui_alv_grid and Screen Painter
SAP Invoice Output Determination Analysis for Not Created Output Message
SAP Smartforms - How to Call Smartform within ABAP Program
SAP Smartforms Table for Sales Order and Invoice Outputs
SAP Smartforms Tutorial - How to Create Smartform
SAP Smartforms Tutorial - Table Calculations using Count
SAP Smartforms Tutorial - Table Calculations using Sum Total
SAP Tutorial - Convert Spool Request to PDF File using RSTXPDFT4 ABAP Report
Set Default Single Values List for SAP Selection Screen Parameter
ABAP Debugging using Log Point and Break Point
ABAP RegEx for ABAP Regular Expression to fetch Date from String
ABAP Runtime Error ST22 Transaction using Short Dump Analysis
ABAP Shared Memory Objects Tutorial with Sample ABAP Code
ABAP Try Catch for exception is neither caught Code Inspector Error
Add Year, Month or Day to Date Variable in ABAP using RP_CALC_DATE_IN_INTERVAL
Add Web Dynpro Applications to SAP Favorites Menu
Read Address Data using FM ADDR_GET instead of Querying ADRC Table
Adobe Forms Table Header is Missing After Second Page
ABAP Authority-Check Object For User Other Than Current
SAP Code Inspector for ABAP Break-Point Statement
Call Function Module using RFC Destination in ABAP
CALL_FUNCTION_NOT_FOUND ABAP Run Time Error
Message no XS826: Cannot process message; no node determined for 76550052
Change Fields for Selection in SE11 ABAP Data Browser
Compare Code in ABAP using SE39 SplitScreen Editor
How to Spell Numbers using ABAP Spell_Amount Function Module
Convert the table using the Database Utility (SE14)
Convert Sales Unit into Text using Function Module in Target Language
ABAP Code Inspector Check Variants for HANA Migration Optimization
Create SAP Dynamic Variant using Date Calculation
Create Scheduled Job using SAP SM36 Transaction
Create Search Help in ABAP for Web Dynpro Component
Create Transaction Code for Web Dynpro Application
Create SAP Transaction to Maintain ABAP Table using SM30
Create Transport Request for Text Translations using RS_LXE_RECORD_TORDER
Database Hint Pseudo-Comment for SAP Code Inspector
Delete Entries in NAST Table using RSCLNAST ABAP Program
List Locks in SAP system using SM12 Transaction Code
Dynamic Programming using Field Symbols in ABAP Reports
Prevent DYNPRO_SEND_IN_BACKGROUND Error in Background Process
Enable Remote Debugging in ABAP using RSRDEBUG
Execute ABAP Program Automatically After Transport Request Import
Export Graphics from SE78 SAP Form Graphics Administration using ABAP program
How to Export IDOC as Excel and Save as Local File from WE02 Transaction
Export SAP Spool Requests as PDF using SP01 Transaction
How to Find Output Determination Procedure for a Billing Document
How to Find SAP Role Users Assigned for Transaction Code
Get Fullname of SAP user using Function Module in ABAP Program
How to Delete Standard Text using SO10 SAP Transaction
How to Disable Word Editor in SAP Smartform Text
How to Find User Exits in ABAP Codes of SAP Transaction
Read Integer and Decimals of a Numeric Value in ABAP Programming
How to Transport SAP Graphics using SE78 Transaction
Import and Export SO10 Standard Text using RSTXSCRP ABAP Program
Main program for include RV61Bxxx not found
Move Minus Sign from Right to Left of Negative Number in SAP Smartform
Primary key change not permitted for value table
Print SAP Outputs From Two Printers at the Same Time
Get Proforma Invoice from Commercial Invoice in ABAP
Business Document Service Error: Error when accessing graphic (BDS), RC = 5
Read Pricing Condition Text using ABAP in SAP Sales Document Output
Read Text Symbols in Specific Language using ABAP RS_TEXTPOOL_READ
Get SAP Document Flow using SD_DOCUMENT_FLOW_GET ABAP Function Module
SAP Output Management - Create New SAP Output Type
SAP Purchase Order Tables, Transaction Codes and Output
Graphics White Background Displayed Grey on SAP Smartform Output
Export Table Contents into Text File and Download File
SE63 Smartform Translation and Export using SLXT Program
Search and Find SAP Transaction Code using SE93 or SEARCH_SAP_MENU
SAP Code Inspector Error: Select For Cluster Table Without Order By
ABAP Select Statement using Space instead of Null or Initial
SAP Code Inspector: Select-Statement can be Transformed
SAP Smartform Runtime Error CX_SY_CONVERSION_NO_NUMBER
Window MAIN does not fit onto page PAGE (height)
SAP Smartforms Table Parameter in Form Routine
ABAP CONVT_NO_NUMBER Error on SP01 due SP01_WARN Parameter
How to find string length using STRLEN ABAP string function
ABAP Submit Report to Run Another ABAP Program within Code
Unicode Character Problem in IFS File Interface
Web Dynpro Text Translation using Assistance Class
Transport Variants of an ABAP Program into Workbench Request
Trigger Output Re-Determination for Billing Documents
TVAP Item Category and SAP Table TVAPT for Text Translations
Unlock Objects Locked in Request or Task using Transport Organizer Tools
Code Inspector: Unsecure use of FOR ALL ENTRIES
Update Multiple Variables in ABAP Select Single Statement
Update Database Table Data using ABAP SE16N_INTERFACE
VF31 SAP Transaction to Reprocess Billing Output Messages
Web DynPro Tutorial - Display Spool Requests using Web DynPro Table
Function module is not released for the Internet
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement
Activate Fixed Point Arithmetic Flag for Open SQL Statement


Copyright © 2004 - 2017 Eralper YILMAZ. All rights reserved.
Community Server by Telligent Systems