# İşlem akışları nasıl çalışır

> İki işlem akışı türü, kurgu ve tuval görünümü, taslak ve revizyon, Deneme ve Canlı modları, dış eylemler ve bir işlem akışının uyması gereken sınırlar.

Kaynak: https://proxus.io/tr/docs/automate/pipeline-concepts

İşlem akışı, birbirine bağlı adımlardan oluşan küçük bir programdır. Edge Gateway bu programı, okuduğu veri üzerinde
çalıştırır. Akışı merkez sunucuda tasarlarsınız, Edge Gateway da makinelerin yanında çalıştırır. Bu sayfada
[işlem akışı düzenleyicisinin](https://proxus.io/tr/docs/automate/pipelines) dayandığı kavramlar anlatılır.

## İki işlem akışı türü

Her işlem akışının bir türü vardır. Tür, akışı oluştururken seçtiğiniz hedefe göre belirlenir. Düzenleyici,
akışın türünü gösterir.

| Tür | Ekranda görünen | Yaptığı iş |
| --- | --- | --- |
| **Otomasyon** | Kaydedilen veriye tepki verir | Bir olayla başlar: yeni veri noktası değerleri, değer değişikliği, bir süre veri gelmemesi, cihaz ya da Edge Gateway durumunun değişmesi, günlük kaydı, Edge Gateway yük değerleri ya da zamanlama. Sonuçta alarm, bildirim, hesaplanan veri noktası, veri aktarımı ya da cihaza yazma işlemi ekler. Saklanan verinin kendisini değiştirmez. |
| **Aktarım işlem akışı** | Veriyi kaydedilmeden önce değiştirir | Cihazın gönderdiği her mesajda, mesaj saklanmadan ya da veri hedeflerine gönderilmeden önce çalışır. Değerleri dönüştürür ve yeniden adlandırır, birim ve veri kalitesi belirler, bağlam bilgisi ekler, bazı değerleri çıkarır ya da ayırır. Akışın çıktısı, saklanan veri olur. |

Aktarım işlem akışının tek bir başlangıç noktası vardır: **Gelen veri**. Otomasyon işlem akışının ise bir ile sekiz
arasında kaynağı olabilir.

### Aktarım işlem akışlarının sırası

Aynı Edge Gateway'de birden çok Aktarım işlem akışı çalışıyorsa mesaj bu akışlardan sırayla geçer. Akışlar önce
**Aşama** değerine göre sıralanır (**Normalleştirme**, **Zenginleştirme**, **Veri kalitesi**, **Yönlendirme**). Aynı
aşamadaki akışlar ise **Sıra** değerine göre sıralanır. **Üzerine yaz** seçiliyse sonraki akış, önceki akışın yazdığı
bir alanın üzerine yazabilir.

**Hata durumunda** ayarı, bir adım başarısız olduğunda mesaja ne olacağını belirler:

- **Orijinali geçir**: mesaj, bu akışa girmeden önceki hâliyle yoluna devam eder.
- **At**: mesaj atılır.
- **Karantinaya al**: mesaj incelenmek üzere ayrılır.

## Kurgu ve tuval

Aynı işlem akışını iki farklı görünümde düzenleyebilirsiniz:

- **Kur** sekmesi, akışı beş bölümlü bir kurgu olarak gösterir: **Ne zaman** (akışı başlatan olay), **Kapsam** (uç
  cihazlar, tesisler, cihazlar, veri noktaları), **Adımlar**, **Sonra** (akışın yapacağı iş), **Aksi halde** (koşul
  sağlanmadığında yapılacak iş). Kurgunun arkasında, tuvalde görünen bağlı adımların aynısı bulunur.
- **Tuval**, bu bağlı adımları (düğümleri) gösterir. Birden çok dal gibi kurguyla anlatılamayan yapıları tuvalde
  kurabilirsiniz.

Tuvalde değiştirdiğiniz değerler kurguya da yansır. Ancak akışın yapısını tuvalde değiştirirseniz kurgu artık akışla
eşleşmez. Bu durumda **Kur** sekmesinde **Tuvali aç** ve **Kurgudan yeniden oluştur** seçenekleri görünür. Tuvalde
oluşturulmuş bir akışı **Kurguyla değiştir** komutuyla kurguya çevirebilirsiniz. Tüm düğümler
[İşlem akışı düğümleri](https://proxus.io/tr/docs/reference/pipeline-nodes) sayfasında listelenir.

## Taslak, revizyon, dağıtım

- **Taslak**, üzerinde çalıştığınız sürümdür. **Kaydet** taslağı saklar, ancak Edge Gateway'ler daha önce yayınlanan
  sürümü çalıştırmaya devam eder.
- **Doğrula**, taslağı **Çalıştığı yer** listesindeki her Edge Gateway için kontrol eder. Adımlar geçerli bir yapı
  oluşturmalıdır: döngü olmamalı, her adıma bir kaynaktan ulaşılabilmeli ve tüm ayarlar doldurulmuş olmalıdır.
  Akışın ihtiyaç duyduğu cihazlar ve veri noktaları da o Edge Gateway'de aranır.
- **Denemede yayınla** ya da **Canlı yayınla**, numaralı bir **revizyon** oluşturur ve bunu **Çalıştığı yer**
  listesindeki her Edge Gateway'e gönderir. Revizyon, bir daha değişmeyen bir kopyadır. Değişmemiş bir taslağı aynı
  modda yeniden yayınlamak yeni revizyon oluşturmaz.
- Her Edge Gateway'de bu revizyonun bir **dağıtımı** olur. **Dağıtımlar** sekmesinde her Edge Gateway için şunlar görünür:
  dağıtımın uygulanıp uygulanmadığı, kaç cihaza bağlanabildiği (**Kapsam**), Edge Gateway'in hâlâ durum bildirip
  bildirmediği (**Çalışma**) ve son hata.
- **Önceki revizyona dön**, önceki bir revizyonu yeniden yayınlar. **Devre dışı bırak**, akışı tüm Edge Gateway'lerden kaldırır.
  Yalnızca devre dışı bırakılmış akışlar arşivlenebilir. Yalnızca hiç yayınlanmamış akışlar silinebilir (**Taslağı
  sil**).

**Çalıştığı yer** listesinden çıkarılan Edge Gateway, bir sonraki yayında akışı durdurur.

## Deneme ve Canlı

| Mod | Çalışan kısım | Sonuç |
| --- | --- | --- |
| **Deneme** | Akışın tamamı, gerçek veriyle, Edge Gateway'de | Hiçbir şey değişmez. Alarmlar, mesajlar, veri aktarımları ve cihaza yazma işlemleri yalnızca "yapılacaktı" diye sayılır. |
| **Canlı** | Akışın tamamı | Alarmlar açılır ve kapanır, mesajlar gönderilir, değerler saklanır, dış eylemler gerçekleşir. |

Akışı önce Deneme modunda yayınlayın ve bir süre **Dağıtımlar** ve **Adım adım izleme** sekmelerini izleyin. Her şey
beklendiği gibiyse Canlı yayınlayın. İşlem akışı listesinde her akışın modu **Yayında** sütununda görünür.

## Yayın öncesi kontrol araçları

| Araç | Yeri | Kullandığı veri |
| --- | --- | --- |
| **Şimdi çalışsaydı** | Kur ve Gözden geçir | Her cihazın son değeri. **Canlı izle** açıkken birkaç saniyede bir yenilenir. |
| **Geçmiş veriyle dene** | Gözden geçir ve yayınla | Son **24 saat** ya da **7 gün** içinde saklanan değerler. Cihaz başına en fazla 25.000 değer. |
| **Test** | Test sekmesi | Otomatik oluşturulan senaryolar ya da sizin yazdığınız veya Edge Gateway'den yüklediğiniz örnek veri. |
| **Adım adım izleme** | Adım adım izleme sekmesi | **İzleme için örnek tut** adımı içeren yayınlanmış bir akıştan gelen canlı örnekler. |

Bu araçların hiçbiri mesaj göndermez, cihaza yazmaz ya da alarm açmaz.

## Dış eylemler

Üç tür adım Proxus'un dışında iş yapar: **API çağır** ve **API'ye gönder**, **Cihaza yaz** ve **Veri hedefine
gönder**. (**Veri noktası olarak kaydet** bu gruba girmez, çünkü sonucu Proxus içinde tutar.) Canlı modda bu adımlar
yalnızca yapılandırma dosyasında izin verilen Edge Gateway'lerde çalışır:

```toml
[Flows]
EffectsEnabled = false
```

`EffectsEnabled = false` (varsayılan) olduğunda bu adımlar o Edge Gateway'de reddedilir ve akış "Dış eylemler devre dışı"
uyarısı verir. Alarmlar, bildirimler ve **Veri noktası olarak kaydet** bundan etkilenmez. Deneme modunda dış eylemler
hiçbir zaman çalışmaz. Dış eylem çalıştırması gereken her Edge Gateway'de bu anahtarı ayarlayın. Bkz.
[Yapılandırma anahtarları](https://proxus.io/tr/docs/reference/configuration).

Cihaza yazılan değerler, adımda belirlediğiniz en küçük ve en büyük değerlerin dışına çıkamaz. Yazma işlemi yalnızca
salt okunur olmayan ve sayı ya da doğru/yanlış türündeki veri noktalarına yapılabilir.

## Sınırlar

İşlem akışı doğrulanırken şu sınırlar kontrol edilir:

| Sınır | Değer |
| --- | --- |
| Ad | 1 ile 120 karakter arası |
| Akış başına düğüm | 1 ile 128 arası |
| Akış başına bağlantı | 256 |
| Akış tanımının boyutu | 256 KB |
| Otomasyon işlem akışındaki kaynak sayısı | 1 ile 8 arası |
| Bir düğümden çıkan dal | 16 |
| Bir mesajdaki veri noktası | 1024 |
| Bir penceredeki değer (hareketli ortalama vb.) | 1024 |
| Formül uzunluğu | 1024 karakter |
| Durum tutan adımlar için bellek (pencereler, ölü bantlar, özetler) | Akış başına 8 MB, Edge Gateway başına 64 MB |
| Edge Gateway başına işlem akışı | 256 |

## Sonraki adımlar

- [İşlem akışı kurun](https://proxus.io/tr/docs/automate/pipelines): ilk işlem akışınızı adım adım kurun, test edin ve yayınlayın.
- [İşlem akışı düğümleri](https://proxus.io/tr/docs/reference/pipeline-nodes): tüm adımlar ve ayarları.
- [İşlem akışı, alarm kuralı, fonksiyon](https://proxus.io/tr/docs/concepts/pipelines-and-rules): hangi aracı ne zaman seçeceğiniz.
