Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Processing Internal Data →  Character String and Byte String Processing →  Expressions and Functions for String Processing →  String Functions →  Processing Functions for Character-Like Arguments 

shift_left, shift_right - Shift Functions

The shift functions shift the content of a character-like argument.

Other versions: 7.31 | 7.40 | 7.54

Syntax Forms

  1. ... shift_left( [val =] text
                      [places = places]|[circular = places]| [sub = substring] ) ...

  2. ... shift_right( [val =] text
                       [places = places]|[circular = places]| [sub = substring] ) ...

Effect

The functions shift_left and shift_right shift the character string text to the left or to the right and return the result. The shift depends on the parameter pass as follows:

  • If the argument places is given a numerical value, this many characters are removed on the left or right of the character string and the length of the character string is reduced accordingly. If the value of places is negative or longer than the character string, an exception of the class CX_SY_RANGE_OUT_OF_BOUNDS is raised.
  • If the argument circular is given a numerical value, the functions work like places, but insert the substring again at the end or start of the character string.
  • If the argument sub is given a character string in substring, all substrings in the character string from text are removed on the left or right that match the content of substring. If no substrings are found or if substring is given an empty string, the character string remains unchanged.
  • If none of the arguments places, circular, or sub are specified, the functions work as if the sub argument has been passed a blank character. All blank characters to the left or right are removed. In this case, an explicit val= can also be omitted.

places and circular are numerical expression positions.

The return code has the type string accordingly.


Exceptions


Catchable Exceptions

CX_SY_RANGE_OUT_OF_BOUNDS

  • Cause:Invalid value in places.
    Runtime Error: STRING_LENGTH_TOO_LARGE or STRING_LENGTH_NEGATIVE