ME_PROCESS_PO_CUST – BAdI

SAP Logo

BAdI’ler (Business Add-Ins), SAP’nin standart işlevselliğini standart kodu değiştirmeden genişletmek veya özelleştirmek için kullanılan modern, nesne yönelimli (object-oriented) bir tekniktir. SAP’nin eski genişletme tekniklerine (User Exits, Customer Exits) göre daha esnek ve güçlü bir alternatif sunarlar.

BAdI kullanımı karmaşık ama bir o kadar da fonksiyonel bir iş olduğu için incelenmesinde fayda var.

ME_PROCESS_PO_CUST, satınalma siparişi işlemlerine özel kurallar eklemek, veri bütünlüğünü sağlamak, kullanıcı hatalarını azaltmak ve süreçleri otomatikleştirmek için kullanılan kritik bir BAdI’dir.

ÖRNEK SENARYO:

Sem1n ekranında sipariş oluşturmaya çalışılmaktadır. Satın alma talebi oluşturulmak istendiğinde Üretim Yeri-WERKS = ‘BO09’ olduğu durumda Satın Alma Talebi Numarası-BANFN boş olduğunda hata mesajı verilecektir. Bu sayede böyle bir kayıt atılmasına izin verilmeyecektir. Bu işlemi yapmak için ME_PROCESS_PO_CUST~PROCESS_ITEM BaDI si kullanılacaktır.


ADIMLAR

  1. Se18’e gidiniz. Kullanmak istediğiniz ismini BAdI Name kısmına yazınız.

Bu BAdI’yi kullanarak Z’li bir BAdI yaratmak için Enhancement Implementation > Create yolunu izleyiniz.

İlgili alanları doldurunuz. Ehancement Implementation ve Short Text kısımlarını doldurunuz.

Onaylayıp devam ediniz.

Varsa paket ataması yapıp request atınız. Ya da Local Object olarak kaydedebilirsiniz.

Karşınıza aşağıdaki ekran gelecektir.

Bu ekranı doldurunuz. BAdI Implementation kısmına, yarattığınız BAdI’nin ismini veriniz. Yaratılacak olan Implementation Class ‘a da aynı ismi veriniz.

BAdI Defintion kısmında ise ME_PROCESS_PO_CUST BAdI’sini kullanınız. Zaten açılan dropdown list’te kullanmaya çalıştığınız BAdI otomatik olarak gelecektir. Short Text kısmı da buna bağlı olarak otomatik bir şekilde dolacaktır.

Bir sonraki adımda zaten var olan ME_PROCESS_PO_CUST’ı kopyalayacak mıyız yoksa sıfırdan mı her şeyi yaratmak istediğimiz soruluyor. Copy Sample Class seçeneğini seçerek devam edebilirsiniz.

Bunun için CL_EXM_IM_ME_PROCESS_PO_CUST class’ını seçerek Copy Sample Class deyip ilerleyiniz.

Lokal olarak kaydediniz varsa paket ataması yapınız.

Sizi karşılayacak ekranda Implementation Class’a çift tıklayınız.

Karşınıza class’ın method’ları gelecektir. İhtiyaç durumuna göre kod yazacağınız metodu seçiniz. Bizim senaryomuza Se21n’de sipariş oluştururken WERKS ve BANFN koşuluna göre hata mesajı vermek istediğimiz için IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM seçiyoruz.

İlgili kod bloğunuzu yazıp aktifleştiriniz.

 IF ls_mepoitem-werks EQ 'BO09' AND ls_mepoitem-banfn IS INITIAL.
MESSAGE 'Satınalma Talebi Girilmesi Zorunlu!' TYPE 'E'.
ENDIF.


2) 1 adım geri çıkın > BAdI ismine sağ tıklayın > Activate seçeneğini seçiniz.


3) Ya da SE19’a gidiniz ve yarattığınız BAdI’yi aktifleştiriniz.


SONUÇ-TEST

Me21n’e gidip ilgili alanları aşağıdaki şekilde doldurunuz.

· Satıcı- 0000010096

· sa org- BO99

· satınalma grubu — 009

· Şirket kodu- BO09

· Malzeme — 6014

· Üretim yeri — BO09

· Depo — 171A

Kaydet tuşuna basınca hata verecektir. “Edit” tuşuna basıp hata ve uyarıları görünüz.

Hata mesajı başarılı bir şekilde verildi.

Bu konu hakkında anlatacaklarım bu kadardı. Beğendiyseniz desteklemeyi unutmayınız..☺️😇

Merve Polat

https://medium.com/@pmervepolat977

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir