Temel ABAP Eğitim Kılavuzu

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 22

Temel ABAP Eitim Klavuzu

Yazan: Kerem Kseolu

Giri
Bu dokman, temel ABAP eitimi verecek olan danmanlar iin bir klavuz niteliinde
hazrlanmtr. Eitim srasnda bu klavuzun izdii yola ve sralamaya sadk kalmanz tavsiye
edilir. rencilerin bilgisine ve sorularna gre inisiyatif kullanabilirsiniz.

ikonu, renciye verilecek devleri iaret eder. Eitimin kendisi kadar, rencinin rnek zmesi de
nemlidir. Bu yzden; renciye, dokmanda belirtilenden daha fazla dev vermeniz daha iyi olacaktr.
Eer eittiiniz kii bir programc deil de modlc ise, devleri vermenize gerek yoktur.
ikonu, sz konusu baln ABAP programclarn ilgilendirdiini gsterir.
ikonu, sz konusu baln modl danmanlarn ilgilendirdiini gsterir.

Eitim srasnda eksik / yanl grdnz noktalar veya ekstradan zdnz rnekleri
dokman ierisinde farkl bir renkte yazarak dahil etmeniz ve eitim bittikten sonra
Supervisornza gndermeniz, ilerideki eitimlerin kalitesini arttrmak ve ieriini zenginletirmek
asndan faydal olacaktr.

Temel BC Bilgisi
Bu konunun amac, SAP deki gelitirme ortamnn yapsn ve erevesini tantmaktr.
Kodlamaya ve teknik detaylara girmekten ziyade, ekranlarn dolalaca genel bir tur olarak ele
alnmaldr.

Gelitirme Snf
SE80 ekran Gelitirme snf nedir?
Bu ekrana girerek, rnek bir gelitirme snf gsterin ve gelitirme snfnn altna ortak amaca
hizmet eden nesnelerin balandnn zerinde durun. Her bir gelitirme nesnesi mutlaka bir
gelitirme snfna balanr.

Bir gelitirme snfnda ne gibi eler yer almaktadr?


Gelitirme snf altna program, fonksiyon, tablo, ilem kodu, snf gibi farkl elerin
balanabildiini anlatn.

Bir gelitirme snf ne zaman ve neden yaratlr?


Ama, gelitirme nesnelerini mantkl bir ekilde gruplamaktr. Baz mteriler her bir modl iin
ayr bir gelitirme snf amay tercih eder. Bazlar konu baznda gelitirme snf aar. Birok
program, tablo ve fonksiyon ierecek yeni bir Zli modl hazrlanyorsa, bu modle tek bir
gelitirme snf amak gerekebilir. Rollout / Upgrade projelerinde tek bir gelitirme snf ap
btn yeni gelitirmeleri orada toplamak tercih edilebilir.
renci, kendine ait bir gelitirme snf yaratsn. Bu snf, yeni yarataca bir Transport Request
iine atsn.

Program
SE38 ekran Program nedir?
Bu ekrana girerek rnek birka program gsterin. Programn amac, SAP ierisindeki eitli
grevleri kullancnn gerekletirmesini salamaktr.

Ne tr programlar vardr?
Rapor (Executable) & diyalog (Module Pool) programlar olduunu syleyin. rnek bir rapor ve
diyalog ekran gsterin. Raporlarn genel amacnn veri grntleme, diyalog programlarnn ise
kullancdan veri alp kayt atma olduunu belirtin bunun genel bir kural olmadn, kayt atan
raporlar veya sadece veri grntleyen diyalog programlar olduunu anlatn.

Bir program neler yapabilir?


Bir program ile neler yaplabileceini rnekler erevesinde anlatn.

Veri okuma: Malzeme belgelerini tablolardan okuyan program


Veri yazma: altrma bilgilerini bir gnlk dosyasnda saklayan program
Veri grntleme: Mteri baznda siparileri listeleyen program
Dosya ykleme: Dardaki bir HR sisteminden maa bilgilerini ykleyen program
Dosya indirme: deme emirlerini bankalara gndermek zere metin dosyasna indiren
program
Kullancdan girdi alma: FB01 ekran
Toplu girdi ilemleri: Ay sonunda muhasebe belgesi yaratan program

Fonksiyon
SE37 ekran fonksiyon nedir?
rnek bir fonksiyon aarak, bir fonksiyonun yapsn anlatn. Importing / Exporting gibi
parametreleri zerinde durun. Fonksiyon grubu fonksiyon balantsna deinin.

Fonksiyon neden yazlr?


Fonksiyon yazma amac, deiik programlar arasndaki ortak bir algoritmay merkezi bir yerde
toplamaktr. Ayn iin Include dosyalar ile de yaplabileceini aklayn.
Fonksiyonun fark, daha zerk bir yap sunmasdr. Ayn amaca hizmet eden birden fazla
fonksiyonun bir fonksiyon grubu iinde kendi global deiken & formlaryla birlikte tam ve zerk
bir yap oluturabileceini anlatn. rnek olarak; SALV (ALV fonksiyonlar) grubunu SE80de
gsterin.

Snf
SE24 ekran snf nedir?
rnek bir snf aarak, bir snfn yapsn anlatn. Method / Property kavramlarndan bahsedin.
Object Oriented Programming kavramlarndan bahsedin.

Snf neden yazlr?


Fonksiyon yazma sebepleri ile paralellik kurun ve snf kullanmann avantajlarn belirtin.
Fonksiyon yerine tercih edilmesi gerektiini belirtin (RFC, WorkFlow gibi zel durumlar hari).

lem Kodu
SE93 ekran ilem kodu nedir?
lem kodu; programlara ve ekranlara kolay ulam salayan kodlardr. Menye alternatiftir.
Program, diyalog ve parametre ilem kodlarndan bahsedin. Birka rnek ilem kodu gsterin.

Mesajlar
SE91 ekran mesaj nedir?
Mesajlar, programlar ierisinden arlp kullancya gsterilebilen iletilerdir. Farkl programlar
tarafndan ortak kullanlabilir, tercme edilebilir ve parametre alabilirler (&1 &2 gibi). Mesaj
snflarndan bahsedip, birka rnek mesaj gsterin. Uzun metinleri gsterin, parametre eklemeyi
retin. Uzun metinlerin tercmesinin SE63te olduunu gsterin.
renci, kendi bana birka tane mesaj yaratsn. Bu mesajlar ngilizce diline tercme etsin.

Tablolar
SE11 ekran tablo nedir?
Tablolar, standart bir biimde veri tayan yaplardr. rnek birka tablo gsterin. Tablo
Structure View arasndaki farklara deinin.

Tablo hiyerarisi
Table Field Data Element Domain yapsndan bahsedin. Domain, programcnn
tanmlad bir veri tipidir. Data Element, Domaini sarar ve farkl dillerde metin atamay mmkn
klar. Field, Data Elementi saran tablo alandr.
Ayn Domaini kullanan birok Data Element; ayn Data Elementi kullanan birok Field olabilir.

Genel Veritaban Mant


Tablolar arasndaki ilikileri genel olarak anlatn. Key kavramndan ve Public & Private Key
kavramlarndan bahsedin.

Tablo Tespiti
F1 F9 ynteminden bahsedin. Where Used List ile bir Data Elementin veya Domainin
kullanld tablolarn nasl bulunabileceini gsterin.

Rapor Gelitirme
Bu konunun amac, programcya rapor gelitirmeyle ilgili temel beceriyi kazandrmaktr.

Raporlarn Genel Yaps


Bir raporun genel olarak nasl bir yapya sahip olduunu, detaylara girmeden anlatn. Tablo
tanm, veri tanmlama, sein ekran, ak mant ve Form srasnn izlenmesi gerektiinden
bahsedin. lk Hello World programn birlikte yazn.

Hello World

renci, ekrana haftann gnlerini alt alta yazdran bir program yazsn.

Temel Veritaban Sorgular


Select
Veritaban balantsndan ve SELECT * ENDSELECT mantndan bahsedin. SELECT
komutunun amacnn, tablodan veri ekmek olduunu anlatn.

Select

renci, T001 tablosundaki btn irket kodlarn ve irket kodu metinlerini dkecek bir program
yazsn.

Koullar
Sorgularda koullarn WHERE komutu yardmyla nasl kullanldndan bahsedin. WHERE
sonrasndaki koullarn parantezler yardmyla gruplanabileceini anlatn.

Kosullar

renci; MAKT tablosundan, dili TR veya EN olan btn malzeme metinlerini ve malzeme kodlarn
dksn.

Alan Belirleme
Bir sorguda, ie yarayacak alanlarn nasl belirtilebileceini anlatn. Belirtilmeyen alanlarn
SELECT ENDSELECT arasnda kullanlamayacan belirtin. Alan belirtmek, performans
arttracaktr.

Alan Belirleme

renci, KNA1 tablosundaki kod ve isimleri listeleyen bir program yazsn. Sorgu ierisinde semek
istedii alanlar belirtsin.

Sralama
ORDER komutu yardmyla dnen verilerin nasl sralanabileceini anlatn. DESCENDING
yardmyla ters sralanabileceini belirtin.

Siralama

Ters Siralama

Ters ve Duz

renci, LFA1 tablosundan btn satclarn kodlarn ve isimlerini listeleyen bir program yazsn.
Liste; satc koduna gre artan, satc adna gre azalan srada olsun.

Veriler
Temel veri tanmlama
Verilerin kullanm amacndan bahsedin. DATA, TYPE ve LIKE komutlarn tantn. ABAP
ierisindeki temel veri tiplerini tantn (C, I, N, P). Global ve yerel deikenler arasndaki fark
anlatn. GFD_ LFD_ gibi isimlendirme standartlarndan bahsedin.
Programlarn metin havuzlarndan da bahsedin ve TEXT-001 eklinde metin kullanmann
avantajlarn anlatn (merkezilik, tercme).

Veri Tanimlama

SY nesnesinden ksaca bahsedin.


Program; belli bir malzemenin adn ve l birimini MARAdan, nceki dnem kapan stok miktarn
ve deerini MBEWden, ilgili irket kodunun para birimini T001den ekip birer deikene atasn ve ekrana
dksn. rencinin seim ekran kullanmasna u noktada gerek yok, malzeme kodu ve irketi kodunu
Hard Coded girebilir.

Internal Table kullanm


Internal Table kavramn anlatn hafzada duran tablo diye bahsedebilirsiniz. Internal Table
tanmlama yollarn anlatn. Header Line kavramndan bahsedin. APPEND ve LOOP komutlarn
tantn. MODIFY ve DELETE komutlarna deinin. REFERENCE INTO kullanmn
gsterebilirsiniz.

Internal Table

Internal Table ierisinde HEADER LINE kullanmay gsterin. Bunun yan sra, Header Linesz bir
tabloda LIKE LINE OF komutu yardmyla nasl Loop yaplabileceini anlatn. REFERENCE
INTO kullanmn gsterebilirsiniz. CLEAR ve REFRESH komutlarna deinin.
renci, T001W tablosundaki retim yeri kodlarn ve isimlerini bir Internal Tablea doldurup, sonra
bu deerleri Loop yardmyla ekrana yazdrsn. Internal Tablea aktarm iini SELECT ENDSELECT
arasnda yapsn (SELECT INTO kullanmasn).
Program, TCURC tablosundan btn para birimi kodlarn ve metinlerini toplayp bir Internal Tablea
doldursun. Doldurduktan sonra, A veya T diye balamayan btn kodlar Internal Tabledan silsin. Bu
ilemden sonra, A diye balayan btn kodlarn metnini aaaaa diye deitirsin. Son olarak, Internal
Table ieriini ekrana dksn.

Sorgu Internal Table ilikisi


Bir sorgudan dnen deerlerin Internal Tablea nasl aktarlabileceini anlatn. APPEND ve
COLLECT komutlarnn farkndan bahsedin.

Sorgu - ITAB

Collect

renci, KNA1 tablosundaki btn mterilerin kod ve isimleri bir Internal Tablea toplayp ekrana
dkecek bir program yazsn. Bu noktada SELECT INTO kullansn.
renci, MBEW tablosundaki SALK3 deerlerini BWKEY baznda kmle etsin ve deerleri ekrana
dksn.

Sabitler
Constant kavram zerinde durun. C_ standardn ne karn. Hard-Coded deerlerin mutlaka
Constant olarak girilmesi gerektiini anlatn.

Aralklar
Range kavram zerinde durun. SIGN alannn I / E deerlerini, OPTION alannn EQ, CP, LE,
LT, GE, GT deerlerini tantn. LOW & HIGH alanlarn tantn.
renci; belli bir irket kodu & yla ait olup numaras 1 ve 2 ile balayan btn muhasebe belge
numaralarn BKPFden eksin ve ekrana dksn. irket kodu Constant olmal, yl SY-DATUMdan alnmal,
muhasebe belge numaralar ise bir Range ierisinde belirtilmelidir. pucu olarak, belge numaralarnn
bana 0 koymas gerekebileceini hatrlatabilirsiniz.
renci, iinde bulunulan yln ilk iki aynda kaydedilmi btn malzeme belgelerini listelesin. irket
kodu Constant olmal, yl SY-DATUMdan alnmal, malzeme belgelerinin kayt tarihi ise bir Range ierisinde
belirtilmelidir.

Seim Ekran
Seim ekran kullanma amacnn kullancdan bilgi alarak programlar daha parametrik hale
getirmek olduunu anlatn. rnek bir seim ekran gsterin. Tekli ve aralk eklinde iki tr alan
olduunu gsterin. Seim ekran parametrelerine ait metinlerin nerede belirlendiini gsterin.

Parameters
PARAMETERS komutunu anlatn. P_ standardn gsterin. OBLIGATORY ve DEFAULT
taklarndan bahsedin.

Parameters

Select Options
SELECT-OPTIONS komutunu anlatn. Range ile olan benzerliine dikkat ekin. S_ standardn
gsterin. OBLIGATORY ve DEFAULT taklarnn pek tercih edilmeyeceini syleyin.

Select Options

Dier
INITIALIZATION olayndan bahsedin. BEGIN OF BLOCK WITH FRAME TITLE komutu ile kutu
izmeyi gsterin.

renci, seim ekranndan girilen malzeme aralna ait VVSAL tutarn MBEW tablosundan okuyup,
malzeme bazda kmle edip ekrana dkecek bir program yazsn. pucu olarak sorgudaki IN komutunu
verebilirsiniz.

Cevap

renci, seim ekranndan girilen malzeme aralna ait VVSAL tutarn MBEW tablosundan okuyup,
malzeme bazda kmle edip ekrana dkecek bir program yazsn. Programda, VVSAL deeri 0 olan
malzemeler devre d braklsn.

Cevap

Gelimi Sorgular
e Sorgu Kullanma
ie birden fazla SELECT komutunun kullanlabileceinden bahsedin. Performans asndan
dezavantaj, hata yakalama asndan avantaj getirebileceini belirtin.

Ic Ice Sorgu

renci, MBEW tablosundaki LBKUM deerlerini MATNR ve MEINS baznda kmle etsin ve deerleri
ekrana dksn. MEINS deeri, MARA tablosundan okunmaldr. Bu dev iin, SELECT SINGLE ve i ie
sorgu ipularn verebilirsiniz.

Inner Join
Inner Join ile birden fazla tablodan ayn anda nasl veri ekilebileceini gsterin. rnek olarak
MKPF & MSEG tablolarndan birlikte veri ekin. BSEG gibi Pooled Tablelarda Inner Join
kullanlamayacan anlatn. ok byk bir veri sz konusuysa Join kullanmann hafza hatasna
yol aabileceini syleyin. Debug etmenin daha zor olduunu syleyin.

Outer Join
Inner Join ile ayn ekilde kullanldn, ama 2. tabloda karl olmayan verilerin de geleceini
anlatn.

renci, sistemdeki malzemelerin kodunu ve metnini MARA & MAKT tablolarndan Inner Join
yardmyla ekip listeleyecei bir program yazsn. Malzeme numara aral ve metinlere ait dil, seim
ekrannda parametre olsun.

Temel ABAP Komutlar


Form / Perform
Form kullanmann avantaj, programn iindeki ortak algoritmalar merkezi bir noktaya toplayp
tekrar nlemektir. FORM ve PERFORM komutlarndan bahsedin. Formlarn alabilecei
parametrelerden bahsedin. TABLES USING CHANGING taklarndan ve srasnn nemli
olduundan bahsedin.
SE38 ekrannn Pattern dmesini kullanarak Formlara ait Performlarn koda otomatik olarak ve
doru formatta eklenebileceini aklayn. Formlarn, programlarn ak mantn daha anlalr
hale getirmek iin de kullanldn syleyin.

Form

Parametrik Form

If & Case
If komutunun kullanm amacn ve eklini anlatn. Koullarn parantezler yardmyla
gruplanabileceine deinin ve uzun koullara sahip birka altrma yapn. Case komutunun
getirdii avantajlar gsterin.

If

Program, seim ekrannda bir tarih sorsun. Girilen tarihe gre, kullancnn burcunu bulup sylesin.

Call Function
Fonksiyon armann amacn anlatn. IMPORTING / EXPORTING / TABLES ierisinde
aktarlacak parametrelerin tiplerinin fonksiyonda tanmlanan tiple birebir ayn olmas gerektiini
belirtin. Pattern dmesinin kullanlabileceini gsterin.
SE37 ekrannda * ve F4 yardmyla fonksiyon bulmay retin.

Call Function

Program; MONTH_NAMES_GET fonksiyonunun yardmyla, seim ekrannda verilen dilde btn aylar
listelesin.

leri ABAP Komutlar


Abs
Saynn mutlak deerini alr.

Concatenate
Birden fazla metin tek bir metinde birletirilir. SEPARATED BY taksna deinin.
renci, TEXT-001 TEXT-002 gibi metin eleriyle bir cmle oluturaca bir program yazsn.
Program; kullancnn Login olduu dile gre Trke ve ngilizce destekliyor olsun.

Split
Bir metni belli bir ayra kullanarak iki paraya ayrr.
renci yeni bir program yazsn. Kullanc, seim ekranndan bir FI belge numaras (+irket kodu
+yl) girsin. Program, bu belgeye ait WRBTR tutarlarnn tamsay ve ondalk ksmlarn iki ayr alan haline
getirerek, kalem baznda ekrana dksn.

Pack
Saynn bandaki 0lar temizler.

Unpack
Saynn bana 0 ekler

Strlen
Metin uzunluunu hesaplar.
Bu program, seim ekrannda aralk olarak girilen her bir malzemenin numarasn ve (kullancnn
diline bal olarak) metnini listelesin. 3. bir stunda, malzeme metninin uzunluu yazsn.

ALV
ALV Temelleri
Basit bir ALV program zerinde ALV kullanmnn temellerini anlatn. Gruplama, toplam, ara
toplam, Excel Download gibi zellikleri gsterin. GRID ile LIST arasndaki fark anlatn. Grnt
ekrannda varyant kaydetmeyi retin. Buradaki ama ALV programlamay deil, ALVyi tantmak
olsun.

Temel ALV

ALV Kullanm
Buradaki ama, ALVnin program iinde nasl kullanlacan retmek olsun. Alan katalogu
kavramndan bahsedin ve REUSE_ALV_FIELDCATALOG_MERGE fonksiyonunu tantn. Bu
fonksiyonu kullanabilmek iin, Internal Tablen BEGIN OF END OF eklinde tanmlanm
olmas gerektiini belirtin.

ALV

ALV Olaylar
ALV LISTn TOP_OF_LIST, END_OF_LIST ve USER_COMMAND olaylarndan bahsedin. SALV
ierisindeki STANDARD statsn programa kopyalayarak kendi dmelerini eklemeyi retin.
Program, seim ekranndan girilen irket kodu & mali yl & kayt tarihi aral & belge numaras
aralna uyan btn malzeme belgelerini eksin ve kalemlerini ALV LIST formatnda ekrana dksn.
Raporun banda (TOP_OF_LIST) irket kodu ve ad, sonunda ise (END_OF_LIST) geri dnen kayt says
yazsn. SAVE dmesine tklandnda, kullancya POPUP ile HELLO metni gsterilsin. pucu olarak,
POPUP_TO_DISPLAY_TEXT fonksiyonunu kullanmasn syleyebilirsiniz.

Dier Gelitirmeler
Tablo
Tablolar
SE11 ekrann ve tablo yaratmann temellerini anlatn. Birlikte bir tablo yaratn ve INSERT &
UPDATE & DELETE komutlaryla bu tablodaki verileri modifiye edecek rnekler yapn. Key
alanlarnn anlamn ve neminin zerinde durun. Field Data Element Domain zincirinin iyice
anlaldndan emin olun. Tabloda MANDT alannn mutlaka bulunmas gerektiini syleyin. Bir
tablo ierisine bir dier tablo / yapnn Include edilebileceini gsterin. Tablo bakm ekran
yaratmay retin.
renci; iinde ID, ad, soyad ve doum tarihi bulunan bir tablo yaratsn. Bu tabloya bir bakm
ekran yaratsn ve bakm ekranna bir ilem kodu balasn. Tabloya ilem kodu araclyla birka kayt
girsin.

Yaplar
SE11 ekranndan yap (Structure) yaratmay retin. Yarattnz yapy referans alan bir Internal
Table ieren bir rnek yapn.
renci, MARA tablosundaki baz alanlar ieren bir yap yaratsn. Yazaca programda, bu yapya
referans verilerek yaratlm bir Internal Table olsun. Bu Internal Table MARAdan doldursun ve ALV
kullanmadan ekrana dksn.

Tablo Tipi
SE11 ekrannda tablo tipi (Table Type) Yaratmay retin. Yarattnz tablo tipini referans alan
bir Internal Table ieren bir rnek yapn.

Fonksiyon
Fonksiyon yazma
Fonksiyon yazmann temellerini anlatn. Birlikte bir fonksiyon yazn. IMPORTING / EXPORTING
parametrelerinin hepsi dolu olsun. TABLES parametresinin artk geersiz olduunu belirtin. RFC
fonksiyonlarnn dardan Connector / Web Service zerinden arlabildiini ifade edin.
Yazdnz fonksiyonu bir program iinden arn.
renci, gnderilen belge numaras & yl & irket koduna ait FI kalemlerini dndren bir fonksiyon
yazsn. Bu fonksiyonu; seim ekranndan girilen yl & irket & belge numaras iin arp kalemleri ALV
formatnda ekrana dken bir program yazsn.

Hata yakalama
EXCEPTIONS blmn tantn. inde RAISE komutu geen bir fonksiyon yazp rnek bir
programdan arn. Fonksiyonun dndrd hatalar SY-SUBRC ile yakalayabileceinizi
gsterin. EXCEPTIONS blmn programa koymazsanz herhangi bir hatada Short Dump
alacan gsterin.
renci, gnderilen malzeme belge numaras & yla ait malzeme kalemlerini dndren bir fonksiyon
yazsn. Bu fonksiyonu; seim ekranndan girilen yl & malzeme belgesi iin arp kalemleri ALV
formatnda ekrana dken bir program yazsn. Eer belge veritabannda bulunamazsa, fonksiyon bir hata
retiyor olsun. Program bu hatay SY-SUBRCye bakarak yakalasn ve ALVnin END_OF_LISTinde
gstersin.

Snf
Snf yazma
Snf yazmann temellerini anlatn. Birlikte SE24 ilem kodunda bir snf yazn. Snf ierisinde
Method / deiken tanmlayn ve Public / Private kavramlarndan bahsedin. Method ierisindeki
parametre trlerini gsterin. Snf program ierisinde kullanmay, fonksiyonel format ne
kararak gsterin.
renci, gnderilen belge numaras & yl & irket koduna ait FI kalemlerini dndren bir Method
yazsn. Bu Methodu; seim ekranndan girilen yl & irket & belge numaras iin arp kalemleri ALV
formatnda ekrana dken bir program yazsn.

Hata yakalama
EXCEPTION ve EXCEPTION CLASS kavramlarndan bahsedin. EXCEPTION kullanld
durumda hatann fonksiyon gibi yakalandn, EXCEPTION CLASS kullanld durumda ise
TRY...CATCH kullanldn anlatn.
renci, gnderilen malzeme belge numaras & yla ait malzeme kalemlerini dndren bir Method
yazsn. Bu fonksiyonu; seim ekranndan girilen yl & malzeme belgesi iin arp kalemleri ALV
formatnda ekrana dken bir program yazsn. Eer belge veritabannda bulunamazsa, Method bir hata
retiyor olsun (Exception Class). Program bu hatay TRY...CATCH ile yakalasn ve ALVnin
END_OF_LISTinde gstersin.

Inheritence
Super Class ve Final Class kavramlarndan bahsedin. Bir snftan bir baka snf tretilebileceini,
Parent snftaki deiken ve Methodlarn Child snf tarafndan devralndn, Methodlarn
Redefine edilebildiini gsterin. Super-> taks ile Parenta ait kodlarn altrlabildiini gsterin.
Child snfn Parent snfa ?= ile Casting yaplabildiini gsterin.
renci, BANKA adnda bir snf olutursun. Bu snf, demeleri okuyan ve Download eden
Methodlar iersin. Bir de dosya formatn oluturan Methodu olsun. Garanti, Akbank ve Yap Kredi iin 3
alt snf tretin ve format Methodunu ezip sz konusu bankann formatnda dosya oluturun. SE38de
yazaca program, seim ekranndaki bankaya gre doru snf yaratp BANKA referansl ana snfa Cast
etsin ve onun zerinden verileri okutup, formatlatp Download etsin.

Dier Kavramlar
Interface ve Abstract Class kavramlarndan bahsedin. Bir snfn sadece bir Parent snf
olabildiini, ama birden fazla Interface uygulanabildiini gsterin.

Toplu Girdi
Toplu Girdi Temelleri
Toplu girdinin ekran simlasyonu anlamna geldiini anlatn. SM35de bir toplu girdi kayd yapn
ve bunun arkasnda yaplan kaytlar inceleyin. Ekran, alan ve OK_CODE arasndaki fark anlatn.
OK_CODEun, hemen ncesindeki ekrana ait ve bir sonraki ekrana kadar geerli olduunu
vurgulayn.

Call Transaction
Basit bir Batch Input kayd yapn ve bu kayda uygun bir program yazn. Bu program, Batch
Inputu Call Transaction komutuyla yrtyor olsun. A, N ve E modlar arasndaki fark anlatn.
OPTIONS FROM taksn tantn ve Dynpro Default Sizen nemini anlatn. MESSAGES INTO
taksn tantn ve Batchden dnecek mesajlar yakalayn. MESSAGES INTO taks ile,

kaydedilen bir belgenin numarasn alma veya ortaya kan hatay yakalama gibi ilerin
yaplabileceini anlatn.

SM35 oturumu yaratma


Basit bir Batch Input kayd yapn ve bu kayda uygun bir program yazn. Bu program, Batch Input
iin SM35den yrtlecek bir oturum yaratyor olsun. Batch Inputu yrtn ve yarsnda kesip
tekrar balatn. Tamamlanamayan admlarn tekrar ilenebildiini gsterin.
renci, ekrandan belge numaras & mali yl & irket kodu bilgisi verilen bir FI belgesini FB08de
toplu girdi ile ters eviren bir program yazsn. Programn Call Transaction / SM35 ile almas seim
ekranndan belirlenebiliyor olsun. Call Transaction yaplrsa, geri dnen mesajlar WRITE ile ekrana
dklsn. SM35 yaplrsa, yaratlan toplu girdi oturumunun ad MESSAGE komutuyla grev ubuunda
grntlensin.

User Exit
User Exit kavramndan ve ne ie yaradndan bahsedin. CMOD & SMOD ekranlarn gsterin ve
(varsa) sistem zerinde aktif olan birka User Exit gsterin. User Exitlerin genelde fonksiyonlar
ierisinde bulunduunu ve Import & Export parametrelerine baklarak ie yarayp yaramadnn
anlalacan belirtin.

BADI
BADI kavramndan ve ne ie yaradndan bahsedin. SE18 / SE19 ilem kodlarn gsterin ve
(varsa) sistem zerinde aktif olan birka BADI gsterin. BADI oluturma mantn anlatn ve
birden fazla Class tretildii durumda hepsinin birden alacan syleyin.

Numara Aral
SNRO ilem kodunu gsterin ve numara aral yaratmay retin. Birlikte, bu aralktan
NUMBER_GET_NEXT fonksiyonu yardmyla say ekip ekran gsteren bir program gelitirin.
ekilen saynn her seferinde bir arttna dikkat ekin.
renci, Zli bir tablo ve numara aral yaratsn. Tabloda MANDT, ID, ERNAM, ERDAT, UZEIT
alanlar olsun. Yazaca program her altrldnda; bu Zli tabloya numara aralndan alnm yeni bir
say ve altrlma bilgileri kaydedilsin.

Debug
Bu blmn amac; renciye Debug ile ilgili temel becerileri kazandrmaktr. rencinin, en
azndan rapor ve fonksiyonlar Debug edebilir hale gelmesi gerekmektedir.

Debuga Giri
Debug Balatlmas
/H komutuyla programn nasl Debug edilebileceini gsterin. Fonksiyonlarn Debug modunda
dorudan nasl test edilebileceini gsterin. Popup ekranlarnn nasl Debug edilebileceini
aklayn.

popup.txt

Deerlerin Grntlenmesi
Deerlerin ekranda nasl grntlendiini gsterin. Alan, tablo ve Header Line kavramlar
zerinde durun.

Navigasyon
Debug ekrannn zerinde yer alan Watchpoints, Calls gibi blmleri tantn.

Debug Teknikleri
BreakPoint Ynetimi
Break-point ve break <USERNAME> komutlarn gsterin. Programlara kod yazmadan Break
Point eklemenin yolunu gsterin. Kodu Debug ederken yeni Break Point koymay, eklenen Break
Pointleri kalc klmay gsterin. Deactive All / Delete All gibi komutlar gsterin.

Deer Deitirme
Ak esnasnda deiken deerleriyle nasl oynanabileceini gsterin.

Watchpoint
Deikenlere Watchpoint koymann mantn anlatn.

Break On Command
Belli bir komut altrldnda veya fonksiyon arldnda programn nasl durdurulabileceini
gsterin. Bunun zellikle hata mesajlarnda nasl ie yaradn anlatn.

Layout Gelitirme
Sapscript
SE71 Sapscript kavram
renciye Sapscriptin ne olduunu anlatn. SE71 ekranna girip birka Sapscripti birlikte
inceleyin. Page, Window, Page Window kavramlarn tantn. Paragraph, Font gibi blmlerin
zerinden gein. llendirme mantn anlatn.

Sapscript gelitirme
Birlikte basit bir Sapscript yaratn. Bir Header, bir de Main blm olsun. Header iinde /E diye
tanmlanm iki blm, Main blmnde ise bir blm olsun. Bu blmlerde yer alan deikenleri
dolduracak bir program yazn. OPEN_FORM, WRITE_FORM ve CLOSE_FORM fonksiyonlarn
tantn.

Temel Sapscript kavramlar


Sapscript iinde deiik paragraflarn nasl uygulanacan gsterin. If ve NEW-PAGE komutlarn
anlatn ve birlikte uygulayn. ,, ile TAB yaplabileceini, &GV_TEST& eklinde deiken
yazlabileceini anlatn. NEXT PAGE kavramn ve nasl altn anlatn. Ayn pencereleri farkl
sayfalar zerine koyarak nasl bir etki yaratacan gsterin.
renci, seim ekranndan belge & yl & irket kodu verilen bir muhasebe belgesinin baz balk
bilgilerini tepede ve kalem bilgilerini aada grntleyen bir Layout & program hazrlasn.

Gelimi kavramlar
Sapscript iinde adres yazdrmay retin. IF ve PERFORM komutlarn kullanmay retin.
Parasal alanlarn leklendirerek nasl yazdrlabileceini gsterin.

Sapscript Sembolleri

Sapscript Kontrol
Komutlar

renci, seim ekranndan numaras verilen bir mterinin adresini Sapscript ile yazdran bir
program yazsn.

SmartForms
SMARTFORMS SmartForm kavram
renciye Smarformun ne olduunu anlatn. Sapscript ile ayn amaca hizmet ettiini, ama daha
pratik bir ekran sunduunu belirtin. Yeni gelitirmelerde Smartformu tercih etmesi gerektiini
belirtin. SMARTFORMS ekranna girip birka formu birlikte inceleyin. Style kavramn ve
SmartForm ile ilikisini anlatn. Smartformlarn giri k parametrelerini ve bunun fonksiyonlar
ile olan benzerliini gsterin.

SmartForm gelitirme
Smartforma tablo gndermenin yolunun Table Type / Structure yaratmaktan getiini anlatn.
Birlikte basit bir SmartForm yaratn. Bir Header, bir de Main blm olsun. Header iinde
IMPORTING ile gnderilen bir metin, Main iinde ise TABLES ile gnderilen bir tablo gsterilsin
bu erevede, Text ve Table elerinden bahsedin. Bu formu aracak bir program yazn.

SSF_FUNCTION_MODULE_NAME fonksiyonundan bahsedin ve programdan Smartformu


arn.

Temel SmartForm kavramlar


Graphic, Text, Address, Program Lines kavramlarn anlatn. Loop esini gsterin ve Table ile
olan benzerliine dikkat ekin. Btn bu kavramlar ieren bir rnei birlikte yaratn.

Gelimi kavramlar
kinci bir sayfa ieren bir SmartForm yaratn. Bir sayfada yaplan pencere modifikasyonunun dier
sayfadaki pencereyi de etkilediini gsterin.
renci, seim ekranndan belge & yl & irket kodu verilen bir muhasebe belgesinin baz balk
bilgilerini tepede ve kalem bilgilerini aada grntleyen bir Layout & program hazrlasn. Belge
balnda, (varsa) belgenin ait olduu satc veya mterinin adres bilgisi de olsun. Eer satc varsa
tepede SATICI FATURASI, mteri varsa MTER FATURASI yazsn.

Diyalog Gelitirme
Bu konunun amac, programcya diyalog programlama ile ilgili temel beceriyi kazandrmaktr.

Temel Kavramlar
Program oluturma
Birlikte Module Pool tipinde bir program yaratn. Ekrana basit birka nesne ekleyin, ekrana bir
ilem kodu balayn ve program yrtn. Programlara SAPGUI veya (ITS zerinden) Web
taraycs / mobil cihazlardan eriilebildiini belirtin ve BSP / Web Dynpro alternatiflerinden
bahsedin.

PBO / PAI
PBO / PAI mantndan bahsedin. rnek bir program zerinde hata ayklama ekranna girerek
PBO / PAInin ne zaman ve nasl aktive olduunu gsterin. Ara ubuu zerine ekleyeceiniz 12 basit dme ile USER-COMAND, ve BACK & EXIT dmeleri ile EXIT-COMMANDI PAI
ierisinde kullanmay retin.
renci; iki metin kutusu ve bir KOPYALA dmesi ieren bir diyalog yaratsn. Metin kutusuna bir
yaz yazp KOPYALA dmesine tklandnda; metin, dier kutucua kopyalansn.

Rapor ekranlar
Raporlar iinde de ekran oluturup arabileceinizden bahsedin. Executable bir program
oluturup, program ierisinde bir ekran yaratn. Program iinde CALL SCREEN komutunu
kullanarak yarattnz ekran arn. PBO / PAI mantnn deimediini gsterin.
Program ierisinde bir de Popup ekran yaratn. CALL SCREEN STARTING AT ENDING
AT komutuyla Popup ekran arn.
renci, seim ekrannda girilen metni aynen grntleyen bir diyalog ekran olutursun.

Ekran modifikasyonu
PBO / PAI iindeki komutlar yardmyla ekrandaki eleri grnr / grnmez veya eriilebilir /
eriilemez hale getirebildiinizi gsterin.
renci, Belge Numaras & Mali Yl & irket Kodu bilgilerini ierecek kutucuk ve Belgeye Git
yazsna sahip bir dme ieren bir ekran yaratsn. Kutucuklar doldurulup Entera basldnda; program,
byle bir belge olup olmadn kontrol etsin. Belge yoksa, Belgeye Git dmesi tklanamaz hale gelsin.
Belge varsa, dme tklanabilir hale gelsin.

Gelimi Nesneler
Subscreen
Subscreen kavramn anlatn. Subscreenlerin kendi zerk PBO / PAIleri olduundan bahsedin.
Subscreen kullanma amacnn, farkl ekranlarda ortak olarak kullanlacak e gruplarn merkezi
hale getirmek olduunu syleyin. Yeni bir Module Pool program iinde bir Screen, bir de Screen
iinde Subscreen yaratn, her iki ekranda da eitli eler olsun. Ara ubuuna ekleyeceiniz bir
dme yardmyla Debuga girin ve PBO / PAIlerin hangi srayla & nasl altn birlikte
inceleyin.

Table Control
Table Controlu gsterin ve amacnn kullancya kalem mantnda veri girii yaptrmak olduunu
anlatn. Salt veri gsterme amacyla ALVnin de diyalog iine gmlebileceini (sadece) syleyin.
Birlikte Table Control ieren bir rnek yapn.
renci, mali yl & irket kodu girilebilecek iki kutucuk ve iki adet Table Control ieren bir ekran
yaratsn. Mali yl & irket kodu girilip dmeye tklandnda, o yl ve irket koduna ait btn muhasebe
belgeleri soldaki tablo kontrolnde listelensin. Soldaki tabloda bir(ka) kayt seilip bir dier dmeye
tklandnda, seilen belgelere ait kalemler sadaki tabloda listelensin.

Tabstrip
Tabstrip kontroln gsterin. Her bir TAB ierisinde ayr bir Subscreen bulunmas gerektiini
anlatn. Birlikte, iinde farkl eler bulunan bir Tabstrip barndran bir rnek yaratn.
renci; malzeme numaras girilebilecek bir kutu ve Subscreen ieren bir Tabstrip yaratsn.
Kutuya bir malzeme numaras girilip dmeye tklandnda; malzeme metni farkl Subscreenler ierisinde
Trke, ngilizce ve Almanca dilinde grntlensin.

OSS
Not Arama
OSSe nasl girileceini gsterin. Not aramay retin. Bulunan nottaki sistem / Patch seviyesi ile
sz konusu sistemin nasl karlatrlacan gsterin.

OSS Uygulama
OSS uygulamann 2 ynetmini gsterin (dorudan uygulama / SNOTE). Dorudan yaplan
mdahelelerde Assistant kullanmann nemine deinin. SNOTE uygulamasnda notun tamamnn
otomatik olarak uygulanamayabileceinin zerinde durun.

SNOTE Kullanm
Klavuzu

Web Gelitirme
Bu konunun amac, programcya Web tabanl programlama ile ilgili temel beceriyi kazandrmaktr.

Karlatrma
ITS, BSP ve Web Dynpro alternatiflerinden bahsedin. BSPnin eski (ASP) ve DynPronun yeni
(ASP.NET) olduundan bahsedin. BSPde daha fazla kodlamaya karlk daha az kod ve daha
esnek formatlarn mmkn olduunu, Web Dynproda ise daha az kodlama olmasna karlk
standart kontrolleri kullanmak gerektiini anlatn.

Alternatif Teknolojiler
BSP
BSP Taglerini gsterin. ABAP ve BSPnin i ie kullanldn gsterin. Ekranlar aras veri
transferi iin request->get_form_field kullanmn gsterin ve Request nesnesinden bahsedin.
renci; ilk ekranda sorulan irket kodunun detaylarn ikinci ekranda listeleyen rnek bir uygulama
gelitirsin.

Web Dynpro
Context, Window, View kavramlarndan bahsedin. Flow ve Grid Layout alternatiflerinden
bahsedin. Sayfa zerindeki (WDOINIT gibi) kritik Methodlar gsterin. TextBox, Button ve Table
kontrollerini, arkalarna deiken balama mantyla birlikte anlatn. Group ierisinde Parameter
ve Select Option kullanmn gsterin. Fonksiyon armann kolay yolunu gsterin. User
Component kavramna deinin.
renci; bir metin kutusu ve bir Buton barndran bir ekran yaratsn. Butona tklandka, metin
kutusundaki say artsn.

Bitirme Projeleri
Fihrist projesi. Bu projede; ad, soyad, telefon numaras ve doum tarihi girilebilecek bir fihrist
sistemi gelitirilecektir. Verilerin girii, gncellenmesi ve silinmesi diyalog zerinde yaplacaktr. Her bir
kayda ait tekrarsz bir ID alan bulunmaldr (Number Range ile zlebilir). Fihrist tablosundaki kriterlere
gre listeleme yaplabilen bir de ALV destekli rapor gelitirilecektir.

Saysal Loto projesi. Bu projede; tarih baznda Saysal Loto sonularnn girilebilecei bir tablo
yaratlacak ve tablo bakm, kullanc tarafndan SM30 zerinden yaplabilecektir. Tarih aralna gre
ekili sonularn listeleyen bir ALV raporunun yan sra, bir TXT dosyasndan yklenecek loto
tahminlerinin her bir tarihte ka tutturmu olduunu listeleyen ikinci bir rapor daha yazlacaktr.

hracat ek verileri projesi. Sat belgesi baznda (VBAK) hracat Gmrk Numaras, Tat
Numaras ve hracat Yetkilisi bilgilerinin saklanaca bir Zli tablo yaratn. Bu alanlarn metinleri (gmrk
ad, tat ad, yetkili ad); 3 farkl tabloda ana veri eklinde saklanyor olmal. Ana veri tablolarnn bakm,
SM30 ekrannda yaplabiliyor olmaldr. Belge bazndaki ihracat verileri, bir diyalog ekran zerinde Ekle /
Gncelle / Sil mantyla modifiye edilebiliyor olmaldr. Bir baka raporda; kullanc sat belgesi numaras
girerek baz VBAP kalem bilgilerini listeleyen bir Layout yazdrabiliyor olmaldr. Bu Layoutun balk
ksmnda, Zli tabloda bulunan ihracat verileri ve metinleri de bulunmaldr.

Toplu ters kayt program. Bu program, seim ekranndan girilen parametreler dorultusunda
(ters kayd bulunmayan) muhasebe belgelerini okuyacak ve ALV formatnda ekrana dkecektir. Ters kayd
zaten olan belge numaralar, END_OF_LISTde bilgi amal gsterilecektir. Kullanc, diledii belgeleri
tklayp SAVE dmesine tkladnda, bu belgeler toplu girdi yardmyla FB08de ters evrilecektir.
Herhangi bir belgeyi seip Grntle dmesine tkladnda ise; program, belgeyi FB03de
grntlemelidir.

You might also like