Gökhan Baştürk

Bilgisayar Yüksek Mühendisi

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

BF00009 error SAP

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

SAP iban uyarısı

Çö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
*”———————————————————————-

  DATAl_length TYPE i.

  l_length strleni_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.