CUSTOMER EXITS-FUNCTION MODULE EXIT

Customer Exit, Enhancement konusunun bir alt başlığıdır. Customer Exit
- Function Module Exit
- Menu Exit
- Screen Exit
Olmak üzere 3’e ayrılır. Bu dokümanda FM Exit’in ne olduğu, nasıl kullanılacağı anlatılacaktır.
Enhancement kelimesi geliştirme anlamına gelir. SAP’deki programları geliştirmemizde ve onları kendimize göre uyarlamamıza yardımcı olur (customizing).
CALL CUSTOMER-FUNCTION –‘üç haneli sayı’ syntaxına sahiptirler. Örneğin; CALL CUSTOMER-FUNCTION-‘001’.
Örneğin; VA01 Transaction kodunu girdiğimizde karşımıza aşağıdaki ekran gelecektir.


Order Type: OR girip programı çalıştırıyoruz. Diyelim ki Sold-to-Party alanını kullanıcıdan almak yerine otomatik olarak dolu gelmesini istiyoruz. Bu durumda ne yapmalıyız? Function Module Exits kullanarak enhancement yapabiliriz.


Takip edilmesi gereken adımlar
- Function Module Exit’i bulun.
- Programda CALL CUSTOMER-FUNCTION ifadesine break-point koyun. Ve işimize yarayacak function exit’i tespit edin.
- Paket ismini bulun.
- SMOD transaction koduna gidin ve paket ismini oraya yazın. Utilities>find>paket ismi
- SE84 transaction koduna gidin. (Enhancements>Customer Exits)
- Function Module Exit’i implemente edin.


Debug modundayız şu an. Üst toolbardan Breakpoints>Breakpoint at>Breakpoint at Statement işlemini yapın.

Açılan popup’ta CALL CUSTOMER-FUNCTION yazıp enter’a basın. Bunu yapma nedenimiz, CALL CUSTOMER-FUNCTION-‘abc’ syntaxını yani Function Module Exit’leri bulup tek tek incelemek ve kullanacağımız exit’i bulmak.

İlkini bulduk. Debug modda içine girmek için sol üstteki ikona basın. Bu sayede yeni bir sayfa açılır.
Not: Debug modundan henüz çıkılmaz.


Açılan yeni sayfada 3 haneli sayının üzerine çift tıklayın.


Şu an EXIT’in içindeyiz. Doğru yerde olup olmadığımızı kontrol etmek için Attribute’a tıklayınız.

Açıklama kısmından anlıyoruz ki bizim istediğimiz Function Module Exit bu değil. Bu yeni açılan sayfayı kapatıp debug moduna gidiniz. Ve bir sonraki CALL CUTOMER-FUNCTION’a bulup (F8’e basın. Bazen birden fazla kez basmak gerekebilir, ilk birkaç basışta çalışmayabilir.) aynı işlemi yapınız.


002’ye çift tıkla. >Attributes >Short Text

Aradığımız EXIT’i bulduk. Debug’ı kapatıp bir sonraki adıma geçebiliriz.
Şimdi de programın paketini bulacağız.
VA01>System>Status


Programın paketini öğrenebilmek için program ismine çift tıklayınız. Goto>Attributes ya da Goto>Object Directory Entry’e tıklayın.

Package: VA
Şimdi de SMOD> Utilities>find>paket ismi
SMOD: Function Module Exit’i display/görüntüle modunda açar.


Paket ismimizi girip çalıştırıyoruz.

15 tane EXIT bulundu. Bizim kullanacağımız, hatırlarsanız 3.sıradaki

Çift tıklarsanız modülün içine girersiniz.

Exit’e çift tıklayınız.

Source Code’daki INCLUDE Z.. formatında olduğuna dikkat ediniz. Z ile başlaması aslında Custom edildiği anlamına gelir. Zaten Customer Exits kavramı da buradan gelmektedir. Attributes kısmında da short text kısmında modülün ne işe yaradığı hakkında bilgi alabilirsiniz.
Şimdi de implementasyone geçelim. => CMOD : Create işlemleri yapılır.
Yaratmak istediğimiz projenin ismini giriyoruz ve Create tuşuna bakıyoruz.


Short text kısmına programı açıklayan bir text yapıp programı kaydediyoruz. Yine aynı sayfada bulunan “Enhancement assignments” tuşuna basıyoruz.

Kullanacağımız function modüle exitleri yazın >enter

Components’e tıklayınız.

Yukarıda görünen kırmızı noktalar projenin inaktif olduğunu ve enhancement işleminin henüz yapılmadığını belirtir. İlk adım olarak EXIT_SAPMV45A_002’ye çift tıklayıpgerekli kodları yazıp aktif edeceğiz.
Export parametresi olan E_KUNNR’nin otomatik olarak ekrana gelmesini istiyoruz.

Source code kısmına tıklayın ardından INCLUDE’a çift tıklayın ve bu include’dan nesne yaratın. Çünkü gerekli kodlar buraya yazılacaktır.



Kaydedip aktifleştiriyoruz. Ardından geri çıkıyoruz buradan ve EXIT’in yanında bir tane tik işareti olması gerekiyor.


Project ve enahncementin hala kırmızı olma nedeni, programın genelini aktif etmediğimiz için. Önce yukarıdaki düzenle ikonuna tıklayıp sonra aktifleştiriyoruz (aksi taktirde aktif butonu görünmeyecektir.).


Şimdi de işlemin başarılı olup olmadığını kontorl etmek için VA01 transaction koduna gidiniz> OR yazınız ve programı çalıştırınız. Sold-to-Party otomatik olarak 1035 olarak dolmalı.

İşlemin başarılı olduğunu doğruladık.
Uyarı: Bu işlemleri yaptıktan sonra işlemleri geri almak için Include dosyasını silmeyi ve yarattığımız programı silmeyi unutmayın!
