SAP User Exits – SAP Customer Exits – SAP Function Module Exits – SAP Screen Exits – SAP Menu Exits

Bu yazımızda SAP User Exits, SAP Customer Exits, SAP Function Modul Exits, SAP Screen Exits ve SAP Menu Exits konularından bahsedeceğim.

Öncelikle bu konumuz öncesinde, daha önce yazmış olduğum, konumuza benzer içeriklerin linklerini paylaşmak istiyorum.

Yukarıdaki benzer türdeki yazılarımızında üzerinden geçerek, SAP User Exits, SAP Customer Exits, SAP Function Modul Exits, SAP Screen Exits ve SAP Menu Exits konularını daha da fazla pekiştirebilirsiniz.


SAP Sisteminde EXIT’lere Genel Bakış

SAP Sisteminde kullanılan SAP User Exits, SAP Customer Exits, SAP Function Modul Exits ve SAP Screen Exits ve SAP Menu Exits, SAP’nin standart kodlarını değiştirmeden programın akışını değiştirmemize olanak sağlayan yapılardır. Aslında ilerleyen dönemlerde işleyeceğimiz ve daha önce işlediğimiz BADI ve Enhancement konularıda bir bakıma EXIT olarak değerlendirebiliriz.

EXIT ve BADI’ler SAP ERP Programı içerisinde belli konumları olan belirli alanlarda çalışan birer nesnedir. EXIT’LER rutinler ve fonksiyonlar içine yazılırken BADI’ler metodların içerisine yazılmaktadır.

SAP Sisteminde EXIT, BADI ve ENHANCEMENT yapıları bir programın Giriş Ekranında, Değişiklik ekranlarında, kontrol ekranlarında, kaydetme işleminde ve kaydetme sonrasında kullanılabilir.

SAP User Exits – SAP Customer Exits – SAP Function Module Exits – SAP Screen Exits – SAP Menu Exits Kullanarak Neler Yapabiliriz?

  • Programlara herhangi bir adımda ek kontroller ekleyebiliriz. (Kaydetme sonrasında, Değişiklik sonrasında vs…)
  • Raporlara ve program ekranlarına ek alanlar ekleyebiliriz.
  • Raporların veya program ekranlarının görünürlüğünü değiştirebiliriz.

SAP EXITS Nasıl Aranır?

SAP Sisteminde SAP EXITS aramak, bazen SAP ABAP Danışmanları için biraz zorlayıcı olabilir. Çünkü SAP ERP Programında standart bir SAP EXITS’lerini arama ekranı bulunmamaktadır. Bundan dolayı SAP ABAP Danışmanı genelde EXIT –> BADI –> Enhancement şeklinde bakarak aramasını yapar. Bunun içinde, işlem kodu üzerinden EXIT’leri listeleyen programları kullanır. Ancak bu yöntem ile de aranan EXIT %100 bulunmaz. Bundan dolayı EXIT çeşidine göre daha kesin ve kolay yöntemler bulunmaktadır.

Genel olarak SPRO işlem kodundan, ilgili modülün bileşenlerine inerek EXIT’leri bulabilirsiniz. Örneğin Satınalma Siparişindeki kontrolleri aşağıdaki şekilde görebilirsiniz.


SPRO –> SAP Referans IMG –> Malzeme Yönetimi –> Satınalma‘nın altında EXIT’leri ve BADI’leri görebiliriz.

SAP EXIT Çeşitleri

SAP ERP programında SAP EXIT’ler kendi içinde ikiye ayrılır. Bunlar;

  • USER EXITS
  • CUSTOMER EXITS

SAP USER EXITS

SAP USER EXITS’ler program rutinleri içerisine yazılır. Aktif hale gelmesi için USER EXITS kodu yazıldıktan sonra, rutinin bağlı olduğu include’un aktifleştirilmesi yeterlidir. En çok SD, MM ve FI gibi temel modüllerde SAP USER EXITS kullanılır.

SAP USER EXITS Arama

SAP ERP Programında, SAP USER EXITS arama işlemi için SE80 işlem kodu çalıştırılır ve VMOD paketi seçilir. Buradaki include’lar içindeki rutinlerden aramalar yapabilirsiniz.

Örneğin, satış siparişi için VA02 işlem koduna girip, Sistem–>Durum adımından sonra,


Program adı(SAPMV45A) kısmında SAP sonrasındaki MV45A ile VMOD’da bu ad ile başlayan include’ları inceleyebilirsiniz.

Ayrıca SAPMV45A programını SE80 görünümünde açıp, rutin kısmını listeledikten sonra Subrutines kısmında yer alan rutinlerden USER EXIT ile başlayan tüm rutinleri görebilirsiniz.


SAP USER EXITS Örneği

Bu bölümde Satış Siparişinde Ödeme Koşulunun girilmesini zorunlu hale getireceğimiz örnek kod yapısını paylaşmak istiyorum.

FORM USEREXIT_SAVE_DOCUMENT_PREPARE.
IF VBAK-ZTERM IS INITIAL.
   MESSAGE E000(L1) WITH "Ödeme Koşulu Girmelisiniz".
ENDIF.
ENDFORM.

SAP Sisteminde Sık Kullanılan USER EXITS’ler

  • Satış Siparişi : MV45AXXX…
  • Gönderilen Teslimat : MV50AXXX…
  • Satış Faturası : RV60AXXX…
  • Fiyatlandırma & Koşullar : RV61AX…

SAP Customer EXITS

SAP ERP programında SAP Customer EXITS, tamamen kullanıcıların istedikleri iş akışlarına göre mevcut standart yada özel(custom) programların işlevini değiştiren bir yapıdır.

SAP Customer EXITS’ler, SAP Sisteminde SMOD işlem kodu ile görüntülenir ve aktif hale getirilirler. Ayrıca CMOD işlem kodunda gruplara atanıp, modül bazında daha kolay SAP Customer EXITS’lerini bulabilirsiniz.

SAP Customer EXITS’ler kendi içinde farklı gruplara ayrıştırılabilir. En sık kullanılan 3 adet SAP Customer EXITS aşağıdaki gibidir.

  • Function Module EXITS
  • Screen EXITS
  • Menu EXITS

SAP Customer EXITS Aktifleştirme Nasıl Yapılır?

SAP Customer EXITS‘in aktifleştirilmesi için öncelikle SAP Customer EXITS‘in bulunması gerekmektedir.


SMOD işlem kodunda Enhancement kısmında F4 tuşu yardımı ile açılacak olan ekranda Kısa Tanım(Short Text) alanına * karakteri ile aradığınız exit’in ismini yazarsanız, yine ilgili Customer Exits‘i bulabilirsiniz. Örneğin Malzeme Ana Verisi için aşağıdaki ekran görüntüsünde belirtildiği gibi bir arama yapmanız durumunda;

arama sonuçlarını aşağıdaki gibi Customer Exits Listesi olarak alabilirsiniz. Alan büyük – küçük harf hassasiyetine sahip olduğundan dolayı bu kısma dikkat etmenizi tavsiye ederim.

Burada uygun olan herhangi bir EXIT’i seçerek aşağıdaki ekran görüntüsünde belirtilen butona basılır ve Customer EXIT içerisindeki elementleri görebilirsiniz. Burada Function Module Exits, Menu Exits veya Screen Exits’lerden biri veya bir kaçı olabilir.

Implementation kısmı aşağıdaki gibi boş ise bu EXIT kullanılmamış ve aktif edilmemiş demektir.


Eğer Implementation kısmında tik var ve yeşil lamba görünüyor ise Exits aktif demektir.

Exit türüne göre implement edildikten sonra aktifleştirme butonları vasıtası ile exit aktif veya deaktif edilebilir.

SAP Function Module Exits

SAP Function Module Exits, SAP Sistemlerinde en çok kullanılan Exit tipidir. CALL CUSTOMER FUNCTION ‘XXXX’ şeklinde tanımlanırlar ve EXIT_<program_adi>_XXX şeklinde tanımlanan fonksiyonla implement edilirler. Ancak kod doğrudan fonksiyonun içine yazılmaz. Fonksiyon içerisinde ZX ile başlayan include bulunur. Bu include çift tıklanarak yaratılır ve kod bu include içerisine yazılır. Bu nedenle ersiyon güncellemesi sonrası ek bir işleme gerek kalmaz.

Include üzerine çift tıkladığımızda “Program names ZX… are reserved for includes of exit function groups” uyarısını alırsınız. Enter ile devam edip Include’u oluşturabilirsiniz.

SAP Function Module Exits Arama

SAP Function Module Exist‘ini, CALL CUSTOMER FUNCTION şeklinde tanımlandığında bulunması çok kolaydır.

Örneğin VA02 Satış Siparişi Değiştirme menüsünde Function Module Exits nasıl aranır, onu gösterelim. VA02 işlem kodunda Satış Sipariş Numarası girildikten sonra komut satırına /h komutu yazılır ve enter tuşuna basılır.

Debugging aktif hale gelir. Tekrar Enter tuşuna basılır.

Açılan kod ekranında aşağıdaki ekran görüntüsünde olduğu gibi breakpoint konulur.

Açılan ekranda yine aşağıdaki ekran görüntüsünde belirtildiği gibi Customer Function ibaresi yazılır.


Eğer Kaydet butonuna basıldıktan sonra Function Module Exists var ise, aşağıdaki ekran görüntüsünde görüntülendiği gibi debugger bu breakpoint üzerinde duracaktır. Kırmızı kutucuk içerisine alınan buton vasıtası ile include içerisine gidilir.

Aşağıda belirtilen ekran kullanıcı önünde açıldığında 004 ibaresinin üzerine çift tıklanarak ilgili Exit bulunur.

Exit aşağıdaki ekran görüntüsünde paylaşıldığıu gibi kullanıcı tarafından görüntülenir.

Include içerisinde mevcut exit komutlarını ve ekleyebileceğiniz kodları include içerisine girerek yeni kontrollerinizi yazabilirsiniz.


Gerekli düzenlemeler yapıldıktan sonra, Function Module Exist‘ini aktifleştirmemiz gerekmektedir. Ancak burada sadece EXIT’in fonksiyon adını bildiğimiz için, SMOD işlem kodu üzerinden arama yardımı alanını açıp Component name alanına fonksiyon ismimizi yazarak yukarıda anlattığımız şekilde Function Module Exist‘inizi aktifleştirmeniz gerekmektedir.

SAP Screen Exits & SAP Menu Exits

SAP Screen Exits ve SAP Menu Exits standart ekranlara ek alanlar eklemek için kullanılan SAP Exits tipidir. Standart ekrana ek alan eklemek demek, aslında standart tabloya da eklemek anlamına gelmektedir. Bu nedenle ilk önce standart tabloya Append Structure ile ek alan eklenir.

Screent Exits‘ler standart bir ekran içinden çağrılmak suretiyle çalışırlar. Dikkat edilmesi gereken iki nokta vardır.

Birincisi, Screen Exits’ler yalnız başına çalışabilir veya function module ile beraber çalışabilir. Function Module ile çalışıyor ise, ek alan değerini ekrana getirmek ve değişiklikten sonra standart yapıya aktarmak gereklidir.

İkincisi ise ek alanı append edeceğimiz XXXX tablosunda CI_XXXX adında bir yapı var ise ek alanı mutlaka bu yapıya eklemeliyiz.

SAP Screen Exits ve SAP Menu Exits için arama yapmak için, SMOD işlem kodunda sadece screen exit seçeneğini seçip, metne göre arama yapabiliriz veya MODSAP, MODSAPA, MODSAPT tablolarından yararlanılabilir.


Bu Yazıyı Beğendiniz mi?
I agree to have my personal information transfered to MailChimp ( more information )
Sizde 3.000 kişinin üzerinde bulunan abonelerimiz arasına katılın. Abone olarak yeni eklenen içeriklerimizden anında haberdar olursunuz
E-Mail adresiniz sapuzman.com dışında 3 tekil veya tüzel kişilikler ile paylaşılmayacaktır
Sosyal Medya Hesaplarımız
Umut Demirci hakkında 327 makale
1986 yılında Kocaeli'nin Darıca ilçesinde dünyaya geldim. Bahçeşehir Üniversitesi, Matematik ve Bilgisayar Bilimleri bölümünü başarılı bir şekilde tamamladım. Üniversite yıllarında çeşitli sosyal sorumluluk projeleri ve bilişim projeleri içerisinde görev aldım. Üniversiteyi tamamladıktan hemen sonra 2010 yılında başladığım ERP sektöründe, SAP Sipariş Planlama&Müşteri Hizmetleri ve Master Data Birim Yöneticisi olarak çalışmaya devam etmekteyim. Daha detaylı bilgi için Hakkımda menüsünü kullanabilirsiniz.

4 yorum

  1. Merhaba,
    Sitenizi fırsatım oldukça takip etmeye çalışıyorum. Çok güzel konuları işliyorsunuz. Konuları işleyişiniz, Sap ekranlarını kullanmanız ve canlı örnekli uygulamalarınız çok doyurucu. Bir teknik veya modül danışmanı’nın ihtiyaç duyacağı bir çok konuyu işleyip, yeri geldikçe pratik çözümler getiriyorsunuz.

    İmkanı var ise; ilerleyen dönemlerde SAP ta yazılımcıların çok sık ihtiyaç duymaya başladıkları ABAP WEB SERVİS kullanımı konusunu da örnek bir uygulama ile işlerseniz, eminim bir çok kişi için çok faydalı olur.

    Başarılarınızın devamını dilerim.

Bir yanıt bırakın

E-posta hesabınız yayımlanmayacak.


*