Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 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