10 Haziran 2014 Salı
Veri tabanı ile iletişim
21 Mayıs 2014 Çarşamba
Komut satırı kullanımı
- /n: mevcut işlemi sonlandırır ve ilk ekrana yani "SAP Easy Access" ekranına döner.
- /nXXXX: mevcut işlemi sonlandırır ve sanki ilk ekranda "XXXX" işlem kodu girilmiş gibi o işleme gider. Mevcut işlemdeyken "XXXX" işlem kodu ile başka bir işleme geçiş yapılamaz. Bunun için işlem kodunun başına /n özel karakteri girilir. Bu şekilde mevcut ekrandan çıkış yapıldığında, çıkış yapıldığına dair onay mesajı gelmez ve kaydedilmemiş veriler kaybolur.
- /o: yeni bir pencere (oturum) açar ve ilk ekran gelir.
- /oXXXX: "XXXX" işlem kodlu işlemi yeni oturumda açar.
- /nend: Onay mesajı gelir ve olumlu cevap verildiği taktirde tüm oturumlardan çıkar.
- /nex: Onay mesajı olmadan tüm oturumlardan çıkar.
- /i: Birden fazla aktif oturum varsa onay mesajı olmadan aktif oturumdan çıkar. Yoksa onay mesajı gelir ve olumlu cevap verildiği taktirde aktif oturumdan çıkar.
- /* ve /*XXXX: /n gibi çalışır. Bazı durumlarda işlemin ilk ekranı gözükmez (skip initial screen).
SAP Sistemine Giriş
- SAP GUI for Windows
- SAP GUI for Java
- SAP GUI for HTML
SAP Sistemine Giriş (SAP Logon)


- Menu bar, standart toolbar, title bar, uygulama toolbarı, status bar
- Komut alanı
- Sekme sayfaları
- Seçme kutuları, giriş alanları
- Menu bar ekranın en üstünde bulunur. Aşağıya doğru açılır. Uygulamaya göre değişkenlikler gösterir.
- Standart toolbar her SAP ekranında mevcuttur. Tuşların yeri sabittir ancak uygulama bazlı aktifliği değişebilir. Her tuşun kendine özgü fonksiyon kodu bulunmaktadır.
- Title bar, o ekrandaki uygulamanın başlığını verir.
- Uygulama toolbarı uygulamaya özgü tuşları barındırır.
- Status bar, mevcut sistemin durumunu gösterir. Uyarı ve hata mesajlarını da gösterir.
- Seçme kutuları ile bağımsız seçimler yapabiliriz.
- Radyo tuşları ile radyo grubu içerisinden sadece bir seçim yapabiliriz.
- Sekmeler birçok alt ekranı düzenler.
- Giriş elemanları ve tuşlar, ekranın diğer elemanlarıdır.
- Sistem -> Oturumu kapat. Onay mesajına olumlu cevap verildiği taktirde tüm ekranlar kapanır.
- Komut satırına "/nend" yazdığımızda aktif ekran, "/nex" yazdığımızda tüm ekranlar onay mesajı çıkmadan kapanır. Bu yüzden kaydedilmemiş veriler kaybolabilir.
- Alt+F4 veya sol üstteki çarpı işareti ile çıkış yapılır. Tüm ekranlar tek tek bu şekilde kapatılır. Son ekran kapanmadan önce onay mesajı gelir. Olumlu cevap verildiği taktirde son ekran da kapanır.
9 Şubat 2014 Pazar
SAP NetWeaver
SAP NetWeaver, mevcut sistemlere entegre edilebilir, kapsamlı bir teknoloji platformudur. SAP NetWeaver ile iş süreçleri uygulanır, geliştirlir ve yürütülür.
Entegrasyon 4 ana temelde ele alınır. Üstten alta doğru önce kişi entegrasyonu gelir. Burada kullanıcının SAP NW sistemine erişimi temel amaçtır. SAP Enterprise Portal fonksiyonları kilit önem taşır. Bilgi entegrasyonu ile sistemdeki verilerin işlenerek veya ham hali ile kullanıcıya servis edilmesi amaçlanır. SAP Business Information Warehouse modülü bu servisi sağlar. Knowladge Management Enterprise Portal’in bir bileşenidir. Master Data Management modülü ise ana verilerin kullanıcılara servis edilmesini sağlar. Süreç entegrasyonu ile iş süreçleri yönetilir. XML veri paketleri ve iş akış senaryoları bu bölümün temellerini oluşturur. Temel modül SAP Process Integration (SAP PI)dır. Bunları gerçekleştirmek için son olarak uygulama platformu kullanılır. SAP Web Application Server ile J2EE ve ABAP geliştirme ortamlarına sahiptir. Aynı zamanda web uygulamaları ve web servis geliştirmeyi destekler.
SAP Web Apllication Server (SAP Web AS):
28 Haziran 2011 Salı
SAP Geliştirme (Workbench) Ortamları - 3
Veri Öğeleri (Data Elements):
Veri öğeleri SAP için temel bir veri tipidir. Program yazarken, tablo veya yapı oluştururken veriler tanımlarız. Bu verileri tanımlama esnasında tam sayı, karakter gibi bir veri türüne bağlamak isteriz. SAP'de bu görevi çoğunlukla veri öğeleri üstlenir.
Veri öğeleri tanımlarken ismi, tanımı ve alan isimleri veririz. Veri türü ve uzunluğu "Domain" ya da ABAP dilinin tanıdığı ön tanımlı temel veri türü ile belirleriz. Ayrıca bu tanımlanan veri öğesine "Arama yardımı" da istersek verebiliriz. Eğer yine istenirse bu veri türünün ne işe yaradığı, nerede kullanıldığı gibi bilgileri dokümantasyon bölümüne girebiliriz.Veri öğesi için girilen bütün metinlere çeviri yapmak da mümkündür.
Tablo - Veri öğesi - Domain ilişkisi
Tablo Tipi:
Tablo tipi bir yapı verilerek oluşturulan ABAP sözlük tablo tipidir. Kodlama içinde de dahili tablo tanımlama için kullanılır.
Tablonun görevine göre erişim tipi seçilir. Erişim tipleri; standart, sıralı, hash, index ya da belirsiz olarak seçebiliriz.
En son olarak anahtar alanlar tanımlanır ve tablo tipimiz hazır olur.
Tip grubu:
Aynı zamanda tip havuzu da denir. Burada tanımlanacak tipler kod olarak yazılır ve program yazarken bu havuz kullanılır. Tip havuzunu birçok programda da kullanılır. Böylece kod tasarrufu sağlanmış olur.
Etki Alanı (Domain) :
Domainlerin veri öğelerine atanan veri tipleri olduğunu yukarıda görmüştük. Domainler tek başlarına veri tanımlaması için kullanılamazlar. Ancak bir veri öğesine bağlanabilirler. Domainler ise temel ABAP veri tipleri üzerine kurulur. Burada bu domaine atanacak verinin alabileceği değerleri sınırlandırabiliriz. 2 yöntem vardır. Birincisi sabit değer vermektir. İkincisi ise anahtar alanı bu domaine atanmış bir veri öğesi olan bir tablo vermektir. Böylece bu domaine atanmış bir veri öğesinin alabileceği değer tablodaki değerler ile sınırlandırılmış olur.
Örnek bir Domain - Veri Öğesi - Tablo ataması:
Bu örnekte alanların veri tipi ve uzunluğu daima uyumludur.
Arama Yardımı (Search Help):
Arama yardımı R/3 sisteminin standart fonksiyonlarındandır. F4 tuşu bu amaç için kullanılır. Böylece kullanıcı, F4 bastığı alanın alabileceği değerleri bir liste halinde görür.
2 tür arama yardımı vardır: Temel arama yardımı, kollectif arama yardımı. Kollektif arama yardımı, temel arama yardımlarından oluşur. Temel arama yardımı tablo ve o tablonun alanları üzerinde kurulur. Bu şekilde istenen değerleri arama yardımında görürüz.
Örnek: İkincil anahtarlar sayesinde arama yardımı şeması.
Kilit nesneleri (Lock Objects):
R/3 sisteminde bütün kullanıcılar aynı işleme aynı anda ulaşabilir. Bazen bu durum çakışmalara neden olur. Hangi işlemin geçerli olması gerektiğini sistem tayin edemez. Bu yüzden kilit nesneleri kullanılır. Böylece bir kullanıcı bir veri tabanına erişim sağlarken bir başka kullanıcı o veri tabanına erişmek isterse bu kilit nesnesi ile karşılaşır ve hata alır. Sonuç olarak veri kaybı yaşanmaz.
Kilit nesnesini oluşturduktan sonra sistem iki tane fonksiyon üretir. Bu fonksiyonlar kilitlemeyi ve kilidi kaldırmayı sağlarlar.
31 Mayıs 2011 Salı
SAP Geliştirme (Workbench) Ortamları - 2
SAP Sisteminde Veri Tabanları:
Daha önce de bahsettiğimiz gibi R/3 sisteminde 3 sunucu sistemi vardır. 1.si sunum 2.si derleyici ve 3.sü ise veri tabanı sunucusudur. Oluşturulan her tablo SAP sisteminin kullandığı veri tabanı yönetim sisteminde de oluşturulur.
SE11 işlem kodu SAP tablosu oluşturmak için kullanılır. Bunun haricinde bu işlem kodunda; birleştirilmiş tablolar (View), yapılar (Structure), veri öğeleri, tablo tipleri, tip havuzları, alan adları, arama yardımları ve kilit nesneleri oluşturulur. Bunlara ABAP sözlük nesneleri denir.
Tablolar:
Tabloların çeşitli görevleri vardır. Ana veri tutmak, işlemsel veri tutmak gibi... Alanlar verilmeden önce görev belirlenir. Tablolar her üst birimde farklı veriler tutar ama istenilirse üst birim bağımsız, yani bütün üst birimlerde ortak olan verilerden oluşan tablo da yapılabilir. Bunu MANDT parametresi belirler çünkü MANDT üst birim bilgisini tutar.
Alanlar verilirken önce anahtar alanlar verilir. Böylece veri tabanındaki tekillik şartı sağlanmış olur. Anahtar alansız bir tablo olamaz. Dolayısıyla hangi alan grubunun bu veri tabanında tekilleşeceğini önceden karar vermek gerekir. Veriler bu tabloda tutulmaya başladıktan sonra anahtar alanlarda değişiklik yapılamaz. Bu yüzden anahtar alanlara müdahale etmek istenildiğinde önce tablonun boş olduğundan emin olmak gerekir. Doğal olarak bu da veri kaybına yol açar.
Alanlar veri öğeleri ile beraber verilir. Veri öğelerinden bir sonraki makalemizde daha detaylı bahsedeceğiz. Veri öğesi vererek o alanın hangi veri tipinde ve ne kadar uzunlukta olacağı tayin edilir. İstenilirse o alanın alacağı değerler de sınırlandırılır. Bu işlem kontrol tablosu (Check Table) sayesinde olur. Bu şekilde ikincil anahtarlar (foreign key) ile başka tablolar bağlanmış olur. Aynı zamanda yine istenilirse alanın alabileceği değerleri gösteren arama yardımı da verilir.
Tabloları oluşturmadan önce, tabloların ne kadar veri tutacağını belirlemek gerekiyor. SAP buna göre sunucuda yer açıyor. Burada verilen değer herhangi bir sınır teşkil etmez şöyle ki eğer veri sayısı ön görülen veri sayısından fazla olursa SAP ona göre yeri genişletebiliyor.
Ana veri tabloları için bakım ekranları oluşturulur. Böylece verilere müdahale edilir (eklenir, değiştirilir, silinir). Genel itibari ile bu bakım ekranı oluşturulduktan sonra SM30 işlem kodu ile tablo ismi verilerek bakım gerçekleştirilir. SM30 genel bir işlem kodu olduğu ve her tablonun bakımının yapılmaması gerektiği için yetkilendirme aşamasında SM30 kullanma yetkisi genelde kısıtlandırılır. Alternatif olarak tabloya özel bir işlem kodu oluşturulur ve kullanıcının tablo ismi vermeksizin bu tabloya müdahale etmesi sağlanır. Bu işlemlerin SAP'de nasıl yapıldığını daha sonra göreceğiz.
SE16 işlem kodu ile verileri görebiliriz ama her zaman müdahale edemeyiz. Müdahale edebilmek için tablo oluştururken gerekli izinleri vermek gerekiyor.
Birleşik Tablolar (Views):
Adından da anlaşılacağı gibi birden fazla tablonun ortak alanları sayesinde birleşmesinden oluşmaktadır. Birleşme esnasında veri filitrelemesi de yapılabilir. Birleşen her tablonun bütün alanlarının gösterilmesine de gerek yoktur. İhtiyaç duyulan alanlar viewlarda gözükür.
Bakım, arama yardımı gibi çeşitli amaçlar için kullanılır. Genel itibari ile ABAP programlarında daha kolay veri çekebilmek için kullanılır. Tablolardaki gibi SE16 ile veriler gösterilir, SM30 ile verilere müdahale edilir.
Yapılar (Structures):
Tablolar ve viewlar aslında bütün veri tabanı yönetim sistemlerinde mevcuttur. Ama yapılar SAP için özel bir kavramdır. Birçok yerde kullanılmaktadır. Yapılar veri tutmaz ama aynı tablo ve viewlardaki gibi alanlar, veri öğeleri ile beraber girilir. Bu şekilde ABAP programında kullanılan herhangi bir dahili tablonun veri tipi olarak bir yapı verilebilir. Aynı şekilde birden fazla tabloda ortak alanlar mevcut ise, bu alanlar bir yapıda toplanır ve bu tablolara dahil edilir. Böyle olduğu zaman ortak alanlara müdahale edildiğinde veya alan eklenip çıkarılmak istenildiğinde yapı üzerinden işlem yapılır ve bu tablolara otomatik işlenmiş olur.
SAP ve SAP olmayan sistemler arasındaki entegrasyon yapıları için de bu yapılar kullanılır.
Bir sonraki konumuzda diğer sözlük nesnelerinden bahsedeceğiz.
30 Mayıs 2011 Pazartesi
SAP Geliştirme (Workbench) Ortamları - 1
- SE80 - Gelişmiş ABAP kod editörü:
- SE38 - ABAP düzenleyicisi:
Repository Browser üzerinden >Program< seçilir. Program ismi girilir. Program isimleri X,Y veya Z harfi ile başlamalıdır. Diğer harflerle başlayan programların sahibi SAP’dir. Eğer X,Y veya Z ile başlamayan bir program ismi oluşturduysanız ve SAP de aynı program ismi ile müşterilerine program yayınlamak istediğinde SAP’nin programı, sizin programı ezer ve yaptığınız geliştirme kaybolmuş olur. Bu yüzden SAP için X,Y veya Z harfleri ile başlayan programları müşteriye özgü program olarak kabul eder ve bu programlara dokunmaz. SAP’de kod yazacağımız ortam burasıdır. Bu yüzden bu işlem kodlarını (SE80 veya SE38) iyi bilmek gerekir. SAP’de programlar etkin olduğunda çalışır. Bu yüzden oluşturduğumuz program şimdilik etkin değildir. Etkinleştirme işlemi ile aynı zamanda hem programı kaydetmiş, hem sözdizimi (Syntax) kontrolü yapmış hem de etkinleştirmiş olursunuz (Kısayol tuşu Ctrl+F3). Bu işlemleri ayrı ayrı da yapabilirsiniz. Kod yazarken okunabilirlik çok önemlidir. Bu geliştirme editörleri tek tuşla bu hassasiyeti sizin için sağlar. Bu tuşun ismi "Pretty Printer"'dır (Kısayol tuşu Shift+F1). Ayarları Yardımcı Programlar dan yapılır. Okunabilirliğin arttırmak için yorum satırları da kullanabiliriz. (*) karakteri satır başında (“) karakteri ise satırın herhangi bir yerinde kullanılır.
Hata Ayıklıyıcı (Debugger):
Program çalışırken hata ayıklama moduna "/h" komutu ile girilir. Programcı, program üzerinde kesme noktası koyarak veya
break usernamekomutunu kullanarak hata ayıklama moduna girilir. Burada adım adım ilerleme (F5), blok atlayarak ilerleme (F6), bir üst bloğa atlama (F7) ve sonuna kadar ilerleme (F8) seçenekleri mevcuttur. Kod üzerinde değişkenin aldığı değerler yeni modda iken sağ tabloda, eski modda iken alt tabloda gözükür. Yeni modda o anki veriler Excele aktarma seçeneği de mevcuttur.
Paket Hiyerarşisi:
Workbench nesnelerine belli bir gruplama stratejisi uygulanabilir. Bu, paketleme sayesinde olur. Paketler alt paketlerden de oluşabilir. Senaryoya göre hiyerarşi yapısı kurulabilir. Genelde modül bazlı gruplama yapılır. SE21 işlem kodundan da paketler oluşturulur.
Bir sonraki konumuzda SAP'de veri tabanlarından bahsedeceğiz.
12 Temmuz 2010 Pazartesi
SPEKT Nedir?
Orjinal ismi "Technical Specification" dur. "Functional Specification", "Program Specification" da denir. Teknik Spekti sistem analistleri (SAP'de modülcü de deriz) tarafından hazırlanır ve program geliştiricilerine (SAP'de genellikle ABAP danışmanları olur) sunulur. Bu dokümanla analistler, geliştiricilerden ne istediğini anlatmış olur.
Spekt neden gerekli?
Analistin hazırladığı spekt dokümanı, istenilen şekilde hazırlandığı taktirde geliştirici için gereken kaynak belgesi olur. Geliştirici, programı yazarken sadece bu belgeye ihtiyaç duyup, analiste sadece program bittiğinde haber verir.
Yapılan geliştirme spekt üzerinden takip edilir. Ek istek olduğu taktirde spekt güncellenir ve yayınlanır. Programın son hali ile spekt uyumlu olduğunda bu belge ileride, program üzerinde çalışacak analistler ve geliştiriciler için de kaynak belgesi olur.
Spekt adımları:
1- Geliştirme özellikleri:
Program ismi:
Başlık:
Program Tipi:
Çalıştırma Modu:
(...)
2- Program işlevi:
3- Seçim ekranı:
4- Seçim seçenekleri, hata yakalama:
5- Veri çekim algoritması, kullanılacak tablolar, fonksiyonlar:
6- Çıktı alanları:
7- Gerekiyorsa veri tabanı gereksinimleri:
8- Gerekiyorsa kullanılacak dosyalar ve dosya tipleri
9- Test verisi ve senaryoları:
10- Analiz yorumları:
SAP de Spekt Nasıl Yazılır?
SAP'de çeşitli geliştirme tipleri vardır. En çok kullanılan geliştirme tipleri, raporlama, çıktı alma, dialog geliştirmeleri, belge işleme ve entegrasyonlardır. Önceikle nasıl bir geliştirme olduğu belirtilip programın giriş ve çıkışları verilmelidir. Örneğin eğer bu geliştirme raporlama ise programın girişi olarak seçim ekranında girilecek alanları, program çıkışında ise raporda olacak kolon isimleri verilir. Kullanılacak alanların teknik isimleri verilir. Veriler hangi tablolardan nasıl çekilir gibi detay bilgiler verilir.
Not: Okuyuculardan gelen yorumlar üzerine bu notu yazma ihtiyacım oldu. TDK'nın sözlüğünde "Spekt", "Spek", "Spec"diye kelimeler yoktur. Bu kelimelere karşılık teknik tarif ve şartname kelimeleri vardır. Ancak SAP ekosisteminde genel olarak "Spekt" kelimesi kullanıldığı için bu şekilde yazdım.
8 Temmuz 2010 Perşembe
ABAP Nedir?
ABAP (Advanced Business Application Programming), Alman yazılım şirketi SAP AG tarfından geliştirilen üst seviye bir nesne tabanlı programlama dilidir. SAP'ın, iş uygulamaları geliştirmek için kullanılan son zamanlarda java'nın da içerisinde kendine yer bulduğu NetWeaver platformunun parçası olan Web Uygulama Sunucu'sunu programlama için kullanılır.
Kimler ABAP yazabilir?
ABAP temel veritabanı seviyesinden yüksek seviyeli bir soyutlama sağlayan mantıksal veritabanı kavramını içeren ilk dillerden biridir.
ABAP proglama dili ilk olarak geliştiriciler tarafından SAP R/3 platformunu geliştirmek için kullanıldı. SAP müşterileri ABAP'ı, müşterilerin özel raporlar ve arayüzler geliştirebilecekleri SAP uygulamaları geliştirmek için kullanmayı tasarlıyorlardı.
Yazılımcılar için öğrenmesi oldukça kolaydır fakat yazılımcı olmayanlar için direkt kullanılabilecek bir araç değildir. ABAP programları oluşturabilmek için ilişkisel veritabanı tasarımı ve tercihen nesne odaklı kavram bilgisini içeren programlama yetenekleri gereklidir.
ABAP Nerede Çalışır?
Tüm ABAP programları SAP veritabanında bulunur. Java ve C++ programları gibi ayrı dış dosyalarda depolanmazlar. ABAP programları, SAP çekirdeğinin(kernel) parçası olan çalışma zamanı sisteminin kontrolü altında çalışırlar. Çalışma zamanı sistemi ABAP ifadelerini işlemekten, ekranların akış mantığını kontrol etmekten ve olaylara(kullanıcının ekran butonuna tıklaması gibi) cevap vermekten sorumludur. ABAP çalışma zamanı sisteminin anahtar bileşenlerinden biri, veritabanından bağımsız ABAP ifadelerini("open sql") tabanda yer alan dbms(veri tabanı yönetim sistemi) in anlayabileceği ifadelere("native sql") çeviren veritabanı arayüzüdür. Veri tabanı arayüzü, ABAP programları adına, ilişkisel veri tabanıyla olan tüm iletişimi ele alır, aynı zamanda uygulama sunucusunun yerleşik belleğinde sık erişilen veriyi ara belleğe almak gibi ekstra özellikler içerir.
SAP'nin üç farklı katman vardır. Bunlar sunum katmanı(gui), uygulama katmanı(programlar bunun üstünde çalışır) ve kullanıcının hazırladığı durumlardan ve son kullanıcının sunum katmanından verdiği komutlardan tüm verinin kazanıldığı ve depolandığı veri tabanı katmanıdır.
ABAP ile SAP Üst Birimleri arasındaki bağlantı nedir?
SAP'de temel olarak 3 üst birim sistemi vardır: Geliştirme, Test, Canlı. ABAP kodları geliştirme sisteminde yazılır. Test sisteminde kontrol edilir. Onaylanırsa kodlar canlı sisteme taşınır. Kodların performans testi için gerekirse canlı sistemi ile aynı özellikleri olan bir sunucuda kalite sistemi adı altında bir üst birim daha açılır. Belirli periyodlarda canlı sisteminden veriler kalite sistemine kopyalanır. Zaman geçtikçe yeni geliştirmelerin testleri kalite sisteminde yapıldığı için daha önce kululmuş olan test sistemi önemini yitirir ve kapatılır. Artık kalite sistemi test sisteminin yerine geçmiş olur. Böyle olmaması için bazı projelerde sistem tasarımı Geliştirme-Kalite/Test-Canlı şeklinde yapılır.
Bazı projelerde ise Geliştirme ve Test üst birimleri aynı sunucuda olabilir. ABAP nesneleri (Workbench) sunucu bazında tutulduğu için geliştirme sisteminde yazılan kodlar, oluşturulan tablolar vs. test sisteminde de geçerli olur. Sadece üst birim bağımlı olan tablolardaki (Tabloda MANDT alanı varsa) veriler, uyarlamalar farklıdır. Yine aynı şekilde test sisteminde onaylanan kodlar canlı sisteme taşınır.





