UiPath Orchestrator’da Süreç Performansı, Utilizasyon İzleme ve Raporlama

Tüm projelerde kaynak kullanımı ve süreç performansını izlemek kritik öneme sahiptir. Özellikle RPA (Robotik Süreç Otomasyonu) projelerinde, süreçlerin nasıl çalıştığını ve kaynakların nasıl kullanıldığını anlamak için detaylı raporlamalara ihtiyaç duyulur. Bu yazıda, UiPath Orchestrator veri tabanından T-SQL sorguları kullanarak önemli metrikleri nasıl çıkarabileceğimizi ve farklı senaryolarda ne tür bilgiler elde edebileceğimizi ele alacağız.

Not: Aşağıdaki sorguları çalıştırabilmek için:

  • Orchestrator’ın On-Premise olarak kurulmuş olması,
  • Veri tabanının MSSQL üzerinde yapılandırılmış olması gereklidir.

Eğer On-Premise kurulumunuz yoksa, Orchestrator’ı bulut tabanlı (Cloud) olarak kullanıyorsanız; ihtiyaç duyduğunuz verileri elde etmek için Orchestrator’ın REST API‘ını kullanabilirsiniz. API üzerinden süreçler, robotlar ve diğer kaynaklar hakkında bilgi alabilirsiniz. Bununla ilgili de ayrı bir yazı ileride paylaşıyor olacağım.

 

Ayrıca, UiPath’in Insights ürününü kullanarak benzer bilgilere erişebilirsiniz.

 

Raporlama İhtiyaçları ve Orchestrator

UiPath Orchestrator, robotların ve süreçlerin yönetimini sağlayan merkezi bir platformdur. Ancak, bazen arayüzün sunduğu raporlama imkanları ihtiyaçlarımızı tam olarak karşılamayabilir. Örneğin, bir sürecin kaç kez çalıştığını, toplam çalışma süresini, maksimum, minimum ve ortalama çalışma sürelerini detaylı bir şekilde görmek isteyebilirsiniz. Bu bilgiler, süreçlerin performansını değerlendirmek, robotların doluluk oranlarını ve ne kapasitede çalıştığını görmek, iyileştirme alanlarını belirlemek ve ne zaman yeni bir robota ihtiyacınızın olacağını analiz edebilmek gibi ihtiyaçlar için de düzenli olarak bu raporları inceliyor olmak önemlidir.

 

Veri Tabanından Raporların Elde Edilmesi

Bu tür detaylı verileri elde etmek için Orchestrator’ın veritabanına doğrudan T-SQL sorguları yazabiliriz. Örneğin, bir sürecin robotlarda toplamda kaç saat çalıştığını, en uzun çalışmasının ne kadar sürdüğünü tespit etmeye çalıştığımızı düşünelim. Aşağıdaki gibi bir tablo oluşturabiliriz:

Picture1

Bu tabloyu oluşturmak için aşağıdaki sorgu kullanılabilir:

 

SELECT

    R.Name AS [Process Adı],

    COUNT(*) AS [Çalışma Sayısı],

    SUM(DATEDIFF(second, J.StartTime, J.EndTime)) / 3600.0 AS [Toplam Çalışma Süresi (Saat)],

    MAX(DATEDIFF(second, J.StartTime, J.EndTime)) / 3600.0 AS [Maksimum Çalışma Süresi (Saat)],

    MIN(DATEDIFF(second, J.StartTime, J.EndTime)) / 3600.0 AS [Minimum Çalışma Süresi (Saat)],

    AVG(DATEDIFF(second, J.StartTime, J.EndTime)) / 3600.0 AS [Ortalama Çalışma Süresi (Saat)]

FROM

    dbo.Jobs J

INNER JOIN

    dbo.Releases R ON J.ReleaseId = R.Id

WHERE

    J.State= '2' AND

    J.StartTime IS NOT NULL AND J.EndTime IS NOT NULL AND

J.StartTime >= DATEADD(day, -30, GETDATE())

GROUP BY

    R.Name

HAVING

    COUNT(*) >= 1

ORDER BY

    [Process Adı];

Yukarıdaki tablo geçtiğimiz 30 gün içerisinde başarılı şekilde sonlanmış süreçlerin verilerini bize döndürecektir. Bu tabloyu ve sorguyu ihtiyaçlarımıza göre şekillendirebiliriz.

 

  1. Belirli Bir Tarih Aralığında Çalışan Süreçlerin Analizi

Eğer sadece belirli bir tarih aralığındaki verileri analiz etmek istiyorsak, sorgumuza bir tarih filtresi ekleyebiliriz:

WHERE

    J.StartTime >= '2023-01-01' AND J.EndTime <= '2023-12-31'

    AND J.StartTime IS NOT NULL AND J.EndTime IS NOT NULL

Bu şekilde, 2023 yılı içerisindeki süreçleri analiz edebiliriz.

 

  1. Robot Bazlı Kullanım Analizi

Hangi robotların daha yoğun kullanıldığını görmek için sorguyu robotlara göre gruplandırabiliriz:

Çıktı:

Picture2

Sorgu:

SELECT

    Rbt.Name AS [Robot Adı],

    COUNT(*) AS [Çalışma Sayısı],

    SUM(DATEDIFF(second, J.StartTime, J.EndTime)) / 3600.0 AS [Toplam Çalışma Süresi (Saat)]

FROM

    dbo.Jobs J

INNER JOIN

    dbo.Robots Rbt ON J.RobotId = Rbt.Id

WHERE

    J.StartTime IS NOT NULL AND J.EndTime IS NOT NULL

GROUP BY

    Rbt.Name

ORDER BY

    [Çalışma Sayısı] DESC;

 

  1. Süreçlerin Başarısızlık Oranları

Süreçlerin başarısız olma oranlarını analiz etmek için aşağıdaki sorguyu kullanabiliriz:

Çıktı:

Picture3

Sorgu:

SELECT

    R.Name AS [Process Adı],

    COUNT(*) AS [Toplam İş Sayısı],

    SUM(CASE WHEN J.State = 'Successful' THEN 1 ELSE 0 END) AS [Başarılı İş Sayısı],

    SUM(CASE WHEN J.State = 'Faulted' THEN 1 ELSE 0 END) AS [Hatalı İş Sayısı],

    (CAST(SUM(CASE WHEN J.State = 'Faulted' THEN 1 ELSE 0 END) AS FLOAT) / COUNT(*)) * 100 AS [Başarısızlık Oranı (%)]

FROM

    dbo.Jobs J

INNER JOIN

    dbo.Releases R ON J.ReleaseId = R.Id

GROUP BY

    R.Name

ORDER BY

    [Başarısızlık Oranı (%)] DESC;

Bu sorgu, her bir sürecin toplam çalışma sayısını, başarılı ve hatalı sonlanan süreç sayılarını ve yüzde olarak başarısızlık oranını gösterir.

 

  1. Zaman Bazlı Performans Analizi

Süreçlerin belirli zaman dilimlerinde nasıl performans gösterdiğini analiz etmek için, tarih ve saat bazlı gruplamalar yapabiliriz. Aşağıdaki tabloda saat kaçta, hangi süreç, hangi robotta, kaç kere çalışmış bunu gözlemleyebiliyoruz.

Çıktı:

Picture4

Sorgu:

SELECT

    DATEPART(hour, J.StartTime) AS [Saat],

    R.Name AS [Process Adı],

    Rbt.Name AS [Robot Adı],

    COUNT(*) AS [Çalışma Sayısı]

FROM

    dbo.Jobs J

INNER JOIN

    dbo.Releases R ON J.ReleaseId = R.Id

INNER JOIN

    dbo.Robots Rbt ON J.RobotId = Rbt.Id

WHERE

    J.StartTime IS NOT NULL

GROUP BY

    DATEPART(hour, J.StartTime), R.Name, Rbt.Name

ORDER BY

    [Saat], [Process Adı], [Robot Adı];

Bu sorgu, her bir sürecin günün hangi saatlerinde ne sıklıkla çalıştığını gösterir. Böylece yoğun saatleri belirleyebilir ve kaynak planlaması yapabiliriz.

 

Sonuç olarak,

UiPath Orchestrator veri tabanına doğrudan erişim sağlayarak, ihtiyaç duyduğumuz detaylı veri raporları elde edebiliriz. Bu tip sorgular ile analizler yapabilir, süreçlerin performansını ve kaynak kullanımını etkin bir şekilde izleyebiliriz. Bu sayede, süreç iyileştirme fırsatlarını belirleyebilir ve RPA yatırımlarımızdan maksimum verim alabiliriz.

 

Bu yazıda genel olarak süreçlerin çalışma adedi ve süreleri temelinde bir raporlama yaklaşımını ele aldık. İlerleyen yazılarda, işlenen veri üzerinden raporlama yapma yöntemlerini ve aynı işlemlerin Orchestrator API’ı kullanılarak nasıl gerçekleştirilebileceğini detaylandıracağım.

Umarım faydalı olmuştur.

Bir sonraki yazıda görüşmek dileğiyle. 😊

Leave a comment

Hey There!

I’m a Technical Team Lead with expertise in UiPath and RPA, along with skills in test automation and software development.

I will be sharing technical content on my personal blog, as well as on the RPA Updates platform.

You can connect with me on LinkedIn and also find RPA Updates on LinkedIn and Instagram.