# 📁 Custom

## 🎯 Genel Bakış

**Custom** klasörü, standart framework dışında kalan ve **projeye özel geliştirilen workflow’ların** bulunduğu alandır.

Bu yapı sayesinde:

* Framework bozulmadan genişletilebilir
* Müşteri/süreç özel ihtiyaçlar izole edilir
* Reusable (yeniden kullanılabilir) bileşenler oluşturulur


---

## 🧩 Custom Klasörü Amacı

Custom alanı aşağıdaki senaryolar için kullanılır:

* Sürece özel iş kuralları
* Harici sistem entegrasyonları
* Yardımcı (utility) fonksiyonlar
* API / DB / SAP özel işlemler
* Framework dışında kalan özel logic’ler


---

## 📂 Yapı ve Organizasyon

Custom klasörü genellikle aşağıdaki şekilde organize edilir:

Custom/  
│  
├── SAP/  
├── API/  
├── Database/  
├── Utilities/  
└── BusinessLogic/


---

## 📌 Kullanım Kuralları (Best Practices)

### ✅ Doğru Kullanım

* Her workflow tek bir sorumluluğa sahip olmalı (Single Responsibility)
* Parametreler net ve sade olmalı
* Reusable olacak şekilde tasarlanmalı

### ❌ Kaçınılması Gerekenler

* Framework içine doğrudan kod yazmak
* Aynı işlevin farklı workflow’larda tekrar edilmesi
* Hard-coded değer kullanımı


---

## 🔄 Örnek Kullanım Senaryosu


1. **ProcessData** başlar
2. İlgili işlem için Custom workflow çağrılır
   * `Custom/SAP/CreateOrder.xaml`
3. Sonuç değerlendirilir
4. Başarılı → Queue Success
5. Hata → Exception Handler


---

## 🧠 Mimari Avantajlar

✅ Framework bağımsız geliştirme  
✅ Kolay bakım ve versiyonlama  
✅ Müşteri bazlı özelleştirme  
✅ Kod tekrarının azaltılması  
✅ Test edilebilirlik (Unit test uygunluğu)


---

## 📌 Özet

Custom klasörü, PAW framework’ünün **esnekliğini sağlayan en kritik katmandır**.  
Tüm projeye özel geliştirmeler burada konumlandırılarak:

👉 Framework standardı korunur  
👉 Geliştirme hızı artar  
👉 Kod kalitesi yükselir