# Start Work

Bu metod, PAW iş kuyruğunda durumu **“Beklemede”** olan ve belirli bir sürece bağlı işleri başlatmak için kullanılır.



---

### **⬅️GİRDİ**

| **Parametre** | **Tip** | **Zorunlu** | **Açıklama** |
|-----------|-----|---------|----------|
| `ProcessName` | `String` | ✅\*Evet | Süreç adı (\*OverloadGroup) |
| `WorkId`  | `Guid?` | ✅\*Evet | İş ID'si (\*OverloadGroup) |
| `DescriptionFilter` | `String` | ❌Hayır  | Açıklama filtresi |
| `StatusNoteFilter` | `String` | ❌Hayır  | Durum notu filtresi |
| `NoteFilter` | `String` | ❌Hayır  | Not filtresi |

 


---

### **➡️ÇIKTI**

| **Parametre** | **Tip** | **Açıklama** |
|-----------|-----|----------|
| `Id`      | `Guid?` | Başlatılan iş ID'si |
| `RelatedWorkId` | `Guid?` | İlişkili iş ID'si |
| `StatusNote` | `String` | Durum notu |
| `Note`    | `String` | Not      |
| `InputAttachments` | `List<`[`PAWAttachment`](/doc/pawattachment-Q8jL3cSHvI)`>` | Giriş ekleri |
| `Input`   | `DataTable` | İş giriş verisi |
| `AdditionalData` | `DataTable` | Ek veriler |
| `AdditionalDataAttachments` | `List<`[`PAWAttachment`](/doc/pawattachment-Q8jL3cSHvI)`>` | Ek veri dosyaları |
| `IsStartWorkSuccessful` | `Boolean`   | Başarı durumu |
| `StartWorkMessage` | `String` | Sonuç mesajı |
| `RunNumber` | `Int32`   | Çalıştırma numarası |



---

### 🎯 Amaç

* Beklemede olan işleri başlatmak
* İş durumunu **“Beklemede” → “Çalışıyor”** olarak güncellemek
* Aynı işin birden fazla bot tarafından çalıştırılmasını engellemek


---

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

* İş başlatıldığında durumu otomatik olarak **“Çalışıyor”** olarak güncellenir
* Bu durumda olan bir iş, başka bir bot tarafından tekrar başlatılamaz
* Aynı süreçte birden fazla iş varsa:
  * **Öncelik tanımlı değilse** → oluşturulma tarihine göre sıralı çalıştırılır
  * **Öncelik tanımlıysa** → öncelikli iş önce çalıştırılır


---

### 🔎 Filtreleme ve Seçim Parametreleri

#### 🔹 Work Id

Belirli bir işi başlatmak için kullanılır.  
İlgili işin ID bilgisi verilerek doğrudan o iş çalıştırılır.


---

#### 🔹 Description Filter

İşlerin açıklama alanına göre filtrelenmesini sağlar.  
Belirli bir açıklamaya sahip işler seçilerek çalıştırılabilir.


---

#### 🔹 Status Note Filter

İşlerin **durum açıklaması** alanına göre filtreleme yapar.

Desteklenen karakterler:

* `*` → İçinde geçen metin
* `?` → Tek karakter yerine geçer


---

#### 🔹 Note Filter

İşlerin **not alanına** göre filtreleme yapılmasını sağlar.

Desteklenen karakterler:

* `*` → İçinde geçen metin
* `?` → Tek karakter yerine geçer


---

### 📥 Çıktı Parametreleri

#### 🔹 Input (Collection)

İşe ait giriş verilerini listeler.  
Bu veriler, süreç başlatılırken tanımlanan tüm input alanlarını içerir.


---

#### 🔹 Input Attachments

İşe ait ek dokümanları detaylı şekilde listeler.

Alanlar:

* **Field Name**: Sürece ait template’ten gelen alan adı
* **File Name**: Dosya adı + uzantısı
* **File Name Without Extension**: Uzantısız dosya adı
* **Extension**: Dosya uzantısı
* **Mime Type**: Dosyanın medya tipi (örn: `application/pdf`)
* **Data**: Dosyanın Binary formatındaki içeriği


---

### ⚠️ Önemli Notlar

* Aynı iş, “Çalışıyor” durumundayken tekrar başlatılamaz
* Filtreleme parametreleri birlikte kullanılarak daha spesifik seçim yapılabilir
* Ek dokümanlar her zaman **Binary formatında** döndürülür


---

### 💡 Özet

Start Work metodu, iş kuyruğundaki görevlerin kontrollü, öncelikli ve filtrelenebilir şekilde başlatılmasını sağlar. Aynı zamanda işe ait tüm giriş verileri ve ek dokümanları süreç içerisinde kullanılmak üzere sunar.