Daha önceki yazılarımızda da belirttiğimiz gibi robotlar, kural bazlı işlerimizi aktarabileceğimiz ve 7/24 çalışabilen yazılım uygulamalarıdır. Robotlara aktarılacak süreçlerin seçimi ve bu süreçlerin geliştirilmesi başlı başına incelenmesi gereken konulardan sadece birkaçı. Bu yazıda sizler için robotların yönetimini daha iyi yapabilmek adına UiPath’in Orchestrator ürününü baz alarak inceleyeceğiz.
Bir sürecin geliştirmesi tamamlandıktan ve canlıya alınıp kendi başına çalışabilecek hale geldiğinden emin olunduktan sonra “Publish” işlemi ile süreç “nupkg” formatına dönüştürülüp Orchestrator’a çalıştırması için gönderilir. Peki nedir bu orchestrator?
Orchestrator adından da anlaşılacağı üzere robotları yönlendiren ve yöneten bir merkezi çözümüdür. Sizin ortamınızda / çiftliğinizde bulunan tüm robotların kurulum aşamasında orchestrator’a bağlantısı gerçekleştirilir ve o noktadan sonra robotların aktif durumları, üzerinde çalışan süreçler, kuyruk bilgisi gibi detaylara tek bir çatı altında erişebilir ve bunların yönetimini sağlayabilirsiniz. Orchestrator sayesinde;
- Robotlar
- Makineler
- Süreçler
- Kütüphaneler
- İşler
- Çalışma Planları
- Varlıklar
- Kuyruklar
görüntülenebilir ve yönetilebilir.
1 Robotlar
Orchestrator’a bağlantısı gerçekleştirilmiş robotların bilgileri bulunan bölümdür. İzleme kısmı altında robotların durumu (Çevrimiçi/Çevrimdışı), tipi (Unattended, Attended, Development vb.), bu robot makineye bağlanırken hangi kullanıcı adı ile oturum açıldığı, robotun kullandığı makinenin ismi ve o robotun üzerinde çalışan süreçler görünür.
Robot ayarlarında ise robotun hangi makineye bağlanacağı, kullanıcı kimlik bilgileri, tipi, makineye bağlanırken kullanacağı çözünürlük ayaları gibi ayarlar mevcuttur. Robotları yönetmekte en önemli konulardan biri geliştirmesini yaptığınız süreçlerin sahip olduğunuz tüm robotlarda aynı şekilde çalışabilmesini sağlamaktır. RPA yani Robotik Süreç Otomasyon teknolojisi insan hareketlerini taklit ederek işlemlerini gerçekleştirir; yani robotların kullandığı kullanıcılar / bilgisayarlar arasında oluşacak en ufak fark sürecin doğru çalışmamasına sebep olabilir. Örneğin; geliştirme ortamınızdaki robotunuz ile sitede arama yaparken arama çubuğu orta üst tarafta duruyor ancak diğer robotunuzda aynı süreci çalıştırdığınızda çözünürlük veya farklı bir sebepten dolayı arama çubuğu o an ekranın dışında kalabiliyorsa ve siz buna uygun bir geliştirme yapmadıysanız, süreciniz çalışmayacak, hata verecektir. Bu geliştirme kaynaklı bir hata olduğu için farklı tekniklerle çözülebilir ancak bazı siteler/programlar robotlar tarafından kullanılmayı engellemek için çözümler geliştirmektedir. Siz arama çubuğunun “id” si üzerinden html kodlarını arayarak onu bulabilirsiniz ama kullandığınız web uygulaması belli periyodlarla bu “id” değerini değiştiriyor olabilir. Yani geliştirmesini tamamlamanızdan itibaren bir hafta boyunca sorunsuz çalışan bir sürecinizde hiçbir değişiklik olmamasına rağmen web uygulaması kaynaklı değişiklikler yüzünden hatalar almaya başlayabilirsiniz.
2 Makineler
Robotların bağlanıp süreçlerini çalıştıracakları sanal ya da fiziksel bilgisayarlar bu başlık altından tanımlanıp yönetilir.
3 Süreçler
Geliştirme ortamında hazır hale getirilen veya testleri devam eden süreçler bu başlık altında görünür. Orchestrator kurulumu ihtiyaçlarınıza göre farklı şekillerde yapılabilir. Örneğin Orchestrator yapısını “Development” ve “Production” diye nitelendirilen iki farklı “Tenant’a” ayırabilirsiniz. Bu ayrıştırmanın amacı farklı ortamlardaki süreçlerin kullandığı robotlar, kuyruklar ve varlıkların birbirini etkilememesi, ayrıca bir sürecin “Production” ortamına aktarılmadan önce onun eksiksiz çalıştığının kontrolünün tekrar tekrar yapılmasının sağlanmasıdır. Eğer iş planlarınızda ve dijital dönüşüm haritanızda iş birimleri tarafından kritik derecede önemli olarak nitelendirilen süreçlerin RPA’ya aktarılmasını ve bu süreçlerin son noktada insan kontrolü olmadan da çalışabilir hale getirilmesini istiyorsanız robotlarınızda çalışan tüm süreçlerin birbirlerinden izole olduğundan emin olmalısınız. Orchestrator ortamını “Development” ve “Production” olarak ikiye ayırmak da bu amaçla yapılabilir.
Development ortamında geliştirme ve testleri tamamlanmış süreçleri “nupkg” formatında “Production” ortamına yüklemek için yine süreçler başlığı altındaki “Packages” sekmesinden yararlanılır. Bu sekmede paketlerin versiyonlarını ve versiyonların loglarını detaylı bir şekilde inceleyebilir daha sonra ilgili tenant’ta paketin hangi versiyonunun kullanılacağını, gerekirse yükseltme (upgrade) ve düşürme (downgrade) işlemlerini gerçekleştirebiliriz. Daha önce ilgili ortama gönderdiğimiz tüm paketleri yine bu sekme altında görebiliriz.
4 Kütüphaneler
Tenant’ta bulunan tüm süreçler için gerekli olan kütüphaneler bu başlık altında görüntülenebilir. Kütüphanenin açıklamasını, yayınlanma tarihini ve tıpkı paketlerdeki gibi versiyon bilgilerini de görebiliriz.
Kütüphane bazında bir geliştirme yapıp sonraki süreçlerimizde kendi oluşturduğumuz kütüphanedeki aktiviteleri kullanmak istersek, yine bir süreci “Production” ortamına gönderme adımlarını izleyebilir, kütüphane paketini “Production” ortamına gönderip ihtiyaç duyan süreçlerin buradan bağlanıp kullanmasını sağlayabiliriz.
5 İşler
İşler başlığı altında çalıştığınız tenant’a bağlantısı yapılmış robotlar ve bu robotlarda çalışan süreçler ile ilgili detaylı bilgiye erişilebilir. Bu bilgiler;
- Süreç ismi
- Çalıştığı robot
- Süreç durumu
- Başlangıç ve bitiş zamanları
- Sürecin kim tarafından başlatıldığı
- Çalışma esnasında üretilen loglar
Bu bilgilerin yanı sıra manuel olarak süreçleri yine bu başlık altından çalıştırabiliriz. Süreci çalıştırıp bir iş haline dönüştürmeden önce Orchestrator bizden birtakım bilgiler isteyecektir. Bunlar; çalıştırılacak süreç ismi, bu sürecin hangi robot/robotlarda çalıştırılacağı ve sürecin çalışmaya başlamadan önce bir giriş parametresi ihtiyacının olup olmadığıdır. Gerekli bilgiler sağlandıktan sonra çalışan süreci yine aynı başlık altından loglarına bakarak takip edebiliriz.
6 Çalışma Planları
Süreçlerin belirlenen gün ve saatlerde, belirlenen periyotlarda çalışmasını sağlamak için kullanılır. Bu zamanlama Orchestrator’ın bize sunduğu dakikalık, saatlik, günlük, aylık, yıllık gibi sürelerde olabileceği gibi “Cron” ifadeler ile ileri seviyede zamanlama da sağlanabilir. İşler sekmesinde olduğu gibi bir süreci çalıştırmadan önce birtakım gereksinimlere bu başlık altında da ihtiyaç duyulur, ek olarak hangi zaman dilimine göre bu zamanlamanın çalıştırılacağı da sorulur.
7 Varlıklar
Varlıklar başlığını değişkenler gibi düşünebiliriz. Programlamada değerleri tutmak için değişken ifadeler kullanılır ve bu değişkenlerin çalışma alanları yani diğer bir söylemle yetki alanları tanımlanır. Bunlar fonksiyon bazında, lokal ve global olabilir. UiPath ile süreç geliştirirken çalışma alanları sequence’lere göre belirlense de Orchestrator’da bulunan varlıklar başlığı ile burada tanımlanan değişkenler ihtiyaç duyulan tüm süreçlerde kullanılabilir. Birden fazla sürecin ihtiyaç duyacağı bir değişken ne olabilir diye düşündüğümüzde aklımıza öncelikle süreçler hakkında bilgi tutmak istediğimiz ve ortak kullandığımız veritabanı, ortak kullanılan mail kutuları, SAP gibi ERP sistemlerinin bilgileri gelebilir.
Ortak kullanılacak bilgiler haricinde bir süreçte kullanılan ancak değişmesi sık olan bir bilginin de burada tutulabileceğini hatırlatmakta fayda var. Süreç içindeki değeri her değiştirmemiz gerektiğinde o süreç için yeni bir versiyon yayınlayıp bunu Orchestrator’a da tanıtmamız gerekir ancak Varlıklar başlığı altında oluşturulacak bir değişkenle süreç üzerinde bir değişiklik yapmadan istediğimiz her an bu değişkenin içeriğini değiştirebiliriz ve robot üzerinde süreç çalıştığı anda, Orchestrator’a bağlanıp en güncel içeriği almasını ve kullanmasını sağlayabiliriz.
8 Kuyruklar
Orchestrator’ın bize sunduğu en önemli yeteneklerden biri olan kuyrukları tarif etmek için öncelikle Veri Yapıları derslerinde anlatılan kuyruk yapısını (LIFO, FIFO) bilmek işimizi kolaylaştırabilir ancak özet bir şekilde bahsedecek olursak süreçlerin çalışacağı, işleyeceği bilgileri belli bir sıra haline getirip bunu bir veya birden fazla robotun o sıra ile çağırıp daha sonra durumunu yine aynı sıra üzerinde güncelleyip(Başarılı / Başarısız / Tekrar Deneniyor), yeni işi alması için imkan sunan bir liste olarak açıklayabiliriz.
Bir süreç içerisinde birden fazla kuyruk kullanabileceğimiz gibi birden fazla süreci de bir kuyruğa bağlayabiliriz. Bu tamamen sürecin mantıksal çalışma yapısıyla ve geliştiricinin kurgulamasıyla alakalıdır.
Bir kuyruğu tanımlarken bizden;
- İsim
- Açıklama
- Referans değeri için Unique (Benzersizlik) özelliğinin olup olmayacağı
- Tekrar deneme sayısı
gibi bilgiler istenir.
UiPath’in Orchestrator ürünü ile yapılabileceklere ekleme yapmak istediğinizde API yardımıyla bu işlemlerin her birini siz de yapabilir, istediğiniz ek geliştirmeleri yazılım bilginizle orantılı olacak şekilde kısa sürede gerçekleştirebilirsiniz.
RPA Ürün ve Hizmetlerimizle ilgili detaylı bilgi almak için tıklayınız.