IBAN Check – SAP’de Sırbistan Iban Kontrolü Geliştirmesi

SAP’de satıcı cari kartında (FK01-FK02) ödeme işlemleri kısmında banka bilgisi eklemek istediğinizde eğer IBAN bilgisi de girmek isterseniz iban kontrol yapısı çalışmaktadır.
Bu kontrol bazı ülkeler için sap paketinde yer alır. Fakat benim karşıma çıkan sorun Sırbistan’a ait böyle bir kontrolün standart sistem üzerinde olmamasıydı. Sizler de yine birçok farklı ülkede bunu yaşayabilirsiniz. Eğer sorununuz buysa bu hazırladığım içerikle kolaylıkla sorunu giderebilirsiniz.
Bu sorunu iki farklı şekilde çözebilirsiniz.
- SAP Note varsa onu bulup ilgili ülke geliştirmesini bu Note ile sisteminize uygulayabilirsiniz. Basis desteği gerekebilir.
- Diğer yöntem ise benim çözümümdür. Bu çözüme gitmemin nedeni ilgili Note olmamasıdır. Bu durumda mecburen SAP geliştirmesi ve event bakımı yaparak çözüm sağladım. Bunun için hem Abap hem de FICA modülü tecrübesi gerekebilir. Eğer requestlerinizi de kendiniz taşıyorsanız o zaman basis yetkinizin de olması gerekecektir.


SAP uyarı kodu nedir? BF00009

Çözüm için öncelikle iban check hatası nasıl alınıyor onu bulmanız gerekebilir. Bunun için SE37 işlem kodunda CHECK_IBAN adındaki fonksiyona break koyarak kodun devamını inceleyebilirsiniz.
Bu kodun devamını incelediğinizde eğer 3040 denen event sisteminizde hazırsa bu event ile iban kontrolü yaparak uzunluğu kontrol ettiğini göreceksinizdir. Bu event standart üzerinde Almanya, İtalya gibi AB ülkelerini barındırıyor. Aşağıda görsellerle bu hazır olan kısımları da size göstereceğim.
Eventlere gitmek için BF31 işlem kodunu kullanıyoruz. Buraya girdiğimizde tüm çalışan eventler liste şeklinde karşımıza gelecektir. Bu eventler içinde hangi fonksiyonları çalıştırdığımızı bu kısımda tanımlamış oluyoruz. Önceden de dediğim gibi standart veya OSS Note ile yüklenen bir işlem varsa burada listede zaten çıkıyor.

Yukarıdaki listeyi gördünüz ve sizin problem yaşadığınız ülke kodunun bu listede olmadığını gördüyseniz bu adımdan sonra basitçe tanımlamasını anlatacağım.
Öncelikle burada gördüğünüz CONVERT_IBAN_2_BANK_ACCOUNT_SA gibi fonksiyon isimlerinin benzer Z’li bir kopyasını se37 ile yapmalıyız.
Sonrasında buraya dönerek kendi fonksiyonumuzu buradaki ülke tanımımızın karşına yazdığımızda artık bizim fonksiyonumuz 3040 event ile çalışarak ilgili ülkemizde IBAN kontrolünü yapacaktır.
Abap kısmında fonksiyon geliştirmenizi yapın ve burada tanımlayarak çalışmayı tamamlamış olun. Daha önce belirttiğim gibi yapacağınız Z’li fonksiyon CONVERT_IBAN_2_BANK_ACCOUNT_SA gibi fonksiyonlardan kopyalayabilirsiniz.
Ben yazdığım fonksiyon bloğumu da aşağıda sizinle paylaşıyorum.
Herkese başarılar dilerim!
FUNCTION zconvert_iban_2_bank_accoun_sr.
*”———————————————————————-
*”*”Local Interface:
*” IMPORTING
*” VALUE(I_IBAN) TYPE IBAN OPTIONAL
*” EXPORTING
*” VALUE(E_BANK_ACCOUNT) TYPE C
*” VALUE(E_BANK_CONTROL_KEY) LIKE KNBK_BF-BKONT
*” VALUE(E_BANK_NUMBER) LIKE BNKA-BNKLZ
*”———————————————————————-
DATA: l_length TYPE i.
l_length = strlen( i_iban ).
* The length for Sırbistan must be 22
IF l_length NE 22.
* MESSAGE e013 RAISING no_conversion.
RAISE no_conversion.
ENDIF.
e_bank_number = i_iban+4(5).
e_bank_account = i_iban+10.
ENDFUNCTION.