Ir al contenido principal

Tab character as delimiter in ABAP string

It can be a bit difficult to use tabulator character (hex code 0x0009) in ABAP strings. On the other hand it is often used as separator in various interface files and you need tab character to split the lines into fields or insert it into the strings as delimiter.

If you need to fulfill the unicode check, you have to use special approach to combine hex code and string. Otherwise you will get the syntax error from compiler:
"TAB" must be a character-like data object (data type C, N, D, T, or STRING)

Here three examples, how the tab character can be used in combination with string in abap. You can use similar approach for other difficult characters, for example ENTER.
Example 1: can be used in non-unicode and unicode systems: (tabulator hex code is defined in class CL_ABAP_CHAR_UTILITIES as constants HORIZONTAL_TAB)
DATA:
  tab type c value cl_abap_char_utilities=>horizontal_tab,
  str TYPE string.

CONCATENATE 'aaa' 'bbb' INTO str SEPARATED BY tab.
Here other useful constants defined in class CL_ABAP_CHAR_UTILITIES:
NameLengthHex-ValueDec-Value
BACKSPACE10x088
HORIZONTAL_TAB10x099
VERTICAL_TAB10x0B11
FORM_FEED10x0C12
NEWLINE10x0A10
CR_LF20x0D0A13 10
Example 2: it also works in non-unicode and unicode systems:
DATA:
  tab TYPE x VALUE '09',
  chr TYPE c,
  str TYPE string.

FIELD-SYMBOLS:
  <fs> TYPE ANY.

ASSIGN chr TO <fs> CASTING TYPE x.
<fs> = tab.

CONCATENATE 'aaa' 'bbb' INTO str SEPARATED BY chr.
Exapmle 3: it will only work in non-unicode system:
DATA:
  tab TYPE x VALUE '09',
  str TYPE string.

CONCATENATE 'aaa' 'bbb' INTO str SEPARATED BY tab.
Source:

Comentarios

Entradas más populares de este blog

A to Z of OLE Excel in ABAP 7.4

  SAP users, both business and end users always need to download the output of a report to spreadsheet and do their analytics.   The standard excel output from a report is very simple process but it is old fashioned and the spreadsheet looks quite boring.  There is no default formatting and the users have to do all the hard work of changing the fonts, coloring the texts, marking the borders etc. Updated 16th Aug 2019  –  If you are working in non-ABAP 7.4 (below), there is complete reference program for you too. Go to the end of this article.  Thank you  Legxis  ( LeonievonK ) for the share. I acknowledge, whatever I mentioned above can be achieved in many ways programmatically. We can do it in the old traditional ABAP way but  providing multiple tabs in the spreadsheet and formatting is quite tricky with non  OLE  method. OLE = Object Linking and Embedding The high level agenda of this article is to be the  G.O.A.T.  (ple...
How to add custom field in Additional B Tab for SAP Sales Order In this article we want to explain step by step how to add custom field in SAP Sales Order transaction VA01/VA02/VA03. This time Mr ABAPGurus will give the tutorial of enhancement to add custom field in SAP Sales order. In this sample we will add new custom field for comments and customer satisfaction, this data will save into separate table from SAP Standard table ( VBAK / VBAP ). SAP provided us with ADDITIONAL TAB in the sales order transaction ( VA01/VA02/VA03 ) which allow customer to add custom fields.  T he different between ADDITIONAL A and ADDITIONAL B is the ADDITIONAL A for field which already predefine in Sales Order Header ( VBAK ) fields and ADDITIONAL B is for field that freely define. This sample we will use ADDITIONAL B because we will store data from customer satisfaction into Z database table. 1. Create one Z table using SE11 SAP Transaction code. 2.Using SE38 Transactio...

VA03 VA02 Obtener Textos Cabecera, Funct. ‘READ_TEXT’

Hoy me tocó obtener textos de pedidos, me pareció un tema interesante para compartir. Si bien no escribí yo el documento, me sirvió por eso lo comparto, y abajo cito la fuente. Obtener textos de las cabeceras en este caso mas especifico el texto de los pedidos como por ejemplo obtener el texto de un pedido. La forma de obtener textos es a través de la función ‘READ_TEXT’, pero tiene cierto chiste usarla y pasarle los parámetros correctos entonces vamos a proceder con el tutorial. Lo primero será en este caso ingresar a nuestro pedido, ya sea VA02 o VA03. Una vez que ingresamos el pedido daremos enter, y nos visualizará todo el pedido, procederemos a dar clic en el menú ‘Pasar a’ - ‘Cabecera’ - ‘Textos’ Esto nos llevará al texto que buscamos Una vez que vemos el texto, daremos doble para que nos abra una nueva ventana, dentro de la nueva ventana daremos clic en menú ‘Pasar a’ - ‘Cabecera’ y nos mostrará lo siguiente. Lo más importante de esta pantalla es: Nom...