
Merhaba arkadaşlar, bu dersimizde Sap/Erp hakkında kısaca bilgi vereceğim.
Bu derste ;
- Package oluştuşturmayı öğreneceğiz,
PACKAGE : Abapda oluşturduğumuz nesneleri gruplandırmamızı sağlar. Bütün birbiri ile alâkâlı oluşturduğumuz nesneleri tek package altında toplayabiliriz. Daha sonra bunları taşıyabilir veya toplu olarak silebiliriz.
- Request oluşturmayı öğreneceğiz,
REQUEST : Abapda oluştruduğumuz bütün nesneleri taşımak için kullandığımız paket. Request içerisine eklediğimiz bütün herşey requesti taşıdığımız sisteme yüklenmektedir. Ayrıca requestleri bilgisayarımıza indirerek farklı sistemlere de yükleyebiliriz.
- Program oluşturmayı öğreneceğiz.
Bu derste;
1) Programın düzenleme – görüntüleme modu arasında geçişi,
2) Etkin olan ve etkin olmayan sürümler(version) arası geçişi,
3) Programdan başka bir programa fonksiyona vs erişme butonu,
4) Enhancement yapma tuşu,
5) Programın sözdizimi ( kodları , syntax) kontrolü tuşu,
6) Programın aktifleştirilmesi,
7) Programın çalıştırılması,
8) Nesne listesi görüntüleme tuşu,
9) Dolaşma penceresi,
10) Debug ekleme tuşu,
11) External Debug ekleme tuşu,
12) Programa fonksiyon, perform vs. ekleme tuşu,
13) Programın kodlarının belli bir standarda göre düzenleme,
tuşlarını öğreneceğiz.
- Abapta her satır "keyword" yani bir tanımlayıcı ile başlar ve . "Nokta" ile biter.
- Bir satırda birden fazla sözcük yazılabilir.
- Yazılan kodlar büyük küçük harf duyarlı ( Case Sensesive ) değildir.
- Bir yorum satırı yazmak için satırın en başına " * " ( yıldız ) işareti koyulur.
Bu dersimizde abap sistemi içerisinde varsayılan olarak ön tanımlı olan sistem değişkenlerini öğreneceğiz. Yaptığımız işlemlerde bu sistem değişkenleri bizlere yapılan işlemin durumunu bildirir.
Bu dersimizde abap içerisinde kullanılan veri tiplerini öğreneceğiz.
WRITE KOMUTU : Verileri ekrana yazmamızı sağlar.
Bu dersimizde "WRITE" komutu ile verileri ekrana yazdırmayı öğreneceğiz.
Bu dersimizde kullanıcıyı program akışı, sonucu hakkında bilgilendirme yapmak amacıyla mesaj vermeyi öğreneceğiz. Bu dersimizde öğreneceğimiz mesajlar ;
Abap'da 6 adet mesaj tipi vardır ;
S - Durum mesajı : Genellikle işlemin başarılı gerçekleştiğini bildirmek için kullanılır.
E - Hata mesajı : Genelde hata mesajı vermek için kullanılır. Program akışı durdurulur.
W - Uyarı mesajı : Mesaj popup olarak veya durum çubuğunda gösterilir. Uyarı vermek amacıyla kullanılır.
I - Bilgilendirme Mesajı : Mesaj metni popup penceresinde görüntülenir. Program kaldığı yerden akışına devam eder.
A - Sonlandırma : Metin popup penceresinde görüntülenir ve program sonlanır.
X - Short Dump Mesajı : Mesaj metni görüntülenemez, program short dump verir.
Bu dersimizde abap'da checkbox ve radiobutton kullanımını öğreneceğiz.
Kullanıcılardan tek bir seçim yapmalarını istediğimiz durumlarda "Radiobutton" kullanmalıyız.
Kullanıcılardan birden fazla seçim yapmalarını istediğimiz durumlarda ise "Checkbox" kullanmalıyız.
Kullanıcıdan bir değer (text,tarih,saat vs) alacağımız durumlarda veya bir seçim yaptıracağımız durumlarda "Parameters" komutunu kullanabiliriz.
Parameters ile aşağıdaki değerleri tanımlayabiliriz ;
Textbox
RadioButton
CheckBox
Tarih ( Seçimli )
Saat ( Seçimli )
Bu dersimizde Select Options Kullanımını işleyeceğiz.
Bu dersimizde selection screen ekranında basit bir şekilde listbox tasarlamayı öğreneceğiz.
Lisbox ile kullanıcılara sabit , belirlediğimiz değerler arasından bir seçim yapmasını sağlarız. Belirlenen değerler dışında bir değer girişi yapılamaz.
Listbox içerisine varsayılan olarak boş bir değer eklenir. Boş değer eklenmesini istemiyorsak listbox'u zorunlu olarak tanımlamalıyız.
Bu dersimizde domainden referanslı bir şekilde listbox oluşturmayı işleyeceğiz.
Bu dersimizde koşul komutlarından if else kullanımını öğreneceğiz.
Bu dersimizde koşul komutlarından if else kullanımını pekiştireceğiz ve Case When kullanımını öğreneceğiz.
IF - ELSE ; Eğer bir değişkenden fazla değişken ile kriter veriyorsak genellikle if else komutlarını kullanırız. Çok karmaşık ve fazla kriterlerde genellikle if else kullanılır.
CASE - WHEN ; Genellikle tek bir değişkenin farklı değerlerde yapılacağı işlemleri belirtmek istiyorsak bu durumda case-when kullanmamız daha uygun olacaktır.
Bu dersimizde concatanate string işleme komutunu öğreneceğiz.
Concatanate komutu birden fazla string değerini tek bir değişken içerisinde birleştirmeyi sağlar. Birleştirme işlemi yapılırken kelimelerin arasına koyulacak ifadeyi "SEPARATED BY" ile belirtiriz.
Örneğin : 2 adet değişkenimiz var. 1. Değişken : Tayfun , 2.Değişken : DEMİRBAŞ. Biz bu iki değişkeni araya " + " ( artı ) işareti koyarak nasıl birleştiririz bakalım hemen.
CONCATANATE değişken1 değişken2 INTO değişken3 SEPARATED BY '+'.
Yukarıdaki komut bizlere = Tayfun+DEMİRBAŞ değerini verecektir.
Bu dersimizde replace ve translate string işleme komutlarını öğreneceğiz.
Replace ve Translate komutları bir string içerisinde belirlediğimiz karakterlerin güncellenmesini sağlar.
Bu dersimizde search string arama komutunu öğreneceğiz.
Search komutu string değer içerisinde istediğimiz karakterleri bulmayı sağlar.
Bu dersimizde split ve condense komutlarını öğreneceğiz.
Split bir string değeri istediğimiz karakterden bölmeye yarar.
Condense bir string değer içerisindeki baştaki sondaki ortadaki veya bütün boşlukları silmeye yardımcı olur.
Bu dersimizde STRLEN Komutunu işleyeceğiz. STRLEN komutu abap içerisinde metinlerin uzunluklarını bulmamızı sağlar.
Bu dersimizde data element ve domain oluşturmayı işleyeceğiz. Veri tabanı oluştururken ve kodlama içerisinde belirli sabit yapıları birçok alanda ortak olarak kullanmak istediğimizde data element ve domain kullanırız. Detaylı kullanımını eğitimi izleyerek öğrenebilirsiniz.
Bu dersimizde abap içerisinde veri tabanı tablosu oluşturmayı öğreneceğiz.
Bu dersimizde foreign key nedir? ne için kullanılır? nasıl eklenir? sorularının cevaplarını öğreneceğiz.
Bu dersimizde veri tabanı tablosuna bakım ekranı oluşturmayı işleyeceğiz. ABAP da bakım ekranı denen bir kavram vardır. Bu tanım aslında basit olarak, oluşturulan veri tabanı tablosuna el ile manuel olarak veri eklemeyi sağlamak amacıyla tabloyu girişe açmak demektir. Eklenen kayıtlar için tablonun tipine göre "Application" ise yeni bir kayıt eklendiğinde request sormaz, "Customizing" ise yeni bir kayıt eklendiğinde kayıdın tutulacağı request sorar.
İşlem kodları oluşturduğumuz programlara, bakım ekranlarına hızlı bir şekilde erişmemize yardımcı olur. Büyük firmalar genellikle SM30, SE38 gibi işlem kodu yetkilerini çalışanlarına ve bazende danışmanlarına bile vermezler. Bu durumlarda işlem kodu oluşturarak bir programa veya bakım tablosuna atayıp, sadece oluşturduğumuz işlem kodlarına yetki isteyebiliriz.
Bu dersimizde oluşturduğumuz bakım ekranlarına nasıl işlem kodu atayacağımızı öğreneceğiz.
Bu dersimizde kod içerisinde özel olarak structure oluşturmayı öğreneceğiz. Kod içerisinde oluşturduğumuz structure yapılarına sadece o program içerisinden erişebiliriz. Standart oluşturduğumuz structureler gibi her programdan erişemeyiz.
Bu dersimizde abap içerisinde standart olarak bir structure yapısı oluşturmayı öğreneceğiz. Bu structure yapısını diğer dillerdeki class lara benzetebiliriz. İhtiyacımız olan bütün alanları tanımlayarak belirli bir yapı oluşturuyoruz.
Bu dersimizde kod içerisinde belirli bir tabloyu referans alarak structure oluşturmayı öğreneceğiz. Video içerisinde kullandığım excell dosyasına aşağıdaki kaynaklardan ulaşabilirsiniz.
Bu dersimizde SAP içerisinde "SELECT" ifadesinin kaç farklı şekilde kullanılabileceğini göreceğiz.
SQL serverda bulunan bütün select çeşitlerini sap içerisinde maalesef kullanamıyoruz. Çünkü sap'de yazılan sorgu cümleleri aradaki katman sayesinde SAP'nin arkasında kullanılan veri tabanı kumutuna çevrilmektedir. Yani sap de veritabanı olarak istersek SQL Server, istersek ORACLE istersek te HANA kullanabiliriz. Fakat bizim SAP de yazdığımız kodlar hiçbir zaman değişmez. Arkada kullanılan veri tabanına göre çevrim işlemi SAP tarafından ara katman sayesinde otomatik olarak yapılmaktadır.
SAP'nin en harika özelliklerinden biride budur. Fakat bu harika özelliğin bazı kısıtları mevcut. İlk başta yazdığm gibi SQL Server'da ve ORACLE'da bulunan bütün sorgular desteklenmez.
Mesela abap'da right outher join yoktur.
Kullanılan SAP'nin versiyonuna göre kullanılan ifadeler güncellenmektedir. SAP'nin sitesini takip etmenizi tavsiye ederim.
Bu dersimizde bir database tablosuna nasıl kayıt ekleyeceğimizi göreceğiz.
INSERT ile tek bir kayıt eklerken eklediğimiz "Key" alan veri tabanında mevcut ise kayıt eklenmez ve sy-subrc sistem değişkeni "4" yani başarısız olarak döner.
INSERT ile çoklu olarak kayıt eklerken, eklediğimiz "Key" alan veri tabanında mevcutsa DUMP alırız. Bunun için mutlaka INSERT ifadesinin en sonuna "ACCEPTING DUPLICATE KEYS" ifadesini ekleyiniz.
Bu dersimizde veri tabanı tablosuna veri eklemeyi öğreneceğiz.
Bu dersimizde MODIFY komutu kullanımını işleyeceğiz. "MODIFY" komutu öncelikle structure içerisindeki key alanlar ile veri tabanını sorgular, ilgili kayıt veri tabanında var ise key alanları sabit tutarak diğer bütün alanları sizin doldurduğunuz şekilde günceller. Eğer kayıt veri tabanında hiç yoksa ekler.
Burada bir noktaya dikkat çekmek istiyorum. MODIFY kullanımı INSERT kullanımına göre performans olarak yavaştır. Çünkü "INSERT" ifadesinde veri tabanına kayıt direkt olarak eklenir. "MODIFY" ifadesinde ise öncelikle veri tabanında var olup olmadığı kontrol edilir sonra eklenir. Bu performans farkını ancak 100.000 ve üzerinde kayıt eklerken fark edebilirsiniz. Ben 1 milyon üzerinde kayıt eklerken "MODIFY" nediyle bir günümü harcamıştım. MODIFY komutunu INSERT ile değiştirerek ciddi anlamda performans artışı sağlamıştım.
Bu dersimizde delete ifadesini işleyeceğiz.
Bu dersimizde abap içerisinde for all entries komutunun kullanımını öğreneceğiz. For All Entries komutu genellikle inner join yapamadığımız durumlarda elimizde bulunan internal table ile bir database tablosundaki eşleşen verileri almamızı sağlar.
Loop içerisinde select single kullanmak yerine kesinlikle "For All Entries" komutunu kullanın. Performans olarak çok büyük fayda sağlayacaktır.
For All Entries kullanmak da her zaman son çareniz olmalıdır. Birden fazla tablodan veri almak için her zaman ilk önceliğiniz "JOIN" olmalıdır. Çünkü "JOIN" işlemi veritabanı seviyesinde işlenerek sonuç döndürülür. For All Entries de ise kriterlere eklenen veriler string şeklinde birbirine eklenerek veri tabanına gönderilir ve ilgili sonuçlar bu şekilde bulunarak işlenip döndürülür.
Bu dersimizde "LOOP" döngüsü kullanımını işleyeceğiz. Loop komutunun diğer dillerdeki karşılığı "FOR" gibi düşünebilirsiniz. Bir tablo içerisinde satır satır verilerin dönerek işlemeyi sağlar. ABAP içerisinde en çok kullanacağımız döngü loop döngüsüdür. Bu nedenle loop döngüsünü çok iyi öğrenmenizi tavsiye ederim.
Bu dersimizde abapda "DO" döngüsü komutunu öğreneceğiz. Genellikle sonsuz döngü kurulduğu zaman yada belirli sabit sayıda dönüleceği zaman "DO" döngüsü kullanılır.
Bu dersimizde abapda while döngüsü kullanımını öğreneceğiz. Genellikle sonsuz döngü kurulduğu zaman yada belirli sabit sayıda dönüleceği zaman "WHILE" döngüsü kullanılır.
Türkçe Online SAP/ABAP eğitim seti
Bu eğitim ile birlikte SAP/ABAP dilini başlangıç-orta seviye arasında öğreneceksiniz.
Bu eğitimin en önemli hedefi SAP/ABAP öğrenmek, geliştirmek isteyen ve Türkçe kaynak bulamayan kişilerdir. SAP/ABAP yazılım dilinde Türkçe ve kaliteli kaynak bulmak oldukça zor. Özellikle son yıllarda Türkiye'de birçok firmanın SAP kullanımına geçmesi çok fazla ABAP yazılımcısı ihtiyacını doğurmuştur.
Eğitimi alırken aklınıza takılan , anlayamadığınız , yanlış/eksik anlatım olan yerleri bildirirseniz en kısa sürede çözüm sağlayabilirim.
Eğitim içerisinde aklınıza takılan her konu için çekinmeden bana yazabilirsiniz.
Eğitim içerisinde bulunan bütün videolar belirli periyotlarla düzenlenecek ve sürekli olarak güncellenecek , yeni videolar , konular, dokümanlar eklenecektir.
Yeni videolar eklendiğinde mail ile bilgilendirme sağlanacaktır.
Eğitim içerisinde bulunan bütün dokümanlar şahsım tarafından hazırlanmıştır. İzin alınmadan paylaşılamaz.