Ortak Kontrol Durumları / Check (sap-abap)

 

♦ Ortak Kontrol Durumları  ◊  Check :

72

REPORT  ZORNEK11.
 parameters text(20default 'c::\\\xxx\\yyy'.
 datacurrent,
       next.
 do 19 times varying current from text+0(1next text+1(1range text
             varying next    from text+1(1next text+2(1range text.
 
   check current ca ':\'.
 
   if current next.
     write'   index:'sy-index,'için   ','şu anki karakter-> ',current,'sonraki karakter-> ',next,'aynıdır.'.
   endif.
 enddo.

73

Ortak Kontrol Durumları / Continue (sap-abap)

 

♦ Ortak Kontrol Durumları  ◊  Continue :

72

REPORT  ZORNEK10.
 parameters text(20default 'c::\\\xxx\\yyy'.
 datacurrent,
       next.
 do 19 times varying current from text+0(1next text+1(1range text
             varying next    from text+1(1next text+2(1range text.
   if current na ':\'.
     continue.
   endif.
   if current next.
     write'   index:'sy-index,'için   ','şu anki karakter-> ',current,'sonraki karakter-> ',next,'aynıdır.'.
   endif.
 enddo.

73

Ortak Kontrol Durumları / While (sap-abap)

 

♦ Ortak Kontrol Durumları  ◊  While  :

70

REPORT  ZORNEK9.
 databas,
       son,
       bayrak.
 parameters text(12default '     TR     '.
 while bayrak ' '
   vary bas from text+0(1)  next text+1(1range text
   vary son from text+11(1next text+10(1range text.
   if bas ' ' and son ' '.
      bas son '*'.
   else.
      bayrak 'X'.
      endif.
   endwhile.
 writetext.

 

71

Ortak Kontrol Durumları / Varying (sap-abap)

 

♦ Ortak Kontrol Durumları  ◊  Varying :

68

REPORT  ZORNEK8.
 dataardisik   type i,
       tek       type i,
       cift      type i,
       toplam1   type i,
       toplam2   type i,
       toplam3   type i,
       begin of dizi,
         deger1 type value 1,
         deger2 type value 2,
         deger3 type value 3,
         deger4 type value 4,
         deger5 type value 5,
         deger6 type value 6,
         deger7 type value 7,
         deger8 type value 8,
         end of dizi.
 
 do times varying ardisik from dizi-deger1 next dizi-deger2
            varying tek     from dizi-deger1 next dizi-deger3
            varying cift    from dizi-deger2 next dizi-deger4.
      write/ ardisiktekcift.
      addardisik to toplam1,
           tek     to toplam2,
           cift    to toplam3.
      enddo.
 
 write'    +________   +________   +________',
       / toplam1toplam2toplam3.

 

69

Ortak Kontrol Durumları / Sy-index (sap-abap)

 

Ortak Kontrol Durumları  ◊   Sy-index  :

Döngü içinde sy-index geçerli yineleme numarasını içerir. Örneğin ilk döngü içerisinde sy-index  = 1 olacaktır. İkincisinde sy-index  = 2 olacak ve böyle devam edecektir. Endeksi bittikten sonra sy -index, döngüye girmeden önce sahip olduğu değeri içerir. İç içe do döngülerinde sy-index, içinde bulunduğu döngünün yineleme sayısını içerir.

66

REPORT  ZORNEK7.
 sy-index 77.
 write'ilk sy-index değeri ='sy-index ''.
 
 do times.
   write'döngü 2' sy-index.
   enddo.
 
 do times.
   write'döngü 3' sy-index.
   do times.
     write'döngü 4' sy-index.
     enddo.
   enddo.
 
 write ''.
 
 do 100 times.
   write'döngü 5' sy-index '/'.
   if sy-index 5.
     exit.
     endif.
   enddo.

67

 

Ortak Kontrol Durumları / Case (sap-abap)

 

♦ Ortak Kontrol Durumları  ◊  Case :

if-else ‘den farkı; gerçekleşen durum ile karşılaştırılacak tek bir değer belirtebilirsiniz. Ve değerleri daima eşitlik açısından karşılaştırabilirsiniz. İf-else daha karmaşık ifadelerde kullanılır.

Case Örneği

63

REPORT  ZORNEK5.
 write 'Birden 5 e kadar sayı giriniz.'.
 parameters sayi type default 0.
 
 case sayi.
   when 1.        write ' 1 sayısını girdiniz. '.
   when 2.        write ' 2 sayısını girdiniz. '.
   when 3.        write ' 3 sayısını girdiniz. '.
   when 4.        write ' 4 sayısını girdiniz. '.
   when 5.        write ' 5 sayısını girdiniz. '.
   when others.   write ' yanlış değer girdiniz. '.
   endcase

 

Karakter Karşılaştırma Operatörleri (sap-abap)

 

Karakter Karşılaştırma Operatörleri :

CO   (v1 co v2)   :   v1 yalnızca v2 karakterlerinden oluşur.
CN   (v1 cn v2)   :   v1, v2 de bulunmayan karakterlerden oluşur.
CA   (v1 ca v2)   :   v1, v2 de bulunan herhangi bir karakter içeriyor.
NA   (v1 na v2)   :   v1 ve v2′ nin hiçbir ortak karakteri yoktur.
CS   (v1 cs v2)   :   v1, v2 stringini içerir.
NS   (v1 ns v2)   :   v1, v2 stringini içermiyor.
NP   (v1 np v2)   :   v1, v2 de ki deseni içermiyor.

Örnek:

1  report ztx1003.
2  * operator: co
3  write / '''AABB'' co ''AB'''.
4  if 'AABB' co 'AB'.           write 'True'. else. write 'False'. endif.
5  write / '''ABCD'' co ''ABC'''.
6  if 'ABCD' co 'ABC'.          write 'True'. else. write 'False'. endif.
7
8  * operator: cn
9  write / '''AABB'' cn ''AB'''.
10 if 'AABB' cn 'AB'.           write 'True'. else. write 'False'. endif.
11 write / '''ABCD'' cn ''ABC'''.
12 if 'ABCD' cn 'ABC'.          write 'True'. else. write 'False'. endif.
13
14 * operator: ca
15 write / '''AXCZ'' ca ''AB'''.
16 if 'AXCZ' ca 'AB'.           write 'True'. else. write 'False'. endif.
17 write / '''ABCD'' ca ''XYZ'''.
18 if 'ABCD' ca 'XYZ'.          write 'True'. else. write 'False'. endif.
19
20 * operator: na
21 write / '''AXCZ'' na ''ABC'''.
22 if 'AXCZ' na 'ABC'.          write 'True'. else. write 'False'. endif.
23 write / '''ABCD'' na ''XYZ'''.
24 if 'ABCD' na 'XYZ'.          write 'True'. else. write 'False'. endif.

Çıktı:
‘AABB’ co ‘AB’ True
‘ABCD’ co ‘ABC’ False
‘AABB’ cn ‘AB’ False
‘ABCD’ cn ‘ABC’ True
‘AXCZ’ ca ‘AB’ True
‘ABCD’ ca ‘XYZ’ False
‘AXCZ’ na ‘ABC’ False
‘ABCD’ na ‘XYZ’ True

Kaynak :(Sams Teach Yourself ABAP/4 in 21 Days)

 

Ayrıca ilk eşleşen veya eşleşmeyen karakterin ofsetini görmek için ‘SY-FDPOS’ kullanılır.

Ortak Kontrol Durumları / If-Else (sap abap)

 

♦ Ortak Kontrol Durumları  ◊  If-Else :

İf Örneği:

58

REPORT  ZORNEK3.
 databegin of sayi,
             s1 value '1',
             s2 value '2',
             s3 value '3',
             s4 value '4',
             s5 value '5',
             end of sayi,
       begin of teksayi,
             s1 value '1',
             s2 value '3',
             s3 value '5',
             s4 value '7',
             s5 value '9',
             end of teksayi.
 if sayi-s1 teksayi-s1.
   write/ sayi-s1'=' teksayi-s1 ' eşittir'.
   endif.
 if sayi-s2 <> teksayi-s2.
   write/ sayi-s2'<>' teksayi-s2 'eşit değildir'.
   endif.
 if sayi-s2 between teksayi-s1 and teksayi-s2.
   write/ sayi-s2'sayısı' teksayi-s1 've' teksayi-s2 'arasındadır'.
   endif.
 if sayi-s1 between teksayi-s2 and teksayi-s3.
    write/ sayi-s1'sayısı' teksayi-s2 've' teksayi-s5 'arasındadır'.
 else.
    write/ sayi-s1'sayısı' teksayi-s2 've' teksayi-s5 'arasında DEĞİLDİR.'.
    endif.

Programın Çıktısı:

59

Else İf Örneği :

60

REPORT  ZORNEK4.
  databegin of sayi,
              s1 value '1',
              s2 value '2',
              s3 value '3',
              s4 value '4',
              s5 value '5',
              end of sayi,
        begin of teksayi,
              s1 value '1',
              s2 value '3',
              s3 value '5',
              s4 value '7',
              s5 value '9',
              end of teksayi.
 if sayi-s5 teksayi-s5write/ sayi-s5'=' ,teksayi-s5.
 elseif sayi-s4 teksayi-s4write/ sayi-s4'=' ,teksayi-s4.
 elseif sayi-s3 teksayi-s3write/ sayi-s3'=' ,teksayi-s3.
 elseif sayi-s2 teksayi-s2write/ sayi-s2'=' ,teksayi-s2.
 elseif sayi-s1 teksayi-s1write/ sayi-s1'=' ,teksayi-s1.
 else.                        write'Hiçbir sayı eşit değil.'.
 endif.

61

 

Program Çıktısını Yerel Dosyaya Kaydetme (sap-abap)

 

♦ Program Çıktısını Yerel Dosyaya Kaydetme :

Programımızın çıktısını almak için daha önce oluşturduğumuz ‘zornek1’ programını açıyoruz.

52

F8 ile programı çalıştırıyoruz. Tekrar F8 e basarak girilen veriler ile programın çıktı ekranına geliyoruz ve
Sistem > Liste > Sakla > Yerel Dosya ‘ yı seçiyoruz.

53

54

Burada istediğimiz formatı seçiyoruz. .txt standart olarak seçili gelmektedir.

56

Kaydedilecek yeri belirleyip, dosya adını veriyoruz ve üret butonu ile istenilen yere kaydımızı yapıyoruz.

57