Bursa’da otomotiv yan sanayi grubu, 4 fabrikada (Bursa, Gemlik, Mudanya, İnegöl) ortak SAP Business One sistemine geçiyordu. Satınalma modülü ilk faza dahildi çünkü yıllık ~~8.000 PO açan, 350+ aktif tedarikçi yöneten, üretim duruşlarının %22’si “malzeme zamanında gelmedi” sebepli olan bir yapıdaydı. Excel + email + PowerPoint ile yürüyen tedarik süreci dijitalleşmeden büyüme imkânsızdı. SAP B1 satınalma modülü implementasyonu 5 ay sürdü; bu yazı o projeden çıkardığım pratik notlar.
SAP B1 Satınalma Modülünün Bel Kemiği: 4 Belge Akışı
Modül, klasik P2P (Purchase to Pay) süreçini SAP terminolojisiyle 4 ana belge etrafında kurar:
| SAP belgesi | Türkçe karşılık | Akıştaki rolü |
|---|---|---|
| Purchase Request (PR) | Satınalma Talebi | Departmanın ihtiyaç bildirisi, henüz onaysız |
| Purchase Order (PO) | Satınalma Siparişi | Tedarikçiye bağlayıcı sipariş |
| Goods Receipt PO (GRN) | Mal Kabul Fişi | Fiziksel teslim alındı, stoğa girdi |
| A/P Invoice (IR) | Tedarikçi Faturası | Muhasebe kaydı, ödeme planına girer |
Her belge bir önceki belgeye “sürükle-bırak” ile bağlanır (SAP B1’in “copy from / copy to” özelliği). PR’dan PO oluşturursan stok rezervasyonu otomatik akar, GRN’den IR oluşturursan miktar/fiyat eşleşmesi otomatik kontrol edilir.
RFQ ve Tedarikçi Karşılaştırma: SAP B1’in Eksiği
Satınalma profesyonellerinin en sık sorduğu soru: “Tedarikçilerden teklif alıp karşılaştıracağım, SAP B1 nereye yazıyor?” Cevap: Out-of-box çok zayıf. Standart “Quotation Request” var ama 3-4 tedarikçinin tekliflerini yan yana karşılaştırma, fiyat geçmişi, son 6 ayın trendleri yok.
Bursa projesinde iki seçenek vardı:
- SAP B1 üzerine User Defined Object (UDO) ile RFQ tablosu kurmak (~~25 gün geliştirme).
- 3rd party add-on satın almak (Coresuite, Boyum IT eDocs gibi).
3rd party add-on tercih ettik (Coresuite Customize, ~~3.500 USD lisans + yıllık bakım). 6 hafta yerine 1 hafta canlıya aldık. Karar kuralım: standart ihtiyaç → add-on, özelleşmiş süreç → custom UDO.
Çok Kademeli Onay: Approval Procedures
SAP B1’in “Approval Procedures” özelliği ile threshold-based onay zinciri kurulabiliyor. Bursa’da uygulanan kurallar:
- 0-5.000 TL → Departman Müdürü
- 5.000-50.000 TL → Departman Müdürü + Satınalma Müdürü
- 50.000-250.000 TL → + Mali İşler Müdürü
- 250.000 TL üzeri → + Genel Müdür
- Sermaye yatırımı (CapEx kategorisi) → tutara bakılmaksızın CFO + CEO
Approval template’i UI’da tasarlanıyor, query ile koşullar belirtiliyor:
SELECT DISTINCT 'true' FROM OPCH T0
WHERE T0.DocTotal > 50000 AND T0.U_CapEx = 'Y'
Onay isteyen kullanıcıya SAP B1 inbox’a notification düşüyor, mobile app (SAP Business One Sales) ile uzaktan da onaylayabiliyor. Bursa’da CFO İstanbul’da uçaktayken telefondan PO onayladığını gördük, süreç işliyor.
3-Way Matching: Fatura Onay Disiplini
Lojistik dünyasının altın kuralı: tedarikçi faturasını ödemeden önce 3-way matching yap. PO ↔ GRN ↔ IR üçlüsü tutarlı olmalı:
- PO’da 1.000 adet × 5 TL = 5.000 TL sipariş geçildi.
- GRN’de 980 adet teslim alındı (eksik 20).
- IR’de tedarikçi 1.000 adet faturalamış → otomatik tolerance check ile uyarı çıkıyor.
SAP B1’de tolerance ayarları (System Initialization → Document Settings → Per Document → A/P Invoice):
- Quantity tolerance: %2
- Price tolerance: %3
Aşan IR’ler otomatik approval procedure’a düşüyor (Mali İşler Müdürü onayı şart). Bursa’da ilk ay 47 IR onaya takıldı, 14’ü gerçek tedarikçi hatasıydı (yanlış miktar fatura kesilmiş). Yıllık tahmini fazla ödeme tasarrufu ~~180.000 TL.
MRP ile Otomatik PO Önerisi
Üretim modülüyle entegre kullanıyorsan MRP (Material Requirements Planning) çalıştırınca SAP, mevcut stok + açık PO + planlı üretim siparişlerini hesaplayıp eksik malzeme için “PO Recommendation” üretiyor. Bu öneriler tek tıkla PO’ya dönüştürülebiliyor.
MRP Wizard çalıştırma adımları:
1. Hangi ürünler için (item filter) - genellikle "Make to Stock" ürünler
2. Hangi depo (warehouse filter)
3. Süre (planning horizon - tipik 30-90 gün)
4. MRP Run
5. Recommendations Report'u aç
6. PO Recommendation satırlarını seç → "Create Purchase Order" butonu
Bursa’da MRP haftalık pazartesi sabahları çalışıyor, satınalma ekibi pazartesi öğleden önce ~~25-40 PO yaratıyor. Önceki manuel sistemde aynı iş 2-3 satınalmacının haftalık 1.5 günüydü.
Tedarikçi Performans Yönetimi
Satınalma modülü içinde Vendor Master Data altında “Performance” sekmesi yok (SAP B1’in eksiği). Bizim çözüm: SAP’ın query manager’ı ile dashboard:
-- Tedarikçi zamanında teslim oranı (son 6 ay)
SELECT
T0.CardCode AS Tedarikci,
T0.CardName AS Adi,
COUNT(T1.DocEntry) AS ToplamPO,
SUM(CASE WHEN DATEDIFF(day, T1.DocDueDate, T1.DocDate) <= 0 THEN 1 ELSE 0 END) AS ZamanindaTeslim,
CAST(100.0 * SUM(CASE WHEN DATEDIFF(day, T1.DocDueDate, T1.DocDate) <= 0 THEN 1 ELSE 0 END)
/ COUNT(T1.DocEntry) AS DECIMAL(5,2)) AS OranYuzde
FROM OCRD T0
JOIN OPDN T1 ON T1.CardCode = T0.CardCode
WHERE T1.DocDate >= DATEADD(month, -6, GETDATE())
AND T0.CardType = 'S'
GROUP BY T0.CardCode, T0.CardName
HAVING COUNT(T1.DocEntry) >= 5
ORDER BY OranYuzde ASC
Bu query ile her ay tedarikçi karnesi çıkarıyoruz. Performansı %85 altına düşen tedarikçiler “review” listesine alınıyor, satınalma yöneticisi alternatif arayışına başlıyor.
Çok Şubeli Senaryolar: Branches vs Multiple DBs
4 fabrika için iki seçenek vardı:
- Tek DB + Branch özelliği: SAP B1 9.x’ten itibaren tek company veritabanında multiple branches destekliyor. Stok her branch için ayrı, PO branch’e bağlı, finansal raporlar konsolide alınabiliyor.
- 4 ayrı DB + Intercompany Integration: Her fabrika ayrı veritabanı, aralarında transferler intercompany add-on ile.
Tek DB + Branch ile gittik. Avantaj: konsolide raporlama hazır, master data tek noktada. Dezavantaj: bir fabrikadaki yoğun kullanım (Bursa ana fabrika ~~70% workload) tüm sistem performansını etkileyebiliyor. Çözüm: SAP HANA tabanlı kurulum (SQL Server yerine), in-memory hız avantajı ile yoğun saatlerde sorun olmadı.
Sahada Düşülen Beş Tuzak
- Master data temizliğini atlamak: Eski ERP’den SAP’a geçişte 8.500 ürün ve 1.200 tedarikçi taşıdık. Yarısının duplicate kaydı, eski adları, kapanmış vergi numaraları vardı. Veri temizliği için 3 hafta ayrı zaman gerekti, planlamadık ve canlıya geçişe ekledik.
- UDF (User Defined Field) bombardımanı: Her departman “şu alanı da ekleyelim” diyor, master data 80+ UDF’le geliyor, kullanıcılar formda kayboluyor. Disiplinli ol, sadece raporlamada kullanılacak alanları ekle.
- Approval procedure’ı sonradan eklemek: Canlıya geçtikten sonra approval kuralları konursa kullanıcılar “eskiden hızlı yapıyordum, şimdi onay bekliyorum” diye direnç gösteriyor. Day-1’den itibaren onay süreci aktif olsun.
- Stok lokasyonlarını yanlış kurmak: 4 fabrika × 3 depo (hammadde, yarımamul, mamul) = 12 depo. Her PO’da hangi depoya gireceği seçilmeli. Default depo set etmezsen kullanıcılar yanlış depoya alır, MRP yanlış hesaplar.
- Yedekleme planını sona bırakmak: SAP B1 production veritabanı saatte ~~200 MB transaction log üretiyordu. Initial backup planı yetersizdi (sadece günlük full), bir donanım sorunu olduğunda 18 saat veri kaybı riskine girdik. Bizim son setup: günlük full + 4 saatte differential + 15 dakikada transaction log.
Power BI ile Raporlama
SAP B1’in standart raporları sınırlı. Power BI’a SAP HANA üzerinden direkt connect edip dashboard kurduk. Tipik raporlar:
- Aylık satınalma volume (kategori bazında, Pareto)
- Tedarikçi performans karnesi (zamanında teslim, kalite, fiyat)
- Açık PO bekleyen mal kabul (yaşlandırma analizi: 0-30, 31-60, 60+ gün)
- 3-way matching exception trendi
- Satınalma talep → PO arasında geçen ortalama süre (KPI)
Bu dashboard satınalma müdürünün her sabah açtığı ilk pencere. Eskiden Excel’de elle güncellediği rapor şimdi Power BI’da real-time.
ROI Hesabı
| Metrik | Önce (Excel/email) | Sonra (SAP B1) |
|---|---|---|
| Ortalama PO oluşturma süresi | 22 dakika | 4 dakika |
| Aylık satınalma personeli mesai | 320 saat | 180 saat |
| 3-way matching exception yakalama | %30 | %98 |
| Üretim duruşu (malzeme eksikliği) | Aylık 22 saat | Aylık 6 saat |
| Tedarikçi ödeme süresi (avg) | 52 gün | 38 gün (early payment discount kazanımı) |
Yıllık tasarruf: Personel verimliliği + duruş azaltma + early payment discount = ~~1.4 milyon TL. SAP B1 lisans + implementation maliyeti ~~480.000 TL. ROI 5 ayda dönüyor.
Sonuç: Modül Değil, Süreç Dönüşümü
SAP B1 satınalma modülünü “kurduk, canlıya aldık, bitti” düşüncesi ile bakarsan başarısız bir proje olur. Asıl iş süreç dönüşümü: kullanıcı eğitimi, davranış değişikliği, kontrolleri benimsetme. Bursa’da projeyi başarılı kılan satınalma müdürünün day-1’den içinde olması ve “Excel’le çalışmak yasak, sistem üzerinden yürüyeceğiz” disiplinini koymasıydı.
CloudSpark olarak SAP Business One implementasyonu, lokalizasyon (Türk muhasebe + e-fatura entegrasyonu), HANA hosting (CloudSpark Cloud üzerinde), Power BI raporlama hizmetleri sunuyoruz. Pilot fizibilite çalışması için ücretsiz workshop yapıyoruz.



