# Get Work

Bu metod, belirli bir sürece ait işleri, verilen tarih aralıklarına göre detaylı şekilde listelemek için kullanılır.



---

### :arrow_left:**GİRDİ**

| **Parametre** | **Tip** | **Zorunlu** | **Açıklama** |
|-----------|-----|---------|----------|
| `ProcessName` | `String` | ❌Hayır  | Süreç adı |
| `Id`      | `Guid?` | ❌Hayır  | İş ID'si |
| `RelatedWorkId` | `Guid?` | ❌Hayır  | İlişkili iş ID'si |
| `ReportDateBegin/End` | `DateTime?` | ❌Hayır  | Rapor tarih aralığı |
| `WorkDateBegin/End` | `DateTime?` | ❌Hayır  | İş tarih aralığı |
| `CreatedDateBegin/End` | `DateTime?` | ❌Hayır  | Oluşturma tarih aralığı |
| `StartDateBegin/End` | `DateTime?` | ❌Hayır  | Başlangıç tarih aralığı |
| `EndDateBegin/End` | `DateTime?` | ❌Hayır  | Bitiş tarih aralığı |
| `IncludeCompleted` | `Boolean?`  | ❌Hayır  | Tamamlananları dahil et |
| `IncludeFailed` | `Boolean?`   | ❌Hayır  | Başarısızları dahil et |
| `IncludeIdle` | `Boolean?`   | ❌Hayır  | Bekleyenleri dahil et |
| `IncludeRunning` | `Boolean?`   | ❌Hayır  | Çalışanları dahil et |
| `IncludeExpired` | `Boolean?`   | ❌Hayır  | Süresi dolmuşları dahil et |
| `IncludeDisabled` | `Boolean?`   | ❌Hayır  | Devre dışıları dahil et |
| `IncludeReported` | `Boolean`   | ❌Hayır  | Raporlananları dahil et |
| `DescriptionFilter` | `String` | ❌Hayır  | Açıklama filtresi |
| `StatusNoteFilter` | `String` | ❌Hayır  | Durum notu filtresi |
| `NoteFilter` | `String` | ❌Hayır  | Not filtresi |



---

### :arrow_right:**ÇIKTI**

| **Parametre** | **Tip** | **Açıklama** |
|-----------|-----|----------|
| `IsGetWorkSuccessful` | `Boolean`   | Başarı durumu |
| `GetWorkMessage` | `String` | Sonuç mesajı |
| `GetWorkResult` | `List<`[`PAWGetWorkResult`](/doc/pawgetworkresult-16ALkV3h3W)`>` | İş listesi |
| `GetWorkRecordCount` | `Int32`   | Kayıt sayısı |



---

### 🎯 Amaç

* Sürece ait iş kayıtlarını toplu olarak çekmek
* Belirli tarih aralıklarında oluşan işleri analiz etmek
* Raporlama ve izleme süreçlerini desteklemek


---

### ⚙️ Çalışma Mantığı

* Metodun çalıştırılabilmesi için **en az bir tarih parametresi** girilmelidir
* Verilen tarih aralıklarına göre uygun işler filtrelenerek getirilir
* Sadece başlangıç tarihi verilirse:
  * Bu tarihten **günümüze kadar olan tüm işler** çekilir
* Başlangıç ve bitiş tarihi birlikte verilirse:
  * Belirtilen tarih aralığındaki işler listelenir


---

### 📥 Girdi Parametreleri

#### 🔹 Report Date Begin

Filtreleme için başlangıç tarihidir.


---

#### 🔹 Report Date End (Opsiyonel)

Filtreleme için bitiş tarihidir.  
Boş bırakılırsa, başlangıç tarihinden günümüze kadar olan veriler alınır.


---

#### 🔹 Diğer Tarih Alanları

Aşağıdaki tarih tiplerine göre filtreleme yapılabilir:

* **Work Date**
* **Created Date**
* **Start Date**
* **End Date**


---

### 📌 Report Date Mantığı (Önemli)

* **Report Date Begin** ve **Report Date End** alanları, diğer tarih alanlarının birleşimi gibi çalışır
* Verilen tarih aralığında:
  * Work, Created, Start ve End tarih kriterlerine uyan tüm işler getirilir
* Aynı iş, birden fazla tarih kriterine uysa bile:
  * **Sadece bir kez listelenir (duplicate oluşmaz)**

📍 Örnek:  
Bir iş hem başlangıç hem bitiş tarihine uyuyorsa, iki kez değil **tek kayıt** olarak döner.


---

### 📤 Çıktı

* Sürece ait iş kayıtları
* Her iş için detaylı bilgiler (durum, tarih bilgileri, input/output vb.)


---

### ⚠️ Önemli Notlar

* En az bir tarih filtresi girilmeden metod çalışmaz
* Geniş tarih aralıkları performansı etkileyebilir
* Duplicate kayıt oluşmaması için birleşim mantığı uygulanır


---

### 💡 Kullanım Senaryoları

* Günlük / haftalık iş raporları
* Belirli tarih aralığında hata analizi
* Süreç performans ölçümü
* SLA ve operasyon takibi


---

### 💡 Özet

Get Work metodu, süreçlere ait iş kayıtlarını tarih bazlı ve detaylı şekilde çekerek raporlama, analiz ve operasyonel izleme için güçlü bir veri kaynağı sunar.