0% found this document useful (0 votes)
263 views5 pages

Abap New Syntax Examples 7.40 7.52

The document provides examples of various ABAP coding techniques including: 1) Using COALESCE to select a field value based on condition 2) Replacing a substring in a string 3) Extracting a substring from a field for selection 4) Generating random numbers within a range 5) Finding minimum and maximum values from a set 6) Creating a range from an internal table 7) Repeating a value a specified number of times 8) Controlling commit/rollback based on BAPI return codes

Uploaded by

Berk Can Polat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
263 views5 pages

Abap New Syntax Examples 7.40 7.52

The document provides examples of various ABAP coding techniques including: 1) Using COALESCE to select a field value based on condition 2) Replacing a substring in a string 3) Extracting a substring from a field for selection 4) Generating random numbers within a range 5) Finding minimum and maximum values from a set 6) Creating a range from an internal table 7) Repeating a value a specified number of times 8) Controlling commit/rollback based on BAPI return codes

Uploaded by

Berk Can Polat
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Koşula Göre Selectten Alan Çekme

 
Açıklama: Eğer name1 dolu ise name1 çek, boş ise name2 çek
 
SELECT SINGLE FROM kna1
FIELDS coalesce( name1, name2 )
INTO @DATA(lv_value). 
 

**********************************************************************************
**********************************************
REPLACE Example
//To replace a string based on substring  
// case : case sensitivy belirtmek amacıyla eklemiştir

DATA(s1) = `Hello UI5 and ABAP Dev`.
DATA(s2) = replace( val = s1 sub = `UI5` with = `X-Mas` case = abap_false )
. " result hello x-mas and ABAP dev

**********************************************************************************
**********************************************
Select Substring Query
Kod Açıklaması : ernamı B ile başlayan ernam alanının 2. harfinden itibaren +6 karakter
daha sonrasını alıp ernam_Cs alanına yaz
 
  SELECT FROM vbak
    FIELDS vbak~vbeln,
           SUBSTRING( vbak~ernam,2,6 ) AS ernam_cs
    WHERE ernam EQ @( substring_from( val = syst-uname  sub = 'B' ) )
    INTO TABLE @DATA(t_vbak).

Output
 

 
**********************************************************************************
**********************************************
Maximum & Minimum & Random Number
 
* Get Random Numbers
 
   DATA(lr_rnd) = cl_abap_random_int=>create( seed = + sy-uzeit
                                            min  = 1
                                            max  = 10 ).
 

Data(lv_rndm) = lr_rnd=>get_next( ).

 
************************************ OR
**********************************************************************************
***

"Kod Açıklaması : 1 ile 500 arasında random 20 sayı oluşturur


 
TYPES: ty_rand TYPE STANDARD TABLE OF i WITH DEFAULT KEY INITIAL SIZE 0.
 
* Get Random Numbers
DATA(it_rand) = VALUE ty_rand( FOR v = 1 WHILE v LE 20
                             ( cl_abap_random_int=>create( seed = cl_abap_r
andom=>seed( )
                               min = 1 max = 500 )->get_next( ) ) ).
 
**********************************************************************************
**********************************************
 
* Min Value
Açıklama : Yukardaki it_rand tablosundaki değerlerden en düşüğünü min değeri içine atar
 
DATA(min) = REDUCE i( INIT min_value = VALUE #( it_rand[ 1 ] OPTIONAL )
                      FOR <line> IN it_rand FROM 2
                      NEXT min_value = COND #( WHEN <line> LT min_value THE
N <line>
                                               ELSE min_value ) ).

**********************************************************************************
**********************************************
* Max Value
Açıklama : Yukardaki it_rand tablosundaki değerlerden en yükseğini max değeri içine atar
 
DATA(max) = REDUCE i( INIT max_value = VALUE #( it_rand[ 1 ] OPTIONAL )
                      FOR <line> IN it_rand FROM 2
                      NEXT max_value = COND #( WHEN <line> GT max_value THE
N <line>
                                               ELSE max_value ) ).

**********************************************************************************
**********************************************

* Internal Table to Range


Kod açıklama : lt_t001 tablosundaki bukrsleri range-low olarak bukrs_range içine atar.
SELECT FROM t001 FIELDS t001~* INTO TABLE @DATA(lt_t001).
 
DATA(bukrs_range) = VALUE rsdsselopt_t( FOR line IN lt_t001
                                        sign = if_fsbp_const_range=>sign_in
clude
                                        option = if_fsbp_const_range=>optio
n_equal
                                      ( low = line-bukrs ) ).

Bukrs_range çıktısı :

 
Veya yukardaki gibi tablodaki değerler ilk başta elimizde değilse direkt değerleri t001 tablosundan
range içine çekebiliriz. Alttakinin çıktısı yukardaki ile aynı
 
Fill Range Directly from Select Statement:
 
SELECT @if_fsbp_const_range=>sign_include AS sign,
       @if_fsbp_const_range=>option_equal AS option,
       bukrs AS low,
       CAST( @space AS CHAR( 4 ) ) AS high
    FROM t001
    INTO TABLE @DATA(range_of_comp_codes).
 
 
**********************************************************************************
**********************************************

Repeat Function

 
TRY.
    DATA(lv_repeat_result) = repeat( val = `A` occ = 10 ).
  CATCH cx_sy_strg_par_val.
ENDTRY.

Sonuç : 10 tane A'nın yan yana yazılması // AAAAAAAAAA

**********************************************************************************
**********************************************
BAPI Return or Commit Control
 
DATA:lt_return      TYPE bapiret2_t.
"BAPI Call Here
IF NOT line_exists( lt_return[ type = cl_cms_common=>con_msg_typ_e ] )  AND
    NOT line_exists( lt_return[ type = cl_cms_common=>con_msg_typ_a ] ).
  "Commit Work-Success Handling
ELSE.
  "Rollback Work-Error Handling
ENDIF.

**********************************************************************************
**********************************************

You might also like