22
Temel ABAP Eğitim Kılavuzu Yazan: Kerem Köseoğlu

Temel ABAP Eğitim Kılavuzu

Embed Size (px)

DESCRIPTION

Bu doküman, yeni başlayanlara ABAP eğitimi verecek kişilere hangi sırayla hangi konuları anlatmaları gerektiği konusunda bir kılavuz niteliğindedir. Aynı zamanda, ABAP'a yeni başlayacak kişiler, konuların sırasını bu dokümanda görebilir.

Citation preview

  • 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 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 1-2 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.