Conversion ABAP: between Binary, String, XString and Table

Conversion ABAP between types is a main topics in an ABAP developer.

Actually, SAP stores sometimes the same information/Data in different table or the module function requests a different types for the input or output.

This article will cover Conversion in ABAP Coding between the most used types : Binary, String and Table.

Will handling with data or attachment, few conversion function will be helpful in order to extract, save file.

Up to my experience, the most used conversions in ABAP will be:

  • Abap convert string to integer
  • Abap convert String to Decimal
  • Conversion from internal to external format
  • Convert Binary to XString: (attachment , … ).
  • Text lines into String conversion for ( long text , … )
  • Convert String to XString
  • XString to SOLIX_TAB for attachment, file …

Conversion ABAP: string to Integer

Welcome to most useful conversion for ABAP Developer: How to convert STRING to INTEGER in ABAP

First, the String is types STRING in ABAP and Integer is a just an ‘I‘ in ABAP Typing.

The simplest way is to use the standard function CONVERT_STRING_TO_INTEGER in any ABAP Code.

The CONVERT_STRING_TO_INTEGER also controls if the string is only a number or not :

  • sy-subrc = 1 : if the string’s integer length overload the length of ABAP integer.
  • sy-subrc = 2 : if the string doesn’t contain only number

The ABAP Code Snippet to user directly in your custom ABAP conversion program is :

DATA: lv_int TYPE i.
DATA: lv_string TYPE string VALUE '12345'. 
"-----------------------------------------"
" Convert String to Integer in ABAP
"-----------------------------------------"
CALL FUNCTION 'CONVERT_STRING_TO_INTEGER'
  EXPORTING
    p_string      = lv_string
  IMPORTING
    p_int         = lv_int
  EXCEPTIONS
    overflow      = 1
    invalid_chars = 2
    OTHERS        = 3.
IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
          WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ABAP convert String to Decimal

ABAP Decimal Type is more complicated than ABAP Integer because of the Decimal separator.

So, in order to convert String to Decimal in ABAP, you have to set with Decimal Separator is used.

In ABAP Workbench, you can use the standard function HRCM_STRING_TO_AMOUNT_CONVERT to made the Conversion ABAP.

Related Post

Basic ABAP Conversion from internal to external format

ABAP Convert from Internal format into external format ( or vice versa ) can be done by CONVERSION_EXIT_ALPHA* function.

CONVERSION_EXIT_ALPHA_INPUT : convert external to internal
CONVERSION_EXIT_ALPHA_OUTPUT : convert internal to external

These functions are very useful to remove remove leading zeros in ABAP for example.

See also Different Methods to Convert String to Integer, Quantity, Currency in SAP ABAP

Conversion ABAP Binary to XSTRING

In Order to convert BINARY to XSTRING, first get the BINARY data and get the length of the binary ABAP variable.

Then Call the standard function SCMS_BINARY_TO_XSTRING and pass the length and the binary value. And Hop ! you get the XSTRING.

It can be useful when dealing/ conversion ABAP with Attachments or images (mime-type) that are stored as Binary in SAP tables

   "--------------------------------------------"
   " Convert Binary to Xstring
   "--------------------------------------------"
   CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
     EXPORTING
       input_length = lv_length
     IMPORTING
       buffer       = lv_buffer
     TABLES
       binary_tab   = et_data
     EXCEPTIONS
       failed       = 1
       OTHERS       = 2.
   IF sy-subrc <> 0.
     RAISE error_conversion.
   ENDIF

Convert Text lines into string

As you know, SAP has a very particular way to handle long text.
Usually, the SAP text is converted into lines.

Use the Standard Function CONVERT_TABLE_TO_STRING to collect all the text in one STRING variable in ABAP.

   "--------------------------------------------"
   " Convert Text lines into string
   "--------------------------------------------"
   CALL FUNCTION 'CONVERT_TABLE_TO_STRING'
     EXPORTING
       i_tabline_length = lv_nb_lines
     IMPORTING
       e_string         = lv_body_string
     TABLES
       it_table         = lt_lines.

ABAP Convert String to XString

How to Convert String to Xstring in ABAP ( from String type to a binary format )
Just use the standard function SCMS_STRING_TO_XSTRING.

Read more about Data Type.

For the input

  • BUFFER is typed XSTRING
  • also mimetype : the type of the binary ( jpg … exe. .. )
  • encoding:the encoding of the output string ( it is useful when you deal with non-unicode character)
   "--------------------------------------------"
   " Function to Convert String to XString
   "--------------------------------------------"
   CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
     EXPORTING
       text     = lv_body_string
 *     mimetype = ''
       encoding = lv_encoding
     IMPORTING
       buffer   = lv_body_xstring
     EXCEPTIONS
       failed   = 1
       OTHERS   = 2.
   IF sy-subrc <> 0.
 * Implement suitable error handling here
   ENDIF.

Convert XString to SOLIX_TAB

Once you get the binary, you can convert the Binary string the XSTRING to table of XSTRING with this function SCMS_STRING_TO_BINARY to do conversion abap.

   "--------------------------------------------"
   " Convert XString to SOLIX_TAB
   "--------------------------------------------"
   CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
     EXPORTING
       buffer     = lv_body_xstring
     TABLES
       binary_tab = et_body_hex.

Actually, these conversion ABAP functions will be helpful for retrieving business object file and add it as attachment to an email.

Share
Published by
John
Tags: ABAPString

Recent Posts

The Most Important SAP ISU Tables

SAP ISU Tables for Technical master data, for Billing Master Data, Billing and invoicing Tables?…

December 22, 2020

SAP Fiori 3 UX and Design of SAP Fiori Apps for SAP S/4HANA, SAP TechEd Lecture

SAP Fiori 3 UX and Design of SAP Fiori Apps for SAP S/4HANA, SAP TechEd…

November 18, 2020

The Main SAP Dunning Transaction Codes

Dunning is the business practice of informing a customer of past due payment. Dunning letters…

November 28, 2019

SAP Accounts Payable Tcodes & Accounts Receivable Tcodes ( SAP AP Tcodes & SAP AR Tcodes)

SAP AP Tcodes & SAP AR Tcodes: House Banks Tcodes, Advance Payments or Down Payments,…

August 1, 2019

The Most Important SAP Payment Terms Tables (ZTERM, Text…)

What are the main SAP Payment Terms Tables ? What are the related Tables in…

October 21, 2018

The most Important SAP Work Center Tables in SAP PP

Work center consists of master data related to routing of products. It contains data related…

October 21, 2018